Index: ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.js =================================================================== diff -u -r15083 -r15099 --- ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.js (.../printCustomDesign.js) (revision 15083) +++ ssts-web/src/main/webapp/disinfectsystem/labelTemplateDesign/printCustomDesign.js (.../printCustomDesign.js) (revision 15099) @@ -78,7 +78,7 @@ // LODOP.SET_SHOW_MODE("HIDE_ITEM_LIST",false);//设置对象列表默认处于关闭状态 LODOP.SET_SHOW_MODE("TEXT_SHOW_BORDER",2); //设置字符编辑框默认为无边框 LODOP.SET_SHOW_MODE("SETUP_ENABLESS", "11111111000000");// 隐藏关闭(叉)按钮 -// LODOP.SET_SHOW_MODE("HIDE_GROUND_LOCK", true);// 隐藏纸钉按钮 + LODOP.SET_SHOW_MODE("HIDE_GROUND_LOCK", true);// 隐藏纸钉按钮 LODOP.PRINT_DESIGN(); }; function DisplaySetup() { @@ -95,26 +95,42 @@ function insertTextItem() { LODOP.ADD_PRINT_TEXTA('a', 0, 0, 75, 30, '文本'); } -function testInsertTable(tableConfig){ +function insertTableToLodop(tableConfig){ + DisplayDesign(); + var itemName = 'table1'; var tableHtml = createTableHtmlByConfig(tableConfig,dataSource1); - LODOP.ADD_PRINT_TABLE(0,0,'800px','600px',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');// 多页项 } // 插入表格 function insertTable() { - var tableConfigs = currentConfig.tableConfigs; + var tableConfigs = currentConfig.templateInfo.tableConfigs; if(tableConfigs.length > 0){ showResult("表格已存在!"); return; } var columnAmount = Ext4.getCmp('columnAmount').getValue(); + var tableDataSourceName = Ext4.getCmp('table_dataSource_name').getValue(); + var tableConfig = new TableConfig({ + tableDataSourceName: tableDataSourceName, itemsPerRow: 1, columnAmount: columnAmount, fontConfig: new FontConfig(), + headFontConfig: new FontConfig(), + dataItemFontConfig: new FontConfig(), borderConfig: new BorderConfig(), - tableRowConfigs: [] + tableRowConfigs: [], + columnConfigs: [] }); + // 根据列数生成列配置 + for(var i=0;i 0){ - currentTableConfig = currentConfig.tableConfigs[0]; + if(currentConfig.templateInfo.tableConfigs.length > 0){ + currentTableConfig = currentConfig.templateInfo.tableConfigs[0]; } } @@ -597,6 +773,38 @@ } showEditTableDataItemWindow(currentTableConfig,currentTableConfig.getFirstDataItemRowConfig()); } + },{ + xtype: 'button', + text: '编辑列属性', + handler : function() { + if(currentTableConfig == null){ + showResult('请先新建表格!'); + return ; + } + showEditTableColumnConfigsWindow(currentTableConfig); + } + },{ + xtype: 'button', + text: '保存表格属性', + handler : function() { + if(currentTableConfig == null){ + showResult('请先新建表格!'); + return ; + } + saveTableConfig(currentTableConfig); + showResult('保存成功!'); + } + },{ + xtype: 'button', + text: '同步表格到lodop设计窗口', + handler : function() { + if(currentTableConfig == null){ + showResult('请先新建表格!'); + return ; + } + insertTableToLodop(currentTableConfig); + showResult('同步成功!'); + } }] }, { region: 'center', @@ -715,6 +923,29 @@ // }); // } } +// 初始化template +function initTemplate(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); + } +} +function getTemplateInfoStr(){ + var tableConfigs = currentConfig.templateInfo.tableConfigs; + currentConfig.templateInfo.tableConfigs = TableConfig.convertToJsonObjs(tableConfigs); + var templateInfo = JSON.stringify(currentConfig.templateInfo); + // 还原 + currentConfig.templateInfo.tableConfigs = tableConfigs; + return templateInfo; +} function loadConfigAndInitDesign() { if (!Ext4.isEmpty(id)) { @@ -730,11 +961,7 @@ var result = Ext4.JSON.decode(response.responseText); if (result.success && result.data) { currentConfig = result.data; - if(isUndefinedOrNullOrEmpty(currentConfig.tableConfigs)){ - currentConfig.tableConfigs = []; - }else{ - currentConfig.tableConfigs = Ext4.JSON.decode(currentConfig.tableConfigs); - } + initTemplate(currentConfig); DisplayDesign(); showTableDesignWindow(); // restoreDesign(); @@ -757,38 +984,80 @@ loadConfigAndInitDesign(); }); -//function FontConfig(){ -// this.fontStyle = 'normal'; -// this.fontVariant = 'normal'; -// this.fontWeight = 'normal'; -// this.fontSize = '16px'; -// this.fontSizeValue = '16'; -// this.fontSizeUnit = 'px'; -// this.fontFamily = '宋体'; -//} -//FontConfig.prototype = { -// -//} + Ext4.define("StyleConfig", { getStyleStr: function(){ return ''; } }); Ext4.define("FontConfig", { - fontStyle: 'normal', - fontVariant: 'normal', - fontWeight: 'normal', - fontSize: '16px', - fontSizeValue: '16', - fontSizeUnit: 'px', - fontFamily: '宋体', + 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+';'; }, - constructor: function(){ - this.callParent(arguments); - } + 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', @@ -800,7 +1069,25 @@ 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:{ @@ -816,6 +1103,46 @@ }, getStyleStr: function(){ return this.borderConfig.getStyleStr() + this.fontConfig.getStyleStr(); + }, + statics: { + convertFromJsonObjs: function(objs){ + var newObjs = []; + for(var i=0;i'; for(var c=0;c'+columnConfig.innerHTML+''; + tempStr = ''+columnConfig.innerHTML+''; tableHtml += fillPropertiesFromObj(columnConfig,tempStr); } tableHtml += ''; @@ -1115,6 +1647,7 @@ tableHtml += ''; for(var c=0;c'+columnConfig.innerHTML+''; + tempStr = ''+columnConfig.innerHTML+''; tableHtml += fillPropertiesFromObj(itemsObj,tempStr); } tableHtml += "";