requests.ts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. import { httpGet, httpPost, httpPut } from '../../utils/http'
  2. import { Schedule } from '../models/schedule'
  3. import {
  4. Category,
  5. Content,
  6. DictType,
  7. MaterialDealer,
  8. MaterialDealerDetail,
  9. MaterialDealerHomePage,
  10. MaterialDealerRes,
  11. Moment,
  12. } from '../models/moment'
  13. import dayjs from 'dayjs'
  14. import { getMaterialDealers } from '../../../../merchant/src/core/libs/requests'
  15. export const getUserInfo = () =>
  16. httpGetMock<any>({
  17. avatar: 'https://via.placeholder.com/21x21',
  18. nickname: '苏小萌',
  19. })
  20. export const getSchedule = () =>
  21. httpGetMock<Schedule>({
  22. name: '东京艺术设计研习营',
  23. cover: 'https://via.placeholder.com/375x297',
  24. items: [
  25. {
  26. title: '早稻田大学课程',
  27. time: '9:00',
  28. content:
  29. '是位于日本东京都新宿区的一所著名的私立大学。它由早稻田大学的创始人大隈重信于1882年创立,是日本超级国际化大学计划(Top Global University Project)选定的大学之一,也是日本顶尖的高等教育机构之一。',
  30. momentExample: 'https://via.placeholder.com/285x157',
  31. monentHint: '*说明:打卡地XX,收集上课素材',
  32. },
  33. {
  34. title: '早稻田大学博物馆参观',
  35. time: '11:00',
  36. content:
  37. '早稻田大学拥有多座博物馆,‌其中最著名的是早稻田大学历史馆。‌早稻田大学历史馆收藏、‌展示着著名校友在运动方面的杰出表现和成就,‌馆内的解说牌以日语和英语标示,‌展现了传统样式风格的建筑。',
  38. momentExample: 'https://via.placeholder.com/285x157',
  39. monentHint: '*说明:打卡地XX,收集上课素材',
  40. },
  41. ],
  42. })
  43. export const getMoment = () =>
  44. httpGetMock<Moment>({
  45. author: {
  46. avatar: 'https://via.placeholder.com/35x35',
  47. nickname: '苏小萌',
  48. level: '0',
  49. },
  50. content: '用心做好设计,为客户创造美好家居环境',
  51. images: [
  52. 'https://via.placeholder.com/165x220',
  53. 'https://via.placeholder.com/220x220',
  54. 'https://via.placeholder.com/165x220',
  55. ],
  56. tags: ['意大利游学设计班'],
  57. shares: 0,
  58. comments: 0,
  59. likes: 0,
  60. createdAt: dayjs('2024-07-15').toDate(),
  61. commentList: [],
  62. })
  63. export const getClassmates = () =>
  64. httpGetMock<any[]>([
  65. {
  66. avatar: 'https://via.placeholder.com/35x35',
  67. nickname: '苏小萌',
  68. level: '0',
  69. },
  70. {
  71. avatar: 'https://via.placeholder.com/35x35',
  72. nickname: '苏小萌',
  73. level: '0',
  74. },
  75. {
  76. avatar: 'https://via.placeholder.com/35x35',
  77. },
  78. ])
  79. export const getClassmate = () =>
  80. httpGetMock<any>({
  81. title: '2023同学荟|清华空间环境艺术设计研修班 阔步向未来',
  82. author: {
  83. avatar: 'https://via.placeholder.com/35x35',
  84. nickname: '苏小萌',
  85. level: '0',
  86. },
  87. viewNum: 125,
  88. createdAt: dayjs('2024-07-15').toDate(),
  89. content: '<div>111111</div>',
  90. })
  91. export const getStudyTours = () =>
  92. httpGetMock<any[]>([
  93. {
  94. title: '东京艺术大学设计游学',
  95. createdAt: dayjs('2024-07-15').toDate(),
  96. startedAt: dayjs('2024-07-15').toDate(),
  97. endedAt: dayjs('2024-08-15').toDate(),
  98. amount: 16000,
  99. },
  100. ])
  101. export const getMaterialDealers = () =>
  102. httpGetMock<any[]>([
  103. {
  104. name: 'IMOLA瓷砖',
  105. icon: 'https://via.placeholder.com/78x78',
  106. brandType: '进口品牌',
  107. type: '瓷砖',
  108. views: 1000,
  109. createdAt: dayjs('2024-07-15').toDate(),
  110. },
  111. {
  112. name: 'IMOLA瓷砖',
  113. icon: 'https://via.placeholder.com/78x78',
  114. brandType: '进口品牌',
  115. type: '瓷砖',
  116. views: 1000,
  117. createdAt: dayjs('2024-07-15').toDate(),
  118. },
  119. ])
  120. export const weixinMiniAppLogin = (phoneCode: string, loginCode: string, state: string) =>
  121. httpPost<any>('/app-api/member/auth/weixin-mini-app-login', {
  122. phoneCode,
  123. loginCode,
  124. state,
  125. })
  126. export const getMemberUserInfo = () => httpGet<any>('/app-api/member/user/get')
  127. export const updateMemberUserInfo = (data = {}) => httpPut<any>('/app-api/member/user/update', data)
  128. export const getByDictType = (
  129. type: string | 'member_channel_source' | 'member_spatial_expertise_type' | DictType,
  130. ) =>
  131. httpGet<
  132. {
  133. label: string
  134. value: string
  135. dictType: string
  136. status: number
  137. }[]
  138. >('/app-api/system/dict-data/type', { type })
  139. export const createUserAuthInfo = (
  140. data: Partial<{
  141. id: number
  142. userId: number
  143. designerName: string
  144. gender: number
  145. mobile: string
  146. channelSource: number
  147. referrer: string
  148. employer: string
  149. spatialExpertiseType: number
  150. attachment: string
  151. auditStatus: number
  152. remark: string
  153. }>,
  154. ) => httpPost<any>('/app-api/member/user-auth-info/create', data)
  155. export const getCircles = (query) =>
  156. httpGet<{
  157. list: {
  158. id: number
  159. headUrl?: string
  160. stylistId?: number
  161. stylistName?: string
  162. marketing?: string
  163. circleDesc?: string
  164. tagName?: string
  165. detailsType?: string
  166. detailsUrl?: string
  167. detailsDesc?: string
  168. circleType?: string
  169. spaceType?: string
  170. designStyle?: string
  171. spaceAddr?: string
  172. customerDemand?: string
  173. createTime: number
  174. bannerUrls: string[]
  175. shareCount?: number
  176. upvoteCount?: number
  177. ownUpvote: boolean
  178. reviewCount: number
  179. }[]
  180. }>('/app-api/member/circle/page', query)
  181. export const createCircle = (data: Partial<Circle>) =>
  182. httpPost<any>('/app-api/member/circle/create', data)
  183. export const getCircle = (id: string) =>
  184. httpGet<Partial<CircleRes>>('/app-api/member/circle/get', { id })
  185. export const shareCircle = (id: string) => httpGet('/app-api/member/circle/share', { id })
  186. export const createCircleUpvote = (data: { circleId: number; userId: number; userName: string }) =>
  187. httpPost('/app-api/member/circle-upvote/create', data)
  188. export const cancelCircleUpvote = (query: { id: string }) =>
  189. httpGet('/app-apimember/circle-upvote/delete', query)
  190. export const createCircleReview = (
  191. data: Partial<{
  192. circleId: string
  193. userId: string | number
  194. userName: string
  195. reviewContent: string
  196. replayReviewId: string
  197. }>,
  198. ) => httpPost<any>('/app-api/member/circle-review/create', data)
  199. export const getCircleReviews = (query: { circleId: string }) =>
  200. httpGet<{
  201. list: Partial<{
  202. id: number
  203. circleId: number
  204. userId: number
  205. userName: string
  206. reviewContent: string
  207. upvoteCount: any
  208. replayReviewId: any
  209. reviewTime: number
  210. createTime: number
  211. replayToUserName: any
  212. replayToUserId: any
  213. replayFirstId: any
  214. upvote: boolean
  215. ownDel: boolean
  216. }>[]
  217. }>('/app-api/member/circle-review/getCircleReviewByCircleId', query)
  218. export const createCircleReviewUpvote = (data: {
  219. circleId: number
  220. userId: number
  221. userName: string
  222. reviewId: number
  223. }) => httpPost('/app-api/member/circle-review-upvote/create', data)
  224. export const cancelCircleReviewUpvote = (query: {
  225. circleId: string
  226. userId: string
  227. reviewId: string
  228. }) => httpGet('/app-api/member/circle-review-upvote/cancel', query)
  229. export const getCircleReviewUpvotes = (query: { circleId: string; reviewId?: string }) =>
  230. httpGet('/app-api/member/circle-review-upvote/page', query)
  231. export const getReviewReplay = (query: { id: string }) =>
  232. httpGet('/app-api/member/circle-review/getReviewReplay', query)
  233. export const getTasks = (query) =>
  234. httpGet<{
  235. list: {
  236. id: number
  237. taskKey: string
  238. taskValue: string
  239. createTime: string
  240. sort: number
  241. status: number
  242. }[]
  243. }>('/app-api/basicsetting/set-task-center/page', query)
  244. export const getCircleTags = (query) =>
  245. httpGet<{
  246. list: {
  247. id: number
  248. labelName: string
  249. labelType: number
  250. usageCount: number
  251. creator: string
  252. createTime: number
  253. }[]
  254. }>('/app-api/basicsetting/set-label/page', query)
  255. export const getSetIndexConfigs = (query = {}) =>
  256. httpGet<{
  257. list: {
  258. id: number
  259. name: string
  260. indexPromotionalVideoImage: string
  261. coverVideoImage: string
  262. sort: number
  263. playCount: number
  264. status: number
  265. createTime: string
  266. }[]
  267. }>('/app-api/basicsetting/set-index-config/page', query)
  268. /**
  269. * 获取材料商列表
  270. * @param query {{brandLevel: '1'|'2'}}
  271. * @returns {Promise<*>}
  272. */
  273. export const getMaterials = (query = {}) =>
  274. httpGet<{
  275. list: MaterialDealer[]
  276. }>('/app-api/member/materials/page', query)
  277. export const getAppMaterials = () =>
  278. httpGet<MaterialDealerRes[]>('/app-api/member/materials/appMaterialsList')
  279. export const getAppMaterial = (id: number) =>
  280. httpGet<MaterialDealerDetail>('/app-api/member/materials/queryHomePage', { materialsId: id })
  281. export const getMaterialHomePage = (id: number) =>
  282. httpGet<Partial<MaterialDealerHomePage>>('/app-api/member/materials/queryHomePage', {
  283. materialsId: id,
  284. })
  285. export const getMaterialDetail = (query: { id: string }) =>
  286. httpGet<MaterialDealerDetail>('/app-api/member/materials/getDetail', query)
  287. export const createMaterialsReferrer = (data) =>
  288. httpPost('/app-api/member/materials-referrer/create', data)
  289. export const getContents = (query: {
  290. contentType?: '1' | '2' | '3'
  291. contentCategory?: string
  292. pageSize?: string
  293. }) => httpGet<{ list: Content[] }>('/app-api/member/content-manger/page', query)
  294. export const getAllCategories = () =>
  295. httpGet<Category[]>('/app-api/member/categories/getAllCategories')
  296. export const getContent = (query: { id: string }) =>
  297. httpGet<Content>('/app-api/member/content-manger/get', query)
  298. export const refreshToken = (refreshToken: string) =>
  299. httpPost<any>('/app-api/member/auth/refresh-token', {}, { refreshToken })
  300. export const httpGetMock = <T>(data: T) =>
  301. new Promise<IResData<T>>((resolve) => resolve({ code: 1, msg: '', data } as IResData<T>))
  302. export interface Circle {
  303. headUrl: string
  304. stylistId: string | number
  305. stylistName: string
  306. marketing: string
  307. circleDesc: string
  308. tagName: string
  309. detailsType: string
  310. detailsUrl: string
  311. detailsDesc: string
  312. circleType: string
  313. spaceType: string
  314. designStyle: string
  315. spaceAddr: string
  316. customerDemand: string
  317. bannerUrls: string[]
  318. }
  319. export interface CircleRes {
  320. id: number
  321. headUrl?: string
  322. stylistId?: number
  323. stylistName?: string
  324. marketing?: string
  325. circleDesc?: string
  326. tagName?: string
  327. detailsType?: string
  328. detailsUrl?: string
  329. detailsDesc?: string
  330. circleType?: string
  331. spaceType?: string
  332. designStyle?: string
  333. spaceAddr?: string
  334. customerDemand?: string
  335. createTime: number
  336. bannerUrls: string[]
  337. shareCount?: number
  338. upvoteCount?: number
  339. ownUpvote: boolean
  340. reviewCount: number
  341. }