Index: ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/service/LabelTemplateManagerImpl.java =================================================================== diff -u -r15036 -r15107 --- ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/service/LabelTemplateManagerImpl.java (.../LabelTemplateManagerImpl.java) (revision 15036) +++ ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/service/LabelTemplateManagerImpl.java (.../LabelTemplateManagerImpl.java) (revision 15107) @@ -5,8 +5,10 @@ import org.apache.commons.collections4.CollectionUtils; import net.sf.json.JSONArray; +import net.sf.json.JSONObject; import com.forgon.disinfectsystem.entity.labeltemplate.LabelTemplate; +import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; /** * @@ -39,13 +41,29 @@ } @Override public void save(LabelTemplate labelTemplate) { - objectDao.saveOrUpdate(labelTemplate); + Long id = labelTemplate.getId(); + if(DatabaseUtil.isPoIdValid(id)){ + LabelTemplate curLabelTemplate = get(id.toString()); + if(curLabelTemplate == null){ + throw new RuntimeException("模板已被删除!"); + } + curLabelTemplate.setDescription(labelTemplate.getDescription()); + curLabelTemplate.setFullName(labelTemplate.getFullName()); + curLabelTemplate.setDataSourceName(labelTemplate.getDataSourceName()); + curLabelTemplate.setHeight(labelTemplate.getHeight()); + curLabelTemplate.setName(labelTemplate.getName()); + curLabelTemplate.setWidth(labelTemplate.getWidth()); + objectDao.saveOrUpdate(curLabelTemplate); + }else{ + objectDao.saveOrUpdate(labelTemplate); + } } - public void saveOrUpdateProgramCodes(String id, String programCodes){ + public void saveOrUpdateProgramCodes(String id, String programCodes,String templateInfo){ LabelTemplate labelTemplate = get(id); if(labelTemplate != null){ labelTemplate.setProgramCodes(programCodes); + labelTemplate.setTemplateInfo(templateInfo); objectDao.update(labelTemplate); } } @@ -76,4 +94,8 @@ } return templateJSONArray.toString(); } + public String toJsonStr(LabelTemplate labeTemplate) { + JSONObject jsonObject = JSONObject.fromObject(labeTemplate); + return jsonObject.toString(); + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/labeltemplate/LabelTemplate.java =================================================================== diff -u -r15036 -r15107 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/labeltemplate/LabelTemplate.java (.../LabelTemplate.java) (revision 15036) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/labeltemplate/LabelTemplate.java (.../LabelTemplate.java) (revision 15107) @@ -6,7 +6,10 @@ import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Lob; +import javax.persistence.Transient; +import net.sf.json.JSONObject; + import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; @@ -29,6 +32,7 @@ */ private String name; private String fullName; + private String dataSourceName; /** * 标签的描述信息 */ @@ -77,6 +81,14 @@ this.fullName = fullName; } + public String getDataSourceName() { + return dataSourceName; + } + + public void setDataSourceName(String dataSourceName) { + this.dataSourceName = dataSourceName; + } + public String getDescription() { return description; } Index: ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/action/LabelTemplateAction.java =================================================================== diff -u -r15036 -r15107 --- ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/action/LabelTemplateAction.java (.../LabelTemplateAction.java) (revision 15036) +++ ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/action/LabelTemplateAction.java (.../LabelTemplateAction.java) (revision 15107) @@ -65,8 +65,9 @@ try { String id = StrutsParamUtils.getPraramValue("id", ""); String programCodes = StrutsParamUtils.getPraramValue("programCodes", ""); + String templateInfo = StrutsParamUtils.getPraramValue("templateInfo", ""); - labelTemplateManager.saveOrUpdateProgramCodes(id, programCodes); + labelTemplateManager.saveOrUpdateProgramCodes(id, programCodes, templateInfo); StrutsResponseUtils.output(true,"保存成功"); } catch (Exception e) { e.printStackTrace(); Index: ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/configObj.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/configObj.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/configObj.js (revision 15107) @@ -0,0 +1,532 @@ +Ext4.define("StyleConfig", { + getStyleStr: function(){ + return ''; + } +}); +Ext4.define("FontConfig", { + config: { + fontStyle: 'normal', + fontVariant: 'normal', + fontWeight: 'normal', + fontSize: '16px', + fontSizeValue: '16', + fontSizeUnit: 'px', + fontFamily: '宋体', + }, + extend: 'StyleConfig', + constructor: function(config){ + this.initConfig(config); + this.callParent(arguments); + }, + getStyleStr: function(){ + return this.fontStyle +' '+ this.fontVariant +' '+ this.fontWeight +' '+ this.fontSize +' '+ this.fontFamily+';'; + }, + saveFontConfig: function(cmpIdPrefix){ + var family = ''; + var size = ''; + var cmpFamily = Ext4.getCmp('cmpIdPrefix_family'); + var cmpSize = Ext4.getCmp('cmpIdPrefix_size'); + if(cmpFamily != null){ + family = cmpFamily.getValue(); + } + if(cmpSize != null){ + size = cmpSize.getValue(); + } + if(family != ''){ + this.fontFamily = family; + } + if(size != ''){ + this.fontSize = size; + } + }, + loadFontConfig: function(cmpIdPrefix){ + var cmpFamily = Ext4.getCmp('cmpIdPrefix_family'); + var cmpSize = Ext4.getCmp('cmpIdPrefix_size'); + if(cmpFamily != null){ + cmpFamily.setValue(this.fontFamily); + } + if(cmpSize != null){ + cmpSize.setValue(this.fontSize); + } + }, + convertToJsonObj: function(){ + var obj = { + fontStyle: this.fontStyle, + fontVariant: this.fontVariant, + fontWeight: this.fontWeight, + fontSize: this.fontSize, + fontFamily: this.fontFamily + } + return obj; + }, + statics: { + convertFromJsonObj: function(obj){ + var newObj = new FontConfig({ + fontStyle: obj.fontStyle, + fontVariant: obj.fontVariant, + fontWeight: obj.fontWeight, + fontSize: obj.fontSize, + fontFamily: obj.fontFamily + }); + return newObj; + } + } +}); +Ext4.define("BorderConfig", { + extend: 'StyleConfig', + getStyleStr: function(){ + return this.borderWidth +' '+ this.borderStyle +' '+ this.borderColor+';'; + }, + constructor: function(){ + this.callParent(arguments); + this.borderWidth = '1px'; + this.borderStyle = 'solid'; + this.borderColor = 'black'; + }, + convertToJsonObj: function(){ + var obj = { + borderWidth: this.borderWidth, + borderStyle: this.borderStyle, + borderColor: this.borderColor + }; + return obj; + }, + statics: { + convertFromJsonObj: function(obj){ + var newObj = new BorderConfig({ + borderWidth: obj.borderWidth, + borderStyle: obj.borderStyle, + borderColor: obj.borderColor + }); + return newObj; + } + } +}); +Ext4.define("TableColumnConfig", { + config:{ + align: 'center', + width: '30%', + innerHTML:'', + fontConfig: new FontConfig(), + borderConfig: new BorderConfig() + }, + constructor: function(config){ + this.initConfig(config); + this.callParent(arguments); + }, + getStyleStr: function(){ + return this.borderConfig.getStyleStr() + this.fontConfig.getStyleStr(); + }, + statics: { + convertFromJsonObjs: function(objs){ + var newObjs = []; + for(var i=0;i 0){ + for(var r=0;r'; + for(var c=0;c'+columnConfig.innerHTML+''; + tableHtml += fillPropertiesFromObj(columnConfig,tempStr); + } + tableHtml += ''; + } + } + // 数据项 + var dataRowConfig = tableConfig.getTableDataItemRowConfig(); + if(dataRowConfig != null){ + var itemsPerRow = tableConfig.itemsPerRow; + var dataItems = obj[itemsPropName]; + alert(itemsPropName) + var mod = dataItems.length % itemsPerRow; + var itemsCount = dataItems.length; + var rowsCount = parseInt(itemsCount/itemsPerRow); + if(mod != 0){ + rowsCount++; + } + if(rowsCount > 0){ + var columnConfigs = dataRowConfig.columnConfigs; + for(var row=0;row'; + for(var c=0;c'+columnConfig.innerHTML+''; + tableHtml += fillPropertiesFromObj(itemsObj,tempStr); + } + tableHtml += ""; + } + } + } + + // 结束表格 + tableHtml += ''; + + return tableHtml; +} +function transformTemplateConfigObjs(template){ + if(isUndefinedOrNullOrEmpty(template.templateInfo)){ + template.templateInfo = {}; + }else{ + template.templateInfo = JSON.parse(template.templateInfo); + } + var templateInfo = template.templateInfo; + if(isUndefinedOrNullOrEmpty(templateInfo.tableConfigs)){ + templateInfo.tableConfigs = []; + }else{ +// var tableConfigs = Ext4.JSON.decode(templateInfo.tableConfigs); + templateInfo.tableConfigs = TableConfig.convertFromJsonObjs(templateInfo.tableConfigs); + } + return template; +} \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/dataSource.js =================================================================== diff -u -r15105 -r15107 --- ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/dataSource.js (.../dataSource.js) (revision 15105) +++ ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/dataSource.js (.../dataSource.js) (revision 15107) @@ -123,7 +123,7 @@ // 器械包材料表格的数据源 var tableDataSource = new TableDataSource({ name: '器械包材料', - itemsPropName: 'dataItems', + itemsPropName: 'materials', dataSourceItems: [new TableDataSourceItem({ propName: 'fullName', displayName: '材料全名' @@ -140,7 +140,6 @@ var objectDataSourceManager = new ObjectDataSourceManager(); var normalTousseDataSource = new ObjectDataSource({ name: '普通器械包', - itemsPropName: 'dataItems', objectProperties: [new ObjectDataSourceProperty({ propName: 'name', displayName: '包名', Index: ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.js =================================================================== diff -u -r15105 -r15107 --- ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.js (.../printCustomDesign.js) (revision 15105) +++ ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.js (.../printCustomDesign.js) (revision 15107) @@ -97,9 +97,15 @@ LODOP.ADD_PRINT_TEXTA('a', 0, 0, 75, 30, '文本'); } function insertTableToLodop(tableConfig){ - DisplayDesign(); +// alert(tableConfig) + if(tableConfig == null){ + return; + } + saveTableConfig(tableConfig);// 自动保存表格属性 +// DisplayDesign(); var itemName = 'table1'; var tableHtml = createTableHtmlByConfig(tableConfig,dataSource1); +// alert(tableHtml) LODOP.ADD_PRINT_TABLE(tableConfig.topforPrint,tableConfig.leftforPrint,tableConfig.widthforPrint,tableConfig.heightforPrint,tableHtml); LODOP.SET_PRINT_STYLEA(0, "ItemType",4);// 多页项 LODOP.SET_PRINT_STYLEA(0, "ItemName",'table1');// 多页项 @@ -222,6 +228,8 @@ // alert(currentConfig.programCodes) eval(currentConfig.programCodes);// 执行eval方法,装载模板 } + // 生成预览表格 + insertTableToLodop(currentTableConfig); LODOP.PREVIEW(); DisplayDesign(); @@ -336,7 +344,7 @@ } },{ text : '打印', - hidden : false, + hidden : true, handler : function() { prn_Preview(); } @@ -663,11 +671,6 @@ // 显示表格窗口 var tableDesignWindow = null; function showTableDesignWindow(){ - if(currentTableConfig == null){ - if(currentConfig.templateInfo.tableConfigs.length > 0){ - currentTableConfig = currentConfig.templateInfo.tableConfigs[0]; - } - } if(tableDesignWindow != null){ if(tableDesignWindow.isHidden()){ tableDesignWindow.show(); @@ -908,19 +911,14 @@ // 初始化template function initTemplate(template){ // alert(template.templateInfo) - if(isUndefinedOrNullOrEmpty(template.templateInfo)){ - template.templateInfo = {}; - }else{ - template.templateInfo = JSON.parse(template.templateInfo); + transformTemplateConfigObjs(template); + if(currentTableConfig == null){ + if(currentConfig.templateInfo.tableConfigs.length > 0){ + currentTableConfig = currentConfig.templateInfo.tableConfigs[0]; + } } - var templateInfo = template.templateInfo; - if(isUndefinedOrNullOrEmpty(templateInfo.tableConfigs)){ - templateInfo.tableConfigs = []; - }else{ -// var tableConfigs = Ext4.JSON.decode(templateInfo.tableConfigs); - templateInfo.tableConfigs = TableConfig.convertFromJsonObjs(templateInfo.tableConfigs); - } } + function getTemplateInfoStr(){ var tableConfigs = currentConfig.templateInfo.tableConfigs; currentConfig.templateInfo.tableConfigs = TableConfig.convertToJsonObjs(tableConfigs); @@ -967,272 +965,8 @@ }); -Ext4.define("StyleConfig", { - getStyleStr: function(){ - return ''; - } -}); -Ext4.define("FontConfig", { - config: { - fontStyle: 'normal', - fontVariant: 'normal', - fontWeight: 'normal', - fontSize: '16px', - fontSizeValue: '16', - fontSizeUnit: 'px', - fontFamily: '宋体', - }, - extend: 'StyleConfig', - constructor: function(config){ - this.initConfig(config); - this.callParent(arguments); - }, - getStyleStr: function(){ - return this.fontStyle +' '+ this.fontVariant +' '+ this.fontWeight +' '+ this.fontSize +' '+ this.fontFamily+';'; - }, - saveFontConfig: function(cmpIdPrefix){ - var family = ''; - var size = ''; - var cmpFamily = Ext4.getCmp('cmpIdPrefix_family'); - var cmpSize = Ext4.getCmp('cmpIdPrefix_size'); - if(cmpFamily != null){ - family = cmpFamily.getValue(); - } - if(cmpSize != null){ - size = cmpSize.getValue(); - } - if(family != ''){ - this.fontFamily = family; - } - if(size != ''){ - this.fontSize = size; - } - }, - loadFontConfig: function(cmpIdPrefix){ - var cmpFamily = Ext4.getCmp('cmpIdPrefix_family'); - var cmpSize = Ext4.getCmp('cmpIdPrefix_size'); - if(cmpFamily != null){ - cmpFamily.setValue(this.fontFamily); - } - if(cmpSize != null){ - cmpSize.setValue(this.fontSize); - } - }, - convertToJsonObj: function(){ - var obj = { - fontStyle: this.fontStyle, - fontVariant: this.fontVariant, - fontWeight: this.fontWeight, - fontSize: this.fontSize, - fontFamily: this.fontFamily - } - return obj; - }, - statics: { - convertFromJsonObj: function(obj){ - var newObj = new FontConfig({ - fontStyle: obj.fontStyle, - fontVariant: obj.fontVariant, - fontWeight: obj.fontWeight, - fontSize: obj.fontSize, - fontFamily: obj.fontFamily - }); - return newObj; - } - } -}); -Ext4.define("BorderConfig", { - extend: 'StyleConfig', - getStyleStr: function(){ - return this.borderWidth +' '+ this.borderStyle +' '+ this.borderColor+';'; - }, - constructor: function(){ - this.callParent(arguments); - this.borderWidth = '1px'; - this.borderStyle = 'solid'; - this.borderColor = 'black'; - }, - convertToJsonObj: function(){ - var obj = { - borderWidth: this.borderWidth, - borderStyle: this.borderStyle, - borderColor: this.borderColor - }; - return obj; - }, - statics: { - convertFromJsonObj: function(obj){ - var newObj = new BorderConfig({ - borderWidth: obj.borderWidth, - borderStyle: obj.borderStyle, - borderColor: obj.borderColor - }); - return newObj; - } - } -}); -Ext4.define("TableColumnConfig", { - config:{ - align: 'center', - width: '30%', - innerHTML:'', - fontConfig: new FontConfig(), - borderConfig: new BorderConfig() - }, - constructor: function(config){ - this.initConfig(config); - this.callParent(arguments); - }, - getStyleStr: function(){ - return this.borderConfig.getStyleStr() + this.fontConfig.getStyleStr(); - }, - statics: { - convertFromJsonObjs: function(objs){ - var newObjs = []; - for(var i=0;i 0){ - for(var r=0;r'; - for(var c=0;c'+columnConfig.innerHTML+''; - tableHtml += fillPropertiesFromObj(columnConfig,tempStr); - } - tableHtml += ''; - } - } - // 数据项 - var dataRowConfig = tableConfig.getTableDataItemRowConfig(); - if(dataRowConfig != null){ - var itemsPerRow = tableConfig.itemsPerRow; - var dataItems = obj.dataItems; - var mod = dataItems.length % itemsPerRow; - var itemsCount = dataItems.length; - var rowsCount = parseInt(itemsCount/itemsPerRow); - if(mod != 0){ - rowsCount++; - } - if(rowsCount > 0){ - var columnConfigs = dataRowConfig.columnConfigs; - for(var row=0;row'; - for(var c=0;c'+columnConfig.innerHTML+''; - tableHtml += fillPropertiesFromObj(itemsObj,tempStr); - } - tableHtml += ""; - } - } - } - - // 结束表格 - tableHtml += ''; - return tableHtml; -} Index: ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.jsp =================================================================== diff -u -r15105 -r15107 --- ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.jsp (.../printCustomDesign.jsp) (revision 15105) +++ ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.jsp (.../printCustomDesign.jsp) (revision 15107) @@ -12,6 +12,7 @@ + Index: ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/service/LabelTemplateManager.java =================================================================== diff -u -r15036 -r15107 --- ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/service/LabelTemplateManager.java (.../LabelTemplateManager.java) (revision 15036) +++ ssts-print/src/main/java/com/forgon/disinfectsystem/labeltemplate/service/LabelTemplateManager.java (.../LabelTemplateManager.java) (revision 15107) @@ -2,6 +2,10 @@ import java.util.List; +import javax.persistence.Transient; + +import net.sf.json.JSONObject; + import com.forgon.disinfectsystem.entity.labeltemplate.LabelTemplate; /** * 标签打印模板的Manager类 @@ -12,10 +16,11 @@ public LabelTemplate get(String id); void delete(String[] ids); public void save(LabelTemplate labeTemplate); - public void saveOrUpdateProgramCodes(String id, String programCodes); + public void saveOrUpdateProgramCodes(String id, String programCodes,String templateInfo); public List getAllTemplate(); public List getAllTemplateNames(); public List getAllTemplateFullNames(); public String getAllTemplateInfoJsonStr(); + public String toJsonStr(LabelTemplate labeTemplate); }