address.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. import request from '@/router/axios'
  2. /**
  3. * 地址分页查询
  4. * @param {number} current - 当前页码
  5. * @param {number} size - 每页大小
  6. * @param {CustomerAddressQueryParams} params - 查询参数
  7. * @returns {Promise<AxiosResponse<ApiResponse<PageResult<CustomerAddressItem>>>>} 分页查询结果
  8. */
  9. export const getList = async (current, size, params) => {
  10. return request({
  11. url: '/api/blade-factory/api/factory/address',
  12. method: 'get',
  13. params: {
  14. ...params,
  15. current,
  16. size
  17. }
  18. })
  19. }
  20. /**
  21. * 添加地址
  22. * @param {CustomerAddressForm} row - 地址表单数据
  23. * @returns {Promise<AxiosResponse<ApiResponse<boolean>>>} 添加结果
  24. */
  25. export const add = async (row) => {
  26. return request({
  27. url: '/api/blade-factory/api/factory/address',
  28. method: 'post',
  29. data: row
  30. })
  31. }
  32. /**
  33. * 修改地址
  34. * @param {CustomerAddressForm} row - 地址表单数据
  35. * @returns {Promise<AxiosResponse<ApiResponse<boolean>>>} 修改结果
  36. */
  37. export const update = async (row) => {
  38. return request({
  39. url: '/api/blade-factory/api/factory/address',
  40. method: 'put',
  41. data: row
  42. })
  43. }
  44. /**
  45. * 删除地址
  46. * @param {string} ids - 要删除的ID,多个用逗号分隔
  47. * @returns {Promise<AxiosResponse<ApiResponse<boolean>>>} 删除结果
  48. */
  49. export const remove = async (ids) => {
  50. return request({
  51. url: '/api/blade-factory/api/factory/address/remove',
  52. method: 'delete',
  53. params: {
  54. ids
  55. }
  56. })
  57. }
  58. /**
  59. * 获取地址详情
  60. * @param {string|number} id - 地址ID
  61. * @returns {Promise<AxiosResponse<ApiResponse<CustomerAddressItem>>>} 地址详情
  62. */
  63. export const getDetail = async (id) => {
  64. return request({
  65. url: `/api/blade-factory/api/factory/address/${id}`,
  66. method: 'get'
  67. })
  68. }
  69. /**
  70. * @typedef {Object} CustomerAddressQueryParams
  71. * @property {string} [customerCode] - 客户编码
  72. * @property {string} [customerName] - 客户名称
  73. * @property {string} [receiverName] - 收货人姓名
  74. * @property {string} [receiverPhone] - 收货人电话
  75. * @property {string} [regionName] - 地区名称
  76. * @property {number} [isDefault] - 是否默认地址 0-否 1-是
  77. * @property {number} [isActive] - 是否启用 0-禁用 1-启用
  78. */
  79. /**
  80. * @typedef {Object} CustomerAddressForm
  81. * @property {string|number} [id] - 地址ID(修改时必填)
  82. * @property {number} customerId - 客户ID
  83. * @property {string} customerCode - 客户编码
  84. * @property {string} customerName - 客户名称
  85. * @property {string} receiverName - 收货人姓名
  86. * @property {string} receiverPhone - 收货人电话
  87. * @property {string} regionCode - 地区编码
  88. * @property {string} regionName - 地区名称
  89. * @property {string} detailAddress - 详细地址
  90. * @property {string} [postalCode] - 邮政编码
  91. * @property {number} [isDefault] - 是否默认地址 0-否 1-是
  92. * @property {number} [isActive] - 是否启用 0-禁用 1-启用
  93. */
  94. /**
  95. * @typedef {Object} CustomerAddressItem
  96. * @property {string} id - 地址ID
  97. * @property {string} createUser - 创建用户ID
  98. * @property {string} createDept - 创建部门ID
  99. * @property {string} createTime - 创建时间
  100. * @property {string} updateUser - 更新用户ID
  101. * @property {string} updateTime - 更新时间
  102. * @property {number} status - 状态
  103. * @property {number} isDeleted - 是否删除 0-否 1-是
  104. * @property {number} customerId - 客户ID
  105. * @property {string} customerCode - 客户编码
  106. * @property {string} customerName - 客户名称
  107. * @property {string} receiverName - 收货人姓名
  108. * @property {string} receiverPhone - 收货人电话
  109. * @property {string} regionCode - 地区编码
  110. * @property {string} regionName - 地区名称
  111. * @property {string} detailAddress - 详细地址
  112. * @property {string} postalCode - 邮政编码
  113. * @property {number} isDefault - 是否默认地址 0-否 1-是
  114. * @property {number} isActive - 是否启用 0-禁用 1-启用
  115. */
  116. // 引用公共类型定义
  117. /**
  118. * @typedef {import('../types/common.js').ApiResponse} ApiResponse
  119. * @typedef {import('../types/common.js').PageResult} PageResult
  120. */
  121. /**
  122. * 获取客户地址列表
  123. * @param {string|number} customerId - 客户ID
  124. * @returns {Promise<AxiosResponse<ApiResponse<CustomerAddressItem[]>>>} 客户地址列表
  125. */
  126. export const getAddressList = async (customerId) => {
  127. return request({
  128. url: '/api/blade-factory/api/factory/salesOrder/getAddressList',
  129. method: 'get',
  130. params: {
  131. customerId
  132. }
  133. })
  134. }
  135. /**
  136. * 添加客户地址
  137. * @param {CustomerAddressForm} row - 地址表单数据
  138. * @returns {Promise<AxiosResponse<ApiResponse<boolean>>>} 添加结果
  139. */
  140. export const addAddress = async (row) => {
  141. return request({
  142. url: '/api/blade-factory/api/factory/salesOrder/addAddress',
  143. method: 'post',
  144. data: row
  145. })
  146. }
  147. /**
  148. * 更新客户地址
  149. * @param {CustomerAddressForm} row - 地址表单数据
  150. * @returns {Promise<AxiosResponse<ApiResponse<boolean>>>} 更新结果
  151. */
  152. export const updateAddress = async (row) => {
  153. return request({
  154. url: '/api/blade-factory/api/factory/salesOrder/updateAddress',
  155. method: 'put',
  156. data: row
  157. })
  158. }
  159. /**
  160. * 设置默认地址
  161. * @param {string|number} id - 地址ID
  162. * @param {string|number} customerId - 客户ID
  163. * @returns {Promise<AxiosResponse<ApiResponse<boolean>>>} 设置结果
  164. */
  165. export const setDefaultAddress = async (id, customerId) => {
  166. return request({
  167. url: '/api/blade-factory/api/factory/salesOrder/setDefaultAddress',
  168. method: 'put',
  169. params: {
  170. id,
  171. customerId
  172. }
  173. })
  174. }
  175. /**
  176. * 删除客户地址
  177. * @param {string|number} id - 地址ID
  178. * @returns {Promise<AxiosResponse<ApiResponse<boolean>>>} 删除结果
  179. */
  180. export const deleteAddress = async (id) => {
  181. return request({
  182. url: '/api/blade-factory/api/factory/salesOrder/deleteAddress',
  183. method: 'delete',
  184. params: {
  185. id
  186. }
  187. })
  188. }