Index: ssts-web/src/main/webapp/dx-disinfectsystem/css/reviewView/reviewView.css =================================================================== diff -u -r24560 -r24711 --- ssts-web/src/main/webapp/dx-disinfectsystem/css/reviewView/reviewView.css (.../reviewView.css) (revision 24560) +++ ssts-web/src/main/webapp/dx-disinfectsystem/css/reviewView/reviewView.css (.../reviewView.css) (revision 24711) @@ -34,6 +34,14 @@ background-color: #ffffff; border: 1px solid #cccccc; } +.review-GridTab-forReview{ + padding-right:0px; + border-right:1px solid #aedeb4; +} +.review-GridTab-unReview{ + padding-left: 0; + border-left:1px solid #aedeb4; +} /* .fixed-table-pagination{ position: fixed; bottom: 0; Index: ssts-web/src/main/webapp/dx-disinfectsystem/js/reviewView/reviewView.js =================================================================== diff -u -r24569 -r24711 --- ssts-web/src/main/webapp/dx-disinfectsystem/js/reviewView/reviewView.js (.../reviewView.js) (revision 24569) +++ ssts-web/src/main/webapp/dx-disinfectsystem/js/reviewView/reviewView.js (.../reviewView.js) (revision 24711) @@ -18,6 +18,25 @@ } //加载表单 renderTable(); + //点击导航 的审核统计、入筐器械包时才渲染数据 + $("a[href='#reviewedChartTab']").click(function(){ + $('#reviewedChartTable').bootstrapTable('refresh',{ + url: WWWROOT + "/disinfectSystem/packingReviewController/loadReviewRecord.mhtml" + }); + }); + $("a[href='#reviewedBasketTab']").click(function(){ + $('#tousseInstanceTable').bootstrapTable('refresh',{ + //url: "http://rap2api.taobao.org/app/mock/85153/disinfectSystem/tousseInstanceController/loadAllTousseInstance.mhtml"//没接口 + }); + }); + + //是否显示灭菌日期 + if(sstsConfig.printLabelWhenReviewing){ + $('#sterileDate').parent().show(); + datePick("sterileDate", "yyyy-mm-dd hh:ii", "bottom-right"); //加载时间插件 + } + + /************导航:审核任务的绑定事件******************** */ //点击右边进入审核列表按钮 $("#batchAddToussesToReviewedGrid").click(batchAddToussesToReviewedGrid); //点击右边刷新 按钮 @@ -32,31 +51,20 @@ $("#barcode").keyup(function (event) { if (event.keyCode == 13) { //扫描条码 - scanBarcode(event); + scanBarcode(); } }); - /**********渲染修改器械包模态框绑定事件******/ + //点击右边修改按钮 $("#modifyUnReviewTousseInstances").click(modifyTousseInstances); - //渲染点击提交事件 - $("#updateTousseInstance").click(function () { - updateTousseInstanceForModifyPackingRecord(); - }); - - //隐藏修改器械包——模态框时触发 + //隐藏:修改器械包模态框时触发 $('#modal-modifyTousseInstances').on('hidden.bs.modal', function () { cleanForm('modifyTousseInstances'); }); - - //渲染下拉框 - renderDropDown1('packer', '/systemmanage/user/userAction!loadUsersBySearchString.do'); - renderDropDown1('reviewer2', '/systemmanage/user/userAction!loadUsersBySearchString.do'); - renderDropDown2('sterilingType2', '/disinfectSystem/baseData/sterilizerAction!getSterilizerTypeAndSterilizationPurpose.do'); - renderDropDown2('packageType', '/disinfectSystem/baseData/expirationDateInfoAction!getPackageType.do'); - - //重写select2 回车事件用于 回车时根据条码获得用户信息 - resetEvent("packer"); - resetEvent("reviewer2"); + //隐藏:显示图片模态框时触发 + $('#modal-packageImg').on('hidden.bs.modal', function () { + $('#materialGridTable').bootstrapTable('destroy'); + }); }) /** @@ -109,12 +117,13 @@ align: 'center', sortable: true, formatter: function (value, row, index) { - var remove = "删除"; + var remove = ""; return remove; } }]; $("#forReviewGrid").bootstrapTable({ + //url 动态补上 columns: forReviewGridHeaderColumns, //列表头 undefinedText: "", // 当数据为 undefined 时显示的字符 striped: true, //是否显示行间隔色 @@ -219,16 +228,16 @@ }]; $("#unReviewTousseTable").bootstrapTable({ - //url: "http://rap2api.taobao.org/app/mock/85153/disinfectSystem/packingReviewController/findUnReviewedTousseInstanceList.mhtml", //服务器数据的加载地址。 url: WWWROOT + "/disinfectSystem/packingReviewController/findUnReviewedTousseInstanceList.mhtml", //服务器数据的加载地址。 - method: "post", //服务器数据的加载地址。 + method: "get", //服务器数据的加载地址。 dataType: "json", - contentType: "application/x-www-form-urlencoded", + // contentType: "application/x-www-form-urlencoded", + contentType:"application/json;charset=utf-8", dataField: "rows", // 这是返回的json数组的key.默认好像是"rows".这里只有前后端约定好就行 sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) columns: unReviewTousseColumns, //列表头 undefinedText: "", // 当数据为 undefined 时显示的字符 - striped: true, //是否显示行间隔色 + striped: false, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页 // toolbar: "#materialBar", @@ -240,22 +249,25 @@ // height: 600, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 cardView: false, //是否显示详细视图 sortable: true, //是否启用排序 - sortOrder: "asc", //排序方式 + sortOrder: "desc", //排序方式 sortName: 'id', //排序字段 idField: "id", //每一行的唯一标识,一般为主键列 clickToSelect: true, //是否启用点击选中行 queryParams: function (params) { //自定义参数,这里的参数是传给后台的,我这是是分页用的 return { //这里的params是table提供的 offset: params.offset, //从数据库第几条记录开始 limit: params.limit, //每页多少行 - taskGroup: taskGroup //任务组 + taskGroup: taskGroup, //任务组 + sortName: params.sort,//排序字段 + sortOrder: params.order//排序顺序 }; }, onDblClickRow: function (row, $element) { //双击列触发 - //getAndShowTousseInfoDiv(row, $element); + //显示图片 + getAndShowTousseInModel(row); }, rowStyle: function (row, index) { //修改行样式 - // console.log(row.scanned); + // console.log(row.scanned); var style = {}; if (row.scanned) { style = { @@ -268,7 +280,6 @@ } }); - /***************审核统计****************** */ var reviewedChartCm = [{ title: '器械包名称', @@ -288,8 +299,7 @@ }]; $("#reviewedChartTable").bootstrapTable({ - //url: "http://rap2api.taobao.org/app/mock/85153/disinfectSystem/packingReviewController/loadReviewRecord.mhtml", //服务器数据的加载地址。 - url: WWWROOT + "/disinfectSystem/packingReviewController/loadReviewRecord.mhtml", //服务器数据的加载地址。 + //url: WWWROOT + "/disinfectSystem/packingReviewController/loadReviewRecord.mhtml", //服务器数据的加载地址。 method: "get", //服务器数据的加载地址。 dataType: "json", // contentType:"application/x-www-form-urlencoded", @@ -349,7 +359,7 @@ }]; $("#tousseInstanceTable").bootstrapTable({ - url: "http://rap2api.taobao.org/app/mock/85153/disinfectSystem/tousseInstanceController/loadAllTousseInstance.mhtml", //服务器数据的加载地址。 + //url: "http://rap2api.taobao.org/app/mock/85153/disinfectSystem/tousseInstanceController/loadAllTousseInstance.mhtml", //服务器数据的加载地址。 //url: WWWROOT +"/disinfectSystem/tousseInstanceController/loadAllTousseInstance.mhtml", //服务器数据的加载地址。 method: "get", //服务器数据的加载地址。 dataType: "json", @@ -397,61 +407,178 @@ }); } - +/********************进入审核列表************************************ */ /** - * 点击进入审核列表 + * 点击右边进入审核列表按钮 + * 校验并添加左边审核确认的列表数据 */ function batchAddToussesToReviewedGrid() { - // console.log("进入审核列表按钮"); - //右边待审核列表已选择的器械包信息 - var selectedRecords = $('#unReviewTousseTable').bootstrapTable('getSelections'); - // console.log(selectedRecords); + var selectedRecords = $('#unReviewTousseTable').bootstrapTable('getSelections'); //右边待审核列表已选择的器械包信息 + var forReviewGridDAta = $('#forReviewGrid').bootstrapTable('getData');//左边审核确认列表的数据 + var basketName = $('#basketName').val();//灭菌篮框名称 + var basketBarcode = $('#basketBarcode').val();//灭菌篮框条码 + //console.log(selectedRecords); if (selectedRecords.length == 0) { alert("请选择器械包!"); - return; + return false; } + //如果篮筐名称与条码都不为空时才进行判断 + if(!isUndefinedOrNullOrEmpty(basketName) && !isUndefinedOrNullOrEmpty(basketBarcode)){ + //校验灭菌方式 + if(validateSterilingMethod(selectedRecords) == false){ + return false; + } + } + //读取config.js的配置:审核页面点进入审核列表按钮,所选的器械包灭菌程序与审核确认列表的器械包的灭菌程序不同的,不会被添加至左边的已审核列表,true表示不会被添加至左边,默认及false表示会被添加至左边 + if(sstsConfig.tousseWithDifferentSterilingTypeCanNotBatchAddReview){ + records = []; + //左边的审核列表及第一条记录的灭菌程序 + var sterilingMethod; + if(forReviewGridDAta && forReviewGridDAta.length > 0){ + sterilingMethod = forReviewGridDAta[0]['sterilingMethod']; + } + if(!sterilingMethod){ + sterilingMethod = selectedRecords[0]['sterilingType']; + } + for ( var i = 0;i添加" ); + selectedRecords.splice(i, 1); + continue; + } needValidateRecords.push(record); } } - //添加到左边的审核确认列表 - addTousse(needValidateRecords); + // + if(rightGridVaildPass == false){ + alert("提示:所选的器械包灭菌方式不一致"); + // top.Ext.MessageBox.confirm("提示","待审核的器械包灭菌方式不一致,要继续审核吗?",function(btn){ + // if(btn == 'yes'){ + //添加到左边的审核确认列表 + addTousse(needValidateRecords); + // }else{ + // return false; + // } + // }); + }else{ + var leftGridVaildPass = true; + for(var i=0;i 1){ + for(var i = 1;i < selectedRecords.length;i++){ + if(firstSterilingMode != selectedRecords[i]["sterilingMode"]){ + var currentSterilingMode = selectedRecords[i]["sterilingMode"]; + //showResult(getDiffSterilingModeMessage(selectedRecords[0].data["tousseDefinition.name"] , currentSterilingMode, sterilingModeFromLeftReviewGrid)); + alert(getDiffSterilingModeMessage(selectedRecords[0].data["tousseDefinition.name"] , currentSterilingMode, sterilingModeFromLeftReviewGrid)); + return false; + } + } + } } -function validateSterilingTypeCanAddToReview(sType) { +/** + *校验灭菌程序能否进入审核列表 + * @param {*} sType 灭菌程序 + * @returns + */ +function validateSterilingTypeCanAddToReview(sType,record) {//没接口 var result = false; $.ajax({ type: 'get', url: 'http://rap2api.taobao.org/app/mock/85153/disinfectSystem/tousseInstanceController/validateSterilingTypeCanAddToReview.mhtml', + //url:'/disinfectSystem/tousseInstanceController/validateSterilingTypeCanAddToReview.mhtml', async: false, dataType: 'json', data: { sType: sType }, success: function (result) { - // console.log(result); + // console.log(result); if (result.success) { result = true; } else { - alert(result.message) + if(result.message){ + alert(result.message) + }else{ + alert("条码为" + record['barcode'] + "的" + record['tousseDefinition.name'] + "的灭菌程序 " + sType + " 不能通过<进入审核列表>添加"); + } } }, error: function () { @@ -462,6 +589,35 @@ } /** + * 获取左边审核列表里的包的灭菌方式 + * 如果列表的包数量为0,则返回null + * 如果列表的包数量大于0时,则取第一个包的灭菌方式,如果灭菌方式为空,则返回空字符串:"" + */ +function getSterilingModeFromLeftReviewGrid (){ + var store = $("#forReviewGrid").bootstrapTable("getData"); + var tousseCount = store.length; + if(tousseCount == 0){ + return null; + } + var record = store[0]; + var sterilingMode = record.sterilingMode; + if(!sterilingMode){ + return ""; + } + return sterilingMode; +} +/** + * 根据当前物品的名称、灭菌方式及原有物品的灭菌方式获取提示消息 + * @param currentTousseName 当前物品的名称 + * @param currentSterilingMode 当前物品的灭菌方式 + * @param orginalSterilingMode 原有物品的灭菌方式 + */ +function getDiffSterilingModeMessage(currentTousseName , currentSterilingMode , orginalSterilingMode){ + return "【"+ currentTousseName +"】"+ (currentSterilingMode ? ("属于【"+ currentSterilingMode +"】物品") : "") + +"与原有"+ (orginalSterilingMode ? ("【"+ orginalSterilingMode +"】物品") : "物品灭菌方式") +"不一致,不能入框审核"; +} + +/** * 添加左边的审核确认列表 * @param {*} records */ @@ -471,9 +627,9 @@ var record = records[i]; var tousseId = record.id; var tousseName = record.tousseName; - //var sterilizer = records[i].data['packingRecord.sterilizer']; - //var frequency = records[i].data['packingRecord.frequency']; - // var virtualBasketSeqNum = records[i].data['virtualBasketSeqNum']; + //var sterilizer = records.sterilizer;//灭菌炉号 + //var frequency = records.frequency;//灭菌炉次 + // var virtualBasketSeqNum = records[i].data['virtualBasketSeqNum'];//虚拟篮框 var sterilingType = record.sterilingType; var sterilingMode = record.sterilingMode; var barcode = record.barcode; @@ -510,45 +666,116 @@ onScannedTousseAmountChanged(); } -//当左边扫描的审核器械包数量变化后调用 -function onScannedTousseAmountChanged() { - // 重置待审核器械包数量 - var forReviewGridDAta = $('#forReviewGrid').bootstrapTable('getData'); - // console.log(forReviewGridDAta); - var amount = forReviewGridDAta.length; - $('#alreadyScanAmount').val(amount); - // - var scannedInfo = {}; - for (var i = 0; i < forReviewGridDAta.length; i++) { - var tousseId = forReviewGridDAta[i].tousseId; - if (!isUndefinedOrNullOrEmpty(tousseId)) { - scannedInfo[tousseId] = tousseId; - } - } - // console.log(scannedInfo); - var unReviewTousseTableData = $('#unReviewTousseTable').bootstrapTable('getData'); - for (var index = 0; index < unReviewTousseTableData.length; index++) { - var id = unReviewTousseTableData[index].id; - if (scannedInfo.hasOwnProperty(id)) { - // console.log(index); - $('#unReviewTousseTable').bootstrapTable('updateCell', { - index: index, //行索引 - field: 'scanned', //字段名称 - value: true //新字段值 - }) - continue; - } - $('#unReviewTousseTable').bootstrapTable('updateCell', { - index: index, - field: 'scanned', - value: false - }) - }; +/***********************旧表格载入没有灭菌炉号和灭菌炉次字段(新页面是否需要验证?)********* */ +/** + *验证炉号 + * @param {*} records 右边待审核选中的任务列表 + */ +function validateSterilizer(records){ + var tempPS = null; + var rightGridVaildPass = true; + //验证右边grid选中的项是否是 相同的灭菌炉 + for ( var i = 0;i0){ - // //旧代码 - // Ext.Msg.confirm("审核确认","系统检测到您已扫描过["+basketName+"],是否要审核["+basketName+"]?",function(btn){ - // if(btn=='yes'){ - // reviewTousse(basketName,basketBarcode); - // } - // }); - // } - // } + if(basketName!=null && basketName!='' && basketBarcode!=null && basketBarcode!=''){ + var forReviewGridData = $("#forReviewGrid").bootstrapTable("getData"); + if(forReviewGridData.length>0){ + // Ext.Msg.confirm("审核确认","系统检测到您已扫描过["+basketName+"],是否要审核["+basketName+"]?",function(btn){ + // if(btn=='yes'){ + reviewTousse(basketName,basketBarcode); + // } + // }); + } + } $("#basketName").val(rows[0].name); //篮框名字 $("#basketBarcode").val(rows[0].barcode); //篮框条码 $("#barcode").val(""); + // speaker.speak(obj.containerName); return; } //器械包 @@ -653,7 +879,16 @@ for (var i = 0; i < rows.length; i++) { var data = rows[i]; // console.log(data); - //左边审核列表的包的灭菌方式 + //获取左边审核列表的包的灭菌方式 + var sterilingModeFromLeftReviewGrid = getSterilingModeFromLeftReviewGrid(); + //判断所选中的包里是否有灭菌方式不同的包,如果有则进行提示不能扫入,没有再判断是否有和左边审核列表中的包的灭菌方式不一致,如果有则进行提示不能扫入 + if(sterilingModeFromLeftReviewGrid || sterilingModeFromLeftReviewGrid === "") { + if((data.sterilingMode || sterilingModeFromLeftReviewGrid) && data.sterilingMode != sterilingModeFromLeftReviewGrid){ + showResult(getDiffSterilingModeMessage(data.name , data.sterilingMode, sterilingModeFromLeftReviewGrid)); + return false; + } + } + // var tousseInstance = { tousseId: data.id, tousseName: data.name, @@ -671,290 +906,109 @@ }) } onScannedTousseAmountChanged(); // 待审核包数量数量变化处理 + // speaker.speak(obj.tousseName); return; } -} - -/** - * - *点击修改按钮,显示器械包修改模态框 - * @returns - */ -function modifyTousseInstances() { - // console.log("修改按钮"); - var selectRecords = $('#unReviewTousseTable').bootstrapTable('getSelections'); - // console.log(selectRecords); - if (selectRecords.length == 0) { - alert("请选择要修改的器械包!"); - // $(".alert-warning strong").text("请选择要修改的器械包!"); - // $("#warningAlert").show(); + //旧代码接口会返回的类型// + if(barcodeType == "basketNotFound"){//条码不存在 + alert("找不到该包或篮筐或人员信息。"); + $("#barcode").val(""); return; } - //选中的修改器械包ids - var tousseInstanceIds = ''; - for (var i = 0, len = selectRecords.length; i < len; i++) { - if (tousseInstanceIds == '') { - tousseInstanceIds = selectRecords[i].id; - } else { - tousseInstanceIds += ',' + selectRecords[i].id; - } + if(barcodeType == "basketUsed"){// + //alert("无法录入篮筐,篮筐正处于[" + obj.status + "]状态"); + alert("无法录入篮筐,篮筐正处于[]状态"); + clearBarcodeAndBasketName(); + return; } - // console.log(tousseInstanceIds); - - //显示修改器械包模态框 - $("#modal-modifyTousseInstances").modal({ - show: true, - backdrop: "static" - }); - - //渲染回车事件 - //回车事件 - /** - */ - // $("#packer").next().find('.select2-search__field').on('keydown',function(event){ - // console.log('进入了'); - // if (event.keyCode == 13) { - // var barcode = $("#packer").next().find('.select2-search__field').val(); - // if(isValidBarcode(barcode)){ - // console.log(barcode); - // //扫描条码获取用户信息 - // scanBarcodeForUser(barcode); - // } - // } - // }); - -}; - -/** - *重写select2 keypress触发事件 - * @param {id} 下拉框id - */ -function resetEvent(id) { - var select2 = $("#" + id).data().select2; - select2.listeners.keypress = [function (evt) { - var KEYS = { - BACKSPACE: 8, - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - ESC: 27, - SPACE: 32, - PAGE_UP: 33, - PAGE_DOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - DELETE: 46 - }; - var self = select2; - var key = evt.which; - if (self.isOpen()) { - if (key === KEYS.ESC || key === KEYS.TAB || (key === KEYS.UP && evt.altKey)) { - self.close(); - evt.preventDefault(); - } else if (key === KEYS.ENTER) { - // console.log(self); - var barcode = $('#' + id).next().find('.select2-search__field').val(); //当前文本框的文本 - var selectedVal = $('#' + id).val(); //已被选中的选项 - var maximumSelectionLength = select2.dataAdapter.maximumSelectionLength //最大可以选择的次数 - // console.log(maximumSelectionLength); - // console.log(selectedVal); - // console.log(barcode); - var count = selectedVal != null ? selectedVal.length : 0; - if (count < maximumSelectionLength && isValidBarcode(barcode)) { - //调用扫描条码获得人员的方法 - scanBarcodeForUser(id, barcode); - } else { - self.trigger('results:select', {}); - evt.preventDefault(); - } - } else if ((key === KEYS.SPACE && evt.ctrlKey)) { - self.trigger('results:toggle', {}); - evt.preventDefault(); - } else if (key === KEYS.UP) { - self.trigger('results:previous', {}); - evt.preventDefault(); - } else if (key === KEYS.DOWN) { - self.trigger('results:next', {}); - evt.preventDefault(); - } - } else { - if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN && evt.altKey)) { - self.open(); - evt.preventDefault(); - } - } - }]; -} - -//是否为有效的条码 -function isValidBarcode(barcode) { - var re = /^([0-9]{9})$/; - if (re.test(barcode)) { - return true; - } else { - return false; + if(barcodeType == "erroeStatus"){ + showResult("器械包状态异常,请录入待审核的器械包"); + $("#barcode").val(""); + return; } -} - -/** - * - *调用扫描条码获取人员接口 - * @param {*} barcode - */ -function scanBarcodeForUser(id, barcode) { - // console.log("用户条码" + barcode); - - var data = { - id: 1, - text: '测试人员' - }; - if ($('#' + id).find("option[value='" + data.id + "']").length) { - $('#' + id).val(data.id).trigger('change'); - } else { - // Create a DOM Option and pre-select by default - var newOption = new Option(data.text, data.id, true, true); - // Append it to the select - $('#' + id).append(newOption).trigger('change'); - } - $('#' + id).next().find('.select2-search__field').val(null); //修改当前文本框的文本为空 - $('#' + id).select2('close'); - // $('#'+id).val('1'); - - //暂时没接口 - /* $.ajax({ - type: 'get', - url: 'http://rap2api.taobao.org/app/mock/85153/disinfectSystem/tousseInstanceController/scanBarcodeForReview.mhtml', - //url: WWWROOT + "/disinfectSystem/packingReviewController/scanBarcode.mhtml", // - async: false, - dataType: 'json', - data: { - barcode: barcode, - }, - success: function (result) { - console.log(result); - if(result.success){ - - }else{ - alert(result.message); - } - }, - error: function () { - - } - }) */ -} - -/** - *更新器械包 - */ -function updateTousseInstanceForModifyPackingRecord() { - var selectRecords = $('#unReviewTousseTable').bootstrapTable('getSelections'); - // console.log(selectRecords); - if (selectRecords.length == 0) { - alert("获取不到要修改的器械包!"); - // $(".alert-warning strong").text("请选择要修改的器械包!"); - // $("#warningAlert").show(); + if(returnType == "noResult"){//无结果输出 + //showResult("无符合条件的器械包。" , null , sstsConfig.messagePauseTimeOnReviewPage); return; + } + if(returnType == "multiTousseInstancesSuccess"){//扫描的是虚拟篮框(单个或首尾)或首尾器械包(返回结果为单个器械包,暂保留) + // var tousseInstanceArray = obj.tousseInstances; + // if(tousseInstanceArray && tousseInstanceArray.length > 0){ + // if(taskGroup != tousseInstanceArray[0].taskGroup){ + // showResult("该条码所对应的器械包不属于当前任务组。" , null , sstsConfig.messagePauseTimeOnReviewPage); + // Ext.getCmp('barcode').setValue(''); + // return; + // } + // var alreadyAdd = 0; + // var speakBasket = new SpeakBasket(); + // for(var i = 0;i < tousseInstanceArray.length;i++){ + // if(Ext.getCmp('forReviewGrid').getStore().find('barcode', tousseInstanceArray[i].barcode) != -1){ + // continue; + // } + // var tousseInstance = new tousseInstanceRecord({ + // id: tousseInstanceArray[i].tousseId, + // tousseDefinitionName: tousseInstanceArray[i].tousseName, + // barcode: tousseInstanceArray[i].barcode, + // packageType: tousseInstanceArray[i].packageType, + // sterileStartDate: tousseInstanceArray[i].sterileStartDate, + // sterilingMethod:tousseInstanceArray[i].sterilingMethod, + // sterilingMode:tousseInstanceArray[i].sterilingMode, + // virtualBasketSeqNum:tousseInstanceArray[i].virtualBasketSeqNum + // }); + + // Ext.getCmp('forReviewGrid').getStore().insert(0,tousseInstance); + // alreadyAdd++; + // speakBasket.addGoods('',tousseInstanceArray[i].tousseName,1); + // } + // if(alreadyAdd > 0){ + // if(hiddenEndBarcode || currentScanMode == 'single'){ + // Ext.getCmp('barcode').setValue("");//如果未使用虚拟篮筐机制或者使用篮筐机制但扫描模式为单个扫描,扫描成功后需要清除该文本内容 + // }else{ + // Ext.getCmp('barcodeEnd').focus();//否则不清除,条码/篮筐(尾)获得焦点 + // } + // speakBasket.speakContent(); + // }else{ + // showResult("未找到相应的器械包或器械包已扫描" , null , sstsConfig.messagePauseTimeOnReviewPage); + // } + // onScannedTousseAmountChanged();// 待审核包数量数量变化处理 + // } } - //选中的修改器械包ids - var tousseInstanceIds = ''; - for (var i = 0, len = selectRecords.length; i < len; i++) { - if (tousseInstanceIds == '') { - tousseInstanceIds = selectRecords[i].id; - } else { - tousseInstanceIds += ',' + selectRecords[i].id; - } - } - - // console.log(tousseInstanceIds); - var sterilingType2 = $("#sterilingType2").val(); //灭菌程序 - var packageType = $("#packageType").val(); //包装类型 - var packer = $("#packer").val(); //配包人 - var packerCode2 = $("#packer").val(); - var reviewer2 = $("#reviewer2").val(); //审核人 - var reviewerCode2 = $("#reviewer2").val(); - var sterileStartTime2 = $("#sterileStartTime").val(); //灭菌开始时间 - var sterilizer2 = $("#sterilizer2").val(); //灭菌炉 - var frequency2 = $("#frequency2").val(); //炉次 - - var modificationInfo = { - 'packer': packer, - 'packerCode': packerCode2, - 'reviewer': reviewer2, - 'reviewerCode': reviewerCode2, - 'sterilingType': sterilingType2, - 'packageType': packageType, - 'sterilizer': sterilizer2, - 'frequency': frequency2, - 'sterileStartTime': sterileStartTime2 - } - // console.log(modificationInfo); - var update = false; - for (var mp in modificationInfo) { - if (modificationInfo.hasOwnProperty(mp) && !isUndefinedOrNullOrEmpty(modificationInfo[mp])) { - update = true; - } - } - if (update) { - // 更新器械包 - //updateTousseInstance(tousseInstanceIds,modificationInfo); - } - $("#modal-modifyTousseInstances").modal('hide'); } +/***************************************************** */ -/** - *修改更新器械包信息接口 - * @param {*} tousseInstanceIds - * @param {*} modificationInfo - */ -function updateTousseInstance(tousseInstanceIds, modificationInfo) { - $.ajax({ - type: "method", - url: "url", - data: { - modificationInfo: modificationInfo, - tousseInstanceIds: tousseInstanceIds - }, - dataType: "dataType", - success: function (response) { - } - }); -} - - +/***********************审核物品************************************ */ /** - * 显示图片模态框 - */ -function getAndShowTousseInfoDiv(row, element) { - var materialName = row.name; - var tousseDefinitionId = row.id; //??????有待确认 - $("#modal-packageImg .modal-title").text(materialName + "信息") - $("#modal-packageImg").modal({ - show: true, - backdrop: "static" - }); -} - - -/** * 审核物品 * @param {*} basketName * @param {*} basketBarcode */ function reviewTousse(basketName, basketBarcode) { - //是否需要审核人 + var forReviewGridData = $("#forReviewGrid").bootstrapTable("getData");// + var count =forReviewGridData.length; + var sterileDate = $("#sterileDate").val(); //灭菌时间 + var reviewer = $("#reviewer").val(); //审核名字 + var reviewerCode = $("#reviewerCode").val(); //审核工号 + //验证当前登录用户属于一级供应室还是二级供应室 + //var isFirstRoomPeople = checkForSupplyType();//没接口 + // 如果是一级供应室用户,并且需要入筐;或者是二级供应室用户,并且需要入筐 + // if ((sstsConfig.mustScanBasketForTousseReview && isFirstRoomPeople) || (sstsConfig.mustScanBasketForTousseReviewOf2ndSupplyRoom && !isFirstRoomPeople)){ + // if (isObjEmpty(basketName)) { + // //判断所扫器械包是否已全部加入至虚拟篮筐,如存在有未加入虚拟篮筐的器械包则进行提示,否则通过 + // //var alreadyJoinVirtualBasket = true;//是否加入虚拟篮筐 + // for(var i = 0;i < count ;i++){ + // var virtualBasketSeqNum = forReviewGridData[i]['virtualBasketSeqNum']; + // if(!virtualBasketSeqNum || virtualBasketSeqNum == ''){ + // //showResult('请先扫描灭菌篮筐' , null , sstsConfig.messagePauseTimeOnReviewPage); + // alert('请先扫描灭菌篮筐'); + // return; + // } + // } + // } + // } //获得器械包ids var tousseIds = ""; - var forReviewGridData = $("#forReviewGrid").bootstrapTable("getData"); - for (var index = 0; index < forReviewGridData.length; index++) { + for (var index = 0; index < count; index++) { var data = forReviewGridData[index]; if (tousseIds) { tousseIds += ";" + data.tousseId; @@ -966,18 +1020,65 @@ return; } // 灭菌开始日期校验,并提示 - - // - var reviewer = $("#reviewer").val(); //审核名字 - var reviewerCode = $("#reviewerCode").val(); //审核工号 - var sterileDate = $("#sterileDate").val(); //灭菌时间 - if (!sterileDate) { - sterileDate = new Date(); + var confirmMessage = ''; + if (!isUndefinedOrNullOrEmpty(sterileDate) && count > 1) { + confirmMessage = '所有器械包灭菌开始日期都将修改为'+sterileDate+'!\r\n'; + }else{ + var sterileDates = {}; + var sterileStartDateCount = 0; + for (var i = 0; i < count; i++) { + var sterileStartDate = forReviewGridData[i].sterileStartDate; + if(!isUndefinedOrNullOrEmpty(sterileStartDate)){ + if(sterileDates.hasOwnProperty(sterileStartDate)){ + continue; + } + sterileDates[sterileStartDate] = sterileStartDate; + ++sterileStartDateCount; + } + } } - reviewTousseInstance(tousseIds, reviewer, reviewerCode, sterileDate, basketName, basketBarcode, taskGroup); + if(sterileStartDateCount > 1){ + confirmMessage = '器械包灭菌开始时间不一致!\r\n'; + } + if(basketName != ''){ + confirmMessage += '是否审核下列器械包并将其放入['+basketName+']中?'; + }else{ + confirmMessage += openMustScanBasketTips; + } + // Ext.MessageBox.confirm("请确认",confirmMessage,function(btn) { + // if(btn=='yes') { + reviewTousseInstance(tousseIds, reviewer, reviewerCode, sterileDate, basketName, basketBarcode, taskGroup); + // } + // }) } /** + *验证当前登录用户属于一级供应室还是二级供应室 + */ +function checkForSupplyType(){//没接口 + var isFirstRoomPeople = false;//是否一级供应室 + $.ajax({ + type: 'get', + // UserTableManager.checkForSupplyType + //url: 'http://rap2api.taobao.org/app/mock/85153/disinfectSystem/packingReviewController/reviewTousseInstance.mhtml', + async: false, + dataType: 'json', + success: function (result) { + // console.log(result); + if (result.success) { + if(result.result){//一级供应室 + isFirstRoomPeople = true; + } + } + }, + error: function () { + + } + }) + return isFirstRoomPeople; +} + +/** * 调用审核物品接口 * @param {*} tousseIds * @param {*} reviewer @@ -988,15 +1089,18 @@ * @param {*} taskGroup */ function reviewTousseInstance(tousseIds, reviewer, reviewerCode, sterileDate, basketName, basketBarcode, taskGroup) { + if(isUndefinedOrNullOrEmpty(sterileDate)){ + sterileDate = new Date(); + } $.ajax({ type: 'get', - // url: 'http://rap2api.taobao.org/app/mock/85153/disinfectSystem/packingReviewController/reviewTousseInstance.mhtml', url: WWWROOT + "/disinfectSystem/packingReviewController/reviewTousseInstance.mhtml", //审核物品 async: false, dataType: 'json', data: { tousseIds: tousseIds, sterileBasketBarcode: basketBarcode, + basketName : basketName, taskGroup: taskGroup, reviewerName: reviewer, reviewerCode: reviewerCode, @@ -1005,6 +1109,13 @@ success: function (result) { // console.log(result); if (result.success) { + // 审核时打印标签 + // if (sstsConfig.printLabelWhenReviewing == true){ + // var tousses = result.tousses; + // var printGroupType = Ext.getCmp('printGroupType').getValue(); + // var cfg = createPrintLabelsConfig(printGroupType); + // doPrintLabels(tousses,cfg);//打印接口 + // } alert("审核成功"); //待审核列表刷新 $("#unReviewTousseTable").bootstrapTable("refresh"); @@ -1025,56 +1136,97 @@ }) } -function clearBarcodeAndBasketName() { - $("#barcode").val(""); - $("#basketName").val(""); - $("#basketBarcode").val(""); -} +/************************************************************* */ +/**********************显示图片模态框--start**************************************** */ /** - * 如果配置了要清除审核人,则清除审核人,否则不干活 + * 显示图片模态框 */ -function clearReviewInfoByConfig() { - //如果审核界面的审核人是否默认为上一次审核的审核人配置为false,则审核完后需要重新清空 - if (reviewPageReviewerDefaultLastReviewer == false) { - $("#reviewer").val(""); - $("#reviewerCode").val(""); +function getAndShowTousseInModel(record) { + // console.log(record); + if (typeof (record) == 'object') { + var tousseDefinition = record.tousseDefinition; + var materialName = tousseDefinition.name; + var tousseDefinitionId = tousseDefinition.id; + $("#modal-packageImg .modal-title").text(materialName + "信息") + $("#modal-packageImg").modal({ + show: true, + backdrop: "static" + }); + getAndShowTousseInfoDiv(materialName,tousseDefinitionId); } } +//展示器械包图片信息 +function getAndShowTousseInfoDiv(tousseName,tousseDefinitionId) { + a(tousseName,tousseDefinitionId); -//调整窗口时自适应 -$(window).resize(function () { - // console.log("窗口高度:" + $(window).height()); - //暂时写着:样式还是有问题 - $("#forReviewGrid").bootstrapTable('resetView', { - height: $(window).height() - 280 - }); - $("#unReviewTousseTable").bootstrapTable('resetView', { - height: $(window).height() - 300 - }); - $("#reviewedChartTable").bootstrapTable('resetView'); - $("#tousseInstanceTable").bootstrapTable('resetView'); -}) +} -//日期插件 -function datePick(dateId, format, direction) { - $("#" + dateId).datetimepicker({ //选择年月日 - format: format, - language: 'zh-CN', - weekStart: 1, - todayBtn: 1, //显示‘今日’按钮 - autoclose: true, //当选择一个日期之后是否立即关闭此日期时间选择器。 - todayHighlight: true, //是否高亮当前日期 - startView: 2, //Number, String. 默认值:0, 'hour',日期时间选择器所能够提供的最精确的时间选择视图。 - minView: 2, - clearBtn: true, //清除按钮 - forceParse: 0, - minView: 2, //最小精确值 0:到分.1:到时,2:到日 - pickerPosition: direction +function a(tousseName,tousseDefinitionId){ + var materialStore = getMaterialStore(tousseName,tousseDefinitionId); + var materialGridTableColumns = [{ + field: 'materialDefinitionId', + visible: false + }, { + title: '材料名称', + field: "name", + align: 'center', + sortable: true //正序,逆序 + },{ + title:'数量', + field:'count', + align:'center', + sortable:true + }]; + $('#materialGridTable').bootstrapTable({ + data: materialStore, + // url:WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getMaterialDefinitionByTousseName.do', + // method: "post", //服务器数据的加载地址。 + dataType: "json", + // contentType: "application/x-www-form-urlencoded", + sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) + columns: materialGridTableColumns, //列表头 + undefinedText: "", // 当数据为 undefined 时显示的字符 + striped: false, //是否显示行间隔色 + cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) + pagination: false, //是否显示分页 + search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端 + showRefresh: false, //是否显示刷新按钮 + height: 400, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 + cardView: false, //是否显示详细视图 + sortable: true, //是否启用排序 + sortOrder: "desc", //排序方式 + sortName: 'materialDefinitionId', //排序字段 + idField: "materialDefinitionId", //每一行的唯一标识,一般为主键列 + clickToSelect: true, //是否启用点击选中行 + onDblClickRow: function (row, $element) { //双击列触发 + //显示图片 + //getAndShowTousseInModel(row); + } + }) +} + +function getMaterialStore(tousseName,tousseDefinitionId){ + var materialStore = []; + $.ajax({ + type: "post", + url: WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getMaterialDefinitionByTousseName.do', + dataType: "json", + async:false, + data: { + tousseName : tousseName, + tousseDefinitionId:tousseDefinitionId + }, + success: function (response) { + // console.log(response); + materialStore = response; + } }); + return materialStore; } -datePick("sterileStartTime", "yyyy-mm-dd hh:ii", "bottom-right"); //灭菌时间 + +/************************显示图片模态框--end*********************************************** */ /** * * @param {*} data @@ -1099,136 +1251,111 @@ return false; } +//当左边扫描的审核器械包数量变化后调用 +function onScannedTousseAmountChanged() { + // 重置待审核器械包数量 + var forReviewGridDAta = $('#forReviewGrid').bootstrapTable('getData'); + // console.log(forReviewGridDAta); + var amount = forReviewGridDAta.length; + $('#alreadyScanAmount').val(amount); + // + var scannedInfo = {}; + for (var i = 0; i < forReviewGridDAta.length; i++) { + var tousseId = forReviewGridDAta[i].tousseId; + if (!isUndefinedOrNullOrEmpty(tousseId)) { + scannedInfo[tousseId] = tousseId; + } + } + // console.log(scannedInfo); + var unReviewTousseTableData = $('#unReviewTousseTable').bootstrapTable('getData'); + for (var index = 0; index < unReviewTousseTableData.length; index++) { + var id = unReviewTousseTableData[index].id; + if (scannedInfo.hasOwnProperty(id)) { + // console.log(index); + $('#unReviewTousseTable').bootstrapTable('updateCell', { + index: index, //行索引 + field: 'scanned', //字段名称 + value: true //新字段值 + }) + continue; + } + $('#unReviewTousseTable').bootstrapTable('updateCell', { + index: index, + field: 'scanned', + value: false + }) + }; +} + +function clearBarcodeAndBasketName() { + $("#barcode").val(""); + $("#basketName").val(""); + $("#basketBarcode").val(""); +} /** * 根据id删除指定表格列 * @param {*} tousseId */ -function removeTableItemById(tousseId) { +function removeTableItemById(tableId,tousseId) { // console.log(tousseId); - $("#forReviewGrid").bootstrapTable("removeByUniqueId", tousseId); + $("#"+tableId).bootstrapTable("removeByUniqueId", tousseId); onScannedTousseAmountChanged(); } - /** - * 下拉框1 + *根据form表单id清除数据 + * @param {*} formId */ -function renderDropDown1(elementId, url, maximumSelectionLength) { - $("#" + elementId).select2({ - //tags:false,//是否可以自由填选项 - language: 'zh-CN', //转为中文版 - placeholder: '关键词搜索', - // closeOnSelect: true, - multiple: true, - allowClear: true, //true 则显示x 可以清除全部 - maximumSelectionLength: 1, //最多可以选择多少个值 - minimumInputLength: 1, //输入多少值时开始搜索 - ajax: { - url: WWWROOT + url, - dataType: 'json', - type: 'get', - cache: true, - delay: 1000, //在发送请求之前,用户停止输入需要延迟的时间 - data: function (params) { - return { - spell: params.term, // 关键词 - limit: 20, - page: params.page || 1, //第几页返回查询 - offset: ((params.page || 1) - 1) * 20 - }; - }, - processResults: function (data, params) { - return { - //result: select2DataFormat(dataArray, resultFormId, resultFormText), - results: [ - /* { - id: 1, - text: 1 - }, { - id: 2, - text: 2 - } */ - ], - paginate: { //是否滚动分页 - more: (params.page || 1 * 20) < data.count - } - } - } - } +function cleanForm(formId) { + $('#' + formId).find('input,select,textarea').each(function () { + $(this).val(''); + $(this).empty(); }); - $("#" + elementId).next().attr('style', 'width:100%;'); } /** - * - * - * @param {*} elementId - * @param {*} url - * @param {*} resultFormId - * @param {*} resultFormText + * 如果配置了要清除审核人,则清除审核人,否则不干活 */ -function renderDropDown2(elementId, url, resultFormId, resultFormText) { - // console.log(elementId); - $("#" + elementId).select2({ - language: 'zh-CN', //转为中文版 - minimumResultsForSearch: Infinity, //隐藏搜索框 - ajax: { - url: WWWROOT + url, - dataType: 'text', //暂时用则 - // dataType:'json', - type: 'get', - data: function (params) { - return { - limit: 20, - page: params.page || 1, //第几页返回查询 - offset: ((params.page || 1) - 1) * 20 - } - }, - processResults: function (data, params) { //加工结果 - //console.log(data) - return { - results: [ - /* { - id: 1, - text: 1 - }, { - id: 2, - text: 2 - } */ - ], - //result: select2DataFormat(dataArray, resultFormId, resultFormText), - paginate: { //是否滚动分页 - // more: (params.page||1 * 20) < data.count - more: false - } - } - } - } - }) - $("#" + elementId).next().attr('style', 'width:100%;'); +function clearReviewInfoByConfig() { + //如果审核界面的审核人是否默认为上一次审核的审核人配置为false,则审核完后需要重新清空 + if (reviewPageReviewerDefaultLastReviewer == false) { + $("#reviewer").val(""); + $("#reviewerCode").val(""); + } } -function select2DataFormat(dataArray, id, text) { - var result = []; - $.map(dataArray, function (obj) { - var data = {}; - data.id = obj[id] - data.text = obj[text] - result.push(data); - }) - return result +//日期插件 +function datePick(dateId, format, direction) { + $("#" + dateId).datetimepicker({ //选择年月日 + format: format, + language: 'zh-CN', + weekStart: 1, + todayBtn: 1, //显示‘今日’按钮 + autoclose: true, //当选择一个日期之后是否立即关闭此日期时间选择器。 + todayHighlight: true, //是否高亮当前日期 + startView: 2, //Number, String. 默认值:0, 'hour',日期时间选择器所能够提供的最精确的时间选择视图。 + minView: 2, + clearBtn: true, //清除按钮 + forceParse: 0, + minView: 2, //最小精确值 0:到分.1:到时,2:到日 + pickerPosition: direction + }); } +datePick("sterileStartTime", "yyyy-mm-dd hh:ii", "bottom-right"); //灭菌时间 -/** - *根据form表单id清除数据 - * @param {*} formId - */ -function cleanForm(formId) { - $('#' + formId).find('input,select,textarea').each(function () { - $(this).val(''); - $(this).empty(); +//调整窗口时自适应 +$(window).resize(function () { + // console.log("窗口高度:" + $(window).height()); + //暂时写着:样式还是有问题 + $("#forReviewGrid").bootstrapTable('resetView', { + height: $(window).height() - 280 }); -} + $("#unReviewTousseTable").bootstrapTable('resetView', { + height: $(window).height() - 300 + }); + $("#reviewedChartTable").bootstrapTable('resetView'); + $("#tousseInstanceTable").bootstrapTable('resetView'); +}) //旧方法-------extjs 清除扫描内容 // function clearScanText(){ Index: ssts-web/src/main/webapp/dx-disinfectsystem/pages/disinfectsystem/review/reviewView.jsp =================================================================== diff -u -r24560 -r24711 --- ssts-web/src/main/webapp/dx-disinfectsystem/pages/disinfectsystem/review/reviewView.jsp (.../reviewView.jsp) (revision 24560) +++ ssts-web/src/main/webapp/dx-disinfectsystem/pages/disinfectsystem/review/reviewView.jsp (.../reviewView.jsp) (revision 24711) @@ -41,8 +41,8 @@ - - + + 审核确认列表 @@ -51,7 +51,7 @@ 扫描条码: - + 灭菌日期: @@ -90,14 +90,14 @@ - - + + - - + + 待审核任务列表(双击查看图片) @@ -113,9 +113,9 @@ - + - + @@ -152,7 +152,7 @@ - + @@ -210,34 +210,49 @@ - - + + × - + + + + + + + + + + + + + + 器械包图片 + + + 装配教学图片 + + + + - - - × - -