admin.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762
  1. import request from '@/utils/request'
  2. // 用户管理
  3. export function getUserList(params) {
  4. return request({
  5. url: '/api/admin/users',
  6. method: 'post',
  7. data: params
  8. })
  9. }
  10. export function getUserDetail(id) {
  11. return request({
  12. url: `/api/admin/users/${id}`,
  13. method: 'post'
  14. })
  15. }
  16. export function updateUser(id, data) {
  17. return request({
  18. url: `/api/admin/users/${id}`,
  19. method: 'put',
  20. data
  21. })
  22. }
  23. export function deleteUser(id) {
  24. return request({
  25. url: `/api/admin/users/${id}`,
  26. method: 'delete'
  27. })
  28. }
  29. export function resetUserPassword(id, password) {
  30. return request({
  31. url: `/api/admin/users/${id}/reset-password`,
  32. method: 'post',
  33. data: { password }
  34. })
  35. }
  36. // 家庭管理
  37. export function getFamilyList(params) {
  38. return request({
  39. url: '/api/admin/families',
  40. method: 'post',
  41. data: params
  42. })
  43. }
  44. export function getFamilyDetail(id) {
  45. return request({
  46. url: `/api/admin/families/${id}`,
  47. method: 'post'
  48. })
  49. }
  50. export function updateFamily(id, data) {
  51. return request({
  52. url: `/api/admin/families/${id}`,
  53. method: 'put',
  54. data
  55. })
  56. }
  57. export function deleteFamily(id) {
  58. return request({
  59. url: `/api/admin/families/${id}`,
  60. method: 'delete'
  61. })
  62. }
  63. export function getFamilyMembers(id) {
  64. return request({
  65. url: `/api/admin/families/${id}/members`,
  66. method: 'post'
  67. })
  68. }
  69. // 任务模板管理
  70. export function getTaskTemplateList(params) {
  71. return request({
  72. url: '/api/admin/task-templates',
  73. method: 'post',
  74. data: params
  75. })
  76. }
  77. export function createTaskTemplate(data) {
  78. return request({
  79. url: '/api/admin/task-templates/create',
  80. method: 'post',
  81. data
  82. })
  83. }
  84. export function updateTaskTemplate(id, data) {
  85. return request({
  86. url: `/api/admin/task-templates/${id}`,
  87. method: 'put',
  88. data
  89. })
  90. }
  91. export function deleteTaskTemplate(id) {
  92. return request({
  93. url: `/api/admin/task-templates/${id}`,
  94. method: 'delete'
  95. })
  96. }
  97. // 孩子管理
  98. export function getChildrenList(params) {
  99. return request({
  100. url: '/api/admin/children',
  101. method: 'post',
  102. data: params
  103. })
  104. }
  105. export function getChildDetail(id) {
  106. return request({
  107. url: `/api/admin/children/${id}`,
  108. method: 'post'
  109. })
  110. }
  111. export function updateChild(id, data) {
  112. return request({
  113. url: `/api/admin/children/${id}`,
  114. method: 'put',
  115. data
  116. })
  117. }
  118. export function deleteChild(id) {
  119. return request({
  120. url: `/api/admin/children/${id}`,
  121. method: 'delete'
  122. })
  123. }
  124. export function adjustChildPoints(id, data) {
  125. return request({
  126. url: `/api/admin/children/${id}/adjust-points`,
  127. method: 'post',
  128. data
  129. })
  130. }
  131. // 任务管理
  132. export function getTasksList(params) {
  133. return request({
  134. url: '/api/admin/tasks',
  135. method: 'post',
  136. data: params
  137. })
  138. }
  139. export function getTaskStats() {
  140. return request({
  141. url: '/api/admin/tasks/stats',
  142. method: 'post'
  143. })
  144. }
  145. // 奖励管理
  146. export function getRewardsList(params) {
  147. return request({
  148. url: '/api/admin/rewards',
  149. method: 'post',
  150. data: params
  151. })
  152. }
  153. export function getRewardTemplates() {
  154. return request({
  155. url: '/api/admin/rewards/templates',
  156. method: 'post'
  157. })
  158. }
  159. export function createRewardTemplate(data) {
  160. return request({
  161. url: '/api/admin/rewards/create',
  162. method: 'post',
  163. data
  164. })
  165. }
  166. export function deleteRewardTemplate(id) {
  167. return request({
  168. url: `/api/admin/rewards/templates/${id}`,
  169. method: 'delete'
  170. })
  171. }
  172. export function updateRewardTemplate(id, data) {
  173. return request({
  174. url: `/api/admin/rewards/templates/${id}`,
  175. method: 'put',
  176. data
  177. })
  178. }
  179. export function approveReward(id, data) {
  180. return request({
  181. url: `/api/admin/rewards/${id}/approve`,
  182. method: 'post',
  183. data
  184. })
  185. }
  186. // 积分管理
  187. export function getPointsLogs(params) {
  188. return request({
  189. url: '/api/admin/points/logs',
  190. method: 'post',
  191. data: params
  192. })
  193. }
  194. export function getPointsStats() {
  195. return request({
  196. url: '/api/admin/points/stats',
  197. method: 'post'
  198. })
  199. }
  200. // ========== 心愿管理 API(新版) ==========
  201. // 获取心愿列表
  202. export function getWishesList(params) {
  203. return request({
  204. url: '/api/wishes',
  205. method: 'get',
  206. params
  207. })
  208. }
  209. // 获取待处理列表(家长)
  210. export function getPendingWishes(familyId) {
  211. return request({
  212. url: '/api/wishes/pending',
  213. method: 'get',
  214. params: { familyId }
  215. })
  216. }
  217. // 获取心愿详情
  218. export function getWishDetail(id) {
  219. return request({
  220. url: `/api/wishes/${id}`,
  221. method: 'get'
  222. })
  223. }
  224. // 家长定价
  225. export function setWishPrice(id, pointsRequired) {
  226. return request({
  227. url: `/api/wishes/${id}/set-price`,
  228. method: 'put',
  229. data: { pointsRequired }
  230. })
  231. }
  232. // 家长拒绝心愿
  233. export function rejectWish(id, reason) {
  234. return request({
  235. url: `/api/wishes/${id}/reject`,
  236. method: 'put',
  237. data: { reason }
  238. })
  239. }
  240. // 家长审批兑换
  241. export function approveWishExchange(id, approved, reason) {
  242. return request({
  243. url: `/api/wishes/${id}/approve-exchange`,
  244. method: 'put',
  245. data: { approved, reason }
  246. })
  247. }
  248. // 家长标记已购买
  249. export function markWishFulfilled(id) {
  250. return request({
  251. url: `/api/wishes/${id}/fulfill`,
  252. method: 'put'
  253. })
  254. }
  255. // 取消心愿
  256. export function deleteWish(id, reason) {
  257. return request({
  258. url: `/api/wishes/${id}`,
  259. method: 'delete',
  260. data: { reason }
  261. })
  262. }
  263. // ========== 成长规划师相关 API ==========
  264. // 获取成长规划师关联的家庭列表
  265. export function getTeacherFamilies() {
  266. return request({
  267. url: '/api/admin/teacher/families',
  268. method: 'post'
  269. })
  270. }
  271. // 获取成长规划师发布的任务模板
  272. export function getTeacherTaskTemplates() {
  273. return request({
  274. url: '/api/admin/teacher/task-templates',
  275. method: 'post'
  276. })
  277. }
  278. // 成长规划师创建任务模板
  279. export function createTeacherTaskTemplate(data) {
  280. return request({
  281. url: '/api/admin/teacher/task-templates/create',
  282. method: 'post',
  283. data
  284. })
  285. }
  286. // 成长规划师删除任务模板
  287. export function deleteTeacherTaskTemplate(id) {
  288. return request({
  289. url: `/api/admin/teacher/task-templates/${id}`,
  290. method: 'delete'
  291. })
  292. }
  293. // 获取指定家庭的任务列表
  294. export function getTeacherFamilyTasks(familyId, params) {
  295. return request({
  296. url: `/api/admin/teacher/families/${familyId}/tasks`,
  297. method: 'post',
  298. data: params
  299. })
  300. }
  301. // 获取指定家庭的奖励列表
  302. export function getTeacherFamilyRewards(familyId, params) {
  303. return request({
  304. url: `/api/admin/teacher/families/${familyId}/rewards`,
  305. method: 'post',
  306. data: params
  307. })
  308. }
  309. // ========== 成长规划师审核 API ==========
  310. // 获取成长规划师审核列表
  311. export function getGuideApplications(params) {
  312. return request({
  313. url: '/api/admin/guide/applications',
  314. method: 'post',
  315. data: params
  316. })
  317. }
  318. // 通过成长规划师审核
  319. export function approveGuide(userId) {
  320. return request({
  321. url: `/api/admin/guide/approve/${userId}`,
  322. method: 'post'
  323. })
  324. }
  325. // 拒绝成长规划师审核
  326. export function rejectGuide(userId, reason) {
  327. return request({
  328. url: `/api/admin/guide/reject/${userId}`,
  329. method: 'post',
  330. data: { reason }
  331. })
  332. }
  333. // 获取待审核成长规划师数量
  334. export function getPendingGuideCount() {
  335. return request({
  336. url: '/api/admin/guide/pending-count',
  337. method: 'post'
  338. })
  339. }
  340. export function getPendingPackageCount() {
  341. return request({
  342. url: '/api/admin/package/pending-count',
  343. method: 'post'
  344. })
  345. }
  346. // 管理员个人信息
  347. export function updateAdminInfo(data) {
  348. return request({
  349. url: '/api/admin-auth/update-info',
  350. method: 'post',
  351. data
  352. })
  353. }
  354. // ========== 管理后台仪表盘汇总 API ==========
  355. export function getDashboardStats() {
  356. return request({
  357. url: '/api/stats/dashboard',
  358. method: 'post'
  359. })
  360. }
  361. // ========== 商品管理 API ==========
  362. export function getProductList(params) {
  363. return request({
  364. url: '/api/admin/product/list',
  365. method: 'post',
  366. data: params
  367. })
  368. }
  369. export function reviewProduct(productId, data) {
  370. return request({
  371. url: '/api/admin/product/review',
  372. method: 'post',
  373. data: { productId, ...data }
  374. })
  375. }
  376. export function shelveProduct(productId, data) {
  377. return request({
  378. url: '/api/admin/product/shelve',
  379. method: 'post',
  380. data: { productId, ...data }
  381. })
  382. }
  383. // ========== 订单管理 API ==========
  384. export function getOrderList(params) {
  385. return request({
  386. url: '/api/admin/order/list',
  387. method: 'post',
  388. data: params
  389. })
  390. }
  391. export function getOrderDetail(id) {
  392. return request({
  393. url: `/api/product/order/detail`,
  394. method: 'post',
  395. data: { orderId: id }
  396. })
  397. }
  398. // ========== 系统配置 API ==========
  399. export function getSysConfigList(params) {
  400. return request({
  401. url: '/api/admin/config/list',
  402. method: 'post',
  403. data: params
  404. })
  405. }
  406. export function createSysConfig(data) {
  407. return request({
  408. url: '/api/admin/config/update',
  409. method: 'post',
  410. data: { configKey: data.configKey, configValue: data.configValue }
  411. })
  412. }
  413. export function updateSysConfig(id, data) {
  414. return request({
  415. url: '/api/admin/config/update',
  416. method: 'post',
  417. data: { configKey: data.configKey, configValue: data.configValue }
  418. })
  419. }
  420. export function deleteSysConfig(id) {
  421. return request({
  422. url: `/api/admin/config/delete/${id}`,
  423. method: 'delete'
  424. })
  425. }
  426. // ========== 分佣裂变系统 API ==========
  427. export function getWithdrawalList(params) {
  428. return request({
  429. url: '/api/admin/commission/withdrawals',
  430. method: 'post',
  431. data: params
  432. })
  433. }
  434. export function auditWithdrawal(requestId, status, remark) {
  435. return request({
  436. url: '/api/admin/commission/audit',
  437. method: 'post',
  438. data: { requestId, status, remark }
  439. })
  440. }
  441. export function updateProductProfitRate(productId, profitRate) {
  442. return request({
  443. url: '/api/admin/commission/update-profit-rate',
  444. method: 'post',
  445. data: { productId, profitRate }
  446. })
  447. }
  448. // ========== 教育体系管理 API ==========
  449. export function getEducationSystems() {
  450. return request({
  451. url: '/api/admin/education-systems/list',
  452. method: 'post'
  453. })
  454. }
  455. export function getAllEducationSystems() {
  456. return request({
  457. url: '/api/admin/education-systems/all',
  458. method: 'post'
  459. })
  460. }
  461. export function createEducationSystem(data) {
  462. return request({
  463. url: '/api/admin/education-systems/create',
  464. method: 'post',
  465. data
  466. })
  467. }
  468. export function updateEducationSystem(data) {
  469. return request({
  470. url: '/api/admin/education-systems/update',
  471. method: 'post',
  472. data
  473. })
  474. }
  475. export function deleteEducationSystem(id) {
  476. return request({
  477. url: '/api/admin/education-systems/delete',
  478. method: 'post',
  479. data: { id }
  480. })
  481. }
  482. // ========== 星座配置管理 API ==========
  483. export function listZodiacConfigs() {
  484. return request({
  485. url: '/api/admin/zodiac-config/list',
  486. method: 'post'
  487. })
  488. }
  489. export function createZodiacConfig(data) {
  490. return request({
  491. url: '/api/admin/zodiac-config/create',
  492. method: 'post',
  493. data
  494. })
  495. }
  496. export function updateZodiacConfig(data) {
  497. return request({
  498. url: '/api/admin/zodiac-config/update',
  499. method: 'post',
  500. data
  501. })
  502. }
  503. export function deleteZodiacConfig(id) {
  504. return request({
  505. url: '/api/admin/zodiac-config/delete',
  506. method: 'post',
  507. data: { id }
  508. })
  509. }
  510. // ========== 八字配置管理 API ==========
  511. export function listBaziConfigs() {
  512. return request({
  513. url: '/api/admin/bazi-config/list',
  514. method: 'post'
  515. })
  516. }
  517. export function createBaziConfig(data) {
  518. return request({
  519. url: '/api/admin/bazi-config/create',
  520. method: 'post',
  521. data
  522. })
  523. }
  524. export function updateBaziConfig(data) {
  525. return request({
  526. url: '/api/admin/bazi-config/update',
  527. method: 'post',
  528. data
  529. })
  530. }
  531. export function deleteBaziConfig(id) {
  532. return request({
  533. url: '/api/admin/bazi-config/delete',
  534. method: 'post',
  535. data: { id }
  536. })
  537. }
  538. // ========== 血型配置管理 API ==========
  539. export function listBloodTypeConfigs() {
  540. return request({
  541. url: '/api/admin/blood-type-config/list',
  542. method: 'post'
  543. })
  544. }
  545. export function createBloodTypeConfig(data) {
  546. return request({
  547. url: '/api/admin/blood-type-config/create',
  548. method: 'post',
  549. data
  550. })
  551. }
  552. export function updateBloodTypeConfig(data) {
  553. return request({
  554. url: '/api/admin/blood-type-config/update',
  555. method: 'post',
  556. data
  557. })
  558. }
  559. export function deleteBloodTypeConfig(id) {
  560. return request({
  561. url: '/api/admin/blood-type-config/delete',
  562. method: 'post',
  563. data: { id }
  564. })
  565. }
  566. // 关系类型管理
  567. export function listRelationshipTypes() {
  568. return request({
  569. url: '/api/admin/relationship-type/list',
  570. method: 'post'
  571. })
  572. }
  573. export function saveRelationshipType(data) {
  574. return request({
  575. url: '/api/admin/relationship-type/save',
  576. method: 'post',
  577. data
  578. })
  579. }
  580. export function deleteRelationshipType(id) {
  581. return request({
  582. url: '/api/admin/relationship-type/delete',
  583. method: 'post',
  584. data: { id }
  585. })
  586. }
  587. // ========== 虚拟服务商团队管理 API ==========
  588. export function listVirtualTeams(params) {
  589. return request({
  590. url: '/api/admin/virtual-team/list',
  591. method: 'post',
  592. data: params
  593. })
  594. }
  595. export function createVirtualTeam(data) {
  596. return request({
  597. url: '/api/admin/virtual-team/create',
  598. method: 'post',
  599. data
  600. })
  601. }
  602. export function updateVirtualTeam(data) {
  603. return request({
  604. url: '/api/admin/virtual-team/update',
  605. method: 'post',
  606. data
  607. })
  608. }
  609. export function toggleVirtualTeam(id) {
  610. return request({
  611. url: '/api/admin/virtual-team/toggle',
  612. method: 'post',
  613. data: { id }
  614. })
  615. }
  616. export function getVirtualTeamMembers(systemId) {
  617. return request({
  618. url: '/api/admin/virtual-team/members',
  619. method: 'post',
  620. data: { systemId }
  621. })
  622. }
  623. export function addVirtualTeamMember(data) {
  624. return request({
  625. url: '/api/admin/virtual-team/add-member',
  626. method: 'post',
  627. data
  628. })
  629. }
  630. export function removeVirtualTeamMember(id) {
  631. return request({
  632. url: '/api/admin/virtual-team/remove-member',
  633. method: 'post',
  634. data: { id }
  635. })
  636. }
  637. export function updateVirtualTeamMember(data) {
  638. return request({
  639. url: '/api/admin/virtual-team/update-member',
  640. method: 'post',
  641. data
  642. })
  643. }
  644. export function getVirtualTeamTree(systemId) {
  645. return request({
  646. url: '/api/admin/virtual-team/tree',
  647. method: 'post',
  648. data: { systemId }
  649. })
  650. }
  651. export function searchUsers(params) {
  652. return request({
  653. url: '/api/admin/user/search',
  654. method: 'post',
  655. data: params
  656. })
  657. }