device.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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. grfw_selChatMbr() {
  88. return deviceRequest.post(
  89. `/service?ssServ=grfw_selChatMbr`,
  90. {},
  91. {
  92. loading: { title: '获取留言联系人...' },
  93. formData: true,
  94. request: {
  95. timeout: 120000
  96. }
  97. }
  98. )
  99. },
  100. grfw_loadChatMbr() {
  101. return deviceRequest.post(
  102. `/service?ssServ=grfw_selChatMbr`,
  103. {},
  104. {
  105. loading: { title: '获取留言联系人...' },
  106. formData: true,
  107. request: {
  108. timeout: 120000
  109. }
  110. }
  111. )
  112. },
  113. /**
  114. * 刷新电话机首页留言提醒(未刷卡态)
  115. * @returns {Promise} 返回 xyList(家长来信学员) / jzList(电话机发出未读家长)
  116. */
  117. grfw_refreshDhjHome() {
  118. return deviceRequest.post(
  119. `/service?ssServ=grfw_refreshDhjHome`,
  120. {},
  121. {
  122. loading: false,
  123. formData: true,
  124. request: {
  125. timeout: 120000
  126. }
  127. }
  128. )
  129. },
  130. /**
  131. * 检查个人服务状态(刷卡进入时调用)
  132. * @param {string} grfwxmm - 个人服务项目码(如:视频电话、离校通知等)
  133. * @returns {Promise} 返回服务状态
  134. *
  135. * 返回数据格式:
  136. * ssCode = 0 时:
  137. * {
  138. * jsfsm: '计数方式码',
  139. * zdsc: 最大时长,
  140. * zdll: 最大流量,
  141. * zdcs: 最大次数,
  142. * ljsc: 累计时长,
  143. * ljll: 累计流量,
  144. * ljcs: 累计次数,
  145. * sfmf: 是否免费,
  146. * sfty: 是否停用
  147. * }
  148. * ssCode > 0 时:
  149. * {
  150. * ssMsg: '错误信息'
  151. * }
  152. */
  153. grfw_chkGrfw(grfwxmm) {
  154. const code = String(grfwxmm || '').trim()
  155. return deviceRequest.post(
  156. `/service?ssServ=grfw_chkGrfw&grfwxmm=${encodeURIComponent(code)}`,
  157. { grfwxmm: code },
  158. {
  159. loading: false,
  160. formData: true
  161. }
  162. )
  163. },
  164. /**
  165. * 办结个人服务(通话结束后调用)
  166. * @param {object} data - 办结参数
  167. * @param {string} data.grfwxmm - 个人服务项目码
  168. * @param {number} data.sc - 时长(秒/分钟)
  169. * @param {number} data.ll - 流量
  170. * @param {string} data.ms - 附言/备注
  171. * @returns {Promise} 返回办结后的服务状态
  172. *
  173. * 返回数据格式:
  174. * ssCode = 0 时:
  175. * {
  176. * jsfsm: '计数方式码',
  177. * zdsc: 最大时长,
  178. * zdll: 最大流量,
  179. * zdcs: 最大次数,
  180. * ljsc: 累计时长,
  181. * ljll: 累计流量,
  182. * ljcs: 累计次数,
  183. * sfmf: 是否免费
  184. * }
  185. * ssCode > 0 时:
  186. * {
  187. * ssMsg: '错误信息'
  188. * }
  189. */
  190. grfw_endGrfw(data) {
  191. return deviceRequest.post(
  192. `/service?ssServ=grfw_endGrfw`,
  193. data,
  194. {
  195. loading: false,
  196. formData: true
  197. }
  198. )
  199. }
  200. }