Digital Office Automation System
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

sales-analysis.js 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. import request from "@/utils/request";
  2. export function getProductCodeSuggestions(params) {
  3. return request({
  4. url: "/reports/product-code-suggestions",
  5. method: "get",
  6. params,
  7. });
  8. }
  9. /**
  10. * 销售分析模块API接口
  11. * 包含分析数据、基准数据、分类管理、店铺客户关联、报表分析等功能
  12. */
  13. // ==================== 分析数据管理 ====================
  14. /**
  15. * 获取分析数据列表
  16. * @param {Object} params - 查询参数
  17. * @param {number} params.page - 页码
  18. * @param {number} params.pageSize - 每页数量
  19. * @param {string} params.productCode - 商品编号
  20. * @param {string} params.productName - 商品名称
  21. * @param {string} params.customerName - 客户名称
  22. * @param {string} params.shopName - 店铺名称
  23. * @param {string} params.status - 状态
  24. * @param {string} params.startDate - 开始日期
  25. * @param {string} params.endDate - 结束日期
  26. * @returns {Promise} 返回数据列表和分页信息
  27. */
  28. export function getAnalysisDataList(params) {
  29. return request({
  30. url: "/analysis-data",
  31. method: "get",
  32. params,
  33. });
  34. }
  35. /**
  36. * 更新分析数据
  37. * @param {number} id - 数据ID
  38. * @param {Object} data - 更新数据
  39. * @returns {Promise} 更新结果
  40. */
  41. export function updateAnalysisData(id, data) {
  42. return request({
  43. url: `/analysis-data/${id}`,
  44. method: "put",
  45. data,
  46. });
  47. }
  48. /**
  49. * 删除分析数据
  50. * @param {number} id - 数据ID
  51. * @returns {Promise} 删除结果
  52. */
  53. export function deleteAnalysisData(id) {
  54. return request({
  55. url: `/analysis-data/${id}`,
  56. method: "delete",
  57. });
  58. }
  59. /**
  60. * 批量删除分析数据
  61. * @param {string} ids - 数据ID列表,逗号分隔
  62. * @returns {Promise} 批量删除结果
  63. */
  64. export function batchDeleteAnalysisData(ids) {
  65. return request({
  66. url: `/analysis-data/batch/${ids}`,
  67. method: "delete",
  68. });
  69. }
  70. /**
  71. * 导出分析数据
  72. * @param {Object} params - 导出参数
  73. * @returns {string} 导出文件URL
  74. */
  75. export function exportAnalysisData(params) {
  76. const queryString = new URLSearchParams(params).toString();
  77. return request({
  78. url: `/analysis-data/export?${queryString}`,
  79. responseType: "blob",
  80. method: "get",
  81. });
  82. }
  83. // ==================== 数据导入 ====================
  84. /**
  85. * 批量导入分析数据(物流数据)
  86. * @param {FormData} formData - 包含文件和分类ID的表单数据
  87. * @returns {Promise} 导入结果
  88. */
  89. export function importAnalysisDataBatch(formData) {
  90. return request({
  91. url: "/analysis-data/import-batch",
  92. method: "post",
  93. data: formData,
  94. headers: {
  95. "Content-Type": "multipart/form-data",
  96. },
  97. });
  98. }
  99. /**
  100. * 批量导入FBA数据
  101. * @param {FormData} formData - 包含文件和店铺名称的表单数据
  102. * @returns {Promise} 导入结果
  103. */
  104. export function importFBADataBatch(formData) {
  105. return request({
  106. url: "/analysis-data/import/fba/batch",
  107. method: "post",
  108. data: formData,
  109. headers: {
  110. "Content-Type": "multipart/form-data",
  111. },
  112. });
  113. }
  114. /**
  115. * 保存导入的数据
  116. * @param {Object} data - 导入的数据
  117. * @returns {Promise} 保存结果
  118. */
  119. export function saveImportedData(data) {
  120. return request({
  121. url: "/analysis-data/save-imported",
  122. method: "post",
  123. data,
  124. });
  125. }
  126. // ==================== 基准数据管理 ====================
  127. /**
  128. * 获取分类列表(简化版)
  129. * @returns {Promise} 分类列表
  130. */
  131. export function getCategoriesSimple() {
  132. return request({
  133. url: "/categories/simple",
  134. method: "get",
  135. });
  136. }
  137. /**
  138. * 获取分类详情
  139. * @param {number} categoryId - 分类ID
  140. * @returns {Promise} 分类详情
  141. */
  142. export function getCategoryDetail(categoryId) {
  143. return request({
  144. url: `/categories/${categoryId}`,
  145. method: "get",
  146. });
  147. }
  148. /**
  149. * 获取基准数据列表
  150. * @param {Object} params - 查询参数
  151. * @param {number} params.page - 页码
  152. * @param {number} params.pageSize - 每页数量
  153. * @param {number} params.categoryId - 分类ID
  154. * @param {string} params.productCode - 商品编号
  155. * @param {string} params.productName - 商品名称
  156. * @returns {Promise} 基准数据列表和分页信息
  157. */
  158. export function getBaseDataList(params) {
  159. return request({
  160. url: "/basedata",
  161. method: "get",
  162. params,
  163. });
  164. }
  165. /**
  166. * 导出基准数据
  167. * @param {number} categoryId - 分类ID
  168. * @returns {Promise} 导出文件URL
  169. */
  170. export function exportBaseData(categoryId) {
  171. return request({
  172. url: `/basedata/export/${categoryId}`,
  173. responseType: "blob",
  174. method: "get",
  175. });
  176. }
  177. /**
  178. * 删除基准数据
  179. * @param {number} id - 数据ID
  180. * @returns {Promise} 删除结果
  181. */
  182. export function deleteBaseData(id) {
  183. return request({
  184. url: `/basedata/${id}`,
  185. method: "delete",
  186. });
  187. }
  188. /**
  189. * 批量删除基准数据
  190. * @param {string} ids - 数据ID列表,逗号分隔
  191. * @returns {Promise} 批量删除结果
  192. */
  193. export function batchDeleteBaseData(ids) {
  194. return request({
  195. url: `/basedata/batch/${ids}`,
  196. method: "delete",
  197. });
  198. }
  199. /**
  200. * 新增基准数据
  201. * @param {Object} data - 新增数据
  202. * @returns {Promise} 新增结果
  203. */
  204. export function BaseDataAdd(data) {
  205. return request({
  206. url: "/basedata",
  207. method: "post",
  208. data,
  209. });
  210. }
  211. /**
  212. * 更新基准数据
  213. * @param {number} id - 数据ID
  214. * @param {Object} data - 更新数据
  215. * @returns {Promise} 更新结果
  216. */
  217. export function BaseDataUpdate(id, data) {
  218. return request({
  219. url: `/basedata/${id}`,
  220. method: "put",
  221. data,
  222. });
  223. }
  224. // ==================== 分类管理 ====================
  225. /**
  226. * 获取分类列表
  227. * @param {Object} params - 查询参数
  228. * @param {number} params.page - 页码
  229. * @param {number} params.pageSize - 每页数量
  230. * @param {string} params.name - 分类名称
  231. * @returns {Promise} 分类列表和分页信息
  232. */
  233. export function getCategoriesList(params) {
  234. return request({
  235. url: "/categories",
  236. method: "get",
  237. params,
  238. });
  239. }
  240. /**
  241. * 创建分类
  242. * @param {Object} data - 分类数据
  243. * @returns {Promise} 创建结果
  244. */
  245. export function createCategory(data) {
  246. return request({
  247. url: "/categories",
  248. method: "post",
  249. data,
  250. });
  251. }
  252. /**
  253. * 更新分类
  254. * @param {number} id - 分类ID
  255. * @param {Object} data - 分类数据
  256. * @returns {Promise} 更新结果
  257. */
  258. export function updateCategory(id, data) {
  259. return request({
  260. url: `/categories/${id}`,
  261. method: "put",
  262. data,
  263. });
  264. }
  265. /**
  266. * 删除分类
  267. * @param {number} id - 分类ID
  268. * @returns {Promise} 删除结果
  269. */
  270. export function deleteCategory(id) {
  271. return request({
  272. url: `/categories/${id}`,
  273. method: "delete",
  274. });
  275. }
  276. // ==================== 店铺客户关联管理 ====================
  277. /**
  278. * 获取店铺客户关联列表
  279. * @param {Object} params - 查询参数
  280. * @param {number} params.page - 页码
  281. * @param {number} params.pageSize - 每页数量
  282. * @param {string} params.shopName - 店铺名称
  283. * @param {string} params.customerName - 客户名称
  284. * @returns {Promise} 关联列表和分页信息
  285. */
  286. export function getShopCustomerList(params) {
  287. return request({
  288. url: "/shop-customer",
  289. method: "get",
  290. params,
  291. });
  292. }
  293. /**
  294. * 删除店铺客户关联
  295. * @param {number} id - 关联ID
  296. * @returns {Promise} 删除结果
  297. */
  298. export function deleteShopCustomer(id) {
  299. return request({
  300. url: `/shop-customer/${id}`,
  301. method: "delete",
  302. });
  303. }
  304. /**
  305. * 批量删除店铺客户关联
  306. * @param {string} ids - 关联ID列表,逗号分隔
  307. * @returns {Promise} 批量删除结果
  308. */
  309. export function batchDeleteShopCustomer(ids) {
  310. return request({
  311. url: `/shop-customer/batch/${ids}`,
  312. method: "delete",
  313. });
  314. }
  315. /**
  316. * 导出店铺客户关联数据
  317. * @returns {string} 导出文件URL
  318. */
  319. export function exportShopCustomer() {
  320. return request({
  321. url: "/shop-customer/export",
  322. responseType: "blob",
  323. method: "get",
  324. });
  325. }
  326. /**
  327. * 新增店铺客户关联
  328. * @param {Object} data - 新增数据
  329. * @returns {Promise} 新增结果
  330. */
  331. export function ShopCustomerAdd(data) {
  332. return request({
  333. url: "/shop-customer",
  334. method: "post",
  335. data,
  336. });
  337. }
  338. /**
  339. * 更新店铺客户关联
  340. * @param {number} id - 关联ID
  341. * @param {Object} data - 更新数据
  342. * @returns {Promise} 更新结果
  343. */
  344. export function ShopCustomerUpdate(id, data) {
  345. return request({
  346. url: `/shop-customer/${id}`,
  347. method: "put",
  348. data,
  349. });
  350. }
  351. // ==================== 报表分析 ====================
  352. /**
  353. * 获取报表筛选选项
  354. * @returns {Promise} 筛选选项数据
  355. */
  356. export function getReportFilterOptions() {
  357. return request({
  358. url: "/reports/filter-options",
  359. method: "get",
  360. });
  361. }
  362. /**
  363. * 获取商品分析报表数据
  364. * @param {Object} params - 查询参数
  365. * @param {string} params.startDate - 开始日期
  366. * @param {string} params.endDate - 结束日期
  367. * @param {string} params.productCode - 商品编号
  368. * @returns {Promise} 商品分析数据
  369. */
  370. export function getProductAnalysisReport(params) {
  371. return request({
  372. url: "/reports/product-analysis",
  373. method: "get",
  374. params,
  375. });
  376. }
  377. /**
  378. * 获取店铺分析报表数据
  379. * @param {Object} params - 查询参数
  380. * @param {string} params.startDate - 开始日期
  381. * @param {string} params.endDate - 结束日期
  382. * @param {string} params.shop - 店铺名称
  383. * @returns {Promise} 店铺分析数据
  384. */
  385. export function getShopAnalysisReport(params) {
  386. return request({
  387. url: "/reports/shop-analysis",
  388. method: "get",
  389. params,
  390. });
  391. }
  392. /**
  393. * 获取分类分析报表数据
  394. * @param {Object} params - 查询参数
  395. * @param {string} params.startDate - 开始日期
  396. * @param {string} params.endDate - 结束日期
  397. * @returns {Promise} 分类分析数据
  398. */
  399. export function getCategoryAnalysisReport(params) {
  400. return request({
  401. url: "/reports/category-analysis",
  402. method: "get",
  403. params,
  404. });
  405. }
  406. /**
  407. * 获取整体分析报表数据
  408. * @param {Object} params - 查询参数
  409. * @param {string} params.startDate - 开始日期
  410. * @param {string} params.endDate - 结束日期
  411. * @returns {Promise} 整体分析数据
  412. */
  413. export function getOverallAnalysisReport(params) {
  414. return request({
  415. url: "/reports/overall-analysis",
  416. method: "get",
  417. params,
  418. });
  419. }