Index: ssts-web/src/main/webapp/ext/ext_datefield/DatetimeForServer.js =================================================================== diff -u -r35126 -r35228 --- ssts-web/src/main/webapp/ext/ext_datefield/DatetimeForServer.js (.../DatetimeForServer.js) (revision 35126) +++ ssts-web/src/main/webapp/ext/ext_datefield/DatetimeForServer.js (.../DatetimeForServer.js) (revision 35228) @@ -38,7 +38,6 @@ selectToday: function () { this.setValue(newDate.clearTime()); var val1 = this.value; - console.log(val1) val1.setHours(this.theHours); val1.setMinutes(this.theMinutes); this.fireEvent("select", this, val1); @@ -473,7 +472,9 @@ } }); +top.Ext.ns('top.Ext.form'); + /** Class Name: DatetimeMenu * Inherits From: Ext.menu.Menu * Contains: DatetimeItem @@ -495,8 +496,22 @@ this.relayEvents(di, ["select"]); }; Ext.extend(DatetimeMenu, Ext.menu.Menu); +DatetimeMenuTop = function (config) { + // ORIGINAL: + //Ext.menu.DateMenu.superclass.constructor.call(this, config); + //this.plain = true; + //var di = new Ext.menu.DateItem(config); + // NEW: + DatetimeMenuTop.superclass.constructor.call(this, config); + this.plain = true; + var di = new DatetimeItem(config); + // END NEW + this.add(di); + this.picker = di.picker; + this.relayEvents(di, ["select"]); +}; +top.Ext.extend(DatetimeMenuTop, top.Ext.menu.Menu); - /******** 支持时分的日期选择控件 ********/ Ext.form.DateFieldWithMin = Ext.extend(Ext.form.TriggerField, { @@ -720,10 +735,9 @@ }); Ext.reg('datefieldWithMin', Ext.form.DateFieldWithMin); +/******** 支持时分的日期选择控件 ********/ +top.Ext.form.DateFieldWithMin = Ext.extend(top.Ext.form.TriggerField, { -/******** 可以设置弹出日期控件的宽度的日历组件 ********/ -Ext.form.DateExtensiableField = Ext.extend(Ext.form.TriggerField, { - format: "m/d/y", altFormats: "m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d", @@ -744,16 +758,22 @@ maxText: "The date in this field must be equal to or before {0}", - minWidth: 70, - invalidText: "{0} is not a valid date - it must be in the format {1}", triggerClass: 'x-form-date-trigger', + //扩展(theHours、theMinutes)两个属性,可以让调用者指定初始化时间控件的时分,如果不指定默认为当前的时分(cjr) + theHours: null, + + theMinutes: null, + defaultAutoCreate: { tag: "input", type: "text", size: "10", autocomplete: "off" }, initComponent: function () { - Ext.form.DateField.superclass.initComponent.call(this); + top.Ext.form.DateField.superclass.initComponent.call(this); + + this.addEvents('select'); //扩展了'select'事件(cjr) + if (typeof this.minValue == "string") { this.minValue = this.parseDate(this.minValue); } @@ -774,7 +794,7 @@ validateValue: function (value) { value = this.formatDate(value); - if (!Ext.form.DateField.superclass.validateValue.call(this, value)) { + if (!top.Ext.form.DateField.superclass.validateValue.call(this, value)) { return false; } if (value.length < 1) { @@ -818,16 +838,16 @@ getValue: function () { - return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || ""; + return this.parseDate(top.Ext.form.DateField.superclass.getValue.call(this)) || ""; }, setValue: function (date) { - Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); + top.Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); }, parseDate: function (value) { - if (!value || Ext.isDate(value)) { + if (!value || top.Ext.isDate(value)) { return value; } var v = Date.parseDate(value, this.format); @@ -849,11 +869,11 @@ if (this.wrap) { this.wrap.remove(); } - Ext.form.DateField.superclass.onDestroy.call(this); + top.Ext.form.DateField.superclass.onDestroy.call(this); }, formatDate: function (date) { - return Ext.isDate(date) ? date.dateFormat(this.format) : date; + return top.Ext.isDate(date) ? date.dateFormat(this.format) : date; }, menuListeners: { @@ -872,15 +892,29 @@ } }, + initEvents: function () { + top.Ext.form.DateField.superclass.initEvents.call(this); + this.keyNav = new top.Ext.KeyNav(this.el, { + "down": function (e) { + this.onTriggerClick(); + }, + scope: this, + forceKeyDown: true + }); + }, + onTriggerClick: function () { if (this.disabled) { return; } if (this.menu == null) { - var minWidth = this.minWidth; - this.menu = new Ext.menu.DateMenu({ - minWidth: minWidth + this.menu = new DatetimeMenuTop({ + minWidth: 194 }); + Ext.apply(this.menu.picker, { + theHours: this.theHours, + theMinutes: this.theMinutes + }); } Ext.apply(this.menu.picker, { minDate: this.minValue, @@ -898,7 +932,22 @@ })); this.menu.picker.setValue(this.getValue() || newDate); this.menu.show(this.el, "tl-bl?"); + this.menuEvents('on'); }, + menuEvents: function (method) { + this.menu[method]('select', this.onSelect, this); + this.menu[method]('hide', this.onMenuHide, this); + this.menu[method]('show', this.onFocus, this); + }, + onSelect: function (m, d) { + this.setValue(d); + this.fireEvent('select', this, d); + this.menu.hide(); + }, + onMenuHide: function () { + this.focus(false, 60); + this.menuEvents('un'); + }, beforeBlur: function () { var v = this.parseDate(this.getRawValue()); @@ -907,4 +956,4 @@ } } }); -Ext.reg('dateextensiablefield', Ext.form.DateExtensiableField); \ No newline at end of file +top.Ext.reg('datefieldWithServer', top.Ext.form.DateFieldWithMin); \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/interfere/interfereSterilizationTab1.js =================================================================== diff -u -r32552 -r35228 --- ssts-web/src/main/webapp/disinfectsystem/interfere/interfereSterilizationTab1.js (.../interfereSterilizationTab1.js) (revision 32552) +++ ssts-web/src/main/webapp/disinfectsystem/interfere/interfereSterilizationTab1.js (.../interfereSterilizationTab1.js) (revision 35228) @@ -187,7 +187,7 @@ items : [{ id : 'startDate1', name : 'startDate1', - xtype : 'datefieldWithMin', + xtype : 'datefieldWithServer', format : 'Y-m-d H:i:s', fieldLabel : '开始时间', anchor : '100%', @@ -200,7 +200,7 @@ items : [{ id : 'endDate1', name : 'endDate1', - xtype : 'datefieldWithMin', + xtype : 'datefieldWithServer', format : 'Y-m-d H:i:s', fieldLabel : '结束时间', anchor : '100%', Index: ssts-web/src/main/webapp/disinfectsystem/interfere/interferewashAndDisinfectForm.js =================================================================== diff -u -r34095 -r35228 --- ssts-web/src/main/webapp/disinfectsystem/interfere/interferewashAndDisinfectForm.js (.../interferewashAndDisinfectForm.js) (revision 34095) +++ ssts-web/src/main/webapp/disinfectsystem/interfere/interferewashAndDisinfectForm.js (.../interferewashAndDisinfectForm.js) (revision 35228) @@ -25,6 +25,7 @@ var pendingWashAndDisinfectWidth = 400; var pendingWashAndDisinfectHeight = 575; + var materialDefinitionStore = new Ext.data.Store({ pageSize: 100, proxy : new Ext.data.HttpProxy({ @@ -1144,7 +1145,7 @@ columnWidth : .5, layout : 'form', items : [{ - xtype : 'datefieldWithMin', + xtype : 'datefieldWithServer', fieldLabel : '开始时间', id : 'startDateStr', name : 'startDateStr', @@ -1206,7 +1207,7 @@ columnWidth : .5, layout : 'form', items : [{ - xtype : 'datefieldWithMin', + xtype : 'datefieldWithServer', fieldLabel : '结束时间', id : 'endDateStr', name : 'endDateStr',