qita-doctor-homepage.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. // TODO 医生示例数据
  2. var doctorData = {"msg":"查询成功",data:{"id":"3502050100","consult":"",patient:"P123",photo:"",jobName:"主任医师",expertise:"中医内科疾病",introduce:"无",deptName:"骨科",hospitalName:"厦门市第一医院",title:"",name:"张敏敏",age:23,comment:"激光治疗红血丝治疗部位保持清洁,避免感染和摩擦;部位有痂皮的会自行脱落,不要手动进行抠除。",star:3,type:5,time:"2016-09-12 16:49:17",status:"",sex:0,doctorRead:""},"status":200};
  3. // TODO 临时构造plus对象,使得能够在浏览器中进行调试
  4. var plus = null;
  5. // 基本信息(包括userAgent、上个页面传递的数据)
  6. var baseInfo = null,
  7. // 基础环境信息(包括当前webview)
  8. baseEnv = null;
  9. var $baseInfoWrapper = $('#base_info_wrap'),
  10. $mingyiRoleWrapper = $('[data-role="mingyi"]'),
  11. $qitaRoleWrapper = $('[data-role="qitayisheng"]');
  12. // 获取基本信息(包括userAgent、上个页面传递的数据)
  13. var getBaseInfoPromise = function() {
  14. // 登录的相关信息
  15. var userAgent = plus && JSON.parse(plus.storage.getItem("userAgent"))
  16. return {
  17. userAgent: userAgent,
  18. // 上一个页面传递的数据
  19. accessData: baseEnv.webview.accessData
  20. }
  21. },
  22. // 获取基础环境信息
  23. getBaseEnvPromise = function () {
  24. var webview = plus.webview.currentWebview();
  25. var env = {
  26. webview: webview,
  27. // 点击“返回”的webveiw的id(由上一个页面传递)
  28. backTo: webview.backTo
  29. };
  30. return Promise.resolve().then(function(res) {
  31. return env;
  32. });
  33. },
  34. showBaseInfo = function(){
  35. // TODO getReqPromise(url,data)
  36. Promise.resolve().then(function(res) {
  37. // TODO 示例后台返回医生数据
  38. res = doctorData;
  39. if(res.status == 200) {
  40. return res.data;
  41. } else {
  42. mui.toast(res.msg);
  43. return null;
  44. }
  45. }).then(function(data) {
  46. if(data) {
  47. var html = template("base_info_tmpl", data);
  48. $baseInfoWrapper.html(html);
  49. // TODO 如果是进入的角色是名医
  50. // $mingyiRoleWrapper.show();
  51. // TODO 如果是进入的角色是其他医生
  52. // $qitaRoleWrapper.show();
  53. }
  54. }).catch(function(e) {
  55. console && console.error(e);
  56. });
  57. },
  58. // 点击“设置名医”按钮的处理
  59. setMingyi = function() {
  60. // TODO 示例医生姓名数据
  61. var doctorName = doctorData.data.name;
  62. var doctor = (baseInfo.accessData && baseInfo.accessData.doctor) || "";
  63. mui.confirm("是否确认将"+doctorName+"设置为名医?", "", ["取消", "确认"], function(e) {
  64. if(e.index == 0){
  65. // 点击“取消”处理
  66. } else {
  67. // 点击“确认”处理
  68. // TODO 发送请求getReqPromise(url,data)
  69. Promise.resolve().then(function(res) {
  70. if(res.status==200) {
  71. mui.toast("设置名医成功!");
  72. baseEnv.webview.reload(true);
  73. } else {
  74. mui.toast("设置名医失败!");
  75. }
  76. });
  77. }
  78. });
  79. },
  80. // 点击“取消名医”按钮的处理
  81. cancelMingyi = function() {
  82. // TODO 示例医生姓名数据
  83. var doctorName = doctorData.data.name;
  84. mui.confirm("取消名医后,该医生无法提供名医咨询服务,是否确认取消?", "", ["确认取消", "不了,谢谢"], function(e) {
  85. if(e.index == 0){
  86. // 点击“确认取消”处理
  87. // TODO 发送请求getReqPromise(url,data)
  88. Promise.resolve().then(function(res) {
  89. if(res.status==200) {
  90. mui.toast("取消成功!");
  91. baseEnv.webview.reload(true);
  92. } else {
  93. mui.toast("取消失败!");
  94. }
  95. });
  96. } else {
  97. // 点击“不了,谢谢”处理
  98. }
  99. });
  100. }
  101. // 绑定页面事件
  102. bindEvents = function () {
  103. };
  104. // 页面业务处理流程开始
  105. new Promise(function(resolve, reject) {
  106. // TODO 临时放开
  107. // resolve(true);
  108. if(plus) {
  109. resolve(true);
  110. } else {
  111. mui.plusReady(function() {
  112. // plus已经准备好,可以往下执行
  113. resolve(true);
  114. });
  115. }
  116. }).then(function() {
  117. // 获取基础环境信息
  118. return getBaseEnvPromise().then(function(env) {
  119. baseEnv = env;
  120. if(baseEnv.backTo) {
  121. backToWebviewById(baseEnv.backTo);
  122. }
  123. }).then(function() {
  124. // 获取登录医生信息
  125. baseInfo = getBaseInfoPromise();
  126. // 显示医生基本信息
  127. showBaseInfo();
  128. // 绑定页面事件
  129. bindEvents();
  130. })
  131. }).catch(function(e) {
  132. plus.nativeUI.closeWaiting();
  133. console && console.error(e);
  134. });
  135. template.helper("setPhoto", function(p) {
  136. return getImgUrl(p);
  137. });