signZkTeam.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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. vm.dialogShow(content)
  92. setTimeout(function(){
  93. vm.qrModal=false;
  94. },1000/60)
  95. });
  96. socket.on('error', function (data) {
  97. console.log(data);
  98. });
  99. socket.on('ack', function (data) {
  100. console.log(data);
  101. });
  102. })
  103. .fail(function() {
  104. layer.msg('医生实时对话连接失败!',{icon:5});
  105. });
  106. },
  107. dialogShow: function(data){
  108. var vm = this
  109. if(data.is_sign){ //已家签,要判断居民是否签约该专医团队
  110. var text = "请问您是否确认为"+data.patient_name+"患者进行康复下转?"
  111. var current=layer.confirm(text, {
  112. btn: ['确定', '取消'],
  113. title: "提示"
  114. }, function (index) {
  115. vm.findPatientSignSpecialistInfo(data)
  116. layer.close(current); //再执行关闭
  117. })
  118. } else {
  119. var text = data.patient_name+"患者暂未家签,请先提醒居民签约家庭医生"
  120. var current=layer.confirm(text, {
  121. btn: ['好, 我知道了', '取消'],
  122. title: "提示"
  123. }, function (index) {
  124. top.addRecoveryDownVue.isSignSpecialist(false)
  125. layer.close(current); //再执行关闭
  126. })
  127. }
  128. },
  129. getTeamPhoto: function(photo){
  130. return httpRequest.getImgUrl(photo);
  131. },
  132. //获取团队二维码
  133. createSpecialDoctorQrCode:function(){
  134. var vm=this
  135. var params = {
  136. doctorCode: docInfo.code,
  137. teamName: vm.name,
  138. teamCode: vm.id,
  139. };
  140. rehaAPI.createSpecialDoctorQrCode(params).then(function(res){
  141. if(res.status == 200) {
  142. vm.qrCodeImg = res.data
  143. } else {
  144. showErrorMessage(res.msg)
  145. }
  146. });
  147. },
  148. //判断居民是否签约专科医生
  149. findPatientSignSpecialistInfo: function(data) {
  150. var vm = this,
  151. params = {
  152. patient: data.patient_code,
  153. doctor: docInfo.code
  154. }
  155. recoverApi.findPatientSignSpecialistInfo(params).then(function(res){
  156. if(res.status == 200) {
  157. if(res.data.teamCode){
  158. if(res.data.teamCode==vm.teamInfo.id){ //签约团队与二维码团队一致
  159. top.addRecoveryDownVue.isSignSpecialist(true, data.idcard)
  160. }else{
  161. vm.createSpecialDoctorQrCode()
  162. }
  163. }
  164. } else {
  165. showErrorMessage(res.msg)
  166. }
  167. })
  168. },
  169. }
  170. })
  171. </script>
  172. </body>
  173. </html>