device.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /**
  2. * 设备管理相关API
  3. */
  4. import {
  5. http,
  6. Method
  7. } from '@/utils/request.js';
  8. import storage from "@/utils/storage.js";
  9. const request = http.request;
  10. const userInfo = storage.getUserInfo()
  11. /**
  12. * 获取设备概览数据
  13. * @param {string} fieldId - 地块ID,可选
  14. * @returns {Promise} 设备概览数据
  15. */
  16. export function fetchDeviceOverview(fieldId) {
  17. const params = {};
  18. console.log("userInfo请求:",userInfo);
  19. if (userInfo.userId) params.userId = userInfo.userId;
  20. if (fieldId) params.fieldId = fieldId;
  21. return http.request({
  22. url: 'uniapp/device/overview',
  23. method: Method.POST,
  24. data: params
  25. });
  26. }
  27. /**
  28. * 根据设备类型获取设备列表
  29. * @param {string} type - 设备类型(monitor-监控设备,sensor-采集设备,control-控制设备,irrigation-灌溉设备,tractor-农机设备)
  30. * @param {Object} params - 查询参数
  31. * @returns {Promise} 设备列表
  32. */
  33. export function fetchDevicesByType(params) {
  34. if (userInfo.userId) params.userId = userInfo.userId;
  35. return http.request({
  36. url: `uniapp/device/typeList`,
  37. method: Method.POST,
  38. data: params
  39. });
  40. }
  41. /**
  42. * 获取所有设备列表
  43. * @param {Object} params - 查询参数
  44. * @param {number} params.pageNum - 页码
  45. * @param {number} params.pageSize - 每页数量
  46. * @param {string} params.deviceName - 设备名称,可选
  47. * @param {string} params.deviceTypeId - 设备类型ID,可选
  48. * @param {number} params.status - 设备状态,可选
  49. * @returns {Promise} 设备列表
  50. */
  51. export function fetchDeviceList(params = {}) {
  52. return http.request({
  53. url: 'uniapp/device/list',
  54. method: Method.GET,
  55. params: params
  56. });
  57. }
  58. /**
  59. * 获取设备详情
  60. * @param {number} id - 设备ID
  61. * @returns {Promise} 设备详情
  62. */
  63. export function getDeviceDetail(id) {
  64. return http.request({
  65. url: `uniapp/device/${id}`,
  66. method: Method.GET
  67. });
  68. }
  69. /**
  70. * 获取设备采集器详情(包含气象/土壤数据和告警信息)
  71. * @param {number} id - 设备编码
  72. * @param {string} code - 设备编码,可选,用于判断设备类型
  73. * @returns {Promise} 设备详情数据
  74. */
  75. export function getDeviceCollectorDetail(deviceId, code) {
  76. return http.request({
  77. url: `uniapp/device/collector/detail/${deviceId}`,
  78. method: Method.GET,
  79. params: code ? { code } : {}
  80. });
  81. }
  82. /**
  83. * 添加设备
  84. * @param {Object} data - 设备信息
  85. * @returns {Promise} 添加结果
  86. */
  87. export function addDevice(data) {
  88. return http.request({
  89. url: 'uniapp/device',
  90. method: Method.POST,
  91. data: data
  92. });
  93. }
  94. /**
  95. * 更新设备信息
  96. * @param {Object} data - 设备信息
  97. * @returns {Promise} 更新结果
  98. */
  99. export function updateDevice(data) {
  100. return http.request({
  101. url: 'uniapp/device',
  102. method: Method.PUT,
  103. data: data
  104. });
  105. }
  106. /**
  107. * 删除设备
  108. * @param {number|number[]} ids - 设备ID或ID数组
  109. * @returns {Promise} 删除结果
  110. */
  111. export function deleteDevice(ids) {
  112. const idStr = Array.isArray(ids) ? ids.join(',') : ids;
  113. return http.request({
  114. url: `uniapp/device/${idStr}`,
  115. method: Method.DELETE
  116. });
  117. }
  118. /**
  119. * 根据用户ID获取关联的设备列表
  120. * @param {Object} params - 查询参数
  121. * @returns {Promise} 设备列表
  122. */
  123. export function fetchUserDeviceList(params = {}) {
  124. const user = storage.getUserInfo();
  125. return http.request({
  126. url: 'uniapp/device/user/list',
  127. method: Method.GET,
  128. params: {
  129. ...params,
  130. userId: user.userId
  131. }
  132. });
  133. }
  134. /**
  135. * 根据地块ID获取设备列表
  136. * @param {string} fieldId - 地块ID
  137. * @param {Object} params - 其他查询参数
  138. * @returns {Promise} 设备列表
  139. */
  140. export function fetchFieldDeviceList(fieldId, params = {}) {
  141. return http.request({
  142. url: 'uniapp/device/list',
  143. method: Method.GET,
  144. params: {
  145. ...params,
  146. fieldId: fieldId
  147. }
  148. });
  149. }
  150. /**
  151. * 获取设备类型统计数据
  152. * @param {string} fieldId - 地块ID,可选
  153. * @returns {Promise} 设备类型统计数据
  154. */
  155. export function fetchDeviceTypeStats(fieldId) {
  156. const params = {};
  157. if (fieldId) params.fieldId = fieldId;
  158. return http.request({
  159. url: 'uniapp/device/stats/type',
  160. method: Method.GET,
  161. params: params
  162. });
  163. }