|
@@ -0,0 +1,402 @@
|
|
|
+//@ sourceURL=paid_from_zz.js
|
|
|
+$(function () {
|
|
|
+ //默认光标在卡号输入框
|
|
|
+ $("#cardNo").focus();
|
|
|
+ init_daterangepicker();
|
|
|
+ initSelect();
|
|
|
+ initFeeTable();
|
|
|
+ //卡号输入改变事件
|
|
|
+ cardNoChange();
|
|
|
+
|
|
|
+ //重置查询参数
|
|
|
+ $('#btn_clean').click(function () {
|
|
|
+ cleanParams();
|
|
|
+ });
|
|
|
+ //初始化页面上面的按钮事件
|
|
|
+ //查询
|
|
|
+ $('#btn_query').click(function () {
|
|
|
+ initFeeTable();
|
|
|
+ });
|
|
|
+
|
|
|
+});
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化下拉选
|
|
|
+ */
|
|
|
+function initSelect() {
|
|
|
+ $(".selectpicker").selectpicker({
|
|
|
+ dropuAuto: false
|
|
|
+ });
|
|
|
+ $('#orderType').empty();
|
|
|
+ $('#orderType').html('<option value="-1">全部</option><option value="1">挂号费</option><option value="2">门诊缴费</option><option value="3">住院预缴金</option>');
|
|
|
+ $('#orderType').selectpicker('refresh');
|
|
|
+ $("#orderType").selectpicker('val', -1);//默认选中
|
|
|
+ $('#orderType').selectpicker('refresh');
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 列表类型按钮切换事件
|
|
|
+ * @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();
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化收费表格
|
|
|
+ */
|
|
|
+function initFeeTable() {
|
|
|
+ var payMarkGroup = getIndex("pay_mark_group");
|
|
|
+ var timeColumusName = "缴费时间";
|
|
|
+ var timeColumus = "payDatetime";
|
|
|
+ if (payMarkGroup == 1) {
|
|
|
+ timeColumusName = "退费时间";
|
|
|
+ timeColumus = "refundOpDatetime";
|
|
|
+ }
|
|
|
+ $('#tb_table').bootstrapTable("destroy");
|
|
|
+ $('#tb_table').bootstrapTable({
|
|
|
+ url: '/thmz/listOrdersByConditions', //请求后台的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: 10, //每页的记录行数(*)
|
|
|
+ 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: 'patientName',
|
|
|
+ title: '患者姓名',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle',
|
|
|
+ }, {
|
|
|
+ field: 'body',
|
|
|
+ title: '缴费项目',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle',
|
|
|
+ }, {
|
|
|
+ field: 'totalFee',
|
|
|
+ title: '金额(元)',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle',
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ return Math.abs(value).toFixed(2);
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ field: 'tradeNo',
|
|
|
+ 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: '操作',
|
|
|
+ field: 'op',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle',
|
|
|
+ // sortable: true,
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ var str = '';
|
|
|
+ if (payMarkGroup == 0) {
|
|
|
+ str += '<button type="button" class="registration-no-color-foot-button" title="退费" onclick="refundFee(\'' + row.patientId + '\',' + row.id + ',' + row.totalFee + ',\'' + row.tradeNo + '\',\'' + row.patientName + '\',\'' + row.body + '\',);"><i class="fa fa-reply"></i></button>';
|
|
|
+ }
|
|
|
+ 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(payMarkGroup==0){
|
|
|
+ $('#tb_table').bootstrapTable('showColumn', 'op');
|
|
|
+ }else {
|
|
|
+ $('#tb_table').bootstrapTable('hideColumn', 'op');
|
|
|
+ }
|
|
|
+ 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 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 payStatus = 1;
|
|
|
+ if (payMarkGroup == 1) {
|
|
|
+ payStatus = 4;
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ patientId: $("#patientId").val(),
|
|
|
+ patientName: $("#name").val(),
|
|
|
+ orderType: $('#orderType').val(),
|
|
|
+ payStatus: payStatus,
|
|
|
+ beginTime: rePortRangeArr[0],
|
|
|
+ endTime: rePortRangeArr[1],
|
|
|
+ pageSize: params.limit, //页面大小
|
|
|
+ pageIndex: params.offset / params.limit //页码
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 卡号输入改变事件
|
|
|
+ */
|
|
|
+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 refundFee(patientId,id, totalFee, tradeNo,name,body) {
|
|
|
+ $("#refundId").val(id);
|
|
|
+ $("#patientIdRead").val(patientId);
|
|
|
+ $("#nameRead").val(name);
|
|
|
+ $("#bodyRead").val(body);
|
|
|
+ $("#amountRead").val(totalFee);
|
|
|
+ $("#refundFeeModal").modal();
|
|
|
+ $("#tradeNoRead").val(tradeNo);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 清空提示区域
|
|
|
+ */
|
|
|
+function clearMode() {
|
|
|
+ $("#refundId").val(null);
|
|
|
+ $("#tradeNoRead").val(null);
|
|
|
+ $("#patientIdRead").val(null);
|
|
|
+ $("#patientId").val(null);
|
|
|
+ $("#bodyRead").val(null);
|
|
|
+ $("#amountRead").val(null);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 提交退费操作
|
|
|
+ */
|
|
|
+function saveRefundFee() {
|
|
|
+ $.ajax({
|
|
|
+ type: "POST",
|
|
|
+ url: '/thmz/refundOrder',
|
|
|
+ contentType: "application/json;charset=UTF-8",
|
|
|
+ dataType: "json",
|
|
|
+ data: JSON.stringify({
|
|
|
+ id: $("#refundId").val(),
|
|
|
+ totalFee: $("#amountRead").val(),
|
|
|
+ tradeNo: $("#tradeNoRead").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;
|
|
|
+ }
|
|
|
+ if (res.code == 0) {
|
|
|
+ new PNotify({
|
|
|
+ title: '操作提示',
|
|
|
+ text: res.message,
|
|
|
+ type: 'success',
|
|
|
+ hide: true,
|
|
|
+ styling: 'bootstrap3'
|
|
|
+ });
|
|
|
+ $("#refundFeeModal").modal("hide");
|
|
|
+ initFeeTable();
|
|
|
+ } else {
|
|
|
+ new PNotify({
|
|
|
+ title: '错误提示',
|
|
|
+ text: res.message,
|
|
|
+ type: 'error',
|
|
|
+ hide: true,
|
|
|
+ styling: 'bootstrap3'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 清空查询条件
|
|
|
+ */
|
|
|
+function cleanParams() {
|
|
|
+ $("#orderType").selectpicker('val', null);//默认选中
|
|
|
+ $("#orderType").selectpicker('refresh');
|
|
|
+ $("#patientId").val(null);
|
|
|
+ $("#name").val(null);
|
|
|
+ $('#reportrange span').html(moment().format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD'));
|
|
|
+ $("#orderType").selectpicker('val', -1);//默认选中
|
|
|
+ $('#orderType').selectpicker('refresh');
|
|
|
+}
|
|
|
+
|