Index: ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/foreignTousseInfoForm.js =================================================================== diff -u -r24998 -r25057 --- ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 24998) +++ ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 25057) @@ -1,11 +1,14 @@ - -///*var foreignGrid1; -var foreignDataView; -var foreignData =[]; -var foreignTousseAppStore = [];//外来器械预备申请信息 -var foreignTousseSelectArr = [];//存储外来器械物品下拉框加载的物品 +/** + * 外来器械申请细节交互优化,需要等到下拉框插件确定后再进行 + */ $(function(){ + var foreignDataView; + var foreignData =[]; + var foreignTousseAppStore = [];//外来器械预备申请信息 + var foreignTousseSelectArr = [];//存储外来器械物品下拉框加载的物品 + + function iconFormatter(row,cell,value,columnDef,dataContext){ //如果为空,跳出 if(value == null ||value == undefined || dataContext === undefined ){return "";} @@ -183,7 +186,7 @@ //外来器械物品名 renderDepartment_foreignTousse("foreignTousse_foreignTousseName",$("#foreignTousse_suppler").val()); - renderDepartmentSupplerContact("foreignTousse_supplierContactName",""); + renderDepartmentSupplerContact("foreignTousse_supplierContactName",$("#foreignTousse_suppler").val()); $('#foreignTousse_supplierContactName').on('select2:select', function (e) { $('#foreignTousse_supplierPhoneNumber').val(e.params.data.id); console.log(data); @@ -320,11 +323,11 @@ -});//$(function()结束 + //"申请外来器械"医生下拉框 function renderSelect_doctor(elementId){ @@ -417,7 +420,7 @@ cache: true, data:function (params) { return { - supplierName:"上饶意海", + supplierName:supplierName,// contactName:params.term// search term // limit:20, // page:params.page||1, //第几页返回查询 @@ -681,4 +684,4 @@ this.suppler1 = suppler1 } - +});//$(function()结束 Index: ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/goodsApplicationView.js =================================================================== diff -u -r25017 -r25057 --- ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 25017) +++ ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 25057) @@ -1,258 +1,324 @@ +/** + *一、 科室申领主体功能介绍(以页面从上至下介绍): + * + * 1.【页面元素】“申请器械包”、“申请一次性物品”、“申请消毒物品”、“申请外来器械”、“申请自定义器械包”、“申请外部代理灭菌包”、“借物”按钮 + * 【功能】 显示相对应申请单 + * 【完成情况】部分完成,具体情况参见相应申请单JS文件 + * + * 2.【页面元素】“删除”按钮,“终止”按钮,“设为已打印”按钮,“打印回收申请单”按钮 + * 【功能】 实现申请单删除,改变申请单终止属性,将申请单是否已打印属性设为“是”,打印相应申请单 + * 【完成情况】false + * + * 3.【页面元素】“查询条件”标题旁图标 + * 【功能】 点击图标收缩或展开搜索栏 + * 【完成情况】true + * + * 4.【页面元素】搜索栏表单及“查询”“重置”“更多查询”按钮 + * 【功能】 搜索参数,实现申请单数据查询 + * 【完成情况】false,面临主要是性能问题,特别是更多查询表单的元素可选择数据渲染问题,加载非常耗时,实现思路是异步加载 + * + * 5.【页面元素】主体表格 + * 【功能】 申请单数据展示,分页,点击列头排序,点击流水号编辑当前申请单,鼠标移入到流水号显示申请物品发货等情况 + * 【完成情况】分页:图标更换问题;列头排序:false;点击流水号编辑申请单:部分申请单完成;悬浮:已完成 + + + * 二、主要方法介绍 + * + * @initTable() 1.数据渲染:主体表格数据渲染 + * @initTableEvent 2.表格行鼠标点击及鼠标悬浮事件渲染 + * @initParent 3.初始化parent对象,增加属性和方法用于父子页面传递数据 + * @initForm 4.初始化模态框,将申请单模态框HTML元素添加到父级页面 + * @initScreen 5.根据分辨率调整页面显示 + * @initSearch 6.初始化搜索栏,渲染下拉框,增加校验 + * @initMoreSearch 7.初始化“更多搜索”表单,主要渲染下拉框及时间组件 + */ + $(function(){ var grid, data = [], - isIE=Tools.BrowserTypeUtils.isIE()==1 ? true:false;//是否为IE + isIE = Tools.BrowserTypeUtils.isIE() == 1 ? true:false;//是否为IE $.fn.modal.Constructor.prototype.enforceFocus = function () {};//解决select2 单选框无法输入的问题 + + /*为parent对象增加formDate属性及setDate()和getDate()方法; + * 以及用于刷新主体表格的方法refreshTable(),此实现方式是重新加载表格; + */ + var initParent = function(){ + parent.formDate = {};//parent用来父子页面间传递数据 - + parent.setDate = function(data){ parent.formDate = data; }; parent.getDate = function(){ return parent.formDate; }; - -var initTable = function(){ - var formatters = { - toClickEl : function (row,cell,value,columnDef,dataContext){ - return ""+value+""; - }, - bakColor:function (row,cell,value,columnDef,dataContext){ - var rtn={text:value,removeClass:'red green orange'}; - if(value == '器械包申请单'){ - rtn.addClasses = 'green'; - }else if(value == '消毒物品申请单'){ - rtn.addClasses = 'blue'; - }else if(value == '一次性物品申请单'){ - rtn.addClasses = 'gray'; + + parent.refreshTable = function(){ + initTable(); + } + } + + + /* + *初始化页面主体表格 + *完善方向:根据业务层次进一步拆分 + */ + var initTable = function(){ + var formatters = { + //将流水号元素转换为a标签,满足悬浮业务样式要求 + toClickEl : function (row,cell,value,columnDef,dataContext){ + return ""+value+""; + }, + //不同申请单类型渲染不同背景色 + bakColor:function (row,cell,value,columnDef,dataContext){ + var rtn={text:value,removeClass:'red green orange'}; + if(value == '器械包申请单'){ + rtn.addClasses = 'green'; + }else if(value == '消毒物品申请单'){ + rtn.addClasses = 'blue'; + }else if(value == '一次性物品申请单'){ + rtn.addClasses = 'gray'; + } + return rtn; } - return rtn; } - } - - var checkboxSelector = new Slick.CheckboxSelectColumn({ - cssClass: "slick-cell-checkboxsel" - }); - - var requiredFieldValidator = function (value){ - if(value == null || value == undefined || !value.length){ - return {valid: false, msg: "This is a required field"}; - }else{ - return {valid: true, msg: "This is a required field"}; - } - } - - var pageIng = function(remoteUrl,container,datagrid,pagerType,trans,params,order,search,searchFields){ - new Slick.Controls.EnhancementPager({ - container: container, - remoteUrl:remoteUrl, - datagrid: datagrid, - pagerType: pagerType, - trans: trans, //i18n support - params:params, - limt:25, - order:order, - search:search, - searchFields:searchFields, - }); - } - - var options = { - forceFitColumns: false, - enableCellNavigation: true, - enableColumnReorder: false, - topPanelHeight:'35', - rowHeight:'35', - headerRowHeight:'35', - multiSelect:false, - fullWidthRows:'true', - enableAddRow: false - }; - var columns = []; - columns.push(checkboxSelector.getColumnDefinition()); - columns.push( - { - id: 'id', - name: 'id', - field: 'id', - name: 'ID', - width: 0, - minWidth: 0, - maxWidth: 0, - cssClass: "reallyHidden", - headerCssClass: "reallyHidden" - }, { - id: 'orgUnitCode', - name: '科室编码', - cssClass: "cell-title", - field: 'orgUnitCode', - width: 0, - minWidth: 0, - maxWidth: 0, - cssClass: "reallyHidden", - headerCssClass: "reallyHidden" - }, { - id: 'serialNumber', - name: '流水号', - field: 'serialNumber', - formatter: formatters.toClickEl - }, { - id: 'depart', - name: '申请科室', - field: 'depart' - }, { - id: 'applicant', - name: '申请人', - field: 'applicant' - }, { - id: "applicationTimeStr", - name: '申请时间', - field: 'applicationTimeStr' - }, { - id: "submitTimeStr", - name: '最后修改时间', - field: 'submitTimeStr' - }, { - id: "printTimeStr", - name: '打印时间', - field: 'printTimeStr' - }, { - id: "type", - name: '类型', - field: 'type' - }, { - id: "committedStatus", - name: '已提交', - field: 'committedStatus', - formatter: function(row, cell, value, columnDef, dataContext) { - return value == true ? "是" : "否"; - } - }, { - id: "printed", - name: '已打印', - field: 'printed', - formatter: function(row, cell, value, columnDef, dataContext) { - return value == '0' ? "是" : "否"; - } - }, { - id: "recyclingStatus", - name: '回收状态', - field: 'recyclingStatus' - }, { - id: "deliverStatus", - name: '发货状态', - field: 'deliverStatus' - }, { - id: "returnStatus", - name: '归还状态', - field: 'returnStatus' - }, { - id: "endStatus", - name: '终止状态', - field: 'endStatus' - }, { - id: "remark", - name: '备注', - field: 'remark' - }, { - id: "opera", - name: '操作', - field: 'opera' + var checkboxSelector = new Slick.CheckboxSelectColumn({ + cssClass: "slick-cell-checkboxsel" + }); + + var requiredFieldValidator = function (value){ + if(value == null || value == undefined || !value.length){ + return {valid: false, msg: "This is a required field"}; + }else{ + return {valid: true, msg: "This is a required field"}; } - ); + } - var tousseDataView = new Slick.Data.DataView({ inlineFilters: true }); - tousseDataView.beginUpdate(); - tousseDataView.setItems(data); - tousseDataView.endUpdate(); + var pageIng = function(remoteUrl,container,datagrid,pagerType,trans,params,order,search,searchFields){ + new Slick.Controls.EnhancementPager({ + container: container, + remoteUrl:remoteUrl, + datagrid: datagrid, + pagerType: pagerType, + trans: trans, //i18n support + params:params, + limt:25, + order:order, + search:search, + searchFields:searchFields, + }); + } - grid = new Slick.Grid("#main",tousseDataView,columns,options); - grid.registerPlugin(checkboxSelector); - - + var options = { + forceFitColumns: false, + enableCellNavigation: true, + enableColumnReorder: false, + topPanelHeight:'35', + rowHeight:'35', + headerRowHeight:'35', + multiSelect:false, + fullWidthRows:'true', + enableAddRow: false + }; - var mytranslation = { - pagelabel: "页", - currentpage: "当前页", - refresh: "刷新", - recordstatelabel: "显示", - currentrecords: "显示/隐藏当前记录状态", - perpage: "每页条数", - pageminus: "上一页", - pageplus: "下一页", - resultset_first: "第一页", - resultset_prev: "上一页", - resultset_next: "下一页", - resultset_last: "最后一页" - }; - - var pagercontent =$("#page"); - var url=WWWROOT+'/disinfectSystem/recyclingApplication/recyclingApplicationController/findRecyclingApplicationList.mhtml'; - var search='',searchFields='',order ='desc'; - pageIng(url,pagercontent,grid,'',mytranslation,'',order); - - grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false})); - grid.autosizeColumns(); - - grid.onClick.subscribe(function(e,args){ - var row = args.row; - var da = grid.getDataItem(row) - parent.setDate(da); - if(da.type == Constants.AppType.TYPE_TOUSSE_APPLICATION_FORM - || da.type == Constants.AppType.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM - ||da.type == Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM ){ - $("#tousseIframe",parent.document).contents().find("#showForm").click(); - } - }) - - - tousseDataView.onRowCountChanged.subscribe(function (e, args) { - tousseGrid.updateRowCount(); - tousseGrid.render(); - }); - - tousseDataView.onRowsChanged.subscribe(function (e, args) { - tousseGrid.invalidateRows(args.rows); - tousseGrid.render(); - }); - - /**鼠标移入进"流水号"单元格,显示申请单申请物品申请发货回收等状态详情*/ - $(".serialNumberCla").on('mouseenter',function(e){ - var $this = $(this); - var thisApplicationId = $($this).attr('id'); - var applicationItems = []; - $.ajax({ - url:WWWROOT+"/disinfectSystem/recyclingApplication/recyclingApplicationController/findApplicationItemVOListByInvoicePlanId.mhtml", - type:"GET", - data:{id:thisApplicationId}, - async:false, - dataType:"json", - success:function(msg){ - applicationItems = msg.rows; + var columns = []; + columns.push(checkboxSelector.getColumnDefinition()); + columns.push( + { + id: 'id', + name: 'id', + field: 'id', + name: 'ID', + width: 0, + minWidth: 0, + maxWidth: 0, + cssClass: "reallyHidden", + headerCssClass: "reallyHidden" + }, { + id: 'orgUnitCode', + name: '科室编码', + cssClass: "cell-title", + field: 'orgUnitCode', + width: 0, + minWidth: 0, + maxWidth: 0, + cssClass: "reallyHidden", + headerCssClass: "reallyHidden" + }, { + id: 'serialNumber', + name: '流水号', + field: 'serialNumber', + formatter: formatters.toClickEl + }, { + id: 'depart', + name: '申请科室', + field: 'depart' + }, { + id: 'applicant', + name: '申请人', + field: 'applicant' + }, { + id: "applicationTimeStr", + name: '申请时间', + field: 'applicationTimeStr', + width:100 + }, { + id: "submitTimeStr", + name: '最后修改时间', + field: 'submitTimeStr', + width:100 + }, { + id: "printTimeStr", + name: '打印时间', + field: 'printTimeStr', + width:100 + }, { + id: "type", + name: '类型', + field: 'type', + width:100 + }, { + id: "committedStatus", + name: '已提交', + field: 'committedStatus', + formatter: function(row, cell, value, columnDef, dataContext) { + return value == true ? "是" : "否"; + } + }, { + id: "printed", + name: '已打印', + field: 'printed', + formatter: function(row, cell, value, columnDef, dataContext) { + return value == '0' ? "是" : "否"; + } + }, { + id: "recyclingStatus", + name: '回收状态', + field: 'recyclingStatus' + }, { + id: "deliverStatus", + name: '发货状态', + field: 'deliverStatus' + }, { + id: "returnStatus", + name: '归还状态', + field: 'returnStatus' + }, { + id: "endStatus", + name: '终止状态', + field: 'endStatus' + }, { + id: "remark", + name: '备注', + field: 'remark' + }, { + id: "opera", + name: '操作', + field: 'opera' } + ); + + var tousseDataView = new Slick.Data.DataView({ inlineFilters: true }); + tousseDataView.beginUpdate(); + tousseDataView.setItems(data); + tousseDataView.endUpdate(); + + grid = new Slick.Grid("#main",tousseDataView,columns,options); + grid.registerPlugin(checkboxSelector); + + var mytranslation = { + pagelabel: "页", + currentpage: "当前页", + refresh: "刷新", + recordstatelabel: "显示", + currentrecords: "显示/隐藏当前记录状态", + perpage: "每页条数", + pageminus: "上一页", + pageplus: "下一页", + resultset_first: "第一页", + resultset_prev: "上一页", + resultset_next: "下一页", + resultset_last: "最后一页" + }; + + var pagercontent =$("#page"); + var url=WWWROOT+'/disinfectSystem/recyclingApplication/recyclingApplicationController/findRecyclingApplicationList.mhtml'; + var search='',searchFields='',order ='desc'; + pageIng(url,pagercontent,grid,'',mytranslation,'',order); + + grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false})); + grid.autosizeColumns(); + + grid.onClick.subscribe(function(e,args){ + var row = args.row; + var da = grid.getDataItem(row); + parent.setDate(da); + if(da.type == Constants.AppType.TYPE_TOUSSE_APPLICATION_FORM + || da.type == Constants.AppType.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM + ||da.type == Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM ){ + $("#tousseIframe",parent.document).contents().find("#showForm").click();//WeiNing QQQ + } + }) + + tousseDataView.onRowCountChanged.subscribe(function (e, args) { + tousseGrid.updateRowCount(); + tousseGrid.render(); }); - var divEl = ""; - for(var a = 0;a"+applicationItems[a].name+""+applicationItems[a].amount+""+applicationItems[a].recyclingAmount+"" - +applicationItems[a].packedAmount+""+applicationItems[a].sterilizationAmount+""+applicationItems[a].invoiceAmount+""; - } - $("#applicationDetailsTableTh").nextAll().remove(); - $("#applicationDetailsTable").append(divEl); - $("#applicationDetails").removeClass("application_details_hide").addClass("application_details_show"); - $("#applicationDetails").css({"top":e.originalEvent.y,"left":e.originalEvent.x+50}); - }); - - //鼠标移除时将悬浮框隐藏 - $(".serialNumberCla").on('mouseleave',function(e){ - $("#applicationDetails").removeClass("application_details_show").addClass("application_details_hide"); - }); + tousseDataView.onRowsChanged.subscribe(function (e, args) { + tousseGrid.invalidateRows(args.rows); + tousseGrid.render(); + }); + + initTableEvent(); + } + + + /* + *渲染表格事件 + */ + var initTableEvent = function(){ + + /**鼠标移入进"流水号"单元格,显示申请单申请物品申请发货回收等状态详情*/ + $(".serialNumberCla").on('mouseenter',function(e){ + var $this = $(this); + var thisApplicationId = $($this).attr('id'); + var applicationItems = []; + $.ajax({ + url:WWWROOT+"/disinfectSystem/recyclingApplication/recyclingApplicationController/findApplicationItemVOListByInvoicePlanId.mhtml", + type:"GET", + data:{id:thisApplicationId}, + async:false, + dataType:"json", + success:function(msg){ + applicationItems = msg.rows; + } + }); + var divEl = ""; + for(var a = 0;a"+applicationItems[a].name+""+applicationItems[a].amount+""+applicationItems[a].recyclingAmount+"" + +applicationItems[a].packedAmount+""+applicationItems[a].sterilizationAmount+""+applicationItems[a].invoiceAmount+""; + } + + $("#applicationDetailsTableTh").nextAll().remove(); + $("#applicationDetailsTable").append(divEl); + $("#applicationDetails").removeClass("application_details_hide").addClass("application_details_show"); + $("#applicationDetails").css({"top":e.originalEvent.y,"left":e.originalEvent.x+50}); + }); + + //鼠标移除时将悬浮框隐藏 + $(".serialNumberCla").on('mouseleave',function(e){ + $("#applicationDetails").removeClass("application_details_show").addClass("application_details_hide"); + }); + } - + /** + *根据不同分辨率调整页面显示尺寸,这里只是简单实现,需要进一步完善细节 + */ var initScreen = function(){ /**不同分辨率下样式调整 begin*/ var screenWidth = parseInt(window.screen.width,10); @@ -287,7 +353,9 @@ }) } - /**向父级页面添加模态框体*/ + /* + * 向父级页面添加模态框体 + */ var initForm = function(){ var modal = ''; $(top.document.body).append(modal); - } - + } + + + /* + * 搜索栏表单 + * (未实现) + */ var initSearch = function(){ //申请时间 DateCpt.init('search_app_start_time','yyyy-mm-dd'); - /* $("#search_app_start_time").val(Tools.DateUtils.getBeforeCurrentDate(6));*/ DateCpt.init('search_app_end_time','yyyy-mm-dd'); - /*$("#search_app_end_time").val(Tools.DateUtils.getCurrentDate());*/ //申请科室 renderDepartment_tousse("search_app_depart"); //申请人 @@ -334,7 +405,12 @@ initMoreSearch(); }); } - + + + /* + * 搜索栏表单 + * (未实现) + */ var initMoreSearch = function(){ //终止状态 renderDepartment_tousse("search_more_termination_status"); @@ -408,9 +484,8 @@ }); } - parent.refreshTable = function(){ - initTable(); - } + + initParent(); // initSearch(); initForm(); initTable(); Index: ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/applicationUtils.js =================================================================== diff -u -r25015 -r25057 --- ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/applicationUtils.js (.../applicationUtils.js) (revision 25015) +++ ssts-web/src/main/webapp/dx-disinfectsystem/js/recyclingApplication/applicationUtils.js (.../applicationUtils.js) (revision 25057) @@ -1,3 +1,9 @@ +/** + * 所有下拉框的内容渲染函数等到下拉框插件 + * 确定下来后再封装。 + */ +var isIE=Tools.BrowserTypeUtils.isIE()==1 ? true:false; +$.fn.modal.Constructor.prototype.enforceFocus = function () {};//解决select2 单选框无法输入的问题 var DateCpt = { init:function(idStr,format){ @@ -89,9 +95,6 @@ } - - - //获取下拉框内容并渲染到页面--科室下拉框 function renderDepartment_tousse(elementId,placeholder,maximumSelectionLength,url,asyns){ @@ -315,6 +318,32 @@ } +//“处理科室”下拉框初始化 +function renderSelect_handlerDpt(elementId,maximumSelectionLength,tousseType,applyDepartCode){ + + var result=[]; + $.ajax({ + url:WWWROOT + '/disinfectSystem/core/orgUnitController/searchHandleDepartmentByKeyWord.mhtml', + dataType: 'json', + contentType:"application/json;charset=utf-8", + type:'get', + async:false, + cache: true, + data:{applyDepartCode:applyDepartCode,tousseType:tousseType}, + success:function(msg){ + result=transformJsonArrToSelect2(msg.rows,"departmentCode","departmentName"); + } + }); + + $("#"+elementId).select2({ + minimumResultsForSearch: Infinity, + data: result + }) + + $("#"+elementId).next().attr('style','width:100%;'); +} + + //“自定义”器械包下拉框 function renderSelect_customerTousse(elementId){ $.ajax({ @@ -374,4 +403,60 @@ } +/** + * 清空表单 + * @formId 表单ID + * @tableIds 表单中表格destroy(此处需是bootstrap-table) + *1.隐藏模态框 + *2.清空表单各输入框内容,表格重置 + *3.清空物品项数组appToussesArr + */ +function clearForm(isIE,formId,tableIds,appToussesArr){ + //清除input/select/textarea元素 + if(isIE == true){ + $("#"+formId).filter('input[type=text],input[type=number],select,input[type=hidden],textarea').each(function() { + $(this).val(''); + $(this).text(''); + }); + }else{ + $("#"+formId).find('input[type=text],input[type=number],select,input[type=hidden],textarea').each(function() { + $(this).val(''); + $(this).text(''); + }); + } + + //清空物品列表所选择数据的缓存 + if(appToussesArr != undefined && appToussesArr.length != 0){ + appToussesArr=[]; + } + return appToussesArr; +} + +/* + *将json数组转换成select2特定的json格式 + *@param jsonArray 需要转换的json数组 + *@param idCorreFiled 与select2中id对应的属性 + *@param textCorreFiled 与select2中text对应的属性 + */ +function transformJsonArrToSelect2(jsonArray,idCorreFiled,textCorreFiled){ + var result=[]; + for(var i=0;i/g,">"); + //制造一个占位 + var spacer = ""; + //根据ID获取此行内容的索引值 + var idx = tousseDataView.getIdxById(dataContext.id); + //如果data中对应的内容不为空,并且此行缩进大于上一行的缩进 + if (tousseLoadData[idx + 1] && tousseLoadData[idx + 1].indent > tousseLoadData[idx].indent) { + if (dataContext._collapsed) { + return spacer + "  " + value; + } else { + return spacer + "  " + value; + } + }else{ + return spacer + "  " + value; } - }); - - $("#"+elementId).select2({ - minimumResultsForSearch: Infinity, - data: result - }) - - $("#"+elementId).next().attr('style','width:100%;'); -} + return "  " + value; + } - -/*【“申请器械包”-下拉框渲染--申请物品列表】 -*tousseType:类型 -*appCode:申请科室编码 -*settleAccountsDepartCoding:结算科室编码 -*cssdOrgUnitCode:处理科室编码 -*spell:搜索关键字 -*limit:每页记录数 -*offset:第多少条起 - */ -function renderSelect_comboGoods(elementId,maximumSelectionLength,tousseType,appCode,settleAccountsDepartCoding,cssdOrgUnitCode){ - $("#"+elementId).select2({ - language : 'zh-CN', - minimumInputLength: 1, - placeholder: "关键词搜索", - maximumSelectionLength:maximumSelectionLength, - allowClear: true, - ajax: { - url: WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchComboGoodsData.do', - dataType: 'json', - contentType:"application/json;charset=utf-8", - type:'get', -// cache: true, - delay: 1000, - data:function (params){ - return { - tousseType:tousseType, - appCode:Tools.ArrayUtils.isNotEmpty($('#departApp_tousse').val()) ? $('#departApp_tousse').val()[0] : '', - settleAccountsDepartCoding:Tools.ArrayUtils.isNotEmpty($('#settleDep_tousse').val()) ? $('#settleDep_tousse').val()[0] : '', - cssdOrgUnitCode:$('#handleDep_tousse').val(), - spell: params.term, // search term - limit:20, - page:params.page||1, //第几页返回查询 - offset:((params.page||1)-1) * 20 - }; - }, - beforeSend:function(){ -// appCode= $('#departApp_tousse').val()[0]; -// settleAccountsDepartCoding= $('#settleDep_tousse').val()[0]; -// cssdOrgUnitCode=$('#handleDep_tousse').val()[0]; - }, - processResults: function (data,params) {//结果处理 - var result=[]; - if(data.success == true){ - $.merge(disinfectionComboGoodsStore,data.rows); - result=transformJsonArrToSelect2(data.rows,"id","name"); - } - return {results: result,"pagination": {"more": true}} - } - } - }); - $("#"+elementId).next().attr('style','width:100%;'); -} + function showAppForm(formJson){ + + //清除表单 + clearForm(formJson.isIE,"modalContent",["modalContent"]); + + var title="申请器械包"; + var tousseType=formJson.tousseType; + + //加载“申请物品”信息表格 + appTemplate_columns = [ + {id: 'id',name:'name',field : 'id',sortable:true,width: 0, minWidth: 0, maxWidth: 0, cssClass: "reallyHidden", headerCssClass: "reallyHidden"}, + {id: 'tousseDefinitionID',field : 'tousseDefinitionID',minWidth:150,sortable:true,width: 0, minWidth: 0, maxWidth: 0, cssClass: "reallyHidden", headerCssClass: "reallyHidden"}, + {id: 'tousseName',name:'物品名',field : 'tousseName',minWidth:150,width: 0,sortable:true}, + {id: 'amount',name:'申请数量',field : 'amount',minWidth:150,width: 35,sortable:true,editor: Slick.Editors.Text}, + {id: 'price',name:'单价',field : 'price',minWidth:60,sortable:true}, + {id: 'allprice',name:'小计',field : 'allprice',minWidth:60,sortable:true} + ]; + var datas = []; + + if(tousseType == Constants.AppType.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM){ + title = "申请一次性物品"; + }else if(tousseType == Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM){ + title = "申请消毒物品"; + appTemplate_columns[2].formatter = iconFormatter; + //初始化表格时转化数据为父子表格式 + transToDisfection(datas,0,tousseType); + } + + //设置表单申请人为当前登陆用户 + $("#applicant").val(formJson.applicant); + //为表单设置标题 + $("#application_title").text(title); + window.top.$("#tousseModal").modal('show'); + //渲染“物品名称”下拉框数据 + renderSelect_comboGoods("tousseName_tousse_select",tousseType,$('#departApp_tousse').val() || "",$('#settleDep_tousse').val() || "",$('#handleDep_tousse').val() || ""); - - - - - - - - -/** - * 清空表单 - * @formId 表单ID - * @tableIds 表单中表格destroy(此处需是bootstrap-table) - *1.隐藏模态框 - *2.清空表单各输入框内容,表格重置 - *3.清空物品项数组appToussesArr - */ -function clearForm(isIE,formId,tableIds,appToussesArr){ - //清除input/select/textarea元素 - if(isIE == true){ - $("#"+formId).filter('input[type=text],input[type=number],select,input[type=hidden],textarea').each(function() { - $(this).val(''); - $(this).text(''); + var options = { + enableCellNavigation: true, + enableColumnReorder: false, + topPanelHeight:'40', + rowHeight:'30', + headerRowHeight:'30', + multiSelect:false, + fullWidthRows:'true', + editable: true, + enableAddRow: false, + enableCellNavigation: true, + asyncEditorLoading: false, + autoEdit: false + }; + + tousseDataView = new Slick.Data.DataView({ inlineFilters: true }); + tousseDataView.beginUpdate(); + tousseLoadData = []; + tousseDataView.setItems(tousseLoadData); + tousseDataView.setFilter(myFilter); + tousseDataView.endUpdate(); + tousseGrid = new Slick.Grid("#tousse_table",tousseDataView,appTemplate_columns,options); + tousseGrid.autosizeColumns(); + + tousseGrid.onClick.subscribe(function (e, args) { + if ($(e.target).hasClass("toggle")) { + var item = tousseDataView.getItem(args.row); + if (item) { + if (!item._collapsed) { + item._collapsed = true; + } else { + item._collapsed = false; + } + tousseDataView.updateItem(item.id, item); + } + e.stopImmediatePropagation(); + } + }); + + tousseGrid.onCellChange.subscribe(function(e,args){ + //得到编辑完成的数据行 + var item = args.item; + //更改预备提交的物品组 + for(var a = 0;a < appToussesArr.length;a++){ + if(item.tousseDefinitionID === appToussesArr[a].tousseDefinitionID){ + appToussesArr[a].amount = item.amount; + } + } + }) + + + tousseDataView.onRowCountChanged.subscribe(function (e, args) { + tousseGrid.updateRowCount(); + tousseGrid.render(); }); - }else{ - $("#"+formId).find('input[type=text],input[type=number],select,input[type=hidden],textarea').each(function() { - $(this).val(''); - $(this).text(''); - }); - } - - //清空物品列表所选择数据的缓存 - if(appToussesArr != undefined && appToussesArr.length != 0){ - appToussesArr=[]; - } - return appToussesArr; -} + + tousseDataView.onRowsChanged.subscribe(function (e, args) { + tousseGrid.invalidateRows(args.rows); + tousseGrid.render(); + }); - -/* - *将json数组转换成select2特定的json格式 - *@param jsonArray 需要转换的json数组 - *@param idCorreFiled 与select2中id对应的属性 - *@param textCorreFiled 与select2中text对应的属性 - */ -function transformJsonArrToSelect2(jsonArray,idCorreFiled,textCorreFiled){ - var result=[]; - for(var i=0;i/g,">"); - //制造一个占位 - var spacer = ""; - //根据ID获取此行内容的索引值 - var idx = tousseDataView.getIdxById(dataContext.id); - //如果data中对应的内容不为空,并且此行缩进大于上一行的缩进 - if (tousseLoadData[idx + 1] && tousseLoadData[idx + 1].indent > tousseLoadData[idx].indent) { - if (dataContext._collapsed) { - return spacer + "  " + value; - } else { - return spacer + "  " + value; - } - - }else{ - return spacer + "  " + value; + /**“器械包申请”、“一次性物品申请单”、“消毒物品申请单”隐藏或显示某按钮 + * el:HTML元素 + * state:1表示需要隐藏,2表示需要显示 + */ + function toggleShow(el,state){ + var footer = $("#modal-footer"); + //隐藏 + if(state == 1){ + if( !$(el).hasClass("hideStatus") ){ + $(el).addClass("hideStatus"); + if ( $(footer).hasClass("col-xs-offset-1") == true ){ + $(footer).removeClass("col-xs-offset-1"); + } + $(footer).addClass("col-xs-offset-3"); + }; + + }else if(state == 2){ + //显示 + if( $(el).hasClass("hideStatus") ){ + $(el).removeClass("hideStatus") + if ( $(footer).hasClass("col-xs-offset-3") == true ){ + $(footer).removeClass("col-xs-offset-3"); + } + $(footer).addClass("col-xs-offset-1"); + } + } } - return "  " + value; -// return "  " + value; - -} -/** 点击“申请器械包”、“申请一次性物品”、“申请消毒物品”、“申请外来器械”、“申请自定义器械包”、“申请外部代理灭菌包”、“借物”按钮显示申请表单 - * var formJson={ -* //是否为IE -* isIE:isIE, -* //模态框HTML元素ID属性 -* modalElementId:"tousseModal", -* //模态框标题元素ID属性 -* modalTileElementId:"application_title", -* //模态框“选择物品”下拉框元素ID属性 -* tousseSelectElementId:"tousseName_tousse_select", -* //“选择物品”下拉框最多可选元素数量 -* tousseSelectNum:1, -* //申请单类型 -* tousseType:Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM, -* //申请单表格元素ID -* formTableElementId:"tousse_table", -* //申请单表格对应的字段 -* columns:appTemplate_columns, -* //申请单表格需要加载的数据 -* appToussesArr:appToussesArr, -* //“申请科室”输入框HTML元素ID -* departElementId:'departApp_tousse', -* //“结算科室”输入框HTML元素ID -* settleDepartElementId:'settleDep_tousse', -* //“处理科室”输入框HTML元素ID -* handlerDepartElementId:'handleDep_tousse', -* //表格是否支持子表格 -* isExpandRow:true -* }; - */ -function showAppForm(formJson){ - - //清除表单 - clearForm(formJson.isIE,formJson.modalContentElementId,[formJson.modalContentElementId]); - - var title="申请器械包"; - var tousseType=formJson.tousseType; - - //加载“申请物品”信息表格 - appTemplate_columns = [ - {id: 'id',name:'name',field : 'id',sortable:true,width: 0, minWidth: 0, maxWidth: 0, cssClass: "reallyHidden", headerCssClass: "reallyHidden"}, - {id: 'tousseDefinitionID',field : 'tousseDefinitionID',minWidth:150,sortable:true,width: 0, minWidth: 0, maxWidth: 0, cssClass: "reallyHidden", headerCssClass: "reallyHidden"}, - {id: 'tousseName',name:'物品名',field : 'tousseName',minWidth:150,width: 0,sortable:true}, - {id: 'amount',name:'申请数量',field : 'amount',minWidth:150,width: 35,sortable:true,editor: Slick.Editors.Text}, - {id: 'price',name:'单价',field : 'price',minWidth:60,sortable:true}, - {id: 'allprice',name:'小计',field : 'allprice',minWidth:60,sortable:true} - ]; - - var datas = []; - - if(tousseType == Constants.AppType.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM){ - title = "申请一次性物品"; - }else if(tousseType == Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM){ - title = "申请消毒物品"; - appTemplate_columns[2].formatter = iconFormatter; - //初始化表格时转化数据为父子表格式 - transToDisfection(datas,0,tousseType); - } - - //设置表单申请人为当前登陆用户 - $("#applicant").val(formJson.applicant); - //为表单设置标题 - $("#"+formJson.modalTileElementId).text(title); -// $("#"+formJson.modalElementId).modal('show');tousseModal - window.top.$("#"+formJson.modalElementId).modal('show'); - //渲染“物品名称”下拉框数据 - renderSelect_comboGoods(formJson.tousseSelectElementId,formJson.tousseSelectNum,tousseType,$('#'+formJson.departElementId).val() || "",$('#'+formJson.settleDepartElementId).val() || "",$('#'+formJson.handlerDepartElementId).val() || ""); - -// if(formJson.){ -// formJson.columns = appTemplate_columns; -// } - var options = { - enableCellNavigation: true, - enableColumnReorder: false, - topPanelHeight:'40', - rowHeight:'30', - headerRowHeight:'30', - multiSelect:false, - fullWidthRows:'true', - editable: true, - enableAddRow: false, - enableCellNavigation: true, - asyncEditorLoading: false, - autoEdit: false - }; - - tousseDataView = new Slick.Data.DataView({ inlineFilters: true }); - tousseDataView.beginUpdate(); - tousseLoadData = []; - tousseDataView.setItems(tousseLoadData); - tousseDataView.setFilter(myFilter); - tousseDataView.endUpdate(); - tousseGrid = new Slick.Grid("#tousse_table",tousseDataView,appTemplate_columns,options); - tousseGrid.autosizeColumns(); - - tousseGrid.onClick.subscribe(function (e, args) { - if ($(e.target).hasClass("toggle")) { - var item = tousseDataView.getItem(args.row); - if (item) { - if (!item._collapsed) { - item._collapsed = true; - } else { - item._collapsed = false; - } - tousseDataView.updateItem(item.id, item); - } - e.stopImmediatePropagation(); - } - }); - - tousseGrid.onCellChange.subscribe(function(e,args){ - //得到编辑完成的数据行 - var item = args.item; - //更改预备提交的物品组 - for(var a = 0;a < appToussesArr.length;a++){ - if(item.tousseDefinitionID === appToussesArr[a].tousseDefinitionID){ - appToussesArr[a].amount = item.amount; - } + /**slick.grid,消毒物品数据格式转换成父子表结构*/ + function transToDisfection(datas,tempId,tousseType){ + + if(tousseType != Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM){ + tousseLoadData = datas; + return; } - }) - - - tousseDataView.onRowCountChanged.subscribe(function (e, args) { - tousseGrid.updateRowCount(); - tousseGrid.render(); - }); - - tousseDataView.onRowsChanged.subscribe(function (e, args) { - tousseGrid.invalidateRows(args.rows); - tousseGrid.render(); - }); - - -} - -/** 行数据过滤 - * - */ -function myFilter(item) { - if (item.parent != null) { - var parent = tousseLoadData[item.parent]; - while (parent) { - if (parent._collapsed) { - return false; - } - parent = tousseLoadData[parent.parent]; - } - } - return true; - - } - - -/** 提交申请单 - * var submitJson={ - * //“ID”对应的HTML元素ID属性 - * idElId:, - * //当前登陆用户名 - applicant:currentUserFullName, - //当前登陆用户编码 - applicantCode:currentUserCode, - * //“申请人”输入框ID属性 - * applicantElId:, - * //“申请人编号”HTML元素ID - * applicantCodeElId:, - * //“申请科室”元素ID - * departAppElId:, - * //“结算科室”元素ID - * settleDepElId:, - * //“处理科室”元素ID - * handleDepEl:, - * //"申请时间"元素ID - * timeElId:, - * //“备注”元素ID - * remarkElId:, - * //当前申请单类型 - * currentApplication: - * //申请物品数组 - * appToussesArr: - * //主页面表格字段 - * allApplicationColumns: - * //是否提交,true为提交,false为暂存 - * isCommit:, - //是否需要立即刷新主页面表格内容 - isRefresh:true - * }; - */ -function submitForm(submitJson){ - var valiResult = true; - //ID - var idEl=$('#'+submitJson.idElId); - var id=idEl.val(); - - //申请人 -// var appEl=$('#'+submitJson.applicantElId); - var applicant=submitJson.applicant; - var applicantCode=submitJson.applicantCode; - - //申请科室 - var departAppEl=$('#'+submitJson.departAppElId); - var departCoding; - var departAppElVal = departAppEl.val(); - if(!Tools.ArrayUtils.isNotEmpty(departAppElVal)){ - valiResult = false; - }else{ - departCoding=departAppElVal[0]; - } - var depart=departAppEl.find("option:selected").text(); - - //结算科室 - var settleDepEl=$('#'+submitJson.settleDepElId); - var settleAccountsDepartCoding; - var settleDepElVal = departAppEl.val(); - if(!Tools.ArrayUtils.isNotEmpty(settleDepElVal)){ - valiResult = false; - }else{ - settleAccountsDepartCoding=settleDepElVal[0]; - } - var settleAccountsDepart=settleDepEl.find("option:selected").text(); - - //处理科室 - var handleDepEl=$('#'+submitJson.handleDepEl); - var handleDepartCoding = handleDepEl.val(); - if( Tools.StringUtils.isEmpty(handleDepartCoding) ){ - valiResult = false; - } - var handleDepart=handleDepEl.find("option:selected").text(); - - //时间 - var applicationTimeStr=$("#"+submitJson.timeElId).text(); - - //备注 - var remarksEl=$('#'+submitJson.remarkElId); - var remark=remarksEl.text(); - - //申请单类型 - var type; - - if(submitJson.currentApplication == Constants.AppType.TYPE_TOUSSE_APPLICATION_FORM){//“器械包申请单” - type=Constants.AppType.TYPE_TOUSSE_APPLICATION_FORM; - }else if(submitJson.currentApplication == Constants.AppType.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM){//“一次性物品申请单” - type=Constants.AppType.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM; - }else if(submitJson.currentApplication == Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM){//“消毒物品申请单” - type=Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM; - } - - var commitData = new disposableGoodApplicationData(submitJson.isCommit,id,applicant,applicantCode,submitJson.appToussesArr,departCoding,depart,settleAccountsDepartCoding,settleAccountsDepart,handleDepartCoding,handleDepart,type,applicationTimeStr,remark); - - $.ajax({ - url:WWWROOT +'/disinfectSystem/recyclingApplicationAction!saveRecyclingApplication.do', - type:'post', - // contentType:"application/json;charset=utf-8", - dataType:'json', - data:commitData, - beforeSend:function(msg){ - $("#tousseSubmitAndNewForm,#tousseSubmit,#tousseTemStorage").addClass("dx-btn-disable") ; - $("#tousseSubmitAndNewForm,#tousseSubmit,#tousseTemStorage").attr("disabled",true); - }, - success:function(msg){ - if(msg.success == true){ - //重新加载主页表单 - parent.refreshTable(); - }else{ - alert(msg.message); + var tempId = tempId || 0; + + for(var i=0;i 0) { + //var tipsColor = ""; + // var operateHtml = ""; + for(var j=0; j < materials.length; j++){ + var k = (tousseLoadData[tempId] = {}); + k["id"] = tempId+'m' ; + k["indent"] = 1; + k["parent"] = parentId; + k["tousseName"]=materials[j].tousseName; + k["amount"]=materials[j].amount; + k["price"]=materials[j].price; + k["allprice"]=materials[j].allprice; + tempId ++; } - }, - complete:function(){ - window.top.$("#tousseModal").modal('hide'); - $("#tousseSubmitAndNewForm,#tousseSubmit,#tousseTemStorage").attr("disabled",false); - $("#tousseSubmitAndNewForm,#tousseSubmit,#tousseTemStorage").removeClass("dx-btn-disable"); } - }); -} + } + + } - -/**“器械包申请”、“一次性物品申请单”、“消毒物品申请单”隐藏或显示某按钮 - * el:HTML元素 - * state:1表示需要隐藏,2表示需要显示 - */ -function toggleShow(el,state){ - var footer = $("#modal-footer"); - //隐藏 - if(state == 1){ - if( !$(el).hasClass("hideStatus") ){ - $(el).addClass("hideStatus"); - if ( $(footer).hasClass("col-xs-offset-1") == true ){ - $(footer).removeClass("col-xs-offset-1"); - } - $(footer).addClass("col-xs-offset-3"); - }; + /** + * 将消毒物品数据转换成可以显示到slick父子表的显示格式 + * 需要转换的数据形式: + * {"isCleanedEntirely":"是","spelling":"WSCXS","isThereIdentificationCard":"否","displayName":"委松除屑水","type":"消毒物品","borrowPrice":0,"unit":"","expressInvoice":"否", + * "materials":[ + {"name":"骨刀 (小)[24cm刃8mm]","materialDefinitionId":123,"tousseType":"器械","isDiposable":"否","count":1,"countBackup":1,"totalPrice":0,"amount":1,"price":0,"leaf":true}, + {"name":"剥离子 (中)[19cm刃6mm]","materialDefinitionId":13,"tousseType":"器械","isDiposable":"否","count":1,"countBackup":1,"totalPrice":0,"amount":1,"price":0,"leaf":true}], + "price":0,"name":"委松除屑水","id":14899,"tousseType":"消毒物品","isApplyEntireTousse":"否"} - }else if(state == 2){ - //显示 - if( $(el).hasClass("hideStatus") ){ - $(el).removeClass("hideStatus") - if ( $(footer).hasClass("col-xs-offset-3") == true ){ - $(footer).removeClass("col-xs-offset-3"); - } - $(footer).addClass("col-xs-offset-1"); - } - } -} + * 转换后的形式: + * [ + {id:tempId,tousseDefinitionID:'',indent : 0,parent:0,tousseName:'',amount:'',price:'',allprice:''}, + {id:tempId ++,tousseDefinitionID:'',indent : 1,parent:parentId,tousseName:'',amount:'',price:'',allprice:''} + ] + * + */ - - -/**slick.grid,消毒物品数据格式转换成父子表结构*/ -function transToDisfection(datas,tempId,tousseType){ - - if(tousseType != Constants.AppType.TYPE_DISINFECT_GOODS_APPLICATION_FORM){ - tousseLoadData = datas; - return; - } - - var tempId = tempId || 0; - - for(var i=0;i 0) { - //var tipsColor = ""; - // var operateHtml = ""; - for(var j=0; j < materials.length; j++){ - var k = (tousseLoadData[tempId] = {}); - k["id"] = tempId+'m' ; - k["indent"] = 1; - k["parent"] = parentId; - k["tousseName"]=materials[j].tousseName; - k["amount"]=materials[j].amount; - k["price"]=materials[j].price; - k["allprice"]=materials[j].allprice; - tempId ++; - } + results[0] = {id:parentId,tousseDefinitionID:disinfectItem.id,indent : 0,parent:null,tousseName:disinfectItem.name,amount:0,price:disinfectItem.price,allprice:''}; + for(var r=0;r