requests.ts 11 KB

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