sign_manage.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  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 rel="stylesheet" type="text/css" href="../css/sign_manage.css"/>
  10. </head>
  11. <body class="m0">
  12. <div id="app" v-cloak>
  13. <div class="re-title no-select">
  14. <div class="name">签约管理</div>
  15. </div>
  16. <div class="c-h100 p10">
  17. <div class="c-h100 c-border">
  18. <div class="lh28 pt10 plr10 clearfix">
  19. <div class="c-position-r fl mr20 mb10">
  20. 签约状态:<span class="list-tit set-bg cur-pit c-999" @click="selectStatus()">{{statusTit}}</span>
  21. <ul class="pull-list m0 p0 c-border-l c-border-r c-border-b" v-if="isShowList">
  22. <li class="cur-pit c-999" v-for="(status, index) in statusArr" :key="index" @click="selectLi(status)">{{status.statusName}}</li>
  23. </ul>
  24. </div>
  25. <p class="fl plr5 c-border mb10"><input type="text" v-model="keyword" class="inp c-999" placeholder="搜索居民姓名、身份证"><span class="sosou-btn" @click="suosou()"></span></p>
  26. <p class="fr btn plr10 mb10 c-fff h30 bgc-12b7f5 cur-pit" v-if="statusCode == 3 && isFocus" @click="remainFocus(1)">全部提醒关注</p>
  27. <p class="fr btn plr10 mb10 c-fff h30 bgc-12b7f5 cur-pit" v-if="statusCode == 5 && isMoney" @click="remainMoney(1)">全部提醒缴费</p>
  28. </div>
  29. <ul class="c-border-t lh40 p0 c-t-center">
  30. <li class="c-border-b c-999 clearfix">
  31. <span class="fl w-14">居民姓名</span>
  32. <span class="fl w-20-1 c-border-l">{{ statusCode == 3 ? "签约时间" : (statusCode == 1 ? "申请时间" : "预签约时间")}}</span>
  33. <span class="fl w-10-1 c-border-l">性别</span>
  34. <span class="fl w-10-1 c-border-l">年龄</span>
  35. <span class="fl w-10-1 c-border-l">类型</span>
  36. <span class="fl w-18-1 c-border-l">联系方式</span>
  37. <span class="fl w-18-1 c-border-l">操作</span>
  38. </li>
  39. <li v-for="(list, index) in resultList" :key="index" class="c-border-b clearfix">
  40. <span class="fl w-14">{{list.patientName || ""}}</span>
  41. <span class="fl w-20-1 c-border-l">{{list.applyDate || "无时间记录"}}</span>
  42. <span class="fl w-10-1 c-border-l">{{list.sex == 1 ? '男' : '女'}}</span>
  43. <span class="fl w-10-1 c-border-l">{{list.age || 0}}岁</span>
  44. <span class="fl w-10-1 c-border-l">{{+list.renewFlag ? '续签' : '新签'}}</span>
  45. <span class="fl w-18-1 c-border-l">{{list.mobile || "无联系方式"}}</span>
  46. <p class="fl w-18-1 c-border-l">
  47. <span v-if="statusCode == 1" class="mr10 c-12b7f5 cur-pit" @click="handle(list)">处理</span>
  48. <span v-if="list.status == 1" class="mr10 c-12b7f5 cur-pit" @click="looking(list)">查看</span>
  49. <span v-if="list.expensesRemindStatus == 0" class="mr10 c-12b7f5 cur-pit" @click="remainMoney(0, list)">提醒缴费</span>
  50. <span v-if="!list.openid && list.wechatFocusRemind == 0" class="c-12b7f5 cur-pit" @click="remainFocus(0, list)">提醒关注</span>
  51. <span v-if="list.expensesRemindStatus == 1 || (list.wechatFocusRemind == 1 && !list.openid)" class="c-999">已提醒</span>
  52. </p>
  53. </li>
  54. </ul>
  55. <div class="mt20 mb10 lh24 pr30 c-t-center clearfix" v-show="resultList.length">
  56. <div class="fr ml10 clearfix">
  57. <span class="fl c-border w40 m0">
  58. <input class="fl w40 h22 c-f999" v-model="editPage" />
  59. </span>
  60. <span class="fr bgc-12b7f5 c-fff c-f12 btn sure-btn" @click="setPage(editPage)">跳转</span>
  61. </div>
  62. <span class="fr btn page-btn ml10" @click="setPage(page + 2)" v-if="page == 1 && (page + 2) <= allPage">{{page + 2}}</span>
  63. <span class="fr btn page-btn ml10" @click="setPage(page + 1)" v-if="(page + 1) <= allPage">{{page + 1}}</span>
  64. <span class="fr btn page-btn ml10 btn-active">{{page}}</span>
  65. <span class="fr btn page-btn ml10" @click="setPage(page - 1)" v-if="page != 1">{{page - 1}}</span>
  66. <span class="fr btn page-btn ml10" @click="setPage(page - 2)" v-if="page > 2 && page == allPage">{{page - 2}}</span>
  67. <span class="fr">当前第{{page}}页,共{{allPage}}页,{{allRecords}}条数据</span>
  68. </div>
  69. <p class="pt60 c-t-center c-999 c-f24" v-show="!resultList.length">无数据</p>
  70. </div>
  71. </div>
  72. </div>
  73. <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
  74. <script src="../../../js/jquery-2.2.4.js"></script>
  75. <script src="../../../plugins/layer/layer.min.js"></script>
  76. <script src="../../../js/bootstrap.min.js"></script>
  77. <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
  78. <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
  79. <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
  80. <script src="../../../api/http-request.js" type="text/javascript"></script>
  81. <script src="../../../api/sign_api.js" type="text/javascript"></script>
  82. <script type="text/javascript">
  83. var doctorType = JSON.parse(window.localStorage.getItem('wlyyAgent')).doctorType
  84. function showSuccessMessage(msg) {
  85. layer.msg(msg, {
  86. icon: 1
  87. })
  88. }
  89. function showErrorMessage(msg) {
  90. layer.msg(msg, {
  91. icon: 5
  92. })
  93. }
  94. function showWarningMessage(msg) {
  95. layer.msg(msg, {
  96. icon: 2
  97. })
  98. }
  99. function showInfoMessage(msg) {
  100. layer.msg(msg, {
  101. icon: 6
  102. })
  103. }
  104. new Vue({
  105. el: "#app",
  106. data: {
  107. isShowList: false,
  108. keyword: "",
  109. isFocus: false,
  110. isMoney: false,
  111. statusTit: '已签约',
  112. statusCode: 3,
  113. statusArr: [{
  114. statusName: '待签约',
  115. statusCode: '1'
  116. }, {
  117. statusName: '待缴费',
  118. statusCode: '5'
  119. }, {
  120. statusName: '已签约',
  121. statusCode: '3'
  122. }],
  123. resultList: [],
  124. editPage: null,
  125. page: 1,
  126. allPage: null,
  127. allRecords: null,
  128. allCount: null
  129. },
  130. mounted: function() {
  131. this.isRemainFocus();
  132. this.isRemainMoney();
  133. this.signCount();
  134. },
  135. methods: {
  136. signCount: function() {
  137. var vm = this,
  138. loadding = layer.load(0, {shade: false});
  139. signAPI.signCount().then(function(res) {
  140. layer.close(loadding)
  141. if(res.status == 200) {
  142. vm.allCount = res.data;
  143. vm.signList();
  144. } else {
  145. showErrorMessage(res.msg);
  146. }
  147. })
  148. },
  149. isRemainFocus: function() {
  150. var vm = this,
  151. loadding = layer.load(0, {shade: false});
  152. signAPI.isRemainFocus().then(function(res) {
  153. layer.close(loadding)
  154. if(res.status == 200) {
  155. if(!res.data) {
  156. vm.isFocus = true;
  157. }
  158. } else {
  159. showErrorMessage(res.msg);
  160. }
  161. })
  162. },
  163. isRemainMoney: function() {
  164. var vm = this,
  165. loadding = layer.load(0, {shade: false});
  166. signAPI.isRemainMoney().then(function(res) {
  167. layer.close(loadding)
  168. if(res.status == 200) {
  169. if(!res.data) {
  170. vm.isMoney = true;
  171. }
  172. } else {
  173. showErrorMessage(res.msg);
  174. }
  175. })
  176. },
  177. signList: function() {
  178. var vm = this
  179. var params = {
  180. doctorType: doctorType,
  181. status: vm.statusCode, //处理方式(1待签约 5待缴费 3已签约)
  182. page: vm.page,
  183. pageSize: 10,
  184. patientInfo: vm.keyword
  185. }
  186. var loadding = layer.load(0, {shade: false});
  187. signAPI.signList(params).then(function(res) {
  188. layer.close(loadding)
  189. if(res.status == 200) {
  190. if(vm.statusCode == 3) {
  191. vm.allRecords = vm.allCount.signCount
  192. } else if(vm.statusCode == 5) {
  193. vm.allRecords = vm.allCount.waitPayCount
  194. } else {
  195. vm.allRecords = vm.allCount.waitSignCount
  196. }
  197. vm.allPage = Math.ceil(vm.allRecords / 10)
  198. vm.resultList = res.data.list
  199. } else {
  200. showErrorMessage(res.msg);
  201. }
  202. })
  203. },
  204. selectStatus: function() {
  205. this.isShowList = !this.isShowList;
  206. },
  207. selectLi: function(data) {
  208. this.isShowList = false;
  209. if (this.statusTit === data.statusName) {
  210. return false;
  211. }
  212. this.page = 1;
  213. this.statusTit = data.statusName;
  214. this.statusCode = data.statusCode;
  215. this.signCount();
  216. },
  217. suosou: function() {
  218. this.page = 1;
  219. this.signList();
  220. },
  221. handle: function(list) {
  222. var status = list.renewFlag == 1 || list.renewFlag == 2 ? 1 : 0;
  223. layer.open({
  224. type: 2,
  225. area: ['80%', '648px'],
  226. shade: 0.5,
  227. title: '签约申请处理',
  228. fixed: true, //不固定
  229. maxmin: true,
  230. closeBtn: 1,
  231. shift: 5,
  232. shadeClose: false, //点击遮罩关闭层
  233. content: "sign_handle.html?patientCode="+list.patientCode+'&signCode='+list.code + '&msgId=' + list.id + '&status=' + status
  234. });
  235. },
  236. looking: function(list) {
  237. if(this.statusCode == 3) {
  238. layer.open({
  239. type: 2,
  240. area: ['80%', '648px'],
  241. shade: 0.5,
  242. title: '签约申请详情',
  243. fixed: true, //不固定
  244. maxmin: true,
  245. closeBtn: 1,
  246. shift: 5,
  247. shadeClose: false, //点击遮罩关闭层
  248. content: "sign_detail.html?patientCode="+list.patientCode+'&signCode='+list.code + '&msgId=' + list.id
  249. });
  250. } else {
  251. // 居民信息页
  252. }
  253. },
  254. remainMoney: function(status, list) {
  255. var vm = this,
  256. loading = layer.load(0, {shade: false})
  257. param = {
  258. patient: list ? list.patientCode : "",
  259. all: status
  260. }
  261. signAPI.remainMoney(param).then(function(res) {
  262. layer.close(loading)
  263. if(res.status == 200) {
  264. showSuccessMessage(res.msg)
  265. vm.signList()
  266. } else {
  267. showErrorMessage(res.msg);
  268. }
  269. })
  270. },
  271. remainFocus: function(status, list) {
  272. var vm = this,
  273. loading = layer.load(0, {shade: false})
  274. param = {
  275. patient: list ? list.patientCode : "",
  276. all: status
  277. }
  278. signAPI.remainFocus(param).then(function(res) {
  279. layer.close(loading)
  280. if(res.status == 200) {
  281. showSuccessMessage(res.msg)
  282. vm.signList()
  283. } else {
  284. showErrorMessage(res.msg);
  285. }
  286. })
  287. },
  288. setPage: function(key) {
  289. if (+key && +key > 0 && +key <= this.allPage) {
  290. this.page = +key;
  291. this.signList()
  292. } else {
  293. showWarningMessage('无效的页数跳转!');
  294. }
  295. }
  296. }
  297. })
  298. </script>
  299. </body>
  300. </html>