|
@@ -0,0 +1,407 @@
|
|
|
+//@ sourceURL=yf_divide.js
|
|
|
+var pharmacyGroupNo;//药房编码
|
|
|
+$(function () {
|
|
|
+ $(".selectpicker").selectpicker();
|
|
|
+ $("#pharmacyModal").modal("show");
|
|
|
+ //初始化药品查询弹出框
|
|
|
+ initDrugSearchList();
|
|
|
+ $('#searchText').on('input focus',function(e){
|
|
|
+ showDrugPopover();
|
|
|
+ });
|
|
|
+});
|
|
|
+
|
|
|
+//显示查询的药品悬浮窗
|
|
|
+function showDrugPopover() {
|
|
|
+ $('#tb_table_medicine').bootstrapTable('destroy');
|
|
|
+ $('#tb_table_medicine').bootstrapTable({
|
|
|
+ url: '/thmz/getYpBaseYfLike', //请求后台的URL(*)
|
|
|
+ method: 'GET', //请求方式(*)
|
|
|
+ //toolbar: '#toolbar', //工具按钮用哪个容器
|
|
|
+ striped: true, //是否显示行间隔色
|
|
|
+ cache: true, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
|
|
|
+ pagination: false, //是否显示分页(*)
|
|
|
+ sortable: true, //是否启用排序
|
|
|
+ sortOrder: "asc", //排序方式
|
|
|
+ queryParams:queryParamsDrugTable, //传递参数(*)
|
|
|
+ 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: 'chargeCode',
|
|
|
+ title: '编码',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },{
|
|
|
+ field: 'name',
|
|
|
+ title: '药品名',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'specification',
|
|
|
+ title: '规格',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'packRetprice',
|
|
|
+ title: '单价',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ }, {
|
|
|
+ field: 'stockAmount',
|
|
|
+ title: '药房库存',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle',
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ return value<1?'<span style="color: red">'+value+'</span>':value;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ onClickRow: function (row, $element) {
|
|
|
+ $('#searchText').webuiPopover('hide');
|
|
|
+ var data= $('#add_drug_table').bootstrapTable('getData',true);
|
|
|
+ for (let i = 0; i <data.length; i++) {
|
|
|
+ if(data[i].chargeCode == row.chargeCode){
|
|
|
+ return errorMesageSimaple('该药品已存在');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('#tb_table').bootstrapTable('prepend', row);
|
|
|
+ },
|
|
|
+ responseHandler: function (res) {
|
|
|
+ if (res == '401' || res == 401) {
|
|
|
+ window.location.href = '/thmz/login/view'
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var ress = eval(res);
|
|
|
+ if (ress.code == -1) {
|
|
|
+ errorMesage(res);
|
|
|
+ return {
|
|
|
+ "total": 0,//总页数
|
|
|
+ "rows": {} //数据
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ "total": ress.data.length,//总页数
|
|
|
+ "rows": ress.data //数据
|
|
|
+ };
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 药品列表查询参数
|
|
|
+ */
|
|
|
+function queryParamsDrugTable() {
|
|
|
+ var temp = {
|
|
|
+ groupNo: pharmacyGroupNo,
|
|
|
+ searchText: $("#searchText").val() == "" ? null : $("#searchText").val(),
|
|
|
+ };
|
|
|
+ return temp;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化参数
|
|
|
+ */
|
|
|
+function init() {
|
|
|
+ pharmacyGroupNo = $("#pharmacyGroupNo").val();
|
|
|
+ $("#pharmacyModal").modal("hide");
|
|
|
+ initTable();
|
|
|
+ initDivide();
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 查询列表
|
|
|
+ */
|
|
|
+function initTable() {
|
|
|
+ $('#tb_table').bootstrapTable('destroy');
|
|
|
+ $('#tb_table').bootstrapTable({
|
|
|
+ method: 'GET', //请求方式(*)
|
|
|
+ toolbar: '#toolbar', //工具按钮用哪个容器
|
|
|
+ striped: true, //是否显示行间隔色
|
|
|
+ cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
|
|
|
+ pagination: true, //是否显示分页(*)
|
|
|
+ sortable: true, //是否启用排序
|
|
|
+ sortOrder: "asc", //排序方式
|
|
|
+ singleSelect: true, // 单选checkbox
|
|
|
+ sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*)
|
|
|
+ pageNumber: 1, //初始化加载第一页,默认第一页
|
|
|
+ pageSize: 10, //每页的记录行数(*)
|
|
|
+ pageList: [10, 20, 40, 100], //可供选择的每页的行数(*)
|
|
|
+ search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
|
|
|
+ strictSearch: true,
|
|
|
+ showColumns: false, //是否显示所有的列
|
|
|
+ showRefresh: false, //是否显示刷新按钮
|
|
|
+ minimumCountColumns: 2, //最少允许的列数
|
|
|
+ clickToSelect: true, //是否启用点击选中行
|
|
|
+ uniqueId: "ID", //每一行的唯一标识,一般为主键列
|
|
|
+ showToggle: false, //是否显示详细视图和列表视图的切换按钮
|
|
|
+ cardView: false, //是否显示详细视图
|
|
|
+ detailView: false,
|
|
|
+ ajaxOptions: {
|
|
|
+ headers: {
|
|
|
+ 'Accept': 'application/json',
|
|
|
+ 'Authorization': 'Bearer ' + localStorage.getItem("token")
|
|
|
+ }
|
|
|
+ },
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ field: 'checked',
|
|
|
+ checkbox: true,
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle',
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ if(index == 0){
|
|
|
+ return {
|
|
|
+ checked: true//设置选中
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },{
|
|
|
+ field: 'chargeCode',
|
|
|
+ title: '药品编码',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ }, {
|
|
|
+ field: 'serial',
|
|
|
+ title: '序号',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ }, {
|
|
|
+ field: 'name',
|
|
|
+ title: '药品名',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'specification',
|
|
|
+ title: '规格',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'packSize',
|
|
|
+ title: '包装量',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'packRetprice',
|
|
|
+ title: '零售价',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle',
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ return value.toFixed(2);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'stockAmount',
|
|
|
+ title: '药房库存',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ onClickRow: function (row) {
|
|
|
+ var data= $('#tb_table_divide').bootstrapTable('getData',true);
|
|
|
+ if(data.length == 0){
|
|
|
+ loadDrugDivide(row.chargeCode);
|
|
|
+ }else if(data.length > 0 && data[0].chargeCode != row.chargeCode){
|
|
|
+ loadDrugDivide(row.chargeCode);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ responseHandler: function (res) {
|
|
|
+ if (res == '401' || res == 401) {
|
|
|
+ window.location.href = '/thmz/login/view'
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var ress = eval(res);
|
|
|
+ if (ress.code == -1) {
|
|
|
+ errorMesage(res);
|
|
|
+ return {
|
|
|
+ "total": 0,//总页数
|
|
|
+ "rows": {} //数据
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ "total": ress.total,//总页数
|
|
|
+ "rows": ress.data //数据
|
|
|
+ };
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化分装表格
|
|
|
+ */
|
|
|
+function initDivide() {
|
|
|
+ $('#tb_table_divide').bootstrapTable('destroy');
|
|
|
+ $('#tb_table_divide').bootstrapTable({
|
|
|
+ method: 'GET', //请求方式(*)
|
|
|
+ toolbar: '#toolbar_divide', //工具按钮用哪个容器
|
|
|
+ striped: true, //是否显示行间隔色
|
|
|
+ cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
|
|
|
+ pagination: true, //是否显示分页(*)
|
|
|
+ sortable: true, //是否启用排序
|
|
|
+ sortOrder: "asc", //排序方式
|
|
|
+ singleSelect: true, // 单选checkbox
|
|
|
+ sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*)
|
|
|
+ pageNumber: 1, //初始化加载第一页,默认第一页
|
|
|
+ pageSize: 10, //每页的记录行数(*)
|
|
|
+ pageList: [10, 20, 40, 100], //可供选择的每页的行数(*)
|
|
|
+ search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
|
|
|
+ strictSearch: true,
|
|
|
+ showColumns: false, //是否显示所有的列
|
|
|
+ showRefresh: false, //是否显示刷新按钮
|
|
|
+ minimumCountColumns: 2, //最少允许的列数
|
|
|
+ clickToSelect: true, //是否启用点击选中行
|
|
|
+ uniqueId: "ID", //每一行的唯一标识,一般为主键列
|
|
|
+ showToggle: false, //是否显示详细视图和列表视图的切换按钮
|
|
|
+ cardView: false, //是否显示详细视图
|
|
|
+ detailView: false,
|
|
|
+ ajaxOptions: {
|
|
|
+ headers: {
|
|
|
+ 'Accept': 'application/json',
|
|
|
+ 'Authorization': 'Bearer ' + localStorage.getItem("token")
|
|
|
+ }
|
|
|
+ },
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ field: 'chargeCode',
|
|
|
+ title: '药品编码',
|
|
|
+ align: "center",
|
|
|
+ visible:false,
|
|
|
+ valign: 'middle'
|
|
|
+ }, {
|
|
|
+ field: 'serial',
|
|
|
+ title: '序号',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ }, {
|
|
|
+ field: 'name',
|
|
|
+ title: '药品名',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'specification',
|
|
|
+ title: '新包装规格',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'packSize',
|
|
|
+ title: '新包装量',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'amount',
|
|
|
+ title: '分装量',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'oldAmount',
|
|
|
+ title: '参与原包装数量',
|
|
|
+ align: "center",
|
|
|
+ valign: 'middle'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ /**
|
|
|
+ * @param {点击列的 field 名称} field
|
|
|
+ * @param {点击列的 value 值} value
|
|
|
+ * @param {点击列的整行数据} row
|
|
|
+ * @param {td 元素} $element
|
|
|
+ */
|
|
|
+ onClickCell: function(field, value, row, $element) {
|
|
|
+ if(field == 'oldAmount'){
|
|
|
+ $element.attr('contenteditable', true);
|
|
|
+ $element.html(null);
|
|
|
+ $element.focus();
|
|
|
+ $element.blur(function() {
|
|
|
+ var index = $element.parent().data('index');
|
|
|
+ var tdValue = $element.html();
|
|
|
+ if(parseFloat(tdValue).toString() != "NaN"){
|
|
|
+ saveCellData($('#tb_table_divide'), index, field, tdValue);
|
|
|
+ let amount = 0;
|
|
|
+ if(row.serial == '01'){
|
|
|
+ amount = parseFloat(tdValue)*row.packSize;
|
|
|
+ }else{
|
|
|
+ amount = parseFloat(tdValue)/row.packSize;
|
|
|
+ }
|
|
|
+ saveCellData($('#tb_table_divide'), index,'amount', amount);
|
|
|
+ }else{
|
|
|
+ $element.html(null);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ responseHandler: function (res) {
|
|
|
+ if (res == '401' || res == 401) {
|
|
|
+ window.location.href = '/thmz/login/view'
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var ress = eval(res);
|
|
|
+ if (ress.code == -1) {
|
|
|
+ errorMesage(res);
|
|
|
+ return {
|
|
|
+ "total": 0,//总页数
|
|
|
+ "rows": {} //数据
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ "total": ress.total,//总页数
|
|
|
+ "rows": ress.data //数据
|
|
|
+ };
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 加载药品编码所有规格信息
|
|
|
+ * @param chargeCode
|
|
|
+ */
|
|
|
+function loadDrugDivide(chargeCode) {
|
|
|
+ $.ajax({
|
|
|
+ type: "GET",
|
|
|
+ url: '/thmz/getYpByChargeCodeAndGroupNo',
|
|
|
+ contentType: "application/json;charset=UTF-8",
|
|
|
+ dataType: "json",
|
|
|
+ headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
|
|
|
+ data: {
|
|
|
+ chargeCode:chargeCode,
|
|
|
+ groupNo:pharmacyGroupNo
|
|
|
+ },
|
|
|
+ success: function (res) {
|
|
|
+ if (res == '401' || res == 401) {
|
|
|
+ window.location.href = '/thmz/login/view'
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (res.code == 0) {
|
|
|
+ $('#tb_table_divide').bootstrapTable('prepend', res.data);
|
|
|
+ } else {
|
|
|
+ errorMesage(res);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|