device.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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=ssLogin&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. ssExit() {
  39. return deviceRequest.post(
  40. `/service?ssServ=ssExit`,
  41. {},
  42. {
  43. loading: false,
  44. formData: true,
  45. request: {
  46. timeout: 15000
  47. }
  48. }
  49. )
  50. },
  51. /**
  52. * 查询家长信息(联系人)
  53. * @returns {Promise} 返回家长信息
  54. *
  55. * 注意:
  56. * - 不需要传参数,后端通过 URL 中的 devId 和 sbmc 自动识别用户
  57. * - device-request.js 会自动从 userInfo 中获取 devId 和 sbmc 添加到 URL
  58. * - 现在只返回一个家长,不是数组
  59. *
  60. * 返回数据格式:
  61. * {
  62. * data: {
  63. * ssData: {
  64. * ryid: 111129603, // 人员ID
  65. * wbid: 'oKFvD4j...', // 外部ID(微信openid)
  66. * xm: '测试家长1', // 姓名
  67. * yszwj: 'path/to/image.jpg' // 艺术照(可选,需要用 getImageUrl 转换)
  68. * },
  69. * ssCode: 0
  70. * }
  71. * }
  72. */
  73. selParentInfo() {
  74. return deviceRequest.post(
  75. `/service?ssServ=selParentInfo`,
  76. {},
  77. {
  78. loading: { title: '获取联系人...' },
  79. formData: true
  80. }
  81. )
  82. },
  83. /**
  84. * 查询留言成员(设备端)
  85. * @returns {Promise} 返回 chatMbrList
  86. */
  87. mp_telHomep_load() {
  88. return deviceRequest.post(
  89. `/service?ssServ=mp_telHomep_load`,
  90. {},
  91. {
  92. loading: { title: '获取留言联系人...' },
  93. formData: true,
  94. request: {
  95. timeout: 120000
  96. }
  97. }
  98. )
  99. },
  100. /**
  101. * 刷新电话机首页留言提醒(未刷卡态)
  102. * @returns {Promise} 返回 xyList(家长来信学员) / jzList(电话机发出未读家长)
  103. */
  104. tel_refreshLogin() {
  105. return deviceRequest.post(
  106. `/service?ssServ=tel_refreshLogin`,
  107. {},
  108. {
  109. loading: false,
  110. formData: true,
  111. request: {
  112. timeout: 120000
  113. }
  114. }
  115. )
  116. },
  117. /**
  118. * 检查个人服务状态(刷卡进入时调用)
  119. * @param {string} grfwxmm - 个人服务项目码(如:视频电话、离校通知等)
  120. * @returns {Promise} 返回服务状态
  121. *
  122. * 返回数据格式:
  123. * ssCode = 0 时:
  124. * {
  125. * jsfsm: '计数方式码',
  126. * zdsc: 最大时长,
  127. * zdll: 最大流量,
  128. * zdcs: 最大次数,
  129. * ljsc: 累计时长,
  130. * ljll: 累计流量,
  131. * ljcs: 累计次数,
  132. * sfmf: 是否免费,
  133. * sfty: 是否停用
  134. * }
  135. * ssCode > 0 时:
  136. * {
  137. * ssMsg: '错误信息'
  138. * }
  139. */
  140. grfw_chkGrfw(grfwxmm) {
  141. const code = String(grfwxmm || '').trim()
  142. return deviceRequest.post(
  143. `/service?ssServ=grfw_chkGrfw&grfwxmm=${encodeURIComponent(code)}`,
  144. { grfwxmm: code },
  145. {
  146. loading: false,
  147. formData: true
  148. }
  149. )
  150. },
  151. /**
  152. * 办结个人服务(通话结束后调用)
  153. * @param {object} data - 办结参数
  154. * @param {string} data.grfwxmm - 个人服务项目码
  155. * @param {number} data.sc - 时长(秒/分钟)
  156. * @param {number} data.ll - 流量
  157. * @param {string} data.ms - 附言/备注
  158. * @returns {Promise} 返回办结后的服务状态
  159. *
  160. * 返回数据格式:
  161. * ssCode = 0 时:
  162. * {
  163. * jsfsm: '计数方式码',
  164. * zdsc: 最大时长,
  165. * zdll: 最大流量,
  166. * zdcs: 最大次数,
  167. * ljsc: 累计时长,
  168. * ljll: 累计流量,
  169. * ljcs: 累计次数,
  170. * sfmf: 是否免费
  171. * }
  172. * ssCode > 0 时:
  173. * {
  174. * ssMsg: '错误信息'
  175. * }
  176. */
  177. grfw_endGrfw(data) {
  178. return deviceRequest.post(
  179. `/service?ssServ=grfw_endGrfw`,
  180. data,
  181. {
  182. loading: false,
  183. formData: true
  184. }
  185. )
  186. }
  187. }