api.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. // 小程序API接口模块
  2. const { request } = require('./request.js');
  3. /**
  4. * 工具函数
  5. */
  6. const utils = {
  7. // 检查是否有token
  8. hasToken() {
  9. const app = getApp();
  10. return (app && app.globalData && app.globalData.token) || wx.getStorageSync('token');
  11. },
  12. // 获取当前token
  13. getToken() {
  14. const app = getApp();
  15. if (app && app.globalData && app.globalData.token) {
  16. return app.globalData.token;
  17. }
  18. return wx.getStorageSync('token');
  19. },
  20. // 模拟登录获取token
  21. simulateLogin() {
  22. return new Promise((resolve, reject) => {
  23. wx.request({
  24. url: 'https://sit-kelamayi.4dage.com/api/museum/wxMini/testlogin',
  25. method: 'GET',
  26. header: {
  27. 'content-type': 'application/x-www-form-urlencoded'
  28. },
  29. success: (response) => {
  30. console.log('模拟登录接口调用成功:', response.data);
  31. if (response.data && response.data.code === 0) {
  32. const app = getApp();
  33. // 存储token到全局数据
  34. if (app && app.globalData) {
  35. app.globalData.token = response.data.data.token;
  36. app.globalData.userInfo = response.data.data.user;
  37. }
  38. // 也存储到本地存储
  39. wx.setStorageSync('token', response.data.data.token);
  40. wx.setStorageSync('userInfo', response.data.data.user);
  41. console.log('Token获取成功:', response.data.data.token);
  42. resolve(response.data.data);
  43. } else {
  44. const errorMsg = response.data.message || '模拟登录失败';
  45. console.error('模拟登录失败:', errorMsg);
  46. reject(new Error(errorMsg));
  47. }
  48. },
  49. fail: (error) => {
  50. console.error('模拟登录接口调用失败:', error);
  51. reject(error);
  52. }
  53. });
  54. });
  55. }
  56. };
  57. /**
  58. * 博物馆相关API
  59. */
  60. const museumApi = {
  61. // 获取轮播图列表
  62. getCarouselList(params = {}) {
  63. return request({
  64. url: '/museum/carousel/page',
  65. method: 'POST',
  66. data: {
  67. pageNum: 1,
  68. pageSize: 10,
  69. status: 1,
  70. ...params,
  71. },
  72. });
  73. },
  74. // 获取资讯列表
  75. getNewsList(params = {}) {
  76. return request({
  77. url: '/museum/information/page',
  78. method: 'POST',
  79. data: {
  80. pageNum: 1,
  81. pageSize: 3,
  82. status: 1,
  83. ...params,
  84. },
  85. });
  86. },
  87. // 获取展览列表
  88. getExhibitionList(params = {}) {
  89. return request({
  90. url: '/museum/exhibit/page',
  91. method: 'POST',
  92. data: {
  93. pageNum: 1,
  94. pageSize: 5,
  95. status: 1,
  96. ...params,
  97. },
  98. });
  99. },
  100. // 社教活动列表
  101. getSocialActivityList(params = {}) {
  102. return request({
  103. url: '/museum/activity/page',
  104. method: 'POST',
  105. data: {
  106. pageNum: 1,
  107. pageSize: 5,
  108. status: 1,
  109. ...params,
  110. },
  111. });
  112. },
  113. // 获取博物馆详情
  114. getMuseumDetail(id) {
  115. return request({
  116. url: `/museum/introContext/info/${id}`,
  117. method: 'post',
  118. });
  119. },
  120. // 获取展览详情
  121. getExhibitionDetail(id) {
  122. return request({
  123. url: `/museum/exhibit/${id}`,
  124. method: 'post',
  125. });
  126. },
  127. // 获取展览详情(用于展览页面)
  128. getExhibitDetail(id) {
  129. return request({
  130. url: `/museum/exhibit/${id}`,
  131. method: 'post',
  132. });
  133. },
  134. // 获取活动详情
  135. getActivityDetail(id) {
  136. return request({
  137. url: `/museum/activity/info/${id}`,
  138. method: 'post',
  139. });
  140. },
  141. // 获取活动详情(用于活动预约页面)
  142. getActivityInfo(id) {
  143. return request({
  144. url: `/museum/activity/info/${id}`,
  145. method: 'post',
  146. });
  147. },
  148. // 获取资讯详情
  149. getNewsDetail(id) {
  150. return request({
  151. url: `/museum/information/info/${id}`,
  152. method: 'post',
  153. });
  154. },
  155. // 获取收藏列表
  156. getCollectionList(params = {}) {
  157. return request({
  158. url: '/museum/artifact/page',
  159. method: 'POST',
  160. data: {
  161. pageNum: 1,
  162. pageSize: 10,
  163. status: 1,
  164. ...params,
  165. },
  166. useToken: true // 收藏相关接口需要token
  167. });
  168. },
  169. // 获取收藏详情
  170. getCollectionDetail(id) {
  171. return request({
  172. url: `/museum/artifact/${id}`,
  173. method: 'post',
  174. useToken: true // 收藏相关接口需要token
  175. });
  176. },
  177. // 添加收藏
  178. addCollection(id) {
  179. return request({
  180. url: `/museum/artifact/collect/${id}`,
  181. method: 'post',
  182. useToken: true
  183. });
  184. },
  185. // 取消收藏
  186. removeCollection(id) {
  187. return request({
  188. url: `/museum/artifact/uncollect/${id}`,
  189. method: 'post',
  190. useToken: true
  191. });
  192. },
  193. // 获取用户收藏状态
  194. getCollectionStatus(id) {
  195. return request({
  196. url: `/museum/artifact/collectStatus/${id}`,
  197. method: 'get',
  198. useToken: true
  199. });
  200. },
  201. // 获取用户信息
  202. getUserInfo() {
  203. return request({
  204. url: '/museum/user/info',
  205. method: 'get',
  206. useToken: true
  207. });
  208. },
  209. // 更新用户信息
  210. updateUserInfo(data) {
  211. return request({
  212. url: '/museum/user/update',
  213. method: 'post',
  214. data,
  215. useToken: true
  216. });
  217. },
  218. // 获取指定日期的预约时段信息
  219. getSlotsByDate(dateString) {
  220. return request({
  221. url: '/museum/appointmentSlots/getSlotsByDate',
  222. method: 'POST',
  223. data: {
  224. time: dateString
  225. },
  226. useToken: true
  227. });
  228. },
  229. // 获取我的参观人列表
  230. getMyVisitors() {
  231. return request({
  232. url: '/museum/appointmentVisitors/listMyVisitors',
  233. method: 'post',
  234. useToken: true
  235. });
  236. },
  237. // 提交预约
  238. submitReservation(params) {
  239. return request({
  240. url: '/museum/appointment/reservation',
  241. method: 'POST',
  242. data: params,
  243. useToken: true
  244. });
  245. },
  246. // 获取我的预约列表
  247. getMyReservations(params = {}) {
  248. return request({
  249. url: '/museum/appointment/pageMy',
  250. method: 'POST',
  251. data: {
  252. pageNum: 1,
  253. pageSize: 10,
  254. type: 0, // 预约类型:0-全部,1-参观,2-活动
  255. ...params
  256. },
  257. useToken: true
  258. });
  259. },
  260. // 新增参观人
  261. addVisitor(params) {
  262. return request({
  263. url: '/museum/appointmentVisitors/add',
  264. method: 'POST',
  265. data: params,
  266. useToken: true
  267. });
  268. },
  269. // 删除参观人
  270. deleteVisitor(id) {
  271. return request({
  272. url: `/museum/appointmentVisitors/del/${id}`,
  273. method: 'POST',
  274. useToken: true
  275. });
  276. },
  277. // 提交意见反馈
  278. submitFeedback(params) {
  279. return request({
  280. url: '/museum/feedback/add',
  281. method: 'POST',
  282. data: params,
  283. useToken: true
  284. });
  285. }
  286. };
  287. module.exports = {
  288. museumApi,
  289. utils
  290. };