device.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. import request, { tenantRequest } from '@/utils/request'
  2. import {
  3. add,
  4. update,
  5. del,
  6. confirm,
  7. messageSend,
  8. send,
  9. confirmAndSend,
  10. addTenant,
  11. addScope,
  12. addUser
  13. } from './base'
  14. export function getRatiosWithUser () {
  15. return tenantRequest({
  16. url: '/device/resolutionRatio',
  17. method: 'GET',
  18. params: addScope({})
  19. }).then(({ data }) => {
  20. return {
  21. data: Object.keys(data).map(key => {
  22. return {
  23. value: key,
  24. label: `${key} ${data[key].map(device => device.name).join(', ')}`
  25. }
  26. })
  27. }
  28. })
  29. }
  30. export function getRatios () {
  31. return tenantRequest({
  32. url: '/device/resolutionRatio',
  33. method: 'GET',
  34. params: addTenant({})
  35. }).then(({ data }) => {
  36. return {
  37. data: Object.keys(data).map(key => {
  38. return {
  39. value: key,
  40. label: key
  41. }
  42. })
  43. }
  44. })
  45. }
  46. export function getTimeline (deviceId, options) {
  47. return request({
  48. url: `/content/deviceCalender/${deviceId}`,
  49. method: 'GET',
  50. ...options
  51. }).then(({ data }) => JSON.parse(data.eventDetail) || [])
  52. }
  53. export function addDevice (data) {
  54. return add({
  55. url: '/device',
  56. method: 'POST',
  57. data
  58. })
  59. }
  60. export function updateDevice (data) {
  61. return update({
  62. url: '/device',
  63. method: 'put',
  64. data
  65. })
  66. }
  67. export function deleteDevice ({ id, name }) {
  68. return send({
  69. url: `/device/${id}/standbyDevice`,
  70. method: 'GET',
  71. params: { pageNum: 1, pageSize: 1 }
  72. }).then(({ data }) => confirm(
  73. data.length
  74. ? `删除主设备后备份设备也将删除`
  75. : `删除 ${name} ?`,
  76. data.length
  77. ? `删除 ${name}`
  78. : null
  79. )).then(() => messageSend({
  80. url: `/device/${id}`,
  81. method: 'DELETE'
  82. }, '删除'))
  83. }
  84. export function getDevices (query, options) {
  85. const { pageNum: pageIndex, pageSize, ...params } = query
  86. return tenantRequest({
  87. url: '/device/relation/page',
  88. method: 'GET',
  89. params: addScope({
  90. pageIndex, pageSize,
  91. ...params
  92. }),
  93. ...options
  94. })
  95. }
  96. export function getDevicesByAdmin (query) {
  97. const { pageNum: pageIndex, pageSize, ...params } = query
  98. return tenantRequest({
  99. url: '/device/relation/page',
  100. method: 'GET',
  101. params: {
  102. pageIndex, pageSize,
  103. ...params
  104. }
  105. })
  106. }
  107. export function getDevicesByRelation (query) {
  108. const { pageNum: pageIndex, pageSize, ...params } = query
  109. return tenantRequest({
  110. url: '/device/queryRelation/page',
  111. method: 'GET',
  112. params: {
  113. pageIndex, pageSize,
  114. ...params
  115. }
  116. })
  117. }
  118. export function bindDeviceToObject (deviceId, org, user) {
  119. return request({
  120. url: `/device/relation/${deviceId}/save`,
  121. method: 'POST',
  122. data: {
  123. org,
  124. user
  125. }
  126. })
  127. }
  128. export function unbindDevice ({ deviceRelaId, name }) {
  129. return confirmAndSend('移除', name, {
  130. url: `/device/relation/${deviceRelaId}/remove`,
  131. method: 'DELETE'
  132. })
  133. }
  134. export function unbindDevices (params) {
  135. return request({
  136. url: '/device/relation/batchRemove',
  137. method: 'DELETE',
  138. params
  139. })
  140. }
  141. export function updateBindDevices (user, org) {
  142. return send({
  143. url: '/device/relation/update',
  144. method: 'POST',
  145. params: { user },
  146. data: { org }
  147. })
  148. }
  149. export function activateDevice ({ id, name }) {
  150. return confirmAndSend('激活', name, {
  151. url: '/device/batch/activate',
  152. method: 'put',
  153. data: [id]
  154. })
  155. }
  156. export function deactivateDevice ({ id, name }) {
  157. return confirmAndSend('停用', name, {
  158. url: '/device/batch/deactivate',
  159. method: 'put',
  160. data: [id]
  161. })
  162. }
  163. export function getDevice (id) {
  164. return request({
  165. url: `/device/${id}`,
  166. method: 'GET'
  167. })
  168. }
  169. export function getSubDevices (query) {
  170. const { id, pageNum: pageIndex, pageSize, ...params } = query
  171. return request({
  172. url: `/device/${id}/standbyDevice`,
  173. method: 'GET',
  174. params: {
  175. pageIndex, pageSize,
  176. ...params
  177. }
  178. })
  179. }
  180. export function addSubDevice ({ id }, data) {
  181. return add({
  182. url: `/device/${id}/addStandby`,
  183. method: 'POST',
  184. data
  185. })
  186. }
  187. export function addProductType (data) {
  188. return add({
  189. url: '/productType',
  190. method: 'POST',
  191. data
  192. })
  193. }
  194. export function updateProductType (data) {
  195. return update({
  196. url: '/productType',
  197. method: 'put',
  198. data
  199. })
  200. }
  201. export function deleteProductType ({ id, name }) {
  202. return del({
  203. url: `/productType/${id}`,
  204. method: 'DELETE'
  205. }, name)
  206. }
  207. export function getProductTypes (query) {
  208. const { pageNum: pageIndex, pageSize, ...params } = query
  209. return tenantRequest({
  210. url: '/productType/list',
  211. method: 'GET',
  212. params: addTenant({
  213. pageIndex, pageSize,
  214. ...params
  215. })
  216. })
  217. }
  218. export function addProduct (data) {
  219. return add({
  220. url: '/product',
  221. method: 'POST',
  222. data
  223. })
  224. }
  225. export function updateProduct (data) {
  226. return update({
  227. url: '/product',
  228. method: 'put',
  229. data
  230. })
  231. }
  232. export function deleteProduct ({ id, name }) {
  233. return del({
  234. url: `/product/${id}`,
  235. method: 'DELETE'
  236. }, name)
  237. }
  238. export function getProducts (query) {
  239. const { pageNum: pageIndex, pageSize, ...params } = query
  240. return tenantRequest({
  241. url: '/product/list',
  242. method: 'GET',
  243. params: addTenant({
  244. pageIndex, pageSize,
  245. ...params
  246. })
  247. })
  248. }
  249. export function addDeviceGroup (data) {
  250. return add({
  251. url: '/deviceGroup',
  252. method: 'POST',
  253. data
  254. })
  255. }
  256. export function updateDeviceGroup (data) {
  257. return update({
  258. url: '/deviceGroup',
  259. method: 'PUT',
  260. data
  261. })
  262. }
  263. export function deleteDeviceGroup ({ id, name }) {
  264. return del({
  265. url: `/deviceGroup/${id}`,
  266. method: 'DELETE'
  267. }, name)
  268. }
  269. export function getDeviceGroups (query) {
  270. const { pageNum: pageIndex, pageSize, ...params } = query
  271. return tenantRequest({
  272. url: '/deviceGroup/list',
  273. method: 'GET',
  274. params: addUser({
  275. pageIndex, pageSize,
  276. ...params
  277. })
  278. })
  279. }
  280. export function getDevicesByGroup (id) {
  281. return tenantRequest({
  282. url: `/deviceGroup/${id}/device`,
  283. method: 'GET',
  284. params: addScope({})
  285. })
  286. }
  287. export function getDeviceTree () {
  288. return tenantRequest({
  289. url: '/deviceGroup/deviceTree',
  290. method: 'GET',
  291. params: addUser(addScope({}))
  292. })
  293. }
  294. export function addDeviceToGroup (id, deviceId) {
  295. return add({
  296. url: `/deviceGroup/${id}/device`,
  297. method: 'POST',
  298. data: [].concat(deviceId)
  299. })
  300. }
  301. export function deleteDeviceFromGroup (id, { id: deviceId, name }) {
  302. return confirmAndSend('移除', name, {
  303. url: `/deviceGroup/${id}/device`,
  304. method: 'DELETE',
  305. params: { deviceId }
  306. })
  307. }
  308. export function getDeviceStatistics (productId) {
  309. return tenantRequest({
  310. url: '/device/listDeviceTotal',
  311. method: 'GET',
  312. params: addScope({ productId })
  313. })
  314. }
  315. export function getDeviceAlarms (query) {
  316. const { pageNum: pageIndex, pageSize, ...params } = query
  317. return request({
  318. url: '/deviceException/list',
  319. method: 'GET',
  320. params: {
  321. pageIndex, pageSize,
  322. ...params
  323. }
  324. })
  325. }
  326. export function getTasks (query) {
  327. const { pageNum: pageIndex, pageSize, ...params } = query
  328. return request({
  329. url: '/device/functionTask',
  330. method: 'GET',
  331. params: {
  332. pageIndex, pageSize,
  333. ...params
  334. }
  335. })
  336. }
  337. export function addTask (task) {
  338. return add({
  339. url: '/device/functionTask',
  340. method: 'POST',
  341. data: task
  342. })
  343. }
  344. export function updateTask (task) {
  345. return update({
  346. url: '/device/functionTask',
  347. method: 'PUT',
  348. data: task
  349. })
  350. }
  351. export function deleteTask ({ taskId }) {
  352. return del({
  353. url: `/device/functionTask/${taskId}`,
  354. method: 'DELETE'
  355. })
  356. }
  357. export function activateTask ({ taskId }) {
  358. return confirmAndSend('启用', null, {
  359. url: '/device/functionTask/resume',
  360. method: 'PUT',
  361. data: [taskId]
  362. })
  363. }
  364. export function deactivateTask ({ taskId }) {
  365. return confirmAndSend('停用', null, {
  366. url: '/device/functionTask/pause',
  367. method: 'PUT',
  368. data: [taskId]
  369. })
  370. }