device.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import deviceRequest from "@/utils/device-request"
  2. /**
  3. * 设备端API
  4. * 用于智慧校园设备(如家校通话设备)的接口调用
  5. */
  6. export const deviceApi = {
  7. /**
  8. * 设备登录
  9. * @param {string} sn - 设备序列号(devId)
  10. * @param {string} cardNo - 卡号
  11. * @returns {Promise} 返回登录结果,包含 userInfo 和 sessId
  12. *
  13. * 返回数据格式参考 h5-controller.vue handleLoginSuccess:
  14. * {
  15. * success: true,
  16. * userInfo: {
  17. * sessId: 'xxx', // JSESSIONID
  18. * ... // 其他用户信息
  19. * }
  20. * }
  21. */
  22. login(sn, cardNo) {
  23. return deviceRequest.get(
  24. `/service?ssServ=ss.login&devId=${sn}&cardNo=${cardNo}&sbmc=${sn}`,
  25. {},
  26. {
  27. loading: { title: '设备登录中...' },
  28. request: {
  29. timeout: 15000
  30. }
  31. }
  32. )
  33. },
  34. /**
  35. * 查询家长信息(联系人)
  36. * @returns {Promise} 返回家长信息
  37. *
  38. * 注意:
  39. * - 不需要传参数,后端通过 URL 中的 devId 和 sbmc 自动识别用户
  40. * - device-request.js 会自动从 userInfo 中获取 devId 和 sbmc 添加到 URL
  41. * - 现在只返回一个家长,不是数组
  42. *
  43. * 返回数据格式:
  44. * {
  45. * data: {
  46. * ssData: {
  47. * ryid: 111129603, // 人员ID
  48. * wbid: 'oKFvD4j...', // 外部ID(微信openid)
  49. * xm: '测试家长1', // 姓名
  50. * yszwj: 'path/to/image.jpg' // 艺术照(可选,需要用 getImageUrl 转换)
  51. * },
  52. * ssCode: 0
  53. * }
  54. * }
  55. */
  56. selParentInfo() {
  57. return deviceRequest.post(
  58. `/service?ssServ=selParentInfo`,
  59. {},
  60. {
  61. loading: { title: '获取联系人...' },
  62. formData: true
  63. }
  64. )
  65. },
  66. /**
  67. * 检查个人服务状态(刷卡进入时调用)
  68. * @param {string} grfwxmm - 个人服务项目码(如:视频电话、离校通知等)
  69. * @returns {Promise} 返回服务状态
  70. *
  71. * 返回数据格式:
  72. * ssCode = 0 时:
  73. * {
  74. * jsfsm: '计数方式码',
  75. * zdsc: 最大时长,
  76. * zdll: 最大流量,
  77. * zdcs: 最大次数,
  78. * ljsc: 累计时长,
  79. * ljll: 累计流量,
  80. * ljcs: 累计次数,
  81. * sfmf: 是否免费,
  82. * sfty: 是否停用
  83. * }
  84. * ssCode > 0 时:
  85. * {
  86. * ssMsg: '错误信息'
  87. * }
  88. */
  89. grfw_chkGrfw(grfwxmm) {
  90. return deviceRequest.post(
  91. `/service?ssServ=grfw_chkGrfw`,
  92. { grfwxmm },
  93. {
  94. loading: false,
  95. formData: true
  96. }
  97. )
  98. },
  99. /**
  100. * 办结个人服务(通话结束后调用)
  101. * @param {object} data - 办结参数
  102. * @param {string} data.grfwxmm - 个人服务项目码
  103. * @param {number} data.sc - 时长(秒/分钟)
  104. * @param {number} data.ll - 流量
  105. * @param {string} data.ms - 附言/备注
  106. * @returns {Promise} 返回办结后的服务状态
  107. *
  108. * 返回数据格式:
  109. * ssCode = 0 时:
  110. * {
  111. * jsfsm: '计数方式码',
  112. * zdsc: 最大时长,
  113. * zdll: 最大流量,
  114. * zdcs: 最大次数,
  115. * ljsc: 累计时长,
  116. * ljll: 累计流量,
  117. * ljcs: 累计次数,
  118. * sfmf: 是否免费
  119. * }
  120. * ssCode > 0 时:
  121. * {
  122. * ssMsg: '错误信息'
  123. * }
  124. */
  125. grfw_endGrfw(data) {
  126. return deviceRequest.post(
  127. `/service?ssServ=grfw_endGrfw`,
  128. data,
  129. {
  130. loading: false,
  131. formData: true
  132. }
  133. )
  134. }
  135. }