//@ sourceURL=toll_administration.js var LODOP; //声明为全局变量 //默认打印机下标 var printIndex = -1; //选中的要退的费用收费编码 var chargeItemCodes = null; //门诊结算单地址 var mzjsdHost = null; var readPatientId =''; var readTimes = null var fpVsesionNo = 0; var hospitalName ='沭阳铭和医院' $(function () { getAjaxRequst("/thmz/queryHospitalName",{},true,function (res) { hospitalName = res.data }) //默认光标在卡号输入框 $("#cardNo").focus(); init_daterangepicker(); initFpVersion(); initSelect(); // initConsumeChequeType(); initFeeTable(); //卡号输入改变事件 cardNoChange(); //重置查询参数 $('#btn_clean').click(function () { cleanParams(); }); //初始化页面上面的按钮事件 //查询 $('#btn_query').click(function () { initFeeTable(); }); // //财务工具包 // $('#btn_tools').click(function () { // $("#toolsModal").modal(); // }); /** * 增加收款方式按钮事件 */ $("#addPayType").on("click", function () { addPayType(null); }); //初始门诊收银方式下拉选 initChequeType("payType"); //初始门诊收银方式下拉选 initChequeType("payTypeEditPayMode"); setTimeout(function () { getLodop(); }, 800); /** * 核酸检测跳转过来的直接刷新待收费列表 */ if (patientIdFullForNucleicAcid != null && patientIdFullForNucleicAcid != "") { $("#cardNo").val(patientIdFullForNucleicAcid); $("#patientId").val(patientIdFullForNucleicAcid); initFeeTable(); } /** * 医保电子凭证读卡 */ $("#siReadCard").on("click", function (t) { // siReadCard("qrcode_01101"); siReadCard("jiangsu_qrcode_01101"); }); /** * 医保刷脸 */ $("#siReadCardFace").on("click", function (t) { siReadCard("face_01101"); }); //获取门诊医保结算单打印服务地址 $.ajax({ type: "GET", url: '/thmz/getMzjsdHost', 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; } mzjsdHost = res.data; } }); /** * 刷卡/扫码 */ $("#consume").on("click", function (t) { consume(); }); }); /** * 列表类型按钮切换事件 * @param object */ function payMarkButtonChange(object) { $("#pay_mark_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"); initFeeTable(); } /** * 收费明细类型按钮切换事件 * @param object */ function billItemButtonChange(object) { $("#bill_item_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"); initChargeDetailTable(); //默认光标在卡号输入框 $("#cardNo").focus(); } /** * 收费明细类型按钮切换事件 * @param object */ function refundBillItemButtonChange(object) { $("#refund_bill_item_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"); initMzChargeDetailByBillItem(false); } //初始化版本电子发票版本 function initFpVersion() { getAjaxRequst("/thmz/queryFpVersion",{},true,function (res) { console.log('发票版本=',res.data) fpVsesionNo = res.data; }) } /** * 初始化下拉选 */ function initSelect() { $(".selectpicker").selectpicker({ dropuAuto: false }); initDeptSelect(); initDoctorSelect(); initCooperativeEnterprisesSelect(); initMztczfSiReadCardTypeSelect(); initTfGrzhzfSelect() } /** * 初始化读卡类型 */ function initMztczfSiReadCardTypeSelect() { $('#mztczfSiReadCardType').html(""); $('#mztczfSiReadCardType').selectpicker('refresh'); var selectHtml = ''; $('#grzhzf').html(selectHtml); $('#grzhzf').selectpicker('refresh'); initAdvmPro('mztczfAdvmPro') } function initTfGrzhzfSelect() { var selectHtml = ''; $('#tfGrzhzf').html(selectHtml); $('#tfGrzhzf').selectpicker('refresh'); initAdvmPro('tfAdvmPro') } //初始化参保地省 function initAdvmPro(proId) { getAjaxRequst("/thmz/queryProvinceCodes",{},true,function (res) { if(res.code == 0 && res.data !=null && res.data.length > 0){ let selectHtml = ''; for (let i=0 ; i ${res.data[i].code} ${res.data[i].name}` } $('#'+proId).html(selectHtml); $('#'+proId).selectpicker('refresh'); } }) } //初始化参保地市 function cityChange(proId,cityId) { let code = $('#'+proId).val() postAjaxJsonHttpRequst("/thmz/queryCityCodes",{code:code},true,function (res) { if(res.code == 0 && res.data !=null && res.data.length > 0){ let selectHtml = ''; for (let i=0 ; i ${res.data[i].code} ${res.data[i].name}` } $('#'+cityId).html(selectHtml); $('#'+cityId).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 += ''; }); $('#deptNoParam').empty(); $('#deptNoParam').html(html); $('#deptNoParam').selectpicker('refresh'); } }); } /** * 挂号列表中的医生列表初始化 */ function initDoctorSelect() { //医生列表 $.ajax({ type: "GET", url: '/thmz/listEmployeeByDepts?depts=' + $('#deptNoParam').val(), 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 initCooperativeEnterprisesSelect() { $.ajax({ type: "GET", url: '/thmz/getAllCooperativeEnterprises', 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 += ''; }); $('#project').empty(); $('#project').html(html); $('#project').selectpicker('destroy').selectpicker('refresh'); $('#projectCharged').empty(); $('#projectCharged').html(html); $('#projectCharged').selectpicker('destroy').selectpicker('refresh'); } }); } var $table_1; /** * 初始化收费表格 */ function initFeeTable() { var payMarkGroup = getIndex("pay_mark_group"); var timeColumusName = "处方时间"; var timeColumus = "priceTime"; $("#refundFeeTip").removeClass("in").addClass("hide"); $("#chargeFeeTip").removeClass("hide").addClass("in"); if (payMarkGroup == 1) { timeColumusName = "缴费时间"; timeColumus = "chargeDate"; $("#refundFeeTip").removeClass("hide").addClass("in"); $("#chargeFeeTip").removeClass("in").addClass("hide"); } else if (payMarkGroup == 2) { timeColumusName = "退费时间"; timeColumus = "inputDate"; } var patientId = $("#patientId").val(); //查询记账信息 if (payMarkGroup == 0 && patientId != null && patientId != '') { $("#patientIdHaveTally").val(patientId); $.ajax({ type: "GET", url: '/thmz/getTallyTotalCharge?patientId=' + patientId, 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 && res.data > 0) { $("#haveTallyModal").modal(); $("#totalTallyAmount").text(res.data.toFixed(2)); } else { $("#haveTallyModal").modal('hide'); } } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } $('#tb_table').bootstrapTable("destroy"); $table_1 = $('#tb_table').bootstrapTable({ url: '/thmz/listMzChargeDetail', //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 queryParams: queryParams, //传递参数(*) sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 5, //每页的记录行数(*) pageList: [5, 10, 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: [ // { // checkbox: true // }, { field: 'realNo', title: '缴费流水号', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'patientId', title: '患者编号', align: "center", valign: 'middle', }, { field: 'name', title: '患者姓名', align: "center", valign: 'middle', }, { field: 'times', title: '就诊次数', align: "center", valign: 'middle', }, { field: 'visitTypeName', title: '患者身份', align: "center", valign: 'middle', }, { field: 'orderTypeName', title: '处方类型', align: "center", valign: 'middle', }, { field: 'receiptNo', title: '结算次数', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'notDiscountAmount', title: '订单金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value).toFixed(2); } }, { field: 'discountAmount', title: '优惠总额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value).toFixed(2); } }, { field: 'amount', title: '应付金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value).toFixed(2); } }, { field: 'warnDept', title: '科室', align: "center", valign: 'middle', }, { field: 'doctorCode', title: '医生', align: "center", valign: 'middle', }, { field: timeColumus, title: timeColumusName, align: "center", valign: 'middle', formatter: function (value, row, index) { if (value == null || value == "") { return ""; } return format(value, "yyyy-MM-dd HH:mm:ss"); } }, { title: '操作', align: "center", valign: 'middle', // sortable: true, formatter: function (value, row, index) { var buttonCodes = localStorage.getItem("buttonCodes"); var str = ''; str += ''; var payMarkGroup = getIndex("pay_mark_group"); if (payMarkGroup == 0) { if(row.countYbZf !=null && row.countYbZf > 0 ){ str += ''; str += ''; } str += ''; if (buttonCodes != null) { if (isInArrayStr("init_clinic_for_exception", buttonCodes)) { str += ''; } } if(row.orderLockFlag != null && row.orderLockFlag == 1){ str += ''; } return str; } if (payMarkGroup == 1) { // str += '' ; if(isInArrayStr("mz_refund", buttonCodes)){ str += ''; } if (row.printFlag == 0 && fpVsesionNo == 0) { str += ''; } else if (row.printFlag == 1 && fpVsesionNo == 0) { str += ''; str += ''; } if(fpVsesionNo == 1){ str += ''; str += ''; } str += ''; //是否有权限设置合同编号 if (buttonCodes != null) { if (isInArrayStr("contract_match", buttonCodes)) { str += ''; } } if (row.countYbZf > 0) { str += ''; } if (row.mztcbl > 0) { str += ''; } if (buttonCodes != null) { if (isInArrayStr("init_clinic_for_exception", buttonCodes)) { str += ''; } } return str; } if (payMarkGroup == 2) { str += ''; if(fpVsesionNo == 1){ str += ''; str += ''; } // str += '' ; return str; } } } ], 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": {} //数据 }; } // if(ress.pageViewVo.total==0){ // $("#cardNo").val(null); // $("#name").val(null); // } return { "total": ress.pageViewVo.total,//总页数 "rows": ress.pageViewVo.data //数据 }; }, /** * @param {点击列的 field 名称} field * @param {点击列的 value 值} value * @param {点击列的整行数据} row * @param {td 元素} $element */ onClickCell: function (field, value, row, $element) { var cardNo = $("#cardNo").val(); if (cardNo == '120' && field == 'name' && (payMarkGroup == 0 || payMarkGroup == 1)) { $element.attr('contenteditable', true); $element.html(null); $element.focus(); $element.blur(function () { var index = $element.parent().data('index'); var tdValue = $element.html(); saveData(index, field, tdValue, row, $table_1); }) } }, }); } /** * 更新病人缴费记录病人姓名 * @param index * @param field * @param value * @param row */ function saveData(index, field, value, row, table) { $.ajax({ type: "POST", url: '/thmz/changePatientIdName', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({"patientId": row.patientId, "times": row.times, "name": value}), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { table.bootstrapTable('updateCell', { index: index, //行索引 field: field, //列名 value: value //cell值 }) } else { table.bootstrapTable('updateCell', { index: index, //行索引 field: field, //列名 value: row.name //cell值 }) errorMesage(res); } } }); } /** * 构建列表查询参数 * @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) { var rePortRangeArr = getRePortRangeArr(); var payMarkGroup = getIndex("pay_mark_group"); var temp = { mzChargeDetail: { patientId: $("#patientId").val(), warnDept: $("#deptNoParam").val(), doctorCode: $("#doctorParam").val(), name: $("#name").val(), payMark: 5 }, beginTime: new Date(rePortRangeArr[0]), endTime: new Date(rePortRangeArr[1]), pageSize: params.limit, //页面大小 pageIndex: params.offset / params.limit, //页码 serialNo: $("#serialNo").val(), ownData: $('#ownData').is(':checked') ? 0 : 1, }; if (payMarkGroup == 1) { temp.mzChargeDetail.payMark = 0; } else if (payMarkGroup == 2) { temp.mzChargeDetail.payMark = 1; } return temp; }; function initChargeDetailTable() { initChargeDetailTablePublic('/thmz/getMzChargeDetailByBillItem', $('#charge_detail_table'), queryParamsForDetail); } function initMzChargeDetailByBillItem(flag) { if (flag) { $("#refund_bill_item_group").removeClass("hide").addClass("in"); if ($("#plusOrMinus").hasClass("fa-plus")) { $("#plusOrMinus").removeClass("fa-plus").addClass("fa-minus"); initChargeDetailTablePublic('/thmz/getNewListForRefundFeeByBillItem', $('#refund_fee_bill_table'), queryParamsForRefundByBillItem); } else if ($("#plusOrMinus").hasClass("fa-minus")) { $("#plusOrMinus").removeClass("fa-minus").addClass("fa-plus"); $("#refund_bill_item_group").removeClass("in").addClass("hide"); $('#refund_fee_bill_table').bootstrapTable("destroy"); } } else { initChargeDetailTablePublic('/thmz/getNewListForRefundFeeByBillItem', $('#refund_fee_bill_table'), queryParamsForRefundByBillItem); } } //撤销医保重新 申请医保电子凭证 function reqYb() { let tfReadType = $("#tfReadType").val(); if(!stringNotBlank($("#tfGrzhzf").val())){ errorMesageSimaple('请选择是否使用个账或共济账户支付') return } if(!stringNotBlank(tfReadType)){ errorMesageSimaple('请选择读卡类型') return } if(tfReadType == '02'){ sfzReadCard() }else { let param = { patientId :$("#patientIdRefund").val(), times :$("#timesRefund").val() } postAjaxJsonHttpRequst("/thmz/retractYbFees",param,true,function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if(res.code == 0){ successMesageSimaple('医保费用撤销成功!') reSiReadCard(false,tfReadType); }else { errorMesage(res) } }) } } function sfzReadCard() { let tfAdvmCity = $("#tfAdvmCity").val() if(!stringNotBlank(tfAdvmCity)){ errorMesageSimaple("请选择参保地") return } $.ajax({ type: "GET", // url: 'http://localhost:8321/readcard/entry?param=idcard_01101', url: 'http://localhost:8321/readcard/entry?param=huashi_readcard', contentType: "application/json;charset=UTF-8", dataType: "json", async: true, 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 == 200) { $("#cdReadCardResult").val(res.data); var str = res.data.split("^"); var str1= str.filter(item=>item !=''); let IDNumber = str1[0]; postAjaxJsonHttpRequst("/thmz/queryNewInsuinfo",{ patientId :$("#patientIdRefund").val(), times :$("#timesRefund").val(), admdvs:tfAdvmCity, socialNo:IDNumber },true,function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if(res.code == 0){ let param = { patientId :$("#patientIdRefund").val(), times :$("#timesRefund").val() } postAjaxJsonHttpRequst("/thmz/retractYbFees",param,true,function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if(res.code == 0){ successMesageSimaple("撤销医保费用成功") }else { errorMesage(res) } }) }else { errorMesage(res) } }) } else { errorMesage(res); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { errorMesageSimaple("读卡错误") } }); } function reSiReadCard(asyncFlag,tfReadType) { let params =''; let url = ''; if(tfReadType == '03'){ // 江苏医保读取社保卡使用专用地址 url = 'http://localhost:8321/readcard/jiangsu/readcard_auto'; }else if(tfReadType == '01'){ // params ='qrcode_01101'; params ='jiangsu_qrcode_01101'; // url = 'http://localhost:8321/readcard/entry?param=' + params; url = 'http://localhost:8321/api/entry?param=' + params; }else if(tfReadType =='02'){ // params ='idcard_01101' params ='huashi_readcard'; url = 'http://localhost:8321/readcard/entry?param=' + params; } $.ajax({ type: "GET", url: url, contentType: "application/json;charset=UTF-8", dataType: "json", async: asyncFlag, 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 == 200) { successMesageSimaple('读卡成功') if(tfReadType == '01'){ var data = JSON.parse(res.data); $("#cdReadCardResult").val(JSON.stringify(data.data)); }else { $("#cdReadCardResult").val(res.data); } } else { errorMesage(res); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { errorMesageSimaple("读卡错误") } }); } /** * 初始化收费明细表格 */ function initChargeDetailTablePublic(url, obj, params) { $(obj).bootstrapTable("destroy"); $(obj).bootstrapTable({ url: url, //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 // sortName: 'orderNo', //排序字段 queryParams: params, //传递参数(*) sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 5, //每页的记录行数(*) pageList: [5, 10, 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: [ // { // checkbox: true // }, { field: 'orderNo', title: '处方号', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'chargeItemCode', title: '编码', align: "center", valign: 'middle', }, { field: 'tcName', title: '项目', align: "center", valign: 'middle', }, // { // field: 'times', // title: '规格', // align: "center", // valign: 'middle', // }, { field: 'quantity', title: '数量', align: "center", valign: 'middle' }, { field: 'drugWin', title: '副数', align: "center", valign: 'middle', }, { field: 'origPrice', title: '原单价(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { if (value != undefined && value != null) { return value.toFixed(2); } } }, { field: 'unitPrice', title: '折后单价(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } }, { field: 'amount', title: '总金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } } ], responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); return { "total": 0,//总页数 "rows": {} //数据 }; } return { //"total": ress.pageViewVo.total,//总页数 "rows": ress.data //数据 }; }, }); } /** * 构建列表查询参数 * @param params * @returns {{patientId: string | number | string[] | undefined | jQuery, times: string | number | string[] | undefined | jQuery, billItemCode: number}} */ function queryParamsForDetail(params) { var billItemGroup = getIndex("bill_item_group"); var payMarkGroup = getIndex("pay_mark_group"); var temp = { patientId: $("#patientIdChargeItem").val(), times: $("#timesChargeItem").val(), receiptNo: $("#receiptNoChargeItem").val(), billItemCode: billItemGroup, payMark: 5 }; if (payMarkGroup == 1) { temp.payMark = 0; } else if (payMarkGroup == 2) { temp.payMark = 1; } return temp; }; /** * 构建列表查询参数 * @param params * @returns {{patientId: string | number | string[] | undefined | jQuery, times: string | number | string[] | undefined | jQuery, billItemCode: number}} */ function queryParamsForRefundByBillItem(params) { var billItemGroup = getIndex("refund_bill_item_group"); return { patientId: $("#patientIdRefund").val(), times: $("#timesRefund").val(), receiptNo: $("#receiptNoRefund").val(), chargeItemCodes: chargeItemCodes, billItemCode: billItemGroup }; }; /** * 卡号输入改变事件 */ function cardNoChange() { if (window.ActiveXObject || "ActiveXObject" in window) { $("#cardNo").on('input propertychange', function () { queryUserInfoByCardNo(); }); } else { $("#cardNo").on('input οninput', function () { queryUserInfoByCardNo(); }); } } /** * 卡号有变化后查询病人信息 */ function queryUserInfoByCardNo() { var cardNo = $("#cardNo").val(); var index = cardNo.indexOf("-"); if (index > 0 && index == cardNo.length - 2) { $("#patientId").val(cardNo); initFeeTable(); } else if (cardNo == '120' || cardNo.length == 8) { $("#cardNo").attr("title", cardNo); $.ajax({ type: "GET", url: '/thmz/getByIcCardNo?icCardNo=' + 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); initFeeTable(); } } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } else if (cardNo == null || cardNo == "") { cleanParams(); } } /** * 获取按钮组选择的下标 * @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; } /** * 获取时间选择器的时间数组 * @returns {string[]} */ function getRePortRangeArr() { var rePortRange = $('#reportrange span').html(); var rePortRangeArr = rePortRange.split(" - "); rePortRangeArr[0] = rePortRangeArr[0] + " 00:00:00" rePortRangeArr[1] = rePortRangeArr[1] + " 23:59:59" return rePortRangeArr; } /** * 打开收费窗口 */ function confirmFeeModal(times, totalCharge, receiptNo) { var buttonCodes = localStorage.getItem("buttonCodes"); if (buttonCodes != null) { if (isInArrayStr("contract_match", buttonCodes)) { $("#projectDiv").removeClass("hide").addClass("in"); } else { $("#projectDiv").removeClass("in").addClass("hide"); } } else { $("#projectDiv").removeClass("in").addClass("hide"); } var payTypeList = $("#payType").children(); if (payTypeList.length == 1) { $('#payType').selectpicker('val', 'Y'); } else { $('#payType').selectpicker('val', 1); } $('#payType').selectpicker('refresh'); var data = parseFloat($("#dataIdHaveTally").val()); if (totalCharge != null && totalCharge > 0) { data = totalCharge; $("#timesHaveTally").val(times); $("#receiptNoHaveTally").val(receiptNo); } var prevAll = $("#changeAmountParent").prevAll(); while (prevAll.length > 1) { $("#changeAmountParent").prev().remove(); prevAll = $("#changeAmountParent").prevAll(); } // $("#realMoney").val($("#amountMoneyConfirm").text()); // $("#cash").val($("#amountMoneyConfirm").text()); $("#tallyDetailModal").modal('hide'); $("#haveTallyModal").modal('hide'); $("#confirmFeeModal").modal(); $("#amountMoneyConfirm").text(data); //医保报销金额 var fundPay = $("#fundPay").val(); //个人账户支付金额 var acctPay = $("#acctPay").val(); //医保卡类型 var cardType = $("#cardType").val(); var payTypeIndex = 0; if (fundPay > 0) { var payTypeId = "payType_" + payTypeIndex++; addPayType(payTypeId); $('#' + payTypeId).selectpicker('val', 2); $('#' + payTypeId).selectpicker('refresh'); $('#' + payTypeId).parent().parent().next().children(':first').val(fundPay); $('#' + payTypeId).parent().parent().next().next().children(':first').remove(); $('#' + payTypeId).attr("disabled", true); $('#' + payTypeId).parent().parent().next().children(':first').attr("readonly", "readonly"); //payTypeIndex++; } if (acctPay > 0) { var payTypeId = "payType_" + payTypeIndex++; addPayType(payTypeId); // var ybkType = 'T'; // if (cardType != null && (cardType == 2 || cardType == "2")) { // ybkType = 'P'; // } $('#' + payTypeId).selectpicker('val', cardType); $('#' + payTypeId).selectpicker('refresh'); $('#' + payTypeId).parent().parent().next().children(':first').val(acctPay); $('#' + payTypeId).parent().parent().next().next().children(':first').remove(); $('#' + payTypeId).attr("disabled", true); $('#' + payTypeId).parent().parent().next().children(':first').attr("readonly", "readonly"); } $("#payTypeIndex").val(payTypeIndex); //总金额减医保报销 var realMoney = Minus(data, fundPay); //减完医保报销后减个人医保卡支付金额 realMoney = Minus(realMoney, acctPay); $("#realMoney").val(data); if (realMoney > 0) { addPayType("payType"); $("#cash").val(realMoney); } // $("#cash").val(null); setTimeout(function () { //默认光标在现金输入框 $("#cash").focus(); }, 800); if (payTypeList.length == 1) { $('#payType').selectpicker('val', 'Y'); } else { $('#payType').selectpicker('val', 'O'); } $("#changeAmount").val(0.0); $("#surplusAmount").val(0.0); $("input.refNo").val(null); $("input.transDate").val(null); $("input.payChannel").val(null); $("input.qrCodeParam").val(null); $("input.traceNo").val(null); sendPriceMessage(realMoney, 0.0, 0.0, $("#patientIdHaveTally").val()); } /** * 打开收费明细窗口 * @param data */ function chargeDetailModal(patientId, times, receiptNo) { $("#patientIdChargeItem").val(patientId); $("#timesChargeItem").val(times); $("#receiptNoChargeItem").val(receiptNo); $("#chargeDetailModal").modal(); initChargeDetailTable(); } /** * 病人当前就诊次数的诊断查询 * @param data */ function diagnoseQuery(patientId, times) { $.ajax({ type: "POST", url: '/thmz/getVisitTableByPatientIdAndTimes', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({"patientId": patientId, "times": times}), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data.icdText != null || res.data.icdText != '') { $("#diagnoseModal").modal(); $("#diagnose").html(res.data.icdText); } else { new PNotify({ title: '操作提示', text: '当前病人诊断未知', type: 'warn', styling: 'bootstrap3' }); } } else { errorMesage(res); } } }); } // /** // * 打开退费重收明细窗口 // * @param data // */ // function chargeRefundDetailModal(patientId, times) { // // $("#patientIdChargeItem").val(patientId); // // $("#timesChargeItem").val(times); // initMzChargeDetailByBillItem(); // } /** * 初始门诊收银方式下拉选 */ function initChequeType(payType) { $.ajax({ type: "GET", url: '/thmz/getAllZdChequeTypeForMz', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(res.data, function (commentIndex, comment) { html += ''; }); $('#' + payType).empty(); $('#' + payType).html(html); $('#' + payType).selectpicker('refresh'); if (res.data.length == 1) { $('#' + payType).selectpicker('val', 'Y'); } else { $('#' + payType).selectpicker('val', 'O'); } $('#' + payType).selectpicker('refresh'); } }); } /** * 关闭当前这个付款方式 */ function closeThisParent(obj) { $(obj).parent().parent().parent().remove(); checkFee(false); } /** * 校验收款金额 * @param flag 是否是提交时候的校验,是的话,如果缴费金额不够,需要返回 false */ function checkFee(flag) { var realMoney = parseFloat($("#realMoney").val()); realMoney = toDecimal(realMoney); $("#realMoney").val(realMoney); var arr = $("#payForm").find("div.pay-item"); if (arr.length > 0) { // //是否存在未使用的收款方式 // var hadNotFill=false; //非现金收款总金额 var notCashAmount = 0; //现金收款总额 var cashAmount = 0; for (var i = 0; i < arr.length; i++) { var temp = parseFloat($(arr[i]).find("input.money").val()); if (isNaN(temp)) { temp = 0; // hadNotFill=true; } if ($(arr[i]).find("select").val() != 1) { notCashAmount = Add(notCashAmount, temp); } else { cashAmount = Add(cashAmount, temp); } for (var j = 0; j < arr.length; j++) { if ($(arr[i]).find("select").val() == $(arr[j]).find("select").val() && i != j) { new PNotify({ title: '错误提示', text: "已经存在相同的收款方式,请不要重复添加!", type: 'error', hide: true, styling: 'bootstrap3' }); return; } } } var totalAmount = Add(cashAmount, notCashAmount); $("#surplusAmount").val(0.0); if (totalAmount < realMoney) { if (flag) { new PNotify({ title: '错误提示', text: "收款金额不能少于实收金额,请调整收款金额或者增加收款方式!", type: 'error', hide: true, styling: 'bootstrap3' }); return false; } if (totalAmount == 0) { $("#addPayType").parent().removeClass("in").addClass("hide"); } else { $("#addPayType").parent().removeClass("hide").addClass("in"); } // if(!hadNotFill){ // addPayType(null); // } $("#changeAmount").val(0.00); var surplusAmount = Minus(realMoney, totalAmount); $("#surplusAmount").val(surplusAmount); return; } var changeAmount = 0.00; if (totalAmount >= realMoney) { changeAmount = Minus(totalAmount, realMoney); //changeAmount = changeAmount.toFixed(2); $("#changeAmount").val(changeAmount); $("#addPayType").parent().removeClass("in").addClass("hide"); if (!flag) { sendPriceMessage(realMoney, totalAmount, changeAmount, $("#patientIdHaveTally").val()); } } //设置收费首页找零与应收和实收金额 $("#payableAmount").text(realMoney); $("#paidAmount").text(totalAmount); $("#changedAmount").text(changeAmount); } //计算和设置折扣比例 var amountMoneyConfirm = parseFloat($("#amountMoneyConfirm").text()); var discount = 100; if (realMoney < amountMoneyConfirm) { discount = Division(realMoney, Multiply(amountMoneyConfirm, 100)); } $("#discount").text(toDecimal(discount)); return true; } /** * 异常接诊数据修复 * @param patientId * @param times * @param payMark * @param receiptNo */ function initClinicForException(patientId, times, payMark, receiptNo) { $.ajax({ type: "GET", url: '/thmz/initClinicForException?patientId=' + patientId + '×=' + times+ '&receiptNo=' + receiptNo + "&payMark=" + payMark, 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) { successMesage(res); } else { errorMesage(res); } } }); } /** * 提示有记账记录 */ function tipHaveTally(data, patientId, times, name, receiptNo) { addOrderLock(patientId,times,null) closeConfirmFeeModal(); if (patientId == null || patientId == "") { return; } $("#patientIdHaveTally").val(patientId); $("#nameHaveTally").val(name); $("#dataIdHaveTally").val(data); $("#timesHaveTally").val(times); $("#receiptNoHaveTally").val(receiptNo); saveFeeGzzf() // postAjaxJsonHttpRequst("/thmz/queryCountYbZf",{"patientId": patientId, "times": times},true,function (rs) { // if (rs == '401' || rs == 401) { // window.location.href = '/thmz/login/view' // return; // } // if(rs.code == 0){ // if(rs.data > 0){ // // } // }else { // errorMesage(rs); // } // // }) } //收费时保存个账支付选择 function saveFeeGzzf() { $.ajax({ type: "POST", url: '/thmz/getTmFee', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({"patientId": $("#patientIdHaveTally").val(), "times": $("#timesHaveTally").val(), "receiptNo": $("#receiptNoHaveTally").val()}), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data != undefined && res.data != null) { $("#fundPay").val(res.data.fundPay); $("#acctPay").val(res.data.acctPay); $("#cardType").val(res.data.ybkType); //$("#realMoney").val(res.data.selfPay); } else { $("#fundPay").val(0.0); $("#acctPay").val(0.0); $("#cardType").val(null); } } else { errorMesage(res); } $("#saveConfirmFee").attr("disabled", false); } }); confirmFeeModal(null, null, null); } var $tally_detail_table; /** * 初始化本院记账明细表格 */ function initTallyDetailTable() { $("#haveTallyModal").modal('hide'); var patientId = $("#patientIdHaveTally").val(); // var name = $("#nameHaveTally").val(); if (patientId == null || patientId == '') { return; } $("#tallyDetailModal").modal(); $('#tally_detail_table').bootstrapTable("destroy"); $tally_detail_table = $('#tally_detail_table').bootstrapTable({ url: '/thmz/getTallyReceiptSerial?patientId=' + patientId, //请求后台的URL(*) method: 'get', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: false, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 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: [ // { // checkbox: true, // }, { field: 'patientId', title: '病人编号', align: "center", valign: 'middle' }, { field: 'name', title: '病人姓名', align: "center", valign: 'middle', // formatter: function (value, row, index) { // return name; // } }, { field: 'times', title: '就诊次数', align: "center", valign: 'middle', }, { field: 'totalCharge', title: '总费用(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } }, { field: 'chargeDate', title: '记账时间', align: "center", valign: 'middle', formatter: function (value, row, index) { return format(value, "yyyy-MM-dd HH:mm:ss"); } } // , { // title: '操作', // align: "center", // valign: 'middle', // // sortable: true, // formatter: function (value, row, index) { // var str = ''; // return str; // } // } ], /** * @param {点击列的 field 名称} field * @param {点击列的 value 值} value * @param {点击列的整行数据} row * @param {td 元素} $element */ onClickCell: function (field, value, row, $element) { var cardNo = $("#cardNo").val(); if (cardNo == '120' && field == 'name') { $element.attr('contenteditable', true); $element.html(null); $element.focus(); $element.blur(function () { var index = $element.parent().data('index'); var tdValue = $element.html(); saveData(index, field, tdValue, row, $tally_detail_table); }) } }, onDblClickRow: function (row) { confirmFeeModal(row.times, row.totalCharge, row.receiptNo); }, responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { errorMesage(ress); return { "total": 0,//总页数 "rows": {} //数据 }; } if (ress.data == null || ress.data.length == 0) { $("#tallyDetailModal").modal("hide"); } return { "rows": ress.data //数据 }; }, }); } /** * 提交缴费申请 */ function saveConfirmFee() { $("#saveConfirmFee").attr("disabled", true); if (!checkFee(true)) { $("#saveConfirmFee").attr("disabled", false); return; } var project = $("#project").val(); let dyTgId = $("#dyTgId").val(); var jsonData = JSON.parse('{"patientId":"","times":"","receiptNo":"","mzDepositFiles":[]}'); var patientId = $("#patientIdHaveTally").val(); var times = $("#timesHaveTally").val(); var receiptNo = $("#receiptNoHaveTally").val(); jsonData.patientId = patientId; jsonData.times = times; jsonData.receiptNo = receiptNo; var arr = $("#payForm").find("div.pay-item"); if (arr.length > 0) { for (var i = 0; i < arr.length; i++) { var temp = parseFloat($(arr[i]).find("input.money").val()); if (temp == null || temp == 0) { continue; } var tempJson = JSON.parse('{"chequeType":"","amount":"","contractId":"","psordnum":"","agtordnum":"","parChannel":"","transDate":"","traceNo":"","dyTgNo":""}'); tempJson.chequeType = $(arr[i]).find("select").val(); tempJson.psordnum = $(arr[i]).find("input.refNo").val(); tempJson.agtordnum = $(arr[i]).find("input.qrCodeParam").val(); tempJson.parChannel = $(arr[i]).find("input.payChannel").val(); tempJson.transDate = $(arr[i]).find("input.transDate").val(); tempJson.traceNo = $(arr[i]).find("input.traceNo").val(); //现金有可能会多收,比入实收37,对方给了100,需要找零63. 所以必须减去找零金额,才是实收金额 if (tempJson.chequeType == "1") { temp = temp - $("#changeAmount").val(); temp = temp.toFixed(2); } if (project != null && project != "null" && project != "") { tempJson.contractId = project; } if(stringNotBlank(dyTgId)){ tempJson.dyTgNo = dyTgId; } tempJson.amount = temp; jsonData.mzDepositFiles[jsonData.mzDepositFiles.length] = tempJson; } } $.ajax({ type: "POST", url: '/thmz/chargeFee', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify(jsonData), 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(fpVsesionNo == 0){ prn1Print(patientId, times, true, res.receiptNo); }else { printDzfp(patientId, times,res.receiptNo,0) } successMesage(res); closeConfirmFeeModal(); //缴费成功后清空全局参数 patientIdFullForNucleicAcid = null; initFeeTable(); //默认光标在卡号输入框 $("#cardNo").focus(); // toEvaluation(patientId); toNewEvaluation(patientId,times); } else { errorMesage(res); } $("#saveConfirmFee").attr("disabled", false); } }); } /** * 关闭收费确认模态弹框 */ function closeConfirmFeeModal() { $("#confirmFeeModal").modal("hide"); $("#patientId").val(null); $("#cardNo").val(null); $("#name").val(null); $("#fundPay").val(0); $("#acctPay").val(0); $("#cardType").val(null); } /** * 保存合作项目 */ function saveProject() { var projectRealNo = $("#projectRealNo").val(); var projectCharged = $("#projectCharged").val(); $.ajax({ type: "GET", url: '/thmz/setMzDepositFileSetContractId?contractId=' + projectCharged + '&serialNo=' + projectRealNo, 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) { successMesage(res); $("#projectRealNo").val(null); $('#projectCharged').selectpicker('val', null); $('#projectCharged').selectpicker('refresh'); $("#projectModal").modal("hide"); } else { errorMesage(res); } $("#saveConfirmFee").attr("disabled", false); } }); } //上传电子发票 function printDzfp(patientId,times,receiptNo,loadingFlag) { if(loadingFlag == 1){ $("#dzfpLoadingModal").modal('show'); } postAjaxJsonHttpRequst("/thmz/getNewAllSerialForThisTime",{patientId:patientId,times:times,receiptNo:receiptNo},true,function (res) { if(res.code == 0){ uploadMzInvoice(patientId,times,receiptNo,1) }else { $("#dzfpLoadingModal").modal('hide'); errorMesage(res) } }) } /** * * @param patientId * @param times * @param receiptNo * @param typeFlag 1 上传门诊蓝字发票 2上传红字发票 (作废) */ function uploadMzInvoice(patientId,times,receiptNo,typeFlag) { postAjaxJsonHttpRequst("/thmz/uploadMzInvoice",{patientId:patientId,times:times,receiptNo:receiptNo,ghFlag:false,typeFlag:typeFlag},true,function (rs) { if(typeFlag == 1){ $("#dzfpLoadingModal").modal('hide'); } if(rs.code ==0){ successMesageSimaple("电子发票上传成功!") if(typeFlag == 1){ initFeeTable(); } }else { errorMesage(rs); } }) } var dzfp_patientId ; var dzfp_times ; var dzfp_receiptNo; var dzfp_typeFlag; //打开电子发票弹窗 function openDzfpDownModal(patientId,times,receiptNo,typeFlag) { dzfp_patientId = patientId; dzfp_times = times; dzfp_receiptNo = receiptNo; dzfp_typeFlag = typeFlag; $("#dzfpDownModal").modal(); } /** * @param type 1 打印二维码 2 下载pdf */ function downOrPrintDzfp(type) { downloadDzfp(dzfp_patientId,dzfp_times,dzfp_receiptNo,dzfp_typeFlag,type) } //下载电子发票 function downloadDzfp(patientId,times,receiptNo,typeFlag,type) { setPrint(); postAjaxJsonHttpRequst("/thmz/queryInvoiceFile",{patientId:patientId,times:times,typeFlag:typeFlag,receiptNo:receiptNo},true,function (res) { if(res.code == 0){ $("#dzfpDownModal").modal("hide"); if(type == 2 || !stringNotBlank(type)){ base64toPDF(res.data.pdfFileStr) }else { //打印二维码 let height = "70mm" let bkimgWidth = "110mm" LODOP = getLodop(); LODOP.PRINT_INITA(6, 0, bkimgWidth, height, hospitalName+"门诊电子发票二维码打印"); //设置默认打印机 LODOP.SET_PRINTER_INDEX(printIndex); LODOP.SET_SHOW_MODE("BKIMG_WIDTH", bkimgWidth); LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", height); LODOP.SET_PRINT_PAGESIZE(1,bkimgWidth, height, "CreateCustomPage"); LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "门诊电子发票二维码");//对新建的纸张重命名 LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小 LODOP.ADD_PRINT_TEXT("6mm", "3mm", "60mm", "3mm", hospitalName+"发票二维码"); LODOP.ADD_PRINT_IMAGE("10mm", "3mm", "50mm", "50mm", "data:image/png;base64,"+res.data.qrcode); LODOP.PRINT(); // LODOP.PREVIEW(); } }else { errorMesage(res) } }) } /** * 直接打印发票 * @param patientId * @param times * @param chargeFeeFlag 收费 退费标记 true 收费和重打发票来源 false 退费来源 */ function prn1PrintHand(patientId, times, chargeFeeFlag, receiptNo, realNo) { $("#button_" + realNo).css("display", "none"); prn1Print(patientId, times, chargeFeeFlag, receiptNo); } /** * 直接打印发票 * @param patientId * @param times * @param chargeFeeFlag 收费 退费标记 true 收费和重打发票来源 false 退费来源 */ function prn1Print(patientId, times, chargeFeeFlag, receiptNo) { var url = '/thmz/getAllSerialForThisTime?patientId=' + patientId + "×=" + times + "&receiptNo=" + receiptNo; printCommon(url, patientId, times, chargeFeeFlag); } /** * 重打发票 * @param patientId * @param times */ function repPrint(patientId, times, receiptNo) { $.ajax({ type: "GET", url: '/thmz/getReceiptForThisTime?patientId=' + patientId + "×=" + times + "&receiptNo=" + receiptNo, 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.length == 1) { var message = "确定要重新打印发票号码为【" + res.data[0].receiptBill + "】的发票吗?请确认发票打印机即将要打印的发票编号"; var url = '/thmz/repPrintForThisTime?patientId=' + patientId + "×=" + times + "&obsolete=0&receiptBill=" + res.data[0].receiptBill; confirmMessage(patientId, times, message, url); } else { $("#tip_message").text("请选择需要重新打印的发票号"); $("#repPrintModal").modal(); $("#repPrintTable").html(null); for (var i = 0; i < res.data.length; i++) { $("" + res.data[i].receiptBill + "").appendTo("#repPrintTable").bind('click', function () { $("#repPrintModal").modal("hide"); var message = "确定要重新打印发票号码为【" + $(this).text() + "】的发票吗?请确认发票打印机即将要打印的发票编号"; var url = '/thmz/repPrintForThisTime?patientId=' + patientId + "×=" + times + "&obsolete=0&receiptBill=" + $(this).text(); confirmMessage(patientId, times, message, url); }); } } } } }); } /** * 发票重打提示 * @param patientId * @param times * @param name */ function confirmMessage(patientId, times, message, url) { if (!confirm(message)) { return; } //var url='/thmz/repPrintForThisTime?patientId=' + patientId + "×=" + times + "&obsolete=0" + "&receiptBill="+receiptBill; printCommon(url, patientId, times, true); } /** * 作废重打发票 * @param patientId * @param times */ function obsoleteAndRepPrint(patientId, times, receiptNo) { $.ajax({ type: "GET", url: '/thmz/getReceiptForThisTime?patientId=' + patientId + "×=" + times + "&receiptNo=" + receiptNo, 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.length == 1) { var message = "确定要作废发票号码为【" + res.data[0].receiptBill + "】的发票吗?请确认需要作废发票编号"; var url = '/thmz/repPrintForThisTime?patientId=' + patientId + "×=" + times + "&obsolete=1&receiptBill=" + res.data[0].receiptBill; confirmMessage(patientId, times, message, url); } else { $("#tip_message").text("请选择需要作废的发票号"); $("#repPrintModal").modal(); $("#repPrintTable").html(null); for (var i = 0; i < res.data.length; i++) { $("" + res.data[i].receiptBill + "").appendTo("#repPrintTable").bind('click', function () { $("#repPrintModal").modal("hide"); var message = "确定要作废发票号码为【" + $(this).text() + "】的发票吗?请确认需要作废发票编号"; var url = '/thmz/repPrintForThisTime?patientId=' + patientId + "×=" + times + "&obsolete=1&receiptBill=" + $(this).text(); confirmMessage(patientId, times, message, url); }); } } } } }); } /** * 打印医保结算单 * @param patientId * @param times * @param receiptNo */ function printYbjsd(patientId, times, receiptNo) { if (mzjsdHost == null) { errorMesageSimaple("医保结算单域名为空,操作失败!"); return; } const iframeEle = document.getElementById('ybjsdDiv'); const loadingEle = document.getElementById('loading'); //设置ififrame透明 iframeEle.style.opacity = 0; loadingEle.style.display = 'block'; var url = mzjsdHost + "/siSettleDetailList/" + patientId + "/" + times; $("#ybjsdDiv").attr("src", url); iframeEle.addEventListener('load', function () { // Hide the loading indicator loadingEle.style.display = 'none'; // Bring the iframe back iframeEle.style.opacity = 1; }); $("#ybjsdModal").modal(); } /** * 匹配合作项目 * @param realNo */ function matchProject(realNo) { $("#projectRealNo").val(realNo); $("#projectModal").modal(); $.ajax({ type: "GET", url: '/thmz/getMzDepositFileContractId?serialNo=' + realNo, 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) { $('#projectCharged').selectpicker('val', res.data); $('#projectCharged').selectpicker('refresh'); } } }); } /** * 打印发票通用方法 * @param patientId * @param times * @param chargeFeeFlag 收费 退费标记 true 收费和重打发票来源 false 退费来源 */ function printCommon(url, patientId, times, chargeFeeFlag) { setPrint(); var height = "93.15mm"; // if (countReceiot % 2 == 0) { // height = "93.2mm"; // } $.ajax({ type: "GET", url: url, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data == null || res.data.length == 0) { return; } // countReceiot++; for (var i = 0; i < res.data.length; i++) { LODOP = getLodop(); var temp = res.data[i].mzReceiptSerial; LODOP.PRINT_INITA(6, 0, "120mm", height, "铭和门诊发票打印"); //设置默认打印机 LODOP.SET_PRINTER_INDEX(printIndex); LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "120mm"); LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", height); LODOP.SET_PRINT_PAGESIZE(1, "120mm", height, "CreateCustomPage"); LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "门诊发票");//对新建的纸张重命名 LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小 LODOP.ADD_PRINT_TEXT("6mm", "0mm", "55mm", "3mm", hospitalName); LODOP.ADD_PRINT_TEXT("6mm", "59mm", "30mm", "3mm", "机制号:"); LODOP.ADD_PRINT_TEXT("6mm", "72mm", "20mm", "3mm", temp.serialNo); LODOP.ADD_PRINT_TEXT("19mm", "0mm", "35mm", "3mm", temp.receiptBill); LODOP.ADD_PRINT_TEXT("25mm", "7mm", "40mm", "3mm", res.mzPatientMi.name); LODOP.ADD_PRINT_TEXT("25mm", "61mm", "27mm", "3mm", patientId); var feeList = res.data[i].feeList; if (feeList != null && feeList.length > 0) { var top = 32; var left = 6; for (var j = 0; j < feeList.length; j++) { var row = parseInt(j / 3); var tempTop = top + row * 5; var tempLeft = left; if (j % 3 == 1) { tempLeft = left + 30; } else if (j % 3 == 2) { tempLeft = left + 60; } LODOP.ADD_PRINT_TEXT(tempTop + "mm", tempLeft + "mm", "30mm", "3mm", feeList[j]); } } // LODOP.ADD_PRINT_TEXT("32mm","25mm","25mm","3mm","诊查费 10.00"); // LODOP.ADD_PRINT_TEXT("32mm","50mm","25mm","3mm","中成药费30.10"); // LODOP.ADD_PRINT_TEXT("37mm","25mm","25mm","3mm","治疗费 22.00"); // LODOP.ADD_PRINT_TEXT("37mm","50mm","25mm","3mm","材料费 14.20"); // LODOP.ADD_PRINT_TEXT("42mm","25mm","25mm","3mm","西药费 161.20"); // var qyxxs = res.data[i].qyxxs; // if (qyxxs != null && qyxxs.length > 0) { // var top = 54; // for (var j = 0; j < qyxxs.length; j++) { // var row = j / 3; // var tempTop = top + row * 10; // var qyxx = qyxxs[j]; // var arr = qyxx.split(","); // LODOP.ADD_PRINT_TEXT(tempTop + "mm", "6mm", "50mm", "3mm", "取药窗口:" + arr[0]); // LODOP.ADD_PRINT_TEXT(tempTop + "mm", "61mm", "50mm", "3mm", "取药号码:" + arr[1]); // } // } var payInfo = res.data[i].payInfo; LODOP.ADD_PRINT_TEXT("54mm", "6mm", "100mm", "3mm", payInfo); // LODOP.ADD_PRINT_TEXT("54mm","25mm","50mm","3mm","取药窗口:西药房4号窗口"); // LODOP.ADD_PRINT_TEXT("54mm","80mm","35mm","3mm","取药号码:408392"); var totalCharge = temp.totalCharge + " 元 "; if (res.data[i].countYbZf > 0) { totalCharge = totalCharge + "城职普门" } else { totalCharge = totalCharge + "自费" } LODOP.ADD_PRINT_TEXT("65mm", "21mm", "65mm", "3mm", totalCharge); LODOP.ADD_PRINT_TEXT("72mm", "19mm", "65mm", "3mm", res.data[i].totalChargeStr); LODOP.ADD_PRINT_TEXT("79mm", "0mm", "15mm", "3mm", res.data[i].year);//年 LODOP.ADD_PRINT_TEXT("79mm", "13mm", "10mm", "3mm", res.data[i].month);//月 LODOP.ADD_PRINT_TEXT("79mm", "25mm", "10mm", "3mm", res.data[i].day);//日 LODOP.ADD_PRINT_TEXT("79mm", "53mm", "50mm", "3mm", temp.operatorId);//收费员 LODOP.PRINT(); //LODOP.PREVIEW(); initFeeTable(); } } else if (res.code == -1) { //退费就退出,不提示异常 if (!chargeFeeFlag) { return; } new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } // // /** // * 加载打印机列表 // * @constructor // */ // function CreatePrinterList() { // LODOP = getLodop(); // LODOP.PRINT_INITA(6, 0, "92mm", "120mm", "铭和门诊发票打印"); // //获取打印机设备数,用于进行遍历 // var count = LODOP.GET_PRINTER_COUNT(); // var html = ""; // for (var i = 0; i < count; i++) { // //根据设备序号获取设备名 // var msg = LODOP.GET_PRINTER_NAME(i); // html += ""; // } // $('#printSelect').html(html); // $('#printSelect').selectpicker('refresh'); // $.ajax({ // type: "GET", // url: '/thmz/getLastWindowsByCurrentUser', // 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) { // $('#printSelect').selectpicker('val', res.data.printIndex); // $('#printSelect').selectpicker('refresh'); // printIndex=res.data.printIndex; // } // } // }); // } // // // /** // * 保存窗口号 // */ // function saveWindows() { // $.ajax({ // type: "POST", // url: '/thmz/saveWindows', // contentType: "application/json;charset=UTF-8", // dataType: "json", // data: JSON.stringify({"windowsNo": $("#windowsNum").val()}), // headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, // success: function (res) { // if (res == '401' || res == 401) { // window.location.href = '/thmz/login/view' // return; // } // $('#editWindowsModal').modal('hide'); // if (res.code == 0) { // new PNotify({ // title: '操作提示', // text: res.message, // type: 'success', // hide: true, // styling: 'bootstrap3' // }); // } else { // new PNotify({ // title: '错误提示', // text: res.message, // type: 'error', // hide: true, // styling: 'bootstrap3' // }); // } // } // }); // } // // // // /** // * 保存打印机 // */ // function savePrint() { // $.ajax({ // type: "POST", // url: '/thmz/savePrintIndex', // contentType: "application/json;charset=UTF-8", // dataType: "json", // data: JSON.stringify({"printIndex": $("#printSelect").val()}), // headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, // success: function (res) { // if (res == '401' || res == 401) { // window.location.href = '/thmz/login/view' // return; // } // LODOP = getLodop(); // LODOP.PRINT_INITA(6, 0, "92mm", "120mm", "铭和门诊发票打印"); // LODOP.SET_PRINTER_INDEX($("#printSelect").val()); // printIndex=$("#printSelect").val(); // $('#editPrintModal').modal('hide'); // if (res.code == 0) { // new PNotify({ // title: '操作提示', // text: res.message, // type: 'success', // hide: true, // styling: 'bootstrap3' // }); // } else { // new PNotify({ // title: '错误提示', // text: res.message, // type: 'error', // hide: true, // styling: 'bootstrap3' // }); // } // } // }); // } /** * 查询默认打印机 */ function setPrint() { if (printIndex >= 0) { return; } $.ajax({ type: "GET", url: '/thmz/getLastWindowsByCurrentUser', contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { printIndex = res.data.printIndex; } else { printIndex = -1; } } }); } /** * 退费操作 */ function refundFee(patientId, times, receiptNo, printFlag,orderTypeName) { if(orderTypeName =='商城处方'){ errorMesageSimaple('商城处方不能退费') return } $("#refundFeePrepare").text(0.00); $("#refundFeeDetailModal").modal(); $("#refund_bill_item_group").removeClass("in").addClass("hide"); $('#refund_fee_bill_table').bootstrapTable("destroy"); initRefundFeeDetailTable(patientId, times, receiptNo); } /** * 初始化退费明细表格 * @param patientId * @param times * @param receiptNo */ function initRefundFeeDetailTable(patientId, times, receiptNo) { $("#patientIdRefund").val(patientId); $("#timesRefund").val(times); $("#receiptNoRefund").val(receiptNo); $('#refund_fee_detail_table').bootstrapTable("destroy"); $('#refund_fee_detail_table').bootstrapTable({ url: '/thmz/getRefundFeeDetail', //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: false, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 // sortName: 'orderNo', //排序字段 queryParams: queryParamsForRefundFee(patientId, times, receiptNo), //传递参数(*) sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 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: [ { checkbox: true, formatter: function (value, row, index) { if (row.confirmFlag == 1) { return { disabled: true, //设置是否可用 checked: false//设置选中 } } if (row.confirmFlag == 3) { //getRefundFee(); return { disabled: true, //设置是否可用 checked: true//设置选中 } } } }, { field: 'orderNo', title: '处方号', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: '', title: '项目号', align: "center", valign: 'middle', formatter: function (value, row, index) { return index + 1; } }, { field: 'billItemCode', title: '分类名称', align: "center", valign: 'middle', }, { field: 'yjName', title: '医技项目名称', align: "center", valign: 'middle', },{ field: 'chargeItemCode', title: '收费编码', align: "center", valign: 'middle', }, { field: 'tcName', title: '项目', align: "center", valign: 'middle', }, { field: 'quantity', title: '数量', align: "center", valign: 'middle' , formatter: function (value, row, index) { return value * row.drugWin; } }, { field: 'unitPrice', title: '单价(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } }, { field: 'amount', title: '总金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } }, { field: 'confirmFlag', title: '确认标志', align: "center", valign: 'middle', formatter: function (value, row, index) { if (value == 0) { return "待确认"; } if (value == 1) { return "已确认"; } if (value == 3) { return "已取消"; } if (value == 4) { return "已退费"; } } }, { field: 'decAmount', title: '退药量', align: "center", valign: 'middle', // formatter: function (value, row, index) { // return value.toFixed(2); // } }, { field: 'execDept', title: '确认科室', align: "center", valign: 'middle' }, { field: 'confirmTime', title: '确认时间', align: "center", valign: 'middle', formatter: function (value, row, index) { if (value != null && value != "") { return format(value, "yyyy-MM-dd HH:mm:ss"); } return ""; } } ], //点击全选框时触发的操作 onCheckAll: function (rows) { getRefundFee(); }, //取消所有 onUncheckAll: function (row) { getRefundFee(); }, //点击每一个单选框时触发的操作 onCheck: function (row) { getRefundFee(); }, //取消每一个单选框时对应的操作; onUncheck: function (row) { getRefundFee(); }, responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); return { "total": 0,//总页数 "rows": {} //数据 }; } return { //"total": ress.pageViewVo.total,//总页数 "rows": ress.data //数据 }; }, //加载完成事件 onLoadSuccess: function (data) { getRefundFee(); } }); } /** * 退费列表参数 * @param patientId * @param times * @returns {{patientId: *, times: *}} */ function queryParamsForRefundFee(patientId, times, receiptNo) { var temp = { patientId: patientId, times: times, receiptNo: receiptNo }; return temp; }; /** * 每次选择费用清单明细时计算实际应退金额 */ function getRefundFee() { extracted(); if (chargeItemCodes == null) { $("#refundFeePrepare").text(0.00); return; } $.ajax({ type: "POST", url: '/thmz/getNewListForRefundFee', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({ patientId: $("#patientIdRefund").val(), times: $("#timesRefund").val(), receiptNo: $("#receiptNoRefund").val(), chargeItemCodes: chargeItemCodes }), 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) { $("#refundFeePrepare").text(res.pageViewVo.data[0].refundFee.toFixed(2)); } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } /** * 发起预退费 */ function readyRefundFee() { extracted(); $("#refundFeeModal").modal(); initRefundChargeDetailTable(chargeItemCodes); $("#refundFeeDetailModal").modal("hide"); } /** * 获取预退费金额 * @returns {*} */ function extracted() { var allSelecteds = $('#refund_fee_detail_table').bootstrapTable('getAllSelections'); chargeItemCodes = null; if (allSelecteds != null && allSelecteds.length > 0) { for (var i = 0; i < allSelecteds.length; i++) { var temp = allSelecteds[i].orderNo + "_" + allSelecteds[i].itemNo + "_" + allSelecteds[i].chargeItemCode; if (chargeItemCodes == null) { chargeItemCodes = temp; } else { chargeItemCodes += "," + temp; } } } } /** * 初始化退费重收费明细表格 */ function initRefundChargeDetailTable(chargeItemCodes) { $('#refund_fee_table').bootstrapTable("destroy"); $('#refund_fee_table').bootstrapTable({ url: '/thmz/getNewListForRefundFee', //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: false, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 // sortName: 'orderNo', //排序字段 queryParams: queryParamsForRefundDetail(chargeItemCodes), //传递参数(*) sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 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: [ // { // checkbox: true // }, { field: 'patientId', title: '患者编号', align: "center", valign: 'middle', }, { field: 'name', title: '患者姓名', align: "center", valign: 'middle', }, { field: 'oriAmount', title: '已收金额(元)', align: "center", valign: 'middle', }, { field: 'refundFee', title: '应退金额(元)', align: "center", valign: 'middle' }, { field: 'amount', title: '应收金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { title: '操作', align: "center", valign: 'middle', // sortable: true, formatter: function (value, row, index) { var str = ""; if (row.amount == 0 || row.amount == null || row.amount == undefined) { str = ''; } else { str = ''; } if((row.amount == 0 || row.amount == null || row.amount == undefined) || row.ybZfFlag == null || row.ybZfFlag =='0'){ str += ''; }else { str += ''; } if(row.mipOrderFlag == 1){ str += ``; } str += ''; str += ''; return str; } } ], responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); return { "total": 0,//总页数 "rows": {} //数据 }; } if((ress.pageViewVo.data[0].ybZfFlag =='1' ) && (ress.pageViewVo.data[0].amount !=null && ress.pageViewVo.data[0].amount != undefined && ress.pageViewVo.data[0].amount != 0)){ $("#tfGrzhzfDiv").removeClass("hide").addClass("in"); }else { $("#tfGrzhzfDiv").removeClass("in").addClass("hide"); } $("#oriAmount").text(ress.pageViewVo.data[0].oriAmount); $("#newAmount").text(ress.pageViewVo.data[0].amount); $("#refundAmount").text(ress.pageViewVo.data[0].refundFee); return { "total": ress.pageViewVo.total,//总页数 "rows": ress.pageViewVo.data //数据 }; }, }); } /** * 构建列表查询参数 * @param chargeItemCodes * @returns {{patientId: string | number | string[] | undefined | jQuery, times: string | number | string[] | undefined | jQuery, billItemCode: number}} */ function queryParamsForRefundDetail(chargeItemCodes) { return { patientId: $("#patientIdRefund").val(), times: $("#timesRefund").val(), receiptNo: $("#receiptNoRefund").val(), chargeItemCodes: chargeItemCodes }; }; /** * 关闭预退费窗口 */ function closeRefundFeeDetailModal() { $("#refundFeeDetailModal").modal("hide"); } /** * 提交退费操作 * @param refundType 0 现金退费 1 原路退费 */ function saveRefundFee(refundType) { var params = queryParamsForRefundByBillItem(null); params.refundType = refundType; params['readCardResult'] = $("#cdReadCardResult").val() params['acctUsedFlag'] = $("#tfGrzhzf").val() params['readCardType'] = $("#tfReadType").val() $.ajax({ type: "POST", url: '/thmz/saveRefundFee', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify(params), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } $("#cdReadCardResult").val(null) if (res.code == 0 || res.code == -2) { successMesage(res); $("#refundFeeModal").modal("hide"); var refundMzDepositFiles = res.refundMzDepositFiles; if (refundMzDepositFiles != null && refundMzDepositFiles.length > 0) { var html = ''; for (var i = 0; i < refundMzDepositFiles.length; i++) { var mzDepositFile = refundMzDepositFiles[i]; html += '
'; html += ''; html += '
'; html += ''; html += '
'; html += ''; html += ''; html += '
'; } $("#refundPayDetailForm").html(html); $("#refundPayDetailModal").modal(); } //作废电子发票 if(fpVsesionNo == 1){ uploadMzInvoice(params.patientId, params.times,params.receiptNo,2); } if (res.times > 0) { let fpTitle = fpVsesionNo == 0 ? '打印' : '上传'; if(confirm(`是否${fpTitle}发票?`)){ if(fpVsesionNo == 0){ prn1Print(res.patientId, res.times, false, 1); }else { printDzfp(res.patientId, res.times,1,0) } } } else { initFeeTable(); } } else { errorMesage(res); } } }); } /** * 清空查询条件 */ function cleanParams() { $("#deptNoParam").selectpicker('val', null);//默认选中 $("#deptNoParam").selectpicker('refresh'); $("#doctorParam").selectpicker('val', null);//默认选中 $("#doctorParam").selectpicker('refresh'); $("#cardNo").val(null); $("#name").val(null); $('#reportrange span').html(moment().format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD')); $("#patientId").val(null); //默认光标在卡号输入框 $("#cardNo").focus(); $("#serialNo").val(null); $("#ownData").removeAttr("checked"); } /** * 增加收费方式 */ function addPayType(id) { // var arr = $("#payForm").find("div.pay-item"); // if (arr.length > 0) { // for (var i = 0; i < arr.length; i++) { // var temp = parseFloat($(arr[i]).find("input").val()); // if (temp == 0) { // new PNotify({ // title: '错误提示', // text: "存在未使用的收款方式,请不要重复添加!", // type: 'error', // hide: true, // styling: 'bootstrap3' // }); // return; // } // } // } var payTypeId = null; if (id != undefined && id != null) { payTypeId = id; } else { var payTypeIndex = $("#payTypeIndex").val(); payTypeId = "payType_" + payTypeIndex; } var html = '
0) { // 重试时保持loading状态,不隐藏 setTimeout(function () { callReadCardWithRetry(url, retryCount - 1, retryDelay, successCallback, errorCallback); }, retryDelay); } else { errorCallback(res); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { if (retryCount > 0) { // 重试时保持loading状态,不隐藏 setTimeout(function () { callReadCardWithRetry(url, retryCount - 1, retryDelay, successCallback, errorCallback); }, retryDelay); } else { errorCallback({ message: "读卡异常" }); } } }); } /** * 打开读卡类型弹窗 */ function mztczfSiReadCardTypeModel(patientId,times) { addOrderLock(patientId,times,null) $("#readCardResult").val(null); $("#pBusiCardInfo").val(null); readPatientId = patientId readTimes = times $('#mztczfSiReadCardType').selectpicker('val', null); $('#mztczfSiReadCardType').selectpicker('refresh'); $('#grzhzf').selectpicker('val', null); $('#grzhzf').selectpicker('refresh'); $("#mztczfSiReadCardModal").modal(); } /** * 处方加锁 */ function addOrderLock(patientId,times,receiptNo) { postAjaxJsonHttpRequst("/thmz/addOrderLock",{patientId:patientId,times:times,receiptNo:receiptNo},true,function (res) { }) } /** * 处方解锁 */ function deleteOrderLock(patientId,times,receiptNo) { postAjaxJsonHttpRequst("/thmz/deleteOrderLock",{patientId:patientId,times:times,receiptNo:receiptNo},true,function (res) { if(res.code == 0){ successMesageSimaple('处方解锁成功') } }) } /** * 医保结算 * @param patientId * @param times */ function directRegistration(patientId, times) { //显示弹层 $("#loadingModal").modal('show'); $.ajax({ type: "POST", url: '/thmz/directRegistration', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({ patientId: patientId, times: times, readCardResult: $("#readCardResult").val(), busCardInfo: $("#pBusiCardInfo").val(), grzhzf: $("#grzhzf").val(), readCardType: $("#mztczfSiReadCardType").val() }), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { //隐藏 $("#loadingModal").modal('hide'); if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { successMesage(res); } else { errorMesage(res); } } }); } /** * 门诊统筹补录 * @param patientId * @param times * @param receiptNo */ function mztcbl(patientId, times, receiptNo) { $.ajax({ type: "GET", url: '/thmz/mztcblInfo?patientId=' + patientId + "×=" + times + "&receiptNo=" + receiptNo, 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) { $("#changedTotalAmount").val(res.data.totalAmount); $("#ybjzAmount").val(res.data.fund_pay_sumamt); $("#accAmount").val(res.data.acct_pay); $("#needRefundAmount").val(res.data.refundFee); $("#mzblPatientId").val(patientId); $("#mzblTimes").val(times); $("#mzblReceiptNo").val(receiptNo); //successMesage(res); } else { errorMesage(res); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { } }); $("#mzblModal").modal(); } /** * 提交门诊补录申请 */ function chargeFeeForMztcbl() { if (!confirm("确定要对当前费用进行门诊统筹补录操作吗?")) { return; } var patientId = $("#mzblPatientId").val(); var times = $("#mzblTimes").val(); var receiptNo = $("#mzblReceiptNo").val(); $.ajax({ type: "GET", url: '/thmz/chargeFeeForMztcbl?patientId=' + patientId + "×=" + times + "&receiptNo=" + receiptNo, 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) { $("#mzblModal").modal("hide"); clearMztcbl(); if(fpVsesionNo == 0){ prn1Print(patientId, times, false, res.receiptNo); }else { printDzfp(patientId, times,res.receiptNo,0) } } else { errorMesage(res); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { } }); } /** * 清空门诊统筹补录 */ function clearMztcbl() { $("#changedTotalAmount").val(null); $("#ybjzAmount").val(null); $("#accAmount").val(null); $("#needRefundAmount").val(null); $("#mzblPatientId").val(null); $("#mzblTimes").val(null); $("#mzblReceiptNo").val(null); } /** * 刷卡/扫码,正常收费的的接口 */ function consume() { $("#consume").attr("disabled", true); $("#saveConfirmFee").attr("disabled", true); var current = $("#payForm").find("div.pay-item").last(); var patientId = $("#patientIdHaveTally").val(); var times = $("#timesHaveTally").val(); var chequeType = $(current).find("select").val(); var amt = parseFloat($(current).find("input.money").val()); $.ajax({ type: "POST", url: '/thmz/consume', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({ "patientId": patientId, "times": times, "chequeType": chequeType, "amt": amt, "type": 0 }), 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) { successMesage(res); $(current).find("input.refNo").val(res.data.refNo); $(current).find("input.transDate").val(res.data.transDate); $(current).find("input.payChannel").val(res.data.payChannel); $(current).find("input.qrCodeParam").val(res.data.wxAliPayOrderNo); $(current).find("input.traceNo").val(res.data.traceNo); } else { errorMesage(res); } $("#saveConfirmFee").attr("disabled", false); $("#consume").attr("disabled", false); } }); } /** * 查看缴费方式列表 * @param patientId * @param times * @param receiptNo */ function depositFileList(patientId, times, receiptNo) { var payMarkGroup = getIndex("pay_mark_group"); var payMark = 0; if (payMarkGroup == 2) { payMark = 1; } $("#depositFileListModal").modal(); $('#deposit_fileList_table').bootstrapTable("destroy"); $('#deposit_fileList_table').bootstrapTable({ url: '/thmz/getMzDepositFileList', //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 queryParams: {"patientId": patientId, "times": times, "receiptNo": Math.abs(receiptNo), "payMark": payMark}, //传递参数(*) sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 5, //每页的记录行数(*) pageList: [5, 10, 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: [ { field: 'patientId', title: '患者编号', align: "center", valign: 'middle', }, { field: 'times', title: '就诊次数', align: "center", valign: 'middle', }, { field: 'receiptNo', title: '结算次数', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'chequeType', title: '支付方式', align: "center", valign: 'middle' }, { field: 'amount', title: '金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value).toFixed(2); } }, { title: '操作', align: "center", valign: 'middle', // sortable: true, formatter: function (value, row, index) { if (payMarkGroup == 0) { return ''; } var html = ''; if (payMarkGroup > 0) { if ((row.chequeType == '银联卡' || row.chequeType == '聚合支付') && row.psordnum != null && row.psordnum != "" && row.psordnum != "null") { html += ''; } } return html; } } ], 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 != '') { errorMesage(ress); } return { "total": 0,//总页数 "rows": {} //数据 }; } return { "total": ress.data.length,//总页数 "rows": ress.data //数据 }; }, }); } /** * 创建退款条形码 * @param chequeType * @param psordnum * @param agtordnum * @param parChannel * @param traceNo * @param patientId * @param times * @param amount * @param transDate */ function createBarcode(chequeType, psordnum, agtordnum, parChannel, traceNo, patientId, times, amount, transDate) { var payMarkGroup = getIndex("pay_mark_group"); $("#depositFileListModal").modal('hide'); $("#parChannel").val('否'); if (traceNo == null || traceNo == 'null') { traceNo = ''; } $("#traceNo").val(traceNo); $("#transDate").val(transDate); amount = amount.replace("-", ""); if (chequeType == "银联卡") { if (psordnum != null && psordnum != "" && psordnum != "null") { if (payMarkGroup == 1) { $("#plId").val(patientId + "_" + times + "_3"); } else { $("#plId").val(psordnum + "_" + amount); } $("#refNo").val(psordnum); JsBarcode("#barcode", 'no barcode'); $("#barcodeModal").modal(); } return; } if (agtordnum != null && agtordnum != "" && agtordnum != "null") { if (payMarkGroup == 1) { $("#plId").val(patientId + "_" + times + "_O"); //此时是未退费状态,不加载可退费的条形码,以免误操作退费 JsBarcode("#barcode", 'no barcode'); } else { JsBarcode("#barcode", agtordnum); $("#plId").val(psordnum + "_" + amount); } $("#refNo").val(psordnum); if (parChannel != null && parChannel == 'DIGITAL_CASH') { $("#parChannel").val('是'); } $("#barcodeModal").modal(); } else { $("#messageModal").modal(); $("#messageContent").html("当前操作的缴费记录支付方式非聚合支付,无法生成对应的支付条形码!"); return; } } // // // /** // * 签到 // */ // function sign() { // $.ajax({ // type: "GET", // url: '/thmz/sign', // 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) { // successMesage(res); // } else { // errorMesage(res); // } // } // }); // } // // // // /** // * 查余 // */ // function balance() { // $.ajax({ // type: "GET", // url: '/thmz/balance', // 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) { // successMesage(res); // } else { // errorMesage(res); // } // } // }); // } // // /** // * 打开刷卡消费页面 // */ // function consumeModal() { // $("#toolsModal").modal('hide'); // $("#consumeModal").modal(); // } // // /** // * 刷卡/扫码,财务工具调用 // */ // function consumeCommon() { // var chequeType = $("#consumeChequeType").val(); // var amt = $("#consumeAmount").val(); // $.ajax({ // type: "POST", // url: '/thmz/consumeCommon', // contentType: "application/json;charset=UTF-8", // dataType: "json", // data: JSON.stringify({ // "chequeType": chequeType, // "amt": amt // }), // 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) { // successMesage(res); // } else { // errorMesage(res); // } // } // }); // } // // /** // * 打开退费窗口 // */ // function refundModal() { // $("#toolsModal").modal('hide'); // $("#refundModal").modal(); // } // // /** // * 退费 // */ // function refund() { // var chequeType = $("#consumeChequeTypeRefund").val(); // var amt = $("#refundPosAmount").val(); // var parChannel = $("#parChannelRefund").val(); // var psordnum = $("#refNoRefund").val(); // var transDate = $("#transDateRefund").val(); // var agtordnum = $("#barcodeRefund").val(); // $.ajax({ // type: "POST", // url: '/thmz/refund', // contentType: "application/json;charset=UTF-8", // dataType: "json", // data: JSON.stringify({ // "chequeType": chequeType, // "amt": amt, // "parChannel": parChannel, // "psordnum": psordnum, // "transDate": transDate, // "agtordnum": agtordnum // }), // 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) { // successMesage(res); // } else { // errorMesage(res); // } // } // }); // } // // /** // * 打开重印窗口 // */ // function reprintModal() { // $("#toolsModal").modal('hide'); // $("#reprintModal").modal(); // } // // // /** // * 重印 // */ // function reprint() { // var traceNoReprint=$("#traceNoReprint").val(); // $.ajax({ // type: "GET", // url: '/thmz/reprint?traceNo='+traceNoReprint, // 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) { // successMesage(res); // } else { // errorMesage(res); // } // } // }); // } // // /** // * 打开交易查询页面 // */ // function queryModal() { // $("#toolsModal").modal('hide'); // $("#queryModal").modal(); // } // // // /** // * 交易查询 // */ // function query() { // var plId=$("#plIdReprint").val(); // $.ajax({ // type: "GET", // url: '/thmz/query?plId='+plId, // 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) { // alert(res.data); // successMesage(res); // } else { // errorMesage(res); // } // } // }); // } // // // /** // * 结算 // */ // function settle() { // $.ajax({ // type: "GET", // url: '/thmz/settle', // 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) { // successMesage(res); // } else { // errorMesage(res); // } // } // }); // } // // // // /** // * 初始化财务工具的收费方式下拉选 // */ // function initConsumeChequeType() { // var html=""; // $("#consumeChequeType").html(html); // $('#consumeChequeType').selectpicker('refresh'); // $("#consumeChequeTypeRefund").html(html); // $('#consumeChequeTypeRefund').selectpicker('refresh'); // $("#parChannelRefund").html(""); // $('#parChannelRefund').selectpicker('refresh'); // } // // // /** // * 退货方式改变事件 // */ // function consumeChequeTypeRefundChange() { // var consumeChequeTypeRefund=$("#consumeChequeTypeRefund").val(); // if(consumeChequeTypeRefund=='3'){ // $("#barcodeRefundDiv").removeClass("in").addClass("hide"); // $("#parChannelRefundDiv").removeClass("in").addClass("hide"); // $("#refNoRefundDiv").removeClass("hide").addClass("in"); // $("#transDateRefundDiv").removeClass("hide").addClass("in"); // }else { // $("#barcodeRefundDiv").removeClass("hide").addClass("in"); // $("#parChannelRefundDiv").removeClass("hide").addClass("in"); // $("#refNoRefundDiv").removeClass("in").addClass("hide"); // $("#transDateRefundDiv").removeClass("in").addClass("hide"); // } // }