qita-doctor-homepage.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. // 基本信息(包括userAgent、上个页面传递的数据)
  2. var baseInfo = null,
  3. // 基础环境信息(包括当前webview)
  4. baseEnv = null;
  5. var $baseInfoWrapper = $('#base_info_wrap'),
  6. $mingyiRoleWrapper = $('[data-role="mingyi"]'),
  7. $qitaRoleWrapper = $('[data-role="qitayisheng"]');
  8. // 获取基本信息(包括userAgent、上个页面传递的数据)
  9. var getBaseInfoPromise = function() {
  10. // 登录的相关信息
  11. var userAgent = plus && JSON.parse(plus.storage.getItem("userAgent"))
  12. return {
  13. userAgent: userAgent,
  14. // 上一个页面传递的数据
  15. accessData: baseEnv.webview.accessData
  16. }
  17. },
  18. // 获取基础环境信息
  19. getBaseEnvPromise = function () {
  20. var webview = plus.webview.currentWebview();
  21. var env = {
  22. webview: webview,
  23. // 点击“返回”的webveiw的id(由上一个页面传递)
  24. backTo: webview.backTo
  25. };
  26. return Promise.resolve().then(function(res) {
  27. return env;
  28. });
  29. },
  30. showBaseInfo = function(){
  31. // TODO getReqPromise(url,data)
  32. Promise.resolve().then(function(res) {
  33. // TODO 示例后台返回医生数据
  34. res = doctorData;
  35. if(res.status == 200) {
  36. return res.data;
  37. } else {
  38. mui.toast(res.msg);
  39. return null;
  40. }
  41. }).then(function(data) {
  42. if(data) {
  43. var html = template("base_info_tmpl", data);
  44. $baseInfoWrapper.html(html);
  45. // TODO 如果是进入的角色是名医
  46. // $mingyiRoleWrapper.show();
  47. // TODO 如果是进入的角色是其他医生
  48. // $qitaRoleWrapper.show();
  49. }
  50. }).catch(function(e) {
  51. console && console.error(e);
  52. });
  53. },
  54. // 点击“设置名医”按钮的处理
  55. setMingyi = function() {
  56. // TODO 示例医生姓名数据
  57. var doctorName = doctorData.data.name;
  58. var doctor = (baseInfo.accessData && baseInfo.accessData.doctor) || "";
  59. mui.confirm("是否确认将"+doctorName+"设置为名医?", "", ["取消", "确认"], function(e) {
  60. if(e.index == 0){
  61. // 点击“取消”处理
  62. } else {
  63. // 点击“确认”处理
  64. // TODO 发送请求getReqPromise(url,data)
  65. Promise.resolve().then(function(res) {
  66. if(res.status==200) {
  67. mui.toast("设置名医成功!");
  68. baseEnv.webview.reload(true);
  69. } else {
  70. mui.toast("设置名医失败!");
  71. }
  72. });
  73. }
  74. });
  75. },
  76. // 点击“取消名医”按钮的处理
  77. cancelMingyi = function() {
  78. // TODO 示例医生姓名数据
  79. var doctorName = doctorData.data.name;
  80. mui.confirm("取消名医后,该医生无法提供名医咨询服务,是否确认取消?", "", ["确认取消", "不了,谢谢"], function(e) {
  81. if(e.index == 0){
  82. // 点击“确认取消”处理
  83. // TODO 发送请求getReqPromise(url,data)
  84. Promise.resolve().then(function(res) {
  85. if(res.status==200) {
  86. mui.toast("取消成功!");
  87. baseEnv.webview.reload(true);
  88. } else {
  89. mui.toast("取消失败!");
  90. }
  91. });
  92. } else {
  93. // 点击“不了,谢谢”处理
  94. }
  95. });
  96. }
  97. // 绑定页面事件
  98. bindEvents = function () {
  99. };
  100. // 页面业务处理流程开始
  101. new Promise(function(resolve, reject) {
  102. // TODO 临时放开
  103. // resolve(true);
  104. if(plus) {
  105. resolve(true);
  106. } else {
  107. mui.plusReady(function() {
  108. // plus已经准备好,可以往下执行
  109. resolve(true);
  110. });
  111. }
  112. }).then(function() {
  113. // 获取基础环境信息
  114. return getBaseEnvPromise().then(function(env) {
  115. baseEnv = env;
  116. if(baseEnv.backTo) {
  117. backToWebviewById(baseEnv.backTo);
  118. }
  119. }).then(function() {
  120. // 获取登录医生信息
  121. baseInfo = getBaseInfoPromise();
  122. // 显示医生基本信息
  123. showBaseInfo();
  124. // 绑定页面事件
  125. bindEvents();
  126. })
  127. }).catch(function(e) {
  128. plus.nativeUI.closeWaiting();
  129. console && console.error(e);
  130. });
  131. template.helper("setPhoto", function(p) {
  132. return getImgUrl(p);
  133. });