device.js 4.4 KB

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