Bez popisu

afterDischarge.js 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. var f_State = '住院患者'
  2. var $tableLeft = ''
  3. $(function() {
  4. getdept()
  5. initTable()
  6. var t, n, count = 0;
  7. t = setInterval("showAuto()", 1000 * 60);
  8. $("#sc_btns").click(function() {
  9. initTable()
  10. })
  11. //时间
  12. laydate.render({
  13. elem: '#startTime',
  14. range: '~',
  15. theme: '#249fea'
  16. });
  17. function getPreDatetime(pdate) {
  18. var start = new Date()
  19. start.setTime(start.getTime() - pdate)
  20. start.getYear(); // 获取当前年份(2位)
  21. var YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
  22. var MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
  23. MM = MM > 9 ? MM : ('0' + MM);
  24. var DD = start.getDate() // 获取当前日(1-31)
  25. DD = DD > 9 ? DD : ('0' + DD)
  26. var lastmonth = YY + '-' + MM + '-' + DD;
  27. return lastmonth;
  28. }
  29. if($('#startTime').val() == "") {
  30. function p(s) {
  31. return s < 10 ? '0' + s : s;
  32. }
  33. var currentYear = new Date().getFullYear();
  34. var currentMonth = new Date().getMonth() + 1;
  35. var currentDate = new Date().getDate();
  36. var prevCurrentYear = 0;
  37. var prevCurrentMonth = 0;
  38. if(currentMonth == 1) {
  39. prevCurrentYear = currentYear - 1;
  40. prevCurrentMonth = 12;
  41. } else {
  42. prevCurrentYear = currentYear;
  43. prevCurrentMonth = currentMonth - 1;
  44. }
  45. var current = currentYear + "-" + p(currentMonth) + "-" + p(currentDate);
  46. // var lastmonth = prevCurrentYear + "-" + p(prevCurrentMonth) + "-" + p(currentDate)
  47. var a = getPreDatetime(3600 * 1000 * 24 * 30);
  48. $('#startTime').val(getPreDatetime(3600 * 1000 * 24 * 30) + " ~ " + current)
  49. // initTable();
  50. }
  51. //TAB切换
  52. $('#tab_head_left li').click(function() {
  53. $(this).addClass('tab_head_active').siblings().removeClass('tab_head_active');
  54. state = $(this).attr('data-index');
  55. f_State = state
  56. initTable();
  57. })
  58. })
  59. function getdept() {
  60. $("#deptname").html('');
  61. equipmentdata = []
  62. $("#deptname").append('<option value="">请选择科室名称</option>');
  63. $.ajax({
  64. type: "get",
  65. url: huayi.config.callcenter_url + "testusertypeapi/api/Test/gethzcyksinfo",
  66. async: true,
  67. dataType: 'json',
  68. success: function(data) {
  69. var leveldata = []
  70. if(data.state.toLowerCase() == 'success') {
  71. console.log(data)
  72. leveldata = data.data
  73. $(leveldata).each(function(q, p) {
  74. $("<option value='" + p + "'>" + p + "</option>").appendTo("#deptname");
  75. $("#deptname").selectpicker('refresh');
  76. });
  77. } else {
  78. $("#deptname").empty();
  79. $("#deptname").selectpicker('refresh');
  80. }
  81. }
  82. });
  83. }
  84. function initTable() {
  85. $tableLeft = $('#table_all');
  86. $tableLeft.bootstrapTable('destroy');
  87. //先销毁表格
  88. $tableLeft.bootstrapTable({
  89. method: "get", //使用get请求到服务器获取数据
  90. url: huayi.config.callcenter_url + "testusertypeapi/api/Test/getsendhfinfo",
  91. contentType: "application/x-www-form-urlencoded",
  92. striped: true, //表格显示条纹
  93. pagination: true, //启动分页
  94. pageSize: 10, //每页显示的记录数
  95. pageNumber: 1, //当前第几页
  96. fixedColumns: true,
  97. fixedNumber: 3,
  98. pageList: [5, 10, 20, 50, 100], //记录数可选列表
  99. search: false, //是否启用查询
  100. showColumns: false, //显示下拉框勾选要显示的列
  101. showRefresh: false, //显示刷新按钮
  102. sidePagination: "server", //表示服务端请求
  103. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  104. //设置为limit可以获取limit, offset, search, sort, order
  105. queryParamsType: "undefined",
  106. queryParams: function queryParams(params) { //设置查询参数
  107. console.log(params)
  108. var param = {
  109. PageIndex: params.pageNumber,
  110. PageSize: params.pageSize,
  111. iszyormz: f_State,
  112. key: $("#key").val(),
  113. yqinfo: $("#projectid").val(),
  114. sendmydcent: $("#myd").val(),
  115. deptname: $("#deptname").val(),
  116. state: $("#state").val(),
  117. stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  118. etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  119. };
  120. return param;
  121. },
  122. onPostBody: function() {
  123. //console.log("行数据渲染完成!");
  124. var totalPages = $tableLeft.bootstrapTable("getOptions").totalPages;
  125. var pageNumber = $tableLeft.bootstrapTable("getOptions").pageNumber;
  126. var goInputWidth = 45; //输入框默认宽度
  127. var maxLen = ("" + totalPages).length;
  128. //根据总页数设定跳转页面输入框宽度
  129. if(totalPages > 999)
  130. goInputWidth = maxLen * 10 + 15;
  131. var $pageGo = $('<span style="padding-left: 5px;">跳转到<input type="number" maxlength="' +
  132. maxLen + '" min="1" max="' + totalPages +
  133. '" class="input-box" id="c_jump-to-page" value="' +
  134. pageNumber + '" style="width: ' + goInputWidth + 'px;" />/' +
  135. totalPages + '页&nbsp;</span>');
  136. var $go = $("<a href=\"javascript:;\">Go</a>");
  137. var $shou = $("<a href=\"javascript:;\">首页</a>")
  138. var $wei = $("<a href=\"javascript:;\">尾页</a>")
  139. $pageGo.append($go);
  140. $pageGo.append($shou);
  141. $pageGo.append($wei);
  142. $(".pagination-detail").append($pageGo);
  143. //页码范围限定(部分浏览器min~max失效时)
  144. $pageGo.change(function() {
  145. var goPage = $('#c_jump-to-page').val();
  146. if(goPage < 1)
  147. $('#c_jump-to-page').val(1);
  148. if(goPage > totalPages)
  149. $('#c_jump-to-page').val(totalPages);
  150. });
  151. //跳转到
  152. $go.click(function() {
  153. var goPage = parseInt($('#c_jump-to-page').val());
  154. console.log(totalPages)
  155. if(goPage != pageNumber)
  156. $tableLeft.bootstrapTable('selectPage', parseInt(goPage));
  157. });
  158. $shou.click(function() {
  159. $tableLeft.bootstrapTable('selectPage', 1);
  160. });
  161. $wei.click(function() {
  162. $tableLeft.bootstrapTable('selectPage', totalPages);
  163. });
  164. },
  165. onLoadSuccess: function(data) { //加载成功时执行
  166. //判断 住院患者和门诊患者展示信息
  167. if(f_State == '住院患者') {
  168. $tableLeft.bootstrapTable('showColumn', 'ZY_NO'); //显示
  169. // $tableLeft.bootstrapTable('showColumn', 'NAME');//显示
  170. // $tableLeft.bootstrapTable('showColumn', 'SEX');//显示
  171. // $tableLeft.bootstrapTable('showColumn', 'PAT_PHONE');//显示
  172. $tableLeft.bootstrapTable('showColumn', 'ZY_AGE'); //显示
  173. $tableLeft.bootstrapTable('showColumn', 'CY_ZD'); //显示
  174. $tableLeft.bootstrapTable('showColumn', 'CY_DEPT_NAME'); //显示
  175. $tableLeft.bootstrapTable('showColumn', 'CY_DATE'); //显示
  176. $tableLeft.bootstrapTable('showColumn', 'ZY_DAYS'); //显示
  177. $tableLeft.bootstrapTable('showColumn', 'PA_ADDRESS'); //显示
  178. $tableLeft.bootstrapTable('showColumn', 'ZY_DEPT_NAME'); //显示
  179. // $tableLeft.bootstrapTable('hideColumn', 'chinic_no');//隐藏上述variablevalue列
  180. // $tableLeft.bootstrapTable('hideColumn', 'patient_name');//隐藏上述variablevalue列
  181. // $tableLeft.bootstrapTable('hideColumn', 'sex');//隐藏上述variablevalue列
  182. // $tableLeft.bootstrapTable('hideColumn', 'phone');//隐藏上述variablevalue列
  183. $tableLeft.bootstrapTable('hideColumn', 'JB_NAME'); //隐藏上述variablevalue列
  184. $tableLeft.bootstrapTable('hideColumn', 'mzjzdeptname'); //隐藏上述variablevalue列
  185. $tableLeft.bootstrapTable('hideColumn', 'mzjztime'); //隐藏上述variablevalue列
  186. $tableLeft.bootstrapTable('hideColumn', 'ZZ_DOC'); //隐藏上述variablevalue列
  187. } else {
  188. $tableLeft.bootstrapTable('showColumn', 'ZY_AGE'); //隐藏上述variablevalue列
  189. $tableLeft.bootstrapTable('hideColumn', 'ZY_NO'); //隐藏上述variablevalue列
  190. // $tableLeft.bootstrapTable('hideColumn', 'NAME');//隐藏上述variablevalue列
  191. // $tableLeft.bootstrapTable('hideColumn', 'SEX');//隐藏上述variablevalue列
  192. // $tableLeft.bootstrapTable('hideColumn', 'PAT_PHONE');//隐藏上述variablevalue列
  193. $tableLeft.bootstrapTable('hideColumn', 'CY_ZD'); //隐藏上述variablevalue列
  194. $tableLeft.bootstrapTable('hideColumn', 'CY_DEPT_NAME'); //隐藏上述variablevalue列
  195. $tableLeft.bootstrapTable('hideColumn', 'CY_DATE'); //隐藏上述variablevalue列
  196. $tableLeft.bootstrapTable('hideColumn', 'ZY_DEPT_NAME'); //隐藏上述variablevalue列
  197. $tableLeft.bootstrapTable('hideColumn', 'ZY_DAYS'); //显示
  198. $tableLeft.bootstrapTable('hideColumn', 'PA_ADDRESS'); //显示
  199. // $tableLeft.bootstrapTable('showColumn', 'chinic_no');// 显示
  200. // $tableLeft.bootstrapTable('showColumn', 'patient_name');// 显示
  201. // $tableLeft.bootstrapTable('showColumn', 'sex');// 显示
  202. // $tableLeft.bootstrapTable('showColumn', 'phone');// 显示
  203. $tableLeft.bootstrapTable('showColumn', 'JB_NAME'); // 显示
  204. $tableLeft.bootstrapTable('showColumn', 'mzjzdeptname'); // 显示
  205. $tableLeft.bootstrapTable('showColumn', 'mzjztime'); // 显示
  206. $tableLeft.bootstrapTable('showColumn', 'ZZ_DOC'); // 显示
  207. }
  208. var newDataL = {};
  209. newDataL.state = data.state;
  210. newDataL.message = data.message;
  211. newDataL.rows = data.data.rows;
  212. newDataL.total = data.data.total;
  213. for(var i = 0; i < newDataL.rows.length; i++) {
  214. if(newDataL.rows[i].PAT_PHONE == null) {
  215. newDataL.rows[i].PAT_PHONE = '';
  216. }
  217. }
  218. $tableLeft.bootstrapTable('load', newDataL);
  219. $('.tool_downs').authorizeOperateButton();
  220. },
  221. onLoadError: function() { //加载失败时执行
  222. layer.msg("加载数据失败", {
  223. time: 1500,
  224. icon: 2
  225. });
  226. }
  227. });
  228. }
  229. $(function() {
  230. projectName()
  231. })
  232. // 院区选择
  233. function projectName() {
  234. $("#projectid").empty();
  235. $("#projectid").append("<option value=''>请选择医院</option>");
  236. $.getJSON(huayi.config.callcenter_url + "equipmentapi/api/ProjectInfo/getlistdrop", function(result) {
  237. if(result.state.toLowerCase() == "success") {
  238. var content = result.data;
  239. $(content).each(function(i, n) {
  240. $("<option value='" + n.id + "'>" + n.text + "</option>").appendTo("#projectid");
  241. })
  242. $("#projectid").selectpicker('refresh');
  243. }
  244. })
  245. }
  246. //格式化操作
  247. function formatterOperate(val, row) {
  248. console.log(row.PAT_PHONE)
  249. if(f_State == "门诊患者") {
  250. {
  251. var str = '<ul class="tool_downs">' +
  252. '<li><a class="aBtn" authorize="yes" id="HY_discharge_' + row.id + '" onclick="btn_myd(\'' + row.id +
  253. '\')">满意度</a><li>' +
  254. '<li><a class="aBtn" authorize="yes" id="HY_remarks_' + row.id + '" onclick="btn_remark(\'' + row.id +
  255. '\')">备注</a><li>'+
  256. '<li id="callDetail"><a class="aBtn" authorize="yes" id="HY_callDetail_' + row.id + '" onclick="btn_callDetail(\'' +
  257. row.PAT_PHONE +'\')">通话详情</a><li>'+
  258. '</ul>';
  259. return str
  260. }
  261. } else {
  262. {
  263. var str = '<ul class="tool_downs">' +
  264. '<li><a class="aBtn" authorize="yes" id="HY_discharge_' + row.id + '" onclick="btn_myd(\'' + row.id +
  265. '\')">满意度</a><li>' +
  266. '<li><a class="aBtn" authorize="yes" id="HY_remarks_' + row.id + '" onclick="btn_remark(\'' + row.id +
  267. '\')">备注</a><li>' +
  268. '<li id="detail"><a class="aBtn" authorize="yes" id="HY_detail_' + row.id + '" onclick="btn_detail(\'' +
  269. row.id +'\')">详情</a><li>'+
  270. '<li id="detail"><a class="aBtn" authorize="yes" id="HY_detail_' + row.id + '" onclick="btn_callDetail(\'' +
  271. row.PAT_PHONE +'\')">通话详情</a><li>'+
  272. // '<li id="callDetail"><a class="aBtn" authorize="yes" id="HY_callDetail_' + row.id + '" onclick="btn_callDetail(\'' +
  273. // row.PAT_PHONE +'\')">通话详情</a><li>'+
  274. '</ul>';
  275. return str
  276. }
  277. }
  278. }
  279. // // 外呼
  280. function callout(val, row) {
  281. if(val == '') {
  282. var str = '<div>' + val + '</div>';
  283. return str;
  284. } else {
  285. var str = '<div>' + val +
  286. '<img src="../img/extensionnumber_icons.png" style="width:20px;height:20px;padding-left:5px;padding-bottom:5px" onclick= "callPhone('+val+')"/>' +
  287. '</div>'
  288. return str
  289. }
  290. }
  291. //外呼
  292. function callPhone(val) {
  293. console.log('号码',val)
  294. if(val) {
  295. $.ajax({
  296. type: "get",
  297. url: huayi.config.call_url + "CallOutOpt/GetCallOutprefix",
  298. async: true,
  299. dataType: 'json',
  300. data: {
  301. phone: val
  302. },
  303. success: function(result) {
  304. //result = $.parseJSON(result);
  305. if(result.state.toLowerCase() == "success") {
  306. top.scoketDatas = {
  307. "Type": "MakeCall",
  308. "AgentID": window.localStorage.getItem('userCode'),
  309. "AgentExten": window.localStorage.getItem("extno"),
  310. "Header": result.data.fix, //号码前缀 用于截断前缀得到真实号码
  311. "DestinationNumber": result.data.phone, //
  312. };
  313. top.Send();
  314. }
  315. }
  316. });
  317. }
  318. }
  319. function btn_myd(sendmyeds) {
  320. layer.open({
  321. type: 2,
  322. content: "./myd.html?sendmyeds=" + sendmyeds,
  323. title: '修改满意度',
  324. area: ['50%', '45%'], //宽高
  325. });
  326. }
  327. function btn_detail(detail_id) {
  328. layer.open({
  329. type: 2,
  330. content: "./afterDischargeDetail.html?detail_id=" + detail_id,
  331. title: '出院患者记录详细信息',
  332. area: ['50%', '65%'], //宽高
  333. });
  334. }
  335. function btn_callDetail(phone){
  336. layer.open({
  337. type: 2,
  338. content: "./afterDischargeCallDetail.html?detail_phone=" + phone,
  339. title: '出院患者记录详细信息',
  340. area: ['50%', '65%'], //宽高
  341. });
  342. }
  343. // 备注
  344. function btn_remark(remark_id) {
  345. layer.open({
  346. type: 2,
  347. content: "./remark.html?remark_id=" + remark_id,
  348. title: '备注',
  349. area: ['50%', '65%'], //宽高
  350. });
  351. }
  352. //获取短信回复内容
  353. function sendmsg() {
  354. $.ajax({
  355. type: "get",
  356. url: huayi.config.callcenter_url + "testusertypeapi/api/Test/getmassagereply", //获取数据的Servlet地址
  357. async: true,
  358. dataType: 'json',
  359. data: {},
  360. success: function(data) {
  361. }
  362. });
  363. }
  364. function showAuto() {
  365. sendmsg()
  366. }
  367. // 导出
  368. $("#HY_export").click(function() {
  369. if(f_State == '住院患者') {
  370. var key = $("#key").val() //关键字
  371. var yqinfo = $('#projectid').val()
  372. var sendmydcent = $('#myd').val() //满意度
  373. var deptname = $('#deptname').val() //科室名称
  374. var iszyormz = f_State
  375. var state = $('#state').val()
  376. var stime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[0] //开始时间
  377. var etime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[1] //结束时间
  378. window.location.href = huayi.config.callcenter_url +
  379. "testusertypeapi/api/Test/exportexcel?sendmydcent=" +
  380. sendmydcent + "&stime=" + stime + "&etime=" + etime + "+&key=" + key + "&deptname=" + deptname +
  381. "&yqinfo=" +
  382. yqinfo + "&iszyormz=" +
  383. iszyormz + "&state=" +
  384. state
  385. } else {
  386. $.ajax({
  387. type: "get",
  388. url: huayi.config.callcenter_url + "testusertypeapi/api/Test/exportExcelAsyncmz",
  389. async: true,
  390. dataType: 'json',
  391. data: {
  392. iszyormz: f_State,
  393. key: $("#key").val(),
  394. yqinfo: $("#projectid").val(),
  395. sendmydcent: $("#myd").val(),
  396. deptname: $("#deptname").val(),
  397. state: $("#state").val(),
  398. stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  399. etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  400. },
  401. success: function(data) {
  402. if(data.state.toLowerCase() == 'success') {
  403. //要导出的json数据
  404. const jsonData = data.data
  405. for(var i = 0; i < jsonData.length; i++) {
  406. if(jsonData[i].replaycenters == null) {
  407. jsonData[i].replaycenters = ''
  408. }
  409. if(jsonData[i].sendmyeds == null) {
  410. jsonData[i].sendmyeds = ''
  411. }
  412. if(jsonData[i].senddate == null) {
  413. jsonData[i].senddate = ''
  414. }
  415. if(jsonData[i].ZY_NO == null) {
  416. jsonData[i].ZY_NO = ''
  417. }
  418. if(jsonData[i].NAME == null) {
  419. jsonData[i].NAME = ''
  420. }
  421. if(jsonData[i].SEX == null) {
  422. jsonData[i].SEX = ''
  423. }
  424. if(jsonData[i].PAT_PHONE == null) {
  425. jsonData[i].PAT_PHONE = ''
  426. }
  427. if(jsonData[i].CLINIC_DIAG_NAME == null) {
  428. jsonData[i].CLINIC_DIAG_NAME = ''
  429. }
  430. if(jsonData[i].dept_name == null) {
  431. jsonData[i].dept_name = ''
  432. }
  433. if(jsonData[i].CLINIC_DATE == null) {
  434. jsonData[i].CLINIC_DATE = ''
  435. }
  436. if(jsonData[i].statesissuccess == null) {
  437. jsonData[i].statesissuccess = ''
  438. }
  439. if(jsonData[i].nomybecause == null) {
  440. jsonData[i].nomybecause = ''
  441. }
  442. jsonData[i].replaycenters.replace(/[\r\n]/g, "")
  443. jsonData[i].sendmyeds.replace(/[\r\n]/g, "")
  444. jsonData[i].senddate.replace(/[\r\n]/g, "")
  445. jsonData[i].ZY_NO.replace(/[\r\n]/g, "")
  446. jsonData[i].NAME.replace(/[\r\n]/g, "")
  447. jsonData[i].SEX.replace(/[\r\n]/g, "")
  448. jsonData[i].PAT_PHONE.replace(/[\r\n]/g, "")
  449. jsonData[i].CLINIC_DIAG_NAME.replace(/[\r\n]/g, "")
  450. jsonData[i].dept_name.replace(/[\r\n]/g, "")
  451. jsonData[i].CLINIC_DATE.replace(/[\r\n]/g, "")
  452. jsonData[i].statesissuccess.replace(/[\r\n]/g, "")
  453. jsonData[i].nomybecause.replace(/[\r\n]/g, "")
  454. //console.log(jsonData[i].CLINIC_DIAG_NAME)
  455. }
  456. //列标题,逗号隔开,每一个逗号就是隔开一个单元格
  457. var str = `回复内容,满意度,发送时间,住院号,病人姓名,病人性别,联系电话,就诊内容,就诊科室,就诊时间,发送状态,备注\n`;
  458. //增加\t为了不让表格显示科学计数法或者其他格式
  459. for(let i = 0; i < jsonData.length; i++) {
  460. for(let item in jsonData[i]) {
  461. str += `${jsonData[i][item].replace(/[\r\n]/g, "") + '\t'},`;
  462. }
  463. str += '\n';
  464. }
  465. //encodeURIComponent解决中文乱码
  466. let uri = 'data:text/csv/xls;charset=utf-8,\ufeff' + encodeURIComponent(str);
  467. //通过创建a标签实现
  468. let link = document.createElement("a");
  469. link.href = uri;
  470. //对下载的文件命名
  471. link.download = "门诊患者.xlsx";
  472. document.body.appendChild(link);
  473. link.click();
  474. document.body.removeChild(link);
  475. }
  476. }
  477. });
  478. }
  479. })