registration.js 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182
  1. //@ sourceURL=registration.js
  2. var $dataTableHot;
  3. //病人下拉选当前页记录
  4. var pageIndex = 0;
  5. //判断病人列表是否在加载中,防止重复加载
  6. var msg_list_loading = false;
  7. var TableInit = function () {
  8. var oTableInit = new Object();
  9. //初始化Table
  10. oTableInit.Init = function () {
  11. $dataTableHot = $('#tb_fee_info').bootstrapTable({
  12. url: '', //请求后台的URL(*)
  13. method: 'post', //请求方式(*)
  14. toolbar: '#toolbar', //工具按钮用哪个容器
  15. striped: true, //是否显示行间隔色
  16. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  17. pagination: false, //是否显示分页(*)
  18. sortable: true, //是否启用排序
  19. sortOrder: "asc", //排序方式
  20. queryParams: oTableInit.queryParams,//传递参数(*)
  21. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  22. pageNumber: 1, //初始化加载第一页,默认第一页
  23. pageSize: 10, //每页的记录行数(*)
  24. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  25. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  26. strictSearch: true,
  27. showColumns: false, //是否显示所有的列
  28. showRefresh: false, //是否显示刷新按钮
  29. minimumCountColumns: 2, //最少允许的列数
  30. clickToSelect: true, //是否启用点击选中行
  31. uniqueId: "ID", //每一行的唯一标识,一般为主键列
  32. showToggle: false, //是否显示详细视图和列表视图的切换按钮
  33. cardView: false, //是否显示详细视图
  34. detailView: false,
  35. ajaxOptions: {
  36. headers: {
  37. 'Accept': 'application/json',
  38. 'Authorization': 'Bearer ' + localStorage.getItem("token")
  39. }
  40. },
  41. columns: [
  42. {
  43. checkbox: true
  44. }, {
  45. field: 'name',
  46. title: '名称',
  47. align: "center",
  48. valign: 'middle',
  49. sortable: true
  50. }, {
  51. field: 'money',
  52. title: '金额(元)',
  53. align: "center",
  54. valign: 'middle',
  55. sortable: true
  56. }, {
  57. field: 'moneyReceived',
  58. title: '实收金额(元)',
  59. align: "center",
  60. valign: 'middle',
  61. sortable: true
  62. }],
  63. responseHandler: function (res) {
  64. if (res == '401' || res == 401) {
  65. window.location.href = '/thmz/login/view'
  66. return;
  67. }
  68. var ress = eval(res);
  69. if (ress.code == -1) {
  70. new PNotify({
  71. title: '错误提示',
  72. text: ress.message,
  73. type: 'error',
  74. hide: false,
  75. styling: 'bootstrap3'
  76. });
  77. return {
  78. "total": 0,//总页数
  79. "rows": {} //数据
  80. };
  81. }
  82. return {
  83. "total": ress.pageViewVO.total,//总页数
  84. "rows": ress.pageViewVO.data //数据
  85. };
  86. },
  87. });
  88. };
  89. //得到查询的参数
  90. oTableInit.queryParams = function (params) {
  91. var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
  92. pageSize: params.limit, //页面大小
  93. pageIndex: params.offset / params.limit, //页码
  94. orderByCase: $("#orderByCase").val()
  95. };
  96. return temp;
  97. };
  98. return oTableInit;
  99. };
  100. $(function () {
  101. initGenderSelect();
  102. initResponceTypeSelect();
  103. var birthDay = $('#birthDayGroup').datetimepicker({
  104. format: 'yyyy-mm-dd',
  105. language: 'zh-CN',
  106. minView: "month",
  107. }).on('changeDate', changeDate);
  108. var editUserBirthDay = $('#editUserBirthDayGroup').datetimepicker({
  109. format: 'yyyy-mm-dd',
  110. language: 'zh-CN',
  111. minView: "month",
  112. });
  113. //设置挂号窗口的高度
  114. var width = $('#confirmFee').css("width");
  115. var widthNum = parseInt(width);
  116. widthNum -= 24;
  117. $("#confirmFee").css("width", widthNum + "px");
  118. init_daterangepicker();
  119. //1.初始化Table
  120. var oTable = new TableInit();
  121. oTable.Init();
  122. formatCheck();
  123. //默认光标在卡号输入框
  124. $("#cardNo").focus();
  125. //根据病人姓名输入框内容动态加载病人列表
  126. initUserList();
  127. //卡号输入改变事件
  128. cardNoChange();
  129. //卡号输入改变事件
  130. userNameChange();
  131. //数据校验
  132. init_validator();
  133. //时间区间
  134. initMzWorkTime();
  135. //初始门诊收银方式下拉选
  136. initChequeType("payType");
  137. /**
  138. * 清空
  139. */
  140. $("#clearRegistration").on("click", function (t) {
  141. $("#cardNo").val(null);
  142. $("#cardNo").attr("title", null);
  143. $("#userName").val(null);
  144. $("#age").val(null);
  145. $("#gender").selectpicker('val', 1);
  146. $("#gender").selectpicker('refresh');
  147. $("#birthDay").val(null);
  148. $("#birthDay").attr("title", null);
  149. $("#phoneNum").val(null);
  150. $("#phoneNum").attr("title", null);
  151. $("#patientsNature").selectpicker('val', '01');//默认选中
  152. $('#patientsNature').selectpicker('refresh');
  153. $("#idCard").val(null);
  154. $("#idCard").attr("title", null);
  155. $("#address").val(null);
  156. $("#patientId").val(null);
  157. $("#editUser").hide();
  158. //默认光标在卡号输入框
  159. $("#cardNo").focus();
  160. initMzWorkTime();
  161. readonlyOrNot(false);
  162. });
  163. /**
  164. * 增加收款方式按钮事件
  165. */
  166. $("#addPayType").on("click", function (t) {
  167. var payTypeIndex = $("#payTypeIndex").val();
  168. var payTypeId = "payType_" + payTypeIndex;
  169. var html = '<div class="item form-group"><div class="col-md-12 col-sm-12 col-xs-12"><div class="col-md-2 col-sm-2 col-xs-12"></div><label class="col-md-3 col-sm-3 col-xs-12"><select class="form-control selectpicker show-tick" required="true" id="' + payTypeId + '"></select></label><div class="col-md-3 col-sm-3 col-xs-12"><input class="form-control col-md-5 col-xs-12" type="number" data-placement="bottom-right" min="0"></div><a style="line-height: 34px;cursor: pointer;" onclick="closeThisParent(this)"><i class="fa fa-close"></i></a></div></div>';
  170. $("#changeAmountParent").before(html);
  171. initChequeType(payTypeId)
  172. payTypeIndex = payTypeIndex + 1;
  173. $("#payTypeIndex").val(payTypeIndex);
  174. });
  175. // //当ic卡号输入框失去光标后,重置光标到卡号输入框
  176. // $("#cardNo").blur(function () {
  177. // var focus = !($("#userName").is(":focus") || $("#age").is(":focus") || $("#birthDay").is(":focus") || $("#phoneNum").is(":focus") || $("#idCard").is(":focus") || $("#address").is(":focus"));
  178. // if (focus && $("#cardNo").val() == null || $("#cardNo").val() == "") {
  179. // //默认光标在卡号输入框
  180. // $("#cardNo").focus();
  181. // }
  182. // });
  183. /**
  184. * 保存挂号信息
  185. */
  186. $("#saveConfirmFee").on("click",function (t) {
  187. var patientId=$("#patientId").val();
  188. if(patientId==null || patientId==""){
  189. savePatient();
  190. }else {
  191. saveMzyReqrec();
  192. }
  193. });
  194. /**
  195. * 设置窗口号
  196. */
  197. $("#editWindows").on("click",function (t) {
  198. $.ajax({
  199. type: "GET",
  200. url: '/thmz/getLastWindowsByCurrentUser',
  201. contentType: "application/json;charset=UTF-8",
  202. dataType: "json",
  203. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  204. success: function (res) {
  205. if (res == '401' || res == 401) {
  206. window.location.href = '/thmz/login/view'
  207. return;
  208. }
  209. if (res.code == 0) {
  210. $("#windowsNum").val(res.data.windowsNo)
  211. } else {
  212. new PNotify({
  213. title: '错误提示',
  214. text: res.message,
  215. type: 'error',
  216. hide: true,
  217. styling: 'bootstrap3'
  218. });
  219. }
  220. }
  221. });
  222. $("#editWindowsModal").modal();
  223. });
  224. });
  225. /**
  226. * 初始化性别下拉选
  227. */
  228. function initGenderSelect() {
  229. $(".selectpicker").selectpicker({
  230. dropuAuto: false
  231. });
  232. var gender = '<option value="1">男</option><option value="2">女</option><option value="0">未知</option>';
  233. $('#gender').html(gender);
  234. $('#gender').selectpicker('refresh');
  235. $('#editUserGender').html(gender);
  236. $('#editUserGender').selectpicker('refresh');
  237. }
  238. /**
  239. * 初始化病人身份类别下拉选
  240. */
  241. function initResponceTypeSelect() {
  242. $(".selectpicker").selectpicker({
  243. dropuAuto: false
  244. });
  245. $.ajax({
  246. type: "GET",
  247. url: '/thmz/getMzResponceType',
  248. contentType: "application/json;charset=UTF-8",
  249. dataType: "json",
  250. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  251. success: function (res) {
  252. if (res == '401' || res == 401) {
  253. window.location.href = '/thmz/login/view'
  254. return;
  255. }
  256. if (res.code == 0) {
  257. res.data.forEach(function (item, index) {
  258. var html = '<option value="' + item.code + '">' + item.name + '</option>';
  259. $('#patientsNature').append(html);
  260. $('#editUserPatientsNature').append(html);
  261. });
  262. $('#patientsNature').selectpicker('refresh');
  263. $('#editUserPatientsNature').selectpicker('refresh');
  264. } else {
  265. new PNotify({
  266. title: '错误提示',
  267. text: res.message,
  268. type: 'error',
  269. hide: false,
  270. styling: 'bootstrap3'
  271. });
  272. }
  273. }
  274. });
  275. }
  276. /**
  277. * 初始科室下拉选
  278. * @param ampm 时间段区间
  279. */
  280. function initDeptPlus() {
  281. //科室列表
  282. $.ajax({
  283. type: "GET",
  284. url: '/thmz/getUnitCodeByRequestDay?ampm=' + $("#ampm").val(),
  285. dataType: "json",
  286. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  287. success: function (data) {
  288. if (data == '401' || data == 401) {
  289. window.location.href = '/thmz/login/view'
  290. return;
  291. }
  292. var html = '';
  293. $.each(data.data, function (commentIndex, comment) {
  294. html += '<option value="' + comment.code + '">' + comment.name + '</option>';
  295. });
  296. $('#deptNo').empty();
  297. $('#deptNo').html(html);
  298. $('#deptNo').selectpicker('refresh');
  299. $('#chargeType').empty();
  300. $('#chargeType').selectpicker('refresh');
  301. emptyInput();
  302. }
  303. });
  304. }
  305. /**
  306. * 初始医生下拉选
  307. * @param ampm 时间段区间
  308. */
  309. function initEmployee() {
  310. //科室列表
  311. $.ajax({
  312. type: "GET",
  313. url: '/thmz/getDoctorCodeByRequestDay?unitCode=' + $('#deptNo').val() + "&ampm=" + $("#ampm").val() + "&chargeType=" + $("#chargeType").val(),
  314. dataType: "json",
  315. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  316. success: function (res) {
  317. if (res == '401' || res == 401) {
  318. window.location.href = '/thmz/login/view'
  319. return;
  320. }
  321. var html = '';
  322. var flag = false;
  323. $.each(res.data, function (commentIndex, comment) {
  324. html += '<option value="' + comment.employee.employeeCode + '" data-chargeType="' + comment.chargeType + '" data-checkFee="' + comment.checkFee + '" data-mzyRequestId="' + comment.mzyRequestId + '">' + comment.employee.employeeName + '</option>';
  325. if (comment.employeeCode == -1) {
  326. flag = true;
  327. }
  328. });
  329. $('#doctor').empty();
  330. $('#doctor').html(html);
  331. $('#doctor').selectpicker('refresh');
  332. validator.checkAll($("#regi_form"));
  333. if (flag) {
  334. //如果有无需选择医生的选项,默认选择
  335. $('#doctor').selectpicker('val', -1);
  336. $('#doctor').selectpicker('refresh');
  337. fitFee();
  338. }
  339. }
  340. });
  341. }
  342. /**
  343. * 初始门诊时间区间下拉选
  344. */
  345. function initMzWorkTime() {
  346. $.ajax({
  347. type: "GET",
  348. url: '/thmz/getMzWorkTime',
  349. dataType: "json",
  350. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  351. success: function (res) {
  352. if (res == '401' || res == 401) {
  353. window.location.href = '/thmz/login/view'
  354. return;
  355. }
  356. var html = '';
  357. var ampm = null;
  358. $.each(res.data, function (commentIndex, comment) {
  359. html += '<option value="' + comment.code + '">' + comment.name + '</option>';
  360. if (ampm == null || (ampm != "a" && ampm != "p")) {
  361. var startTime = paseToFullTime(comment.startTime);
  362. var endTime = paseToFullTime(comment.endTime);
  363. if (range(startTime, endTime)) {
  364. ampm = comment.code;
  365. }
  366. }
  367. });
  368. $('#ampm').empty(); //清空resText里面的所有内容
  369. $('#ampm').html(html);
  370. $('#ampm').selectpicker('refresh');
  371. $("#ampm").selectpicker('val', ampm);
  372. $('#ampm').selectpicker('refresh');
  373. initDeptPlus();
  374. }
  375. });
  376. }
  377. /**
  378. * 初始门诊号别下拉选
  379. */
  380. function initChargeType() {
  381. $.ajax({
  382. type: "GET",
  383. url: '/thmz/getChargeTypeByRequestDay?unitCode=' + $('#deptNo').val() + "&ampm=" + $("#ampm").val(),
  384. dataType: "json",
  385. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  386. success: function (res) {
  387. if (res == '401' || res == 401) {
  388. window.location.href = '/thmz/login/view'
  389. return;
  390. }
  391. var html = '';
  392. $.each(res.data, function (commentIndex, comment) {
  393. html += '<option value="' + comment.code + '">' + comment.name + '</option>';
  394. });
  395. $('#chargeType').empty(); //清空resText里面的所有内容
  396. $('#chargeType').html(html);
  397. $('#chargeType').selectpicker('refresh');
  398. validator.checkAll($("#regi_form"));
  399. emptyInput();
  400. }
  401. });
  402. }
  403. /**
  404. * 设置挂号费等费用
  405. */
  406. function fitFee() {
  407. var chargeType = $('#doctor').find("option:selected").attr('data-chargeType');
  408. var checkFee = $('#doctor').find("option:selected").attr('data-checkFee');
  409. $("#checkFee").val(checkFee);
  410. $("#amountMoney").text(checkFee);
  411. $("#amountMoneyConfirm").text(checkFee);
  412. $("#realMoney").val(checkFee);
  413. $("#cash").val(checkFee);
  414. $("#changeAmount").val(0);
  415. $.ajax({
  416. type: "GET",
  417. url: '/thmz/getMzChargeTypeByCode?code=' + chargeType,
  418. dataType: "json",
  419. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  420. success: function (res) {
  421. if (res == '401' || res == 401) {
  422. window.location.href = '/thmz/login/view'
  423. return;
  424. }
  425. $("#registrationFee").val(res.data.reqFee);
  426. $("#hospitalFee").val(res.data.clinicFee);
  427. checkFee = parseFloat(checkFee) + parseFloat(res.data.reqFee) + parseFloat(res.data.clinicFee);
  428. $("#amountMoney").text(checkFee);
  429. $("#amountMoneyConfirm").text(checkFee);
  430. $("#realMoney").val(checkFee);
  431. $("#cash").val(checkFee);
  432. }
  433. });
  434. }
  435. /**
  436. * 初始门诊收银方式下拉选
  437. */
  438. function initChequeType(payType) {
  439. $.ajax({
  440. type: "GET",
  441. url: '/thmz/getAllZdChequeTypeForMz',
  442. dataType: "json",
  443. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  444. success: function (res) {
  445. if (res == '401' || res == 401) {
  446. window.location.href = '/thmz/login/view'
  447. return;
  448. }
  449. var html = '';
  450. $.each(res.data, function (commentIndex, comment) {
  451. html += '<option value="' + comment.code + '">' + comment.name + '</option>';
  452. });
  453. $('#' + payType).empty();
  454. $('#' + payType).html(html);
  455. $('#' + payType).selectpicker('refresh');
  456. }
  457. });
  458. }
  459. /**
  460. * 日期值改变修改年龄字段
  461. * @param ev
  462. */
  463. function changeDate(ev) {
  464. }
  465. /**
  466. * 列表类型按钮切换事件
  467. * @param object
  468. */
  469. function titleButtonChange(object) {
  470. $("#regi_List_btn_group").find("button").each(function (index, element) {
  471. if ($(element).hasClass("btn-primary")) {
  472. $(element).removeClass("btn-primary").addClass("btn-default");
  473. }
  474. });
  475. $(object).removeClass("btn-default").addClass("btn-primary");
  476. }
  477. /**
  478. * 表格类型切换事件 卡片展示或者列表形式
  479. */
  480. function listTypeChange(object) {
  481. var indexNum = 0;
  482. $("#regi_List_type").find("button").each(function (index, element) {
  483. if ($(element).hasClass("btn-primary")) {
  484. $(element).removeClass("btn-primary").addClass("btn-default");
  485. }
  486. if (object == element) {
  487. indexNum = index;
  488. }
  489. });
  490. $(object).removeClass("btn-default").addClass("btn-primary");
  491. if (indexNum == 1) {
  492. $('#tb_regi_list').bootstrapTable({
  493. url: '', //请求后台的URL(*)
  494. method: 'post', //请求方式(*)
  495. toolbar: '#toolbar', //工具按钮用哪个容器
  496. striped: true, //是否显示行间隔色
  497. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  498. pagination: true, //是否显示分页(*)
  499. sortable: true, //是否启用排序
  500. sortOrder: "asc", //排序方式
  501. queryParams: this.queryParams,//传递参数(*)
  502. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  503. pageNumber: 1, //初始化加载第一页,默认第一页
  504. pageSize: 10, //每页的记录行数(*)
  505. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  506. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  507. strictSearch: true,
  508. showColumns: false, //是否显示所有的列
  509. showRefresh: false, //是否显示刷新按钮
  510. minimumCountColumns: 2, //最少允许的列数
  511. clickToSelect: true, //是否启用点击选中行
  512. uniqueId: "ID", //每一行的唯一标识,一般为主键列
  513. showToggle: false, //是否显示详细视图和列表视图的切换按钮
  514. cardView: false, //是否显示详细视图
  515. detailView: false,
  516. ajaxOptions: {
  517. headers: {
  518. 'Accept': 'application/json',
  519. 'Authorization': 'Bearer ' + localStorage.getItem("token")
  520. }
  521. },
  522. columns: [
  523. {
  524. field: 'name',
  525. title: '名称',
  526. align: "center",
  527. valign: 'middle',
  528. sortable: true
  529. }, {
  530. field: 'money',
  531. title: '金额(元)',
  532. align: "center",
  533. valign: 'middle',
  534. sortable: true
  535. }, {
  536. field: 'moneyReceived',
  537. title: '实收金额(元)',
  538. align: "center",
  539. valign: 'middle',
  540. sortable: true
  541. }],
  542. responseHandler: function (res) {
  543. if (res == '401' || res == 401) {
  544. window.location.href = '/thmz/login/view'
  545. return;
  546. }
  547. var ress = eval(res);
  548. if (ress.code == -1) {
  549. new PNotify({
  550. title: '错误提示',
  551. text: ress.message,
  552. type: 'error',
  553. hide: false,
  554. styling: 'bootstrap3'
  555. });
  556. return {
  557. "total": 0,//总页数
  558. "rows": {} //数据
  559. };
  560. }
  561. return {
  562. "total": ress.pageViewVO.total,//总页数
  563. "rows": ress.pageViewVO.data //数据
  564. };
  565. },
  566. });
  567. } else {
  568. $('#tb_regi_list').bootstrapTable("destroy");
  569. }
  570. }
  571. /**
  572. * 打开编辑挂号信息窗口
  573. * @param data
  574. */
  575. function editRegistration(data) {
  576. $("#editRegiModal").modal();
  577. }
  578. /**
  579. * 打开编辑用户信息窗口
  580. * @param data
  581. */
  582. function editUserModal(data) {
  583. $("#editUserModal").modal();
  584. }
  585. /**
  586. * 打开退费信息窗口
  587. * @param data
  588. */
  589. function backNoModal(data) {
  590. $("#backNoModal").modal();
  591. }
  592. /**
  593. * 打开打印窗口
  594. * @param data
  595. */
  596. function printOrPreviewModal(data) {
  597. $("#printOrPreviewModal").modal();
  598. }
  599. /**
  600. * 打开打印内容窗口
  601. * @param data
  602. */
  603. function printModal(data) {
  604. $("#printOrPreviewModal").modal("hide");
  605. $("#printModal").modal();
  606. }
  607. /**
  608. * 打开收费窗口
  609. * @param data
  610. */
  611. function confirmFeeModal() {
  612. var validatorResult = validator.checkAll($("#regi_form"));
  613. if (!validatorResult) {
  614. return;
  615. }
  616. var prevAll = $("#changeAmountParent").prevAll();
  617. while (prevAll.length > 2) {
  618. $("#changeAmountParent").prev().remove();
  619. prevAll = $("#changeAmountParent").prevAll();
  620. }
  621. $("#realMoney").val($("#amountMoneyConfirm").text());
  622. $("#cash").val($("#amountMoneyConfirm").text());
  623. $("#confirmFeeModal").modal();
  624. }
  625. /**
  626. * checkBox样式
  627. */
  628. function formatCheck() {
  629. if ($("input.flat")[0]) {
  630. $(document).ready(function () {
  631. $('input.flat').iCheck({
  632. checkboxClass: 'icheckbox_flat-blue',
  633. radioClass: 'iradio_flat-blue'
  634. });
  635. });
  636. }
  637. }
  638. /**
  639. * 卡号有变化后查询病人信息
  640. */
  641. function queryUserInfoByCardNo() {
  642. var cardNo = $("#cardNo").val();
  643. if (cardNo.length == 8) {
  644. $("#cardNo").attr("title", cardNo);
  645. $.ajax({
  646. type: "GET",
  647. url: '/thmz/getByIcCardNo?icCardNo=' + cardNo,
  648. contentType: "application/json;charset=UTF-8",
  649. dataType: "json",
  650. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  651. success: function (res) {
  652. if (res == '401' || res == 401) {
  653. window.location.href = '/thmz/login/view'
  654. return;
  655. }
  656. if (res.code == 0) {
  657. if (res.data != null) {
  658. $("#cardNo").blur();
  659. $("#userName").val(res.data.name);
  660. $("#userName").blur();
  661. $("#userNameReadOnly").val(res.data.name);
  662. $("#age").val(res.data.age);
  663. $("#age").blur();
  664. $("#gender").selectpicker('val', res.data.sex);
  665. $("#gender").selectpicker('refresh');
  666. $("#gender").blur();
  667. $("#birthDayReadonly").val(res.data.birthDayStr);
  668. $("#birthDayReadonly").attr("title", res.data.birthDayStr);
  669. $("#birthDay").val(res.data.birthDayStr);
  670. $("#birthDay").blur();
  671. $("#phoneNum").val(res.data.phoneNo);
  672. $("#phoneNum").attr("title", res.data.phoneNo);
  673. $("#phoneNum").blur();
  674. $("#patientsNature").selectpicker('val', res.responseType);//默认选中
  675. $('#patientsNature').selectpicker('refresh');
  676. $("#patientsNature").blur();
  677. $("#idCard").val(res.data.socialNo);
  678. $("#idCard").attr("title", res.data.socialNo);
  679. $("#idCard").blur();
  680. $("#address").val(res.data.address);
  681. $("#address").blur();
  682. $("#patientId").val(res.data.patientId);
  683. if (res.data.name != null && res.data.name != "") {
  684. $("#editUser").show();
  685. }
  686. readonlyOrNot(true);
  687. } else {
  688. $("#newCardModal").modal();
  689. }
  690. } else {
  691. new PNotify({
  692. title: '错误提示',
  693. text: res.message,
  694. type: 'error',
  695. hide: false,
  696. styling: 'bootstrap3'
  697. });
  698. }
  699. }
  700. });
  701. }
  702. }
  703. /**
  704. * 卡号输入改变事件
  705. */
  706. function cardNoChange() {
  707. if (window.ActiveXObject || "ActiveXObject" in window) {
  708. $("#cardNo").on('input propertychange', function () {
  709. queryUserInfoByCardNo();
  710. });
  711. } else {
  712. $("#cardNo").on('input οninput', function () {
  713. queryUserInfoByCardNo();
  714. });
  715. }
  716. }
  717. /**
  718. * 病人姓名输入改变事件
  719. */
  720. function userNameChange() {
  721. if (window.ActiveXObject || "ActiveXObject" in window) {
  722. $("#userName").on('input propertychange', function () {
  723. refeshPatinetList(true);
  724. });
  725. } else {
  726. $("#userName").on('input οninput', function () {
  727. refeshPatinetList(true);
  728. });
  729. }
  730. }
  731. /**
  732. * 校验收款金额
  733. */
  734. function checkFee() {
  735. var cash = parseFloat($("#cash").val());
  736. var realMoney = parseFloat($("#realMoney").val());
  737. realMoney = realMoney.toFixed(2);
  738. $("#realMoney").val(realMoney)
  739. if (cash < realMoney) {
  740. new PNotify({
  741. title: '错误提示',
  742. text: "收款金额不能少于实收金额!",
  743. type: 'error',
  744. hide: true,
  745. styling: 'bootstrap3'
  746. });
  747. } else if (cash > realMoney) {
  748. if ($("#payType").val() == 1) {
  749. var changeAmount = cash - realMoney;
  750. $("#changeAmount").val(changeAmount.toFixed(2));
  751. } else {
  752. new PNotify({
  753. title: '错误提示',
  754. text: "非现金收款金额不能大于实收金额!",
  755. type: 'error',
  756. hide: true,
  757. styling: 'bootstrap3'
  758. });
  759. }
  760. }
  761. //计算和设置折扣比例
  762. var amountMoneyConfirm = parseFloat($("#amountMoneyConfirm").text());
  763. var discount = realMoney / amountMoneyConfirm * 100;
  764. $("#discount").text(discount.toFixed(2))
  765. }
  766. /**
  767. * 根据病人姓名输入框内容动态加载病人列表
  768. */
  769. function initUserList() {
  770. //var width=$("#userName").css("width");
  771. var settings = {
  772. trigger: 'click',
  773. content: '',
  774. width: 170,
  775. multi: true,
  776. closeable: false,
  777. style: '',
  778. delay: 300,
  779. padding: true,
  780. height: 300
  781. };
  782. var webuiPopover = $('#userName').webuiPopover('destroy').webuiPopover(settings);
  783. //用户姓名选中事件
  784. $("#userName").on("click", function (t) {
  785. if ($(webuiPopover).css("display") == "block") {
  786. refeshPatinetList(true);
  787. }
  788. });
  789. }
  790. /**
  791. * 刷新病人列表
  792. */
  793. function refeshPatinetList(flag) {
  794. //如果是重新加载病人列表,需要重置下标
  795. if (flag) {
  796. //重置下标
  797. pageIndex = 0;
  798. msg_list_loading = true;
  799. }
  800. var userName = $('#userName').val();
  801. if (!(userName == null || userName == "" || isChinese(userName))) {
  802. return;
  803. }
  804. $.ajax({
  805. type: "GET",
  806. url: '/thmz/getPatientMiByName?name=' + userName + "&pageIndex=" + pageIndex,
  807. contentType: "application/json;charset=UTF-8",
  808. dataType: "json",
  809. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  810. success: function (res) {
  811. if (res == '401' || res == 401) {
  812. window.location.href = '/thmz/login/view'
  813. return;
  814. }
  815. if (res.code == 0) {
  816. if (res.data != null && res.data.length > 0) {
  817. $("#webuiPopover0").css("display", "block");
  818. var html = '<div class="list-group">';
  819. for (var i = 0; i < res.data.length; i++) {
  820. var mzPatientMi = res.data[i];
  821. html += '<a href="#" class="list-group-item list-group-item-action" onclick="fillPatinet(\'' + mzPatientMi.patientId + '\')">';
  822. var sex = "未知";
  823. if (mzPatientMi.sex == 1) {
  824. html += '<img src="/thmz/images/boy.png"/>'
  825. sex = "男";
  826. } else if (mzPatientMi.sex == 2) {
  827. html += '<img src="/thmz/images/girl.png"/>'
  828. sex = "女";
  829. } else if (mzPatientMi.sex == 0 || mzPatientMi.sex == null) {
  830. html += '<img src="/thmz/images/girl_or_boy.png"/>'
  831. sex = "未知";
  832. }
  833. html += '<div>' + mzPatientMi.name + '&nbsp;' + sex + '&nbsp;';
  834. if (mzPatientMi.age != null && mzPatientMi.age != "") {
  835. html += mzPatientMi.age + '岁';
  836. } else {
  837. html += '**岁';
  838. }
  839. if (mzPatientMi.phoneNo != null && mzPatientMi.phoneNo != "") {
  840. html += '<span>' + mzPatientMi.phoneNo + '</span>';
  841. }
  842. html += '</div></a>';
  843. }
  844. html += '</div>';
  845. if (flag) {
  846. $("div.webui-popover-content").html("");
  847. }
  848. $("div.webui-popover-content").append(html);
  849. $("div.arrow").css("left", "23px");
  850. refeshPatinetListScrollEvent();
  851. } else {
  852. $("#webuiPopover0").css("display", "none");
  853. }
  854. }
  855. //查询完成,设置加载完成
  856. msg_list_loading = false;
  857. }
  858. });
  859. }
  860. /**
  861. * 病人下拉列表滚动条滚动到底部时继续加载新纪录
  862. */
  863. function refeshPatinetListScrollEvent() {
  864. $('.webui-popover-content').scroll(function (event) {
  865. var top = $(this).scrollTop();
  866. var height = $(this).height();
  867. var scrollHeight = $(this).get(0).scrollHeight;
  868. if (scrollHeight <= top + height) {
  869. if (!msg_list_loading) {
  870. msg_list_loading = true;
  871. pageIndex = pageIndex + 1;
  872. refeshPatinetList(false);
  873. }
  874. }
  875. });
  876. }
  877. /**
  878. * 按照病人id查询病人信息
  879. * @param patientId
  880. */
  881. function fillPatinet(patientId) {
  882. $.ajax({
  883. type: "GET",
  884. url: '/thmz/getByPatientId?patientId=' + patientId,
  885. contentType: "application/json;charset=UTF-8",
  886. dataType: "json",
  887. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  888. success: function (res) {
  889. if (res == '401' || res == 401) {
  890. window.location.href = '/thmz/login/view'
  891. return;
  892. }
  893. if (res.code == 0) {
  894. if (res.data != null) {
  895. $("#cardNo").val(res.data.icCardNo);
  896. $("#cardNo").attr("title", res.data.icCardNo);
  897. $("#cardNo").blur();
  898. $("#userName").val(res.data.name);
  899. $("#userName").blur();
  900. $("#userNameReadOnly").val(res.data.name);
  901. $("#age").val(res.data.age);
  902. $("#age").blur();
  903. $("#gender").selectpicker('val', res.data.sex);
  904. $("#gender").selectpicker('refresh');
  905. $("#gender").blur();
  906. $("#birthDayReadonly").val(res.data.birthDayStr);
  907. $("#birthDayReadonly").attr("title", res.data.birthDayStr);
  908. $("#birthDayReadonly").blur();
  909. $("#birthDay").val(res.data.birthDayStr);
  910. $("#birthDay").blur();
  911. $("#phoneNum").val(res.data.phoneNo);
  912. $("#phoneNum").attr("title", res.data.phoneNo);
  913. $("#phoneNum").blur();
  914. $("#patientsNature").selectpicker('val', res.responseType);//默认选中
  915. $('#patientsNature').selectpicker('refresh');
  916. $("#patientsNature").blur();
  917. $("#idCard").val(res.data.socialNo);
  918. $("#idCard").attr("title", res.data.socialNo);
  919. $("#idCard").blur();
  920. $("#address").val(res.data.address);
  921. $("#address").blur();
  922. $("#patientId").val(res.data.patientId);
  923. if (res.data.name != null && res.data.name != "") {
  924. $("#editUser").show();
  925. }
  926. readonlyOrNot(true);
  927. }
  928. } else {
  929. new PNotify({
  930. title: '错误提示',
  931. text: res.message,
  932. type: 'error',
  933. hide: false,
  934. styling: 'bootstrap3'
  935. });
  936. }
  937. }
  938. });
  939. }
  940. /**
  941. * 关闭当前这个付款方式
  942. */
  943. function closeThisParent(obj) {
  944. $(obj).parent().parent().remove();
  945. }
  946. /**
  947. * 科室与时间区间下拉选改变时清空输入框内容
  948. */
  949. function emptyInput() {
  950. $('#doctor').empty();
  951. $('#doctor').selectpicker('refresh');
  952. $("#registrationFee").val(0.00);
  953. $("#hospitalFee").val(0.00);
  954. $("#checkFee").val(0.00);
  955. $("#amountMoney").text(0.00);
  956. $("#amountMoneyConfirm").text(0.00);
  957. $("#realMoney").val(0.00);
  958. }
  959. /**
  960. * 给某些域增加title或者清除title
  961. * @param obj
  962. */
  963. function clearTextOrTitle(obj) {
  964. if ($(obj).val() == null || $(obj).val().length == 0) {
  965. $(obj).attr("title", null);
  966. } else {
  967. $(obj).attr("title", $(obj).val());
  968. if($(obj).attr("id")=="birthDay"){
  969. $(obj).blur()
  970. }
  971. }
  972. }
  973. /**
  974. * 当按照卡号查询时,病人信息输入框不可编辑,当清空输入框时可编辑
  975. * @param flag
  976. */
  977. function readonlyOrNot(flag) {
  978. if (flag) {
  979. $("#cardNo").attr("readonly", "readonly");
  980. $("#userName").attr("readonly", "readonly");
  981. $("#age").attr("readonly", "readonly");
  982. $("#gender").attr("disabled", "disabled");
  983. $("#phoneNum").attr("readonly", "readonly");
  984. $("#patientsNature").attr("disabled", "disabled");
  985. $("#idCard").attr("readonly", "readonly");
  986. $("#address").attr("readonly", "readonly");
  987. $("#birthDayReadonly").removeClass("hide").addClass("in");
  988. $("#birthDayGroup").removeClass("in").addClass("hide");
  989. $("#userName").removeClass("in").addClass("hide");
  990. $("#userNameReadOnly").removeClass("hide").addClass("in");
  991. $("#webuiPopover0").css("display", "none");
  992. } else {
  993. $("#cardNo").removeAttr("readonly");
  994. $("#userName").removeAttr("readonly");
  995. $("#age").removeAttr("readonly");
  996. $("#gender").removeAttr("disabled");
  997. $("#gender").next().removeClass("disabled");
  998. $("#phoneNum").removeAttr("readonly");
  999. $("#patientsNature").removeAttr("disabled");
  1000. $("#patientsNature").next().removeClass("disabled");
  1001. $("#idCard").removeAttr("readonly");
  1002. $("#address").removeAttr("readonly");
  1003. $("#birthDayReadonly").removeClass("in").addClass("hide");
  1004. $("#birthDayGroup").removeClass("hide").addClass("in");
  1005. $("#userName").removeClass("hide").addClass("in");
  1006. $("#userNameReadOnly").removeClass("in").addClass("hide");
  1007. //$("#webuiPopover0").css("display", "block");
  1008. }
  1009. }
  1010. /**
  1011. * 保存窗口号
  1012. */
  1013. function saveWindows() {
  1014. $.ajax({
  1015. type: "POST",
  1016. url: '/thmz/saveWindows',
  1017. contentType: "application/json;charset=UTF-8",
  1018. dataType: "json",
  1019. data:JSON.stringify({"windowsNo":$("#windowsNum").val()}),
  1020. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1021. success: function (res) {
  1022. if (res == '401' || res == 401) {
  1023. window.location.href = '/thmz/login/view'
  1024. return;
  1025. }
  1026. $('#editWindowsModal').modal('hide');
  1027. if (res.code == 0) {
  1028. new PNotify({
  1029. title: '操作提示',
  1030. text: res.message,
  1031. type: 'success',
  1032. hide: true,
  1033. styling: 'bootstrap3'
  1034. });
  1035. } else {
  1036. new PNotify({
  1037. title: '错误提示',
  1038. text: res.message,
  1039. type: 'error',
  1040. hide: true,
  1041. styling: 'bootstrap3'
  1042. });
  1043. }
  1044. }
  1045. });
  1046. }
  1047. /**
  1048. * 保存病人信息
  1049. */
  1050. function savePatient() {
  1051. $.ajax({
  1052. type: "POST",
  1053. url: '/thmz/savePatient',
  1054. contentType: "application/json;charset=UTF-8",
  1055. dataType: "json",
  1056. data:JSON.stringify({"name":$("#userName").val(),"age":$("#age").val(),"sex":$("#gender").val(),"birthDay":$("#birthDay").val(),"icCardNo":$("#cardNo").val(),"phoneNo":$("#phoneNum").val(),"responseType":$("#patientsNature").val(),"socialNo":$("#idCard").val(),"address":$("#address").val()}),
  1057. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1058. success: function (res) {
  1059. if (res == '401' || res == 401) {
  1060. window.location.href = '/thmz/login/view'
  1061. return;
  1062. }
  1063. if (res.code == 0) {
  1064. $("#patientId").val(res.data.patientId);
  1065. saveMzyReqrec();
  1066. } else {
  1067. new PNotify({
  1068. title: '错误提示',
  1069. text: res.message,
  1070. type: 'error',
  1071. hide: true,
  1072. styling: 'bootstrap3'
  1073. });
  1074. }
  1075. }
  1076. });
  1077. }
  1078. /**
  1079. * 保存挂号信息
  1080. */
  1081. function saveMzyReqrec() {
  1082. var mzyRequestId = $('#doctor').find("option:selected").attr('data-mzyRequestId');
  1083. $.ajax({
  1084. type: "POST",
  1085. url: '/thmz/saveMzyReqrec',
  1086. contentType: "application/json;charset=UTF-8",
  1087. dataType: "json",
  1088. data:JSON.stringify({"mzyReqrec":{"patientId":$("#patientId").val(),"ampm":$("#ampm").val(),"unitCode":$("#deptNo").val(),"chargeType":$("#chargeType").val()},"responceType":$("#patientsNature").val(),"mzyRequestId":mzyRequestId}),
  1089. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1090. success: function (res) {
  1091. if (res == '401' || res == 401) {
  1092. window.location.href = '/thmz/login/view'
  1093. return;
  1094. }
  1095. if (res.code == 0) {
  1096. new PNotify({
  1097. title: '操作提示',
  1098. text: res.message,
  1099. type: 'success',
  1100. hide: true,
  1101. styling: 'bootstrap3'
  1102. });
  1103. $('#confirmFeeModal').modal('hide');
  1104. } else {
  1105. new PNotify({
  1106. title: '错误提示',
  1107. text: res.message,
  1108. type: 'error',
  1109. hide: true,
  1110. styling: 'bootstrap3'
  1111. });
  1112. }
  1113. }
  1114. });
  1115. }