device.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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() {
  141. return deviceRequest.post(
  142. `/service?ssServ=grfw_chkGrfw`,
  143. {},
  144. {
  145. loading: false,
  146. formData: true
  147. }
  148. )
  149. },
  150. /**
  151. * 办结个人服务(通话结束后调用)
  152. * @param {object} data - 办结参数
  153. * @param {string} data.grfwxmm - 个人服务项目码
  154. * @param {number} data.sc - 时长(秒/分钟)
  155. * @param {number} data.ll - 流量
  156. * @param {string} data.ms - 附言/备注
  157. * @returns {Promise} 返回办结后的服务状态
  158. *
  159. * 返回数据格式:
  160. * ssCode = 0 时:
  161. * {
  162. * jsfsm: '计数方式码',
  163. * zdsc: 最大时长,
  164. * zdll: 最大流量,
  165. * zdcs: 最大次数,
  166. * ljsc: 累计时长,
  167. * ljll: 累计流量,
  168. * ljcs: 累计次数,
  169. * sfmf: 是否免费
  170. * }
  171. * ssCode > 0 时:
  172. * {
  173. * ssMsg: '错误信息'
  174. * }
  175. */
  176. grfw_endGrfw(data) {
  177. return deviceRequest.post(
  178. `/service?ssServ=grfw_endGrfw`,
  179. data,
  180. {
  181. loading: false,
  182. formData: true
  183. }
  184. )
  185. }
  186. }