api.js 7.0 KB

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