//@ sourceURL=request.js //默认是查询基础号表字典,当选择源数据的时候改为false var baseList = false; //默认是显示一个表格,当点击生产新号表时,改为true var showTwoTable = false; //保存临时生成的新号表数据 var tempData = null; $(function () { daterangepickerWithIdAndCallBack('sourceRange', initSourceList); daterangepickerWithIdAndCallBack('newRange', initSourceList); // initDaterangepickerWithId('sourceRange'); // initDaterangepickerWithId('newRange'); initSourceList(); // initFeeTable(); //重置查询参数 $('#btn_clean').click(function () { cleanParams(); }); // $("#btn_query").click(function (t) { // initSourceList(); // }); $(".selectpicker").selectpicker({ dropuAuto: false }); $("#btn_creat").click(function (t) { showTwoTable = true; initSourceList(); $("#btn_creat").removeClass('in').addClass('hide'); $("#btn_cancel").removeClass('hide').addClass('in'); $("#tb_table_1").css("display", "block"); $("#tb_table_2").css("display", "block"); }); $("#btn_cancel").click(function (t) { showTwoTable = false; //取消后置空 tempData = null; initSourceList(); $("#btn_cancel").removeClass('in').addClass('hide'); $("#btn_creat").removeClass('hide').addClass('in'); $("#tb_table_1").css("display", "none"); $("#tb_table_2").css("display", "none"); }); $("#btn_add").click(function (t) { $("#editModal").modal(); $("#classTitle").text("新增"); clearInput(); }); $("#btn_save").click(function (t) { if (showTwoTable) { //保存临时生成的新号表数据 saveRequest(); } }); $("#saveEdit").click(function (t) { if (showTwoTable) { //保存临时生成的新号表数据 saveTempRequest(); } else { //单独添加一个排班,直接保存 saveRequest(); } }); initMzWorkTime(); initDeptSelect(); initDoctorSelect(); initChargeType(); $("#editDay").change(function (e) { var editDay = $("#editDay").val(); if (editDay.length == 8 && editDay.indexOf("-") <= 0) { if (editDay.substring(4, 6) > 12) { new PNotify({ title: '错误提示', text: '号表日期错误,月份不能大于12', type: 'error', hide: true, styling: 'bootstrap3' }); $("#editDay").val(null); return; } if (editDay.substring(6) > 31) { new PNotify({ title: '错误提示', text: '号表日期错误,天数不能大于31', type: 'error', hide: true, styling: 'bootstrap3' }); $("#editDay").val(null); return; } editDay = editDay.substring(0, 4) + "-" + editDay.substring(4, 6) + "-" + editDay.substring(6); $("#editDay").val(editDay); } var dateFormat = /^(\d{4})-(\d{2})-(\d{2})$/; if (!dateFormat.test(editDay)) { new PNotify({ title: '错误提示', text: '号表日期错误', type: 'error', hide: true, styling: 'bootstrap3' }); } var arr = editDay.split("-"); if (!checkDate(arr[0], arr[1], arr[2])) { new PNotify({ title: '错误提示', text: '表表日期错误', type: 'error', hide: true, styling: 'bootstrap3' }); } }); }); /** * 清空输入框 */ function clearInput() { $("#requestId").val(null); $("#editDay").val(null); $('#ampm').selectpicker('val', null); $('#ampm').selectpicker('refresh'); $('#deptNo').selectpicker('val', null); $('#deptNo').selectpicker('refresh'); $('#doctorParam').selectpicker('val', null); $('#doctorParam').selectpicker('refresh'); $('#chargeType').selectpicker('val', null); $('#chargeType').selectpicker('refresh'); $("#checkFee").val(null); $("#totalNum").val(null); } /** * 号表类型切换事件 * @param object */ function sourceChange(object) { $("#source_group").find("button").each(function (index, element) { if ($(element).hasClass("btn-primary")) { $(element).removeClass("btn-primary").addClass("btn-default"); } }); $(object).removeClass("btn-default").addClass("btn-primary"); var sourceGroup = getIndex("source_group"); if (sourceGroup == 0) { baseList = true; } else { baseList = false; } initSourceList(); } /** * 获取按钮组选择的下标 * @param id * @returns {number} */ function getIndex(id) { var index = 0; var item = $("#" + id).find("button"); for (var i = 0; i <= item.length; i++) { if ($(item[i]).hasClass("btn-primary")) { index = i; break; } } return index; } /** * 查询源号表信息 */ function initSourceList() { $('#tb_table_2').bootstrapTable("destroy"); var tableId = 'tb_table'; var destroyTableId = 'tb_table_1'; if (showTwoTable) { tableId = 'tb_table_1'; destroyTableId = 'tb_table'; } $('#' + destroyTableId).bootstrapTable("destroy"); $('#' + tableId).bootstrapTable("destroy"); $('#' + tableId).bootstrapTable({ url: '/thmz/getRequestByTimes', //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 queryParams: queryParams, //传递参数(*) sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 15, //每页的记录行数(*) pageList: [10, 15, 25, 50, 100], //可供选择的每页的行数(*) search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: false, //是否显示所有的列 showRefresh: false, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 uniqueId: "ID", //每一行的唯一标识,一般为主键列 showToggle: false, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //rowStyle:rowStyle,//通过自定义函数设置行样式 ajaxOptions: { headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token") } }, columns: [ { title: '操作', field: 'op', align: "center", valign: 'middle', formatter: function (value, row, index) { var str = ''; return [str].join(''); } }, { field: 'requestDay', title: '日期', align: "center", valign: 'middle', formatter: function (value, row, index) { return format(value, "yyyy-MM-dd"); } }, { field: 'ampm', title: '号段', align: "center", valign: 'middle', formatter: function (value, row, index) { var text = '上午'; if (value == 'p') { text = '下午'; } else if (value == 'd') { text = '全天'; } return text; } }, { field: 'unitName', title: '科室', align: "center", valign: 'middle' }, { field: 'doctorName', title: '医生', align: "center", valign: 'middle' }, { field: 'chargeTypeName', title: '号别', align: "center", valign: 'middle' }, { field: 'checkFee', title: '检查费', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } }, { field: 'totalNum', title: '总号数', align: "center", valign: 'middle' }, { field: 'leftNum', title: '剩余号数', align: "center", valign: 'middle' }, { field: 'bespeakNo', title: '当前号数', align: "center", valign: 'middle' } ], onLoadSuccess: function () { if (baseList) { $('#' + tableId).bootstrapTable('hideColumn', 'op');//隐藏上述操作列 } }, responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { if (ress.message != null && ress.message != '') { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); } return { "total": 0,//总页数 "rows": {} //数据 }; } return { "total": ress.data.length,//总页数 "rows": ress.data //数据 }; }, }); initNewList(); } /** * 构建列表查询参数 * @param params * @returns {{mzChargeDetail: {patientId: string | number | string[] | undefined | jQuery, warnDept: string | number | string[] | undefined | jQuery, doctorCode: string | number | string[] | undefined | jQuery, name: string | number | string[] | undefined | jQuery, payMark: number}, beginTime: Date, endTime: Date, pageSize: *, pageIndex: number}} */ function queryParams(params) { if (baseList) { var temp = { beginDate: "2012-02-13 00:00:00", endDate: "2012-02-19 23:59:59", unitCode: $("#unitCode").val(), ampm: $("#ampmParams").val() }; return temp; } var rePortRangeArr = getSourceRangeArr(); var temp = { beginDate: rePortRangeArr[0], endDate: rePortRangeArr[1], unitCode: $("#unitCode").val(), ampm: $("#ampmParams").val() }; return temp; }; /** * 生成新号表数据 */ function initNewList() { if (!showTwoTable) { return; } initNewListCommon('/thmz/getNewRequestByTimes', newListQueryParams); } /** * 生成新号表的通用方法 * @param url * @param newParams */ function initNewListCommon(url, newParams) { $('#tb_table_2').bootstrapTable("destroy"); $('#tb_table_2').bootstrapTable({ url: url, //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 queryParams: newParams, //传递参数(*) sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 15, //每页的记录行数(*) pageList: [10, 15, 25, 50, 100], //可供选择的每页的行数(*) search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: false, //是否显示所有的列 showRefresh: false, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 uniqueId: "ID", //每一行的唯一标识,一般为主键列 showToggle: false, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //rowStyle:rowStyle,//通过自定义函数设置行样式 ajaxOptions: { headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token") } }, columns: [ { title: '操作', align: "center", valign: 'middle', formatter: function (value, row, index) { var str = ''; return [str].join(''); } }, { field: 'requestDay', title: '日期', align: "center", valign: 'middle', formatter: function (value, row, index) { return format(value, "yyyy-MM-dd"); } }, { field: 'ampm', title: '号段', align: "center", valign: 'middle', formatter: function (value, row, index) { var text = '上午'; if (value == 'p') { text = '下午'; } else if (value == 'd') { text = '全天'; } return text; } }, { field: 'unitName', title: '科室', align: "center", valign: 'middle' }, { field: 'doctorName', title: '医生', align: "center", valign: 'middle' }, { field: 'chargeTypeName', title: '号别', align: "center", valign: 'middle' }, { field: 'checkFee', title: '检查费', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } }, { field: 'totalNum', title: '总号数', align: "center", valign: 'middle' }, { field: 'leftNum', title: '剩余号数', align: "center", valign: 'middle' }, { field: 'bespeakNo', title: '当前号数', align: "center", valign: 'middle' } ], responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { if (ress.message != null && ress.message != '') { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); } // return { // "total": 0,//总页数 // "rows": {} //数据 // }; } //临时保存新号表数据 tempData = ress.data; return { "total": ress.data.length,//总页数 "rows": ress.data //数据 }; }, }); } /** * 构建列表查询参数 * @param params * @returns {{mzChargeDetail: {patientId: string | number | string[] | undefined | jQuery, warnDept: string | number | string[] | undefined | jQuery, doctorCode: string | number | string[] | undefined | jQuery, name: string | number | string[] | undefined | jQuery, payMark: number}, beginTime: Date, endTime: Date, pageSize: *, pageIndex: number}} */ function newListQueryParams(params) { var newRangeArr = getNewRangeArr(); if (baseList) { var temp = { beginDate: "2012-02-13 00:00:00", endDate: "2012-02-19 23:59:59", newBeginDate: newRangeArr[0], newEndDate: newRangeArr[1], }; return temp; } var rePortRangeArr = getSourceRangeArr(); var temp = { beginDate: rePortRangeArr[0], endDate: rePortRangeArr[1], newBeginDate: newRangeArr[0], newEndDate: newRangeArr[1], }; return temp; }; /** * 设置病人id */ function setPatientId() { var patientId_or_cardNo = $("#patientId_or_cardNo").val(); $.ajax({ type: "GET", url: '/thmz/getByIcCardNo?icCardNo=' + patientId_or_cardNo, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data != null) { $("#patientId").val(res.data.patientId); } else { $("#patientId").val(patientId_or_cardNo); } } } }); } /** * 获取源号表时间选择器的时间数组 * @returns {string[]} */ function getSourceRangeArr() { var rePortRange = $('#sourceRange span').html(); var rePortRangeArr = rePortRange.split(" - "); rePortRangeArr[0] = rePortRangeArr[0] + " 00:00:00" rePortRangeArr[1] = rePortRangeArr[1] + " 23:59:59" return rePortRangeArr; } /** * 获取新号表时间选择器的时间数组 * @returns {string[]} */ function getNewRangeArr() { var rePortRange = $('#newRange span').html(); var rePortRangeArr = rePortRange.split(" - "); rePortRangeArr[0] = rePortRangeArr[0] + " 00:00:00" rePortRangeArr[1] = rePortRangeArr[1] + " 23:59:59" return rePortRangeArr; } /** * 清空查询条件 */ function cleanParams() { $('#sourceRange span').html(moment().format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD')); $('#newRange span').html(moment().format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD')); $('#ampmParams').selectpicker('val', null); $('#ampmParams').selectpicker('refresh'); $('#unitCode').selectpicker('val', null); $('#unitCode').selectpicker('refresh'); initSourceList(); } /** * 保存临时生成的新号表数据 */ function saveTempRequest() { var index = $("#requestId").val(); var realParams = JSON.parse('{"mzyRequests":""}'); var tempJson = JSON.parse('{"requestDay":"","ampm":"","unitCode":"","doctorCode":"","chargeType":"","totalNum":"","leftNum":"","bespeakNo":"1","checkFee":""}'); tempJson.requestDay = $("#editDay").val(); tempJson.ampm = $("#ampm").val(); tempJson.unitCode = $("#deptNo").val(); tempJson.doctorCode = $("#doctorParam").val(); tempJson.chargeType = $("#chargeType").val(); tempJson.totalNum = $("#totalNum").val(); tempJson.leftNum = $("#totalNum").val(); tempJson.checkFee = $("#checkFee").val(); if (index == null || index == "") { tempData[tempData.length] = tempJson; } else { tempData[index] = tempJson; } realParams.mzyRequests = tempData; $("#editModal").modal("hide"); initNewListCommon("/thmz/formatRequest", realParams); } /** * 保存号表数据 */ function saveRequest() { var data = null; if (showTwoTable) { var realParams = JSON.parse('{"mzyRequests":[]}'); for (var i = 0; i < tempData.length; i++) { var thisData = tempData[i]; var tempJson = JSON.parse('{"requestDay":"","ampm":"","unitCode":"","doctorCode":"","chargeType":"","totalNum":"","leftNum":"","bespeakNo":"1","checkFee":""}'); tempJson.requestDay = thisData.requestDay; tempJson.ampm = thisData.ampm; tempJson.unitCode = thisData.unitCode; tempJson.doctorCode = thisData.doctorCode; tempJson.chargeType = thisData.chargeType; tempJson.totalNum = thisData.totalNum; tempJson.leftNum = thisData.leftNum; tempJson.checkFee = thisData.checkFee; realParams.mzyRequests[i] = tempJson; } data = JSON.stringify(realParams); } else { data = JSON.stringify({ mzyRequests: [{ id: $("#requestId").val(), requestDay: $("#editDay").val(), ampm: $("#ampm").val(), unitCode: $("#deptNo").val(), doctorCode: $("#doctorParam").val(), chargeType: $("#chargeType").val(), totalNum: $("#totalNum").val(), leftNum: $("#totalNum").val(), bespeakNo: 1, checkFee: $("#checkFee").val() }] }); } $.ajax({ type: "POST", url: '/thmz/saveRequest', contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, data: data, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { $("#editModal").modal("hide"); clearInput(); if(showTwoTable){ initSourceList(); }else { $('#tb_table').bootstrapTable('refresh'); } successMesage(res); if (showTwoTable) { $('#sourceRange span').html($('#newRange span').html()); $("#btn_cancel").click(); } } else { errorMesage(res); } } }); } /** * 初始门诊时间区间下拉选 */ function initMzWorkTime() { $.ajax({ type: "GET", url: '/thmz/getMzWorkTime', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(res.data, function (commentIndex, comment) { html += ''; }); $('#ampm').empty(); //清空resText里面的所有内容 $('#ampm').html(html); $('#ampm').selectpicker('refresh'); $('#ampmParams').empty(); //清空resText里面的所有内容 $('#ampmParams').html(html); $('#ampmParams').selectpicker('refresh'); } }); } /** * 挂号列表中的科室列表 */ function initDeptSelect() { //科室列表 $.ajax({ type: "GET", url: '/thmz/allMzUnitCode', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (data) { if (data == '401' || data == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(data.data, function (commentIndex, comment) { html += ''; }); $('#deptNo').empty(); $('#deptNo').html(html); $('#deptNo').selectpicker('refresh'); $('#unitCode').empty(); $('#unitCode').html(html); $('#unitCode').selectpicker('refresh'); } }); } /** * 挂号列表中的医生列表初始化 */ function initDoctorSelect() { //医生列表 $.ajax({ type: "GET", //url: '/thmz/listEmployeeByDepts?depts=' + $('#deptNo').val(), url: '/thmz/listEmployeeByDepts?depts=null', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(res.data, function (commentIndex, comment) { html += ''; }); $('#doctorParam').empty(); $('#doctorParam').html(html); $('#doctorParam').selectpicker('destroy').selectpicker('refresh'); } }); } /** * 初始门诊号别下拉选 */ function initChargeType() { $.ajax({ type: "GET", url: '/thmz/getAllMzChargeType', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(res.data, function (commentIndex, comment) { html += ''; }); $('#chargeType').empty(); //清空resText里面的所有内容 $('#chargeType').html(html); $('#chargeType').selectpicker('refresh'); } }); } /** * 修改号表信息 * @param id */ function updateRequest(id) { $("#requestId").val(id); $.ajax({ type: "GET", url: '/thmz/getRequestById?id=' + id, dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { $("#classTitle").text("修改"); $("#editDay").val(format(res.data.requestDay, "yyyy-MM-dd")); $('#ampm').selectpicker('val', res.data.ampm); $('#ampm').selectpicker('refresh'); $('#deptNo').selectpicker('val', res.data.unitCode); $('#deptNo').selectpicker('refresh'); //initDoctorSelect(); $('#doctorParam').selectpicker('val', res.data.doctorCode); $('#doctorParam').selectpicker('refresh'); $('#chargeType').selectpicker('val', res.data.chargeType); $('#chargeType').selectpicker('refresh'); $("#totalNum").val(res.data.totalNum); $("#totalNum").val(res.data.leftNum); $("#checkFee").val(res.data.checkFee); $("#editModal").modal(); } } }); } /** * 临时新号表修改 * @param index */ function updateRequestByIndex(index) { $("#requestId").val(index); var data = tempData[index]; $("#classTitle").text("修改"); $("#editDay").val(format(data.requestDay, "yyyy-MM-dd")); $('#ampm').selectpicker('val', data.ampm); $('#ampm').selectpicker('refresh'); $('#deptNo').selectpicker('val', data.unitCode); $('#deptNo').selectpicker('refresh'); $('#doctorParam').selectpicker('val', data.doctorCode); $('#doctorParam').selectpicker('refresh'); $('#chargeType').selectpicker('val', data.chargeType); $('#chargeType').selectpicker('refresh'); $("#totalNum").val(data.totalNum); $("#totalNum").val(data.leftNum); $("#checkFee").val(data.checkFee); $("#editModal").modal(); }