storeDecoration.ts 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. import { ResPage, StoreUser } from "@/api/interface/index";
  2. import { PORT_NONE } from "@/api/config/servicePort";
  3. import http from "@/api";
  4. import httpApi from "@/api/indexApi";
  5. import { uploadFormDataSimpleCompat } from "@/api/upload.js";
  6. /**
  7. * @name 商铺用户模块
  8. */
  9. //获取商铺经营板块列表
  10. export const getBusinessSection = () => {
  11. return httpApi.get(`/alienStorePlatform/businessSection/getFirstLevelList`, {}, { loading: false });
  12. };
  13. //获取商铺经营种类列表
  14. export const getBusinessSectionTypes = params => {
  15. return httpApi.get(`/alienStorePlatform/businessSection/getSecondLevelList`, params, { loading: false });
  16. };
  17. //获取商铺经营分类
  18. export const getThirdLevelList = params => {
  19. return httpApi.get(`/alienStorePlatform/businessSection/getThirdLevelList`, params, { loading: false });
  20. };
  21. //所在地区
  22. export const getDistrict = (params?: any) => {
  23. return httpApi.get(`/alienStore/gaode/getDistrict`, params, { loading: false });
  24. };
  25. export const getStoreDetail = params => {
  26. return httpApi.get(`/alienStorePlatform/storePlatformRenovation/getDecorationDetail`, params);
  27. };
  28. // 获取门店装修需求列表(分页)
  29. export const getDecorationPage = (params: any) => {
  30. return httpApi.get(`/alienStore/renovation/requirement/getPage`, params);
  31. };
  32. // 获取装修需求详情
  33. export const getDecorationDetail = (params: { id: number | string }) => {
  34. return httpApi.get(`/alienStore/renovation/requirement/getDetail`, params);
  35. };
  36. // ==================== 聊天相关(与商家端 message API 一致) ====================
  37. // 获取聊天记录
  38. export const getChatRecord = (params: { receiverId: string; senderId: string }) => {
  39. return httpApi.get(`/alienStore/message/getMessageListByReceiverId`, params, { loading: false });
  40. };
  41. // 消息已读
  42. export const messageRead = (params: { receiverId: string; senderId: string }) => {
  43. return httpApi.get(`/alienStore/message/read`, params, { loading: false });
  44. };
  45. // WebSocket 连接状态
  46. export const socketStatus = () => {
  47. return httpApi.get(`/alienStore/websocket/getTokenStatus`, {}, { loading: false });
  48. };
  49. // 保存或更新装修需求
  50. export const saveOrUpdateDecoration = (params: any) => {
  51. return httpApi.post(`/alienStore/renovation/requirement/saveOrUpdate`, params);
  52. };
  53. // 上传房屋图纸(统一走 @/api/upload.js → /upload/simple)
  54. export const uploadDecorationImage = (params: FormData) => uploadFormDataSimpleCompat(params);
  55. // 聊天图片/视频上传
  56. export const uploadChatFile = (params: FormData) => uploadFormDataSimpleCompat(params);
  57. // 删除装修需求
  58. export const deleteDecoration = (params: { id: number | string }) => {
  59. return httpApi.post(`/alienStore/renovation/requirement/delete`, {}, { params });
  60. };
  61. //保存店铺信息
  62. export const saveStoreInfo = (params: any) => {
  63. return httpApi.post(`/alienStore/store/info/saveOrUpdate`, params);
  64. };
  65. //编辑店铺信息
  66. export const editStoreInfo = (params: any) => {
  67. return httpApi.post(`/alienStore/store/info/saveOrUpdate`, params);
  68. };
  69. // 入口图查询
  70. export const getEntranceImg = (data: any) => {
  71. return httpApi.get(`/alienStore/img/getByStoreId?storeId=${data}&imgType=1`);
  72. };
  73. //入口图保存
  74. export const saveEntranceImg = (params: any) => {
  75. return httpApi.post(`/alienStore/img/saveOrUpdateImg`, params);
  76. };
  77. // 门店头图查询
  78. export const getStoreHeadImg = (data: any, imgType: any) => {
  79. return httpApi.get(`alienStore/img/getByStoreId?storeId=${data}&imgType=${imgType}`);
  80. };
  81. //门店头图保存
  82. export const saveStoreHeadImg = (params: any) => {
  83. return httpApi.post(`/alienStore/img/saveOrUpdateImg`, params);
  84. };
  85. //批量新增或编辑营业时间
  86. export const addOrEditBusinessTime = (params: any) => {
  87. return httpApi.post(`/alienStore/businessInfo/saveOrUpdateList`, params);
  88. };
  89. //特殊时间
  90. export const getHolidayList = (params: any) => {
  91. return httpApi.get(`alienStore/coupon/getHolidayList`, params);
  92. };
  93. export const getStoreInfoBusinessHours = (params: any) => {
  94. return httpApi.get(`alienStore/store/info/getStoreInfoBusinessHours`, params);
  95. };
  96. //获取营业时间列表
  97. export const getBusinessTimeList = (params: any) => {
  98. return httpApi.get(`/alienStorePlatform/storePlatformBusinessInfo/getByStoreId`, params);
  99. };
  100. //根据门店ID和区域分类查询设施列表
  101. export const getListByStoreIdAndCategory = (params: any) => {
  102. return httpApi.get(`/alienStorePlatform/bathFacilityService/getListByStoreIdAndCategory`, params);
  103. };
  104. //创建/更新官方相册
  105. export const createOrUpdateOfficialAlbum = (params: any) => {
  106. return httpApi.post(`/alienStorePlatform/storePlatformOfficial/createOrUpdateOfficialAlbum`, params);
  107. };
  108. //删除官方相册
  109. export const deleteOfficialAlbum = (params: any) => {
  110. return httpApi.post(`/alienStorePlatform/storePlatformOfficial/deleteOfficialAlbum`, params);
  111. };
  112. //获取官方相册列表
  113. export const getOfficialAlbumList = (params: any) => {
  114. return httpApi.get(`/alienStorePlatform/storePlatformOfficial/getOfficialAlbumList`, params);
  115. };
  116. //相册内图片存储
  117. export const saveOfficialImg = (params: any) => {
  118. return httpApi.post(`/alienStore/img/saveOrUpdate`, params);
  119. };
  120. //相册内图片删除
  121. export const deleteOfficialImg = (params: any) => {
  122. return httpApi.post(`alienStore/img/delete`, params);
  123. };
  124. //相册内图片查询
  125. export const getOfficialImgList = (businessId, storeId, imgType = 2) => {
  126. return httpApi.get(`/alienStore/img/getByBusinessId?businessId=${businessId}&imgType=${imgType}&storeId=${storeId}`);
  127. };
  128. /** 门店官方视频列表 GET /alienStore/video/getByStoreId?storeId= */
  129. export const getOfficialVideoByStoreId = (storeId: number | string) => {
  130. return httpApi.get(`/alienStore/video/getByStoreId`, { storeId: Number(storeId) });
  131. };
  132. //新建或修改菜品
  133. export const createOrUpdateDish = (params: any) => {
  134. return httpApi.post(`/alienStorePlatform/menuPlatform/saveOrUpdate`, params);
  135. };
  136. //获取门店菜品列表
  137. export const getDishList = (params: any) => {
  138. return httpApi.get(`/alienStorePlatform/menuPlatform/getMenuByStoreId`, params);
  139. };
  140. //删除菜单
  141. export const deleteDish = (params: any) => {
  142. return httpApi.get(`/alienStorePlatform/menuPlatform/delete`, params);
  143. };
  144. //获取菜品详情
  145. export const getDishDetail = (params: any) => {
  146. return httpApi.get(`/alienStorePlatform/menuPlatform/getMenuInfo`, params);
  147. };
  148. // ==================== 酒单管理相关接口(新接口) ====================
  149. //根据门店ID和菜单类型查询酒单列表
  150. export const getBarMenuList = (params: { storeId: number; dishMenuType?: number }) => {
  151. return httpApi.get(`/alienStorePlatform/barMenu/getListByStoreIdAndType`, params);
  152. };
  153. //新增或修改酒单内容
  154. export const saveOrUpdateBarMenu = (params: any) => {
  155. return httpApi.post(`/alienStorePlatform/barMenu/saveOrUpdate`, params);
  156. };
  157. //删除酒单
  158. export const deleteBarMenu = (params: { id: number }) => {
  159. return httpApi.get(`/alienStorePlatform/barMenu/delete`, params);
  160. };
  161. //下载酒单Excel模板
  162. export const downloadBarMenuTemplate = () => {
  163. return httpApi.get(`/alienStorePlatform/barMenu/downloadTemplate`, {}, { responseType: "blob" });
  164. };
  165. //导入酒单Excel
  166. export const importBarMenuExcel = (formData: FormData, storeId: string | number) => {
  167. return httpApi.service.request({
  168. method: "POST",
  169. url: `/alienStorePlatform/barMenu/importMenu`,
  170. params: { storeId },
  171. data: formData,
  172. headers: {
  173. "Content-Type": "multipart/form-data"
  174. }
  175. });
  176. };
  177. //获取所有标签类型
  178. export const getAllTagType = (params?: any) => {
  179. return httpApi.get(`/alienStorePlatform/storePlatformTag/getBusinessRelationTagList`, params);
  180. };
  181. /** 门店标签列表/数据:GET /alienStore/store/tag/getTagList */
  182. export const getTagList = (params?: Record<string, any>) => {
  183. return httpApi.get(`/alienStore/store/tag/getTagList`, params, { loading: false });
  184. };
  185. //获取所有所选标签
  186. export const getAllTag = (params: any) => {
  187. return httpApi.get(`/alienStorePlatform/storePlatformTag/getTagStoreRelationByStoreId`, params);
  188. };
  189. //保存标签
  190. export const saveTag = (params: any) => {
  191. return httpApi.post(`/alienStorePlatform/storePlatformTag/createOrUpdateTagStoreRelation`, params);
  192. };
  193. //新建或修改人员配置
  194. export const createOrUpdatePersonnel = (params: any) => {
  195. return httpApi.post(`/alienStore/storeStaffConfig/addOrUpdateStaffConfig`, params);
  196. };
  197. //获取门店人员列表
  198. export const getPersonnelList = (params: any) => {
  199. return httpApi.get(`/alienStorePlatform/storeStaffConfig/getListByStoreId`, params);
  200. };
  201. //删除人员
  202. export const deletePersonnel = (params: any) => {
  203. return httpApi.get(`/alienStore/storeStaffConfig/deleteStaffConfig`, params);
  204. };
  205. //获取人员详情
  206. export const getPersonnelDetail = (params: any) => {
  207. return httpApi.get(`/alienStorePlatform/storeStaffConfig/getById`, params);
  208. };
  209. // ==================== 设施与服务相关接口 ====================
  210. // 服务管理相关接口
  211. //获取服务列表
  212. export const getServiceList = (params: any) => {
  213. return httpApi.get(`/alienStorePlatform/servicePlatform/getServiceList`, params);
  214. };
  215. //新建或修改服务
  216. export const createOrUpdateService = (params: any) => {
  217. return httpApi.post(`/alienStorePlatform/bathFacilityService/saveOrUpdate`, params);
  218. };
  219. //获取服务详情
  220. export const getServiceDetail = (params: any) => {
  221. return httpApi.get(`/alienStorePlatform/bathFacilityService/getById`, params);
  222. };
  223. //删除服务
  224. export const deleteService = (params: any) => {
  225. return httpApi.get(`/alienStorePlatform/bathFacilityService/delete`, params);
  226. };
  227. //下载服务Excel模板
  228. export const downloadServiceTemplate = () => {
  229. return httpApi.get(`/alienStorePlatform/bathFacilityService/downloadTemplate`, {}, { responseType: "blob" });
  230. };
  231. //导入服务Excel
  232. export const importServiceExcel = (formData: FormData, storeId: string | number) => {
  233. return httpApi.service.request({
  234. method: "POST",
  235. url: `/alienStorePlatform/bathFacilityService/importFacility`,
  236. params: { storeId },
  237. data: formData
  238. });
  239. };
  240. // ==================== 设施区域管理(与商家端 facilityOrService 一致,alienStore 前缀) ====================
  241. // 获取设施区域列表(标签) /alienStore/sports/facility/area/list
  242. export const getSportsFacilityAreaList = (params: { storeId: number }) => {
  243. return httpApi.get(`/alienStore/sports/facility/area/list`, params, { loading: false });
  244. };
  245. // 新建设施区域
  246. export const createSportsFacilityArea = (params: { storeId: number; facilityCategoryName: string }) => {
  247. return httpApi.post(`/alienStore/sports/facility/area/create`, params);
  248. };
  249. // 编辑设施区域
  250. export const updateSportsFacilityArea = (params: { areaId: number; areaName: string }) => {
  251. return httpApi.post(`/alienStore/sports/facility/area/update`, params);
  252. };
  253. // 更新设施区域实景图片
  254. export const updateSportsFacilityAreaHeadUrl = (params: { areaId: number; areaHeadUrl: string }) => {
  255. return httpApi.post(`/alienStore/sports/facility/area/updateHeadUrl`, params);
  256. };
  257. // 批量删除设施区域
  258. export const batchDeleteSportsFacilityArea = (params: { storeId: number; areaIds: (string | number)[] }) => {
  259. return httpApi.post(`/alienStore/sports/facility/area/batchDelete`, params);
  260. };
  261. // 根据区域ID获取设施列表 /alienStore/sports/equipment/facility/listByArea
  262. export const getSportsEquipmentFacilityListByArea = (params: { storeId: number; areaId: number }) => {
  263. return httpApi.get(`/alienStore/sports/equipment/facility/listByArea`, params);
  264. };
  265. // 新增运动设施
  266. export const saveSportsEquipmentFacility = (params: any) => {
  267. return httpApi.post(`/alienStore/sports/equipment/facility/save`, params);
  268. };
  269. // 修改运动设施
  270. export const updateSportsEquipmentFacility = (params: any) => {
  271. return httpApi.post(`/alienStore/sports/equipment/facility/update`, params);
  272. };
  273. // 删除运动设施
  274. export const deleteSportsEquipmentFacility = (params: { equipmentId: number }) => {
  275. return httpApi.post(`/alienStore/sports/equipment/facility/delete`, params);
  276. };
  277. // 设施管理相关接口(兼容旧接口,使用 facilityCategory)
  278. //获取健身设施列表
  279. export const getFacilityList = (params: any) => {
  280. return httpApi.get(`/alienStorePlatform/sportsEquipmentFacility/getListByStoreIdAndCategory`, params);
  281. };
  282. //新建或修改健身设施
  283. export const createOrUpdateFacility = (params: any) => {
  284. return httpApi.post(`/alienStorePlatform/sportsEquipmentFacility/saveOrUpdate`, params);
  285. };
  286. //获取健身设施详情
  287. export const getFacilityDetail = (params: any) => {
  288. return httpApi.get(`/alienStorePlatform/sportsEquipmentFacility/getById`, params);
  289. };
  290. //删除设施
  291. export const deleteFacility = (params: any) => {
  292. return httpApi.get(`/alienStorePlatform/sportsEquipmentFacility/delete`, params);
  293. };
  294. //下载设施Excel模板
  295. export const downloadFacilityTemplate = () => {
  296. return httpApi.get(`/alienStorePlatform/sportsEquipmentFacility/downloadTemplate`, {}, { responseType: "blob" });
  297. };
  298. //导入设施Excel
  299. export const importFacilityExcel = (formData: FormData, storeId: string | number) => {
  300. return httpApi.service.request({
  301. method: "POST",
  302. url: `/alienStorePlatform/bathFacilityService/importFacility`,
  303. params: { storeId },
  304. data: formData
  305. });
  306. };
  307. //下载菜单Excel模板
  308. export const downloadExcelTemplate = () => {
  309. return httpApi.get(`/alienStorePlatform/menuPlatform/downloadTemplate`, {}, { responseType: "blob" });
  310. };
  311. //导入菜单Excel
  312. export const importExcel = (formData: FormData, storeId: string | number) => {
  313. // 对于GET请求发送FormData,需要直接使用axios实例
  314. // axios的get方法可以在config中设置data属性(虽然不符合HTTP规范,但技术上可行)
  315. return httpApi.service.request({
  316. method: "POST",
  317. url: `/alienStorePlatform/menuPlatform/importMenu`,
  318. params: { storeId },
  319. data: formData,
  320. headers: {
  321. "Content-Type": "multipart/form-data"
  322. }
  323. });
  324. };
  325. //获取人员配置列表(搜索用)
  326. export const getStaffConfigList = (params: any) => {
  327. return httpApi.get(`/alienStore/storeStaffConfig/getStaffConfigList`, params);
  328. };
  329. // 设置置顶状态
  330. export const setTopStatus = (params: { id: string | number; topStatus: 0 | 1 }) => {
  331. return httpApi.get(`/alienStore/storeStaffConfig/setTopStatus`, params);
  332. };
  333. // 设置在线状态
  334. export const setOnlineStatus = (params: { id: string | number; onlineStatus: 0 | 1 }) => {
  335. return httpApi.get(`/alienStore/storeStaffConfig/setOnlineStatus`, params);
  336. };
  337. //获取人员配置详情(查看详情用)
  338. export const getStaffConfigDetail = (params: any) => {
  339. return httpApi.get(`/alienStore/storeStaffConfig/getStaffConfigDeatail`, params);
  340. };
  341. //创建标题
  342. export const createTitle = (params: any) => {
  343. return httpApi.post(`/alienStore/storeStaffTitle/createTitle`, params);
  344. };
  345. //修改标题
  346. export const updateTitle = (params: any) => {
  347. return httpApi.post(`/alienStore/storeStaffTitle/updateTitle`, params);
  348. };
  349. //获取标题列表
  350. export const getTitleList = (params: any) => {
  351. return httpApi.get(`/alienStore/storeStaffTitle/getTitleList`, params, { loading: false }).catch((error: any) => {
  352. // 静默处理错误,避免显示错误横幅
  353. // 如果接口不存在(404),返回一个空数据格式,而不是抛出错误
  354. if (error?.response?.status === 404 || error?.message?.includes("不存在")) {
  355. return Promise.resolve({ code: 200, data: [], msg: "" });
  356. }
  357. // 其他错误也返回空数据,避免显示错误横幅
  358. return Promise.resolve({ code: 200, data: [], msg: "" });
  359. });
  360. };
  361. //获取标题详情(通过storeId查询)
  362. export const getTitleDetail = (params: any) => {
  363. return httpApi.get(`/alienStore/storeStaffTitle/detail`, params, { loading: false }).catch((error: any) => {
  364. // 静默处理错误,避免显示错误横幅
  365. if (error?.response?.status === 404 || error?.message?.includes("不存在")) {
  366. return Promise.resolve({ code: 200, data: null, msg: "" });
  367. }
  368. return Promise.resolve({ code: 200, data: null, msg: "" });
  369. });
  370. };
  371. //删除标题
  372. export const deleteTitle = (params: any) => {
  373. return httpApi.get(`/alienStore/storeStaffTitle/deleteTitle`, params);
  374. };