signZkTeam.html 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>扫码下转</title>
  6. <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
  7. <link rel="stylesheet" type="text/css" href="../../../css/cross.ui.css" />
  8. <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
  9. <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
  10. <link rel="stylesheet" href="../../../plugins/element-ui/element-ui.css" />
  11. <link rel="stylesheet" type="text/css" href="../css/common.css" />
  12. <style>
  13. body{height: auto}
  14. .c-t-center{text-align: center;}
  15. .teamGroupImg{}
  16. </style>
  17. </head>
  18. <body>
  19. <div id="app" v-cloak>
  20. <div class="qrcode-wrap">
  21. <div class="qrcode-inner c-t-center">
  22. <div>
  23. <img :src="getTeamPhoto(photo)" class="teamGroupImg" width="60px" height="60px" style="border-radius: 100%"/>
  24. <div class="c-333 mt20">{{name}}</div>
  25. </div>
  26. <div class="mt20">
  27. <img :src="qrCodeImg" width="250px" height="250px"/>
  28. </div>
  29. </div>
  30. </div>
  31. </div>
  32. <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
  33. <script src="../../../js/jquery-2.2.4.js"></script>
  34. <script src="../../../plugins/layer/layer.min.js"></script>
  35. <script src="../../../plugins/toastr/toastr.min.js"></script>
  36. <script type="text/javascript" src="../../../plugins/element-ui/element-ui.js"></script>
  37. <script src="../../../js/bootstrap.min.js"></script>
  38. <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
  39. <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
  40. <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
  41. <script src="../../../api/http-request.js" type="text/javascript"></script>
  42. <script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>
  43. <script type="text/javascript" src="../../../api/recover_api.js"></script>
  44. <script type="text/javascript">
  45. var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType
  46. var httpData=GetRequest()
  47. var docInfo = JSON.parse(window.localStorage.getItem("docInfo"));
  48. function showSuccessMessage(msg) {
  49. layer.msg(msg, {
  50. icon: 1
  51. })
  52. }
  53. function showErrorMessage(msg) {
  54. layer.msg(msg, {
  55. icon: 5
  56. })
  57. }
  58. function showWarningMessage(msg) {
  59. layer.msg(msg, {
  60. icon: 2
  61. })
  62. }
  63. function showInfoMessage(msg) {
  64. layer.msg(msg, {
  65. icon: 6
  66. })
  67. }
  68. selectVue = new Vue({
  69. el: "#app",
  70. data: {
  71. id: httpData['id'], // 专科团队code
  72. name: decodeURI(httpData['name']), // 专科团队名称
  73. photo: httpData['photo'], // 专科团队头像
  74. qrCodeImg: ''
  75. },
  76. mounted: function() {
  77. var vm = this
  78. vm.loadSocket()
  79. vm.createSpecialDoctorQrCode()
  80. },
  81. methods: {
  82. loadSocket:function(){
  83. var vm =this;
  84. var imurl = httpRequest.socketUrl;
  85. jQuery.getScript(imurl+"/socket.io/socket.io.js").done(function() {
  86. var socket = io.connect(imurl);
  87. var sessionId = 'system';
  88. socket.emit('login', {userId: docInfo.code, password: docInfo.code,sessionId:sessionId,clientType:"doctor"});
  89. socket.on('message', function (data) {
  90. var content=JSON.parse(data.content)
  91. if(content.teamCode){
  92. vm.dialogShow(content)
  93. }else{
  94. layer.alert('居民签约授权失败,请重新扫描下转二维码或选择手动下转', {icon: 5, title: '授权失败'});
  95. }
  96. });
  97. socket.on('error', function (data) {
  98. console.log(data);
  99. });
  100. socket.on('ack', function (data) {
  101. console.log(data);
  102. });
  103. })
  104. .fail(function() {
  105. layer.msg('医生实时对话连接失败!',{icon:5});
  106. });
  107. },
  108. dialogShow: function(data){
  109. var vm = this
  110. if(data.is_sign){ //已家签,要判断居民是否签约该专医团队
  111. var text = "请问您是否确认为"+data.patient_name+"患者进行康复下转?"
  112. var current=layer.confirm(text, {
  113. btn: ['确定', '取消'],
  114. title: "提示"
  115. }, function (index) {
  116. vm.findPatientTeamList(data)
  117. layer.close(current); //再执行关闭
  118. })
  119. } else {
  120. var text = data.patient_name+"患者暂未家签,请先提醒居民签约家庭医生"
  121. var current=layer.confirm(text, {
  122. btn: ['好, 我知道了', '取消'],
  123. title: "提示"
  124. }, function (index) {
  125. top.addRecoveryDownVue.isSignSpecialist(false)
  126. layer.close(current); //再执行关闭
  127. })
  128. }
  129. },
  130. getTeamPhoto: function(photo){
  131. return httpRequest.getImgUrl(photo);
  132. },
  133. //获取团队二维码
  134. createSpecialDoctorQrCode:function(){
  135. var vm=this
  136. var params = {
  137. doctorCode: docInfo.code,
  138. teamName: vm.name,
  139. teamCode: vm.id,
  140. };
  141. rehaAPI.createSpecialDoctorQrCode(params).then(function(res){
  142. if(res.status == 200) {
  143. vm.qrCodeImg = res.data
  144. } else {
  145. showErrorMessage(res.msg)
  146. }
  147. });
  148. },
  149. // 获取居民签约的专科团队
  150. findPatientTeamList: function(data){
  151. var vm = this,
  152. params = {
  153. patient: data.patient_code
  154. }
  155. rehaAPI.findPatientTeamList(params).then(function(res){
  156. if(res.status == 200) {
  157. var num=0;
  158. $.each(res.data, function(index,item){
  159. if(item.teamCode==vm.teamInfo.id){ //签约团队与二维码团队一致
  160. num++
  161. }
  162. })
  163. if(num>0){//签约团队与二维码团队一致
  164. top.addRecoveryDownVue.isSignSpecialist(true, data.idcard)
  165. } else {
  166. vm.createPatientInSpeciaRelation(data)
  167. }
  168. } else {
  169. showErrorMessage(res.msg)
  170. }
  171. })
  172. },
  173. //居民未与扫描的二维码团队对应
  174. createPatientInSpeciaRelation:function(data){
  175. var vm = this,
  176. params = {
  177. patient: data.patient_code,
  178. doctor: docInfo.code,
  179. patientName: data.patient_name,
  180. doctorName: docInfo.name,
  181. teamCode:data.teamCode
  182. }
  183. rehaAPI.createPatientInSpeciaRelation(params).then(function(res){
  184. if(res.data&&res.data.status == 200) {
  185. top.addRecoveryDownVue.isSignSpecialist(true, data.idcard)
  186. } else {
  187. top.addRecoveryDownVue.isSignSpecialist(false)
  188. showErrorMessage(res.msg);
  189. }
  190. })
  191. },
  192. }
  193. })
  194. </script>
  195. </body>
  196. </html>