Browse Source

add filemanager

master
刘荣歆 8 years ago
parent
commit
3f79a15768
  1. 431
      bi/widget.js
  2. 2
      demo/js/config/component.js
  3. 22
      demo/js/widget/date/demo.date.js
  4. 19
      demo/js/widget/date/demo.datepane.js
  5. 24
      demo/js/widget/filemanager/demo.file.manager.js
  6. 28
      demo/js/widget/month/demo.month.js
  7. 24
      demo/js/widget/quarter/demo.quarter.js
  8. 23
      demo/js/widget/year/demo.year.js
  9. 10
      demo/js/widget/yearmonth/demo.year_month_combo.js
  10. 18
      demo/js/widget/yearquarter/demo.year_quarter_combo.js
  11. 388
      docs/demo.js
  12. 431
      docs/widget.js

431
bi/widget.js

@ -2360,7 +2360,7 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
o = this.options; o = this.options;
this.trigger = BI.createWidget({ this.trigger = BI.createWidget({
type: "bi.date_trigger" type: "bi.date_time_trigger1"
}); });
this.trigger.on(BI.DateTrigger.EVENT_TRIGGER_CLICK, function () { this.trigger.on(BI.DateTrigger.EVENT_TRIGGER_CLICK, function () {
@ -2371,13 +2371,21 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
type: "bi.date_time_popup" type: "bi.date_time_popup"
}); });
this.popup.on(BI.DateCalendarPopup.EVENT_CHANGE, function () { this.popup.on(BI.DateTimePopup.EVENT_CHANGE, function () {
self.setValue(self.popup.getValue()); //self.setValue(self.popup.getValue());
});
this.popup.on(BI.DateTimePopup.EVENT_CLICK_CONFIRM, function () {
//do something here
self.setValue();
self.combo.hideView();
});
this.popup.on(BI.DateTimePopup.EVENT_CLICK_CANCEL, function () {
self.combo.hideView();
}); });
this.combo = BI.createWidget({ this.combo = BI.createWidget({
type: "bi.combo", type: "bi.combo",
toggle: false, toggle: true,
element: this, element: this,
isNeedAdjustHeight: false, isNeedAdjustHeight: false,
isNeedAdjustWidth: false, isNeedAdjustWidth: false,
@ -2391,29 +2399,156 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
}, },
_reviseMinute: function () { getValue: function () {
this.m._finetuning(this.s.isNeedRevise); return this.popup.getValue();
this._reviseHour();
}, },
_reviseHour: function () { setStep: function (step) {
this.h._finetuning(this.m.isNeedRevise); this.step = step || this.step;
}, },
getCurrentTime: function () { setValue: function (v) {
this.trigger.setValue(this.popup.getValue());
}
});
BI.DateTimeCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.date_time_combo", BI.DateTimeCombo);/**
* Created by dailer on 2017/7/18.
* 数值微调器练习
*/
BI.NumberSpinner = BI.inherit(BI.Widget, {
_defaultConfig: function () {
return BI.extend(BI.NumberSpinner.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-fine-tuning-number-editor bi-border",
value: 0,
min: 0,
max: 100000,
step: 1,
formatter: BI.emptyFn,
parser: BI.emptyFn
})
},
_init: function () {
BI.NumberSpinner.superclass._init.apply(this, arguments);
var self = this,
o = this.options;
if (o.formatter == BI.emptyFn) {
this.formatter = function (v) {
return v;
}
} else {
this.formatter = o.formatter;
}
this.parser = o.parser;
this.step = o.step;
this.min = o.min;
this.max = o.max;
this.value = o.value;
this.isNeedRevise = 0;
this.editor = BI.createWidget({
type: "bi.sign_editor",
value: o.value,
errorText: BI.i18nText("BI-Please_Input_Natural_Number")
});
this.editor.on(BI.TextEditor.EVENT_CONFIRM, function () {
self.setValue(self.editor.getValue());
self.fireEvent(BI.NumberSpinner.EVENT_CONFIRM);
});
this.topBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-pre-page-h-font top-button bi-border-left bi-border-bottom",
});
this.topBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(1);
self.fireEvent(BI.NumberSpinner.EVENT_CONFIRM);
});
this.bottomBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-next-page-h-font bottom-button bi-border-left bi-border-top"
});
this.bottomBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(-1);
self.fireEvent(BI.NumberSpinner.EVENT_CONFIRM);
});
this._finetuning(0);
BI.createWidget({
type: "bi.htape",
element: this,
items: [this.editor, {
el: {
type: "bi.grid",
columns: 1,
rows: 2,
items: [{
column: 0,
row: 0,
el: this.topBtn
}, {
column: 0,
row: 1,
el: this.bottomBtn
}]
},
width: 30
}]
});
},
//微调
_finetuning: function (add) {
//窝是在不值该如何处理精度损失问题,所以迫不得已采取了这个方法
var v = BI.parseFloat(this.editor.getValue()) * 1000000000000;
var addend = add * this.step * 1000000000000;
var result = (v + addend) / 1000000000000;
if (result > this.max) {
this.editor.setValue(this.formatter(this.min));
this.isNeedRevise = 1;
this.value = this.min;
return;
}
if (result < this.min) {
this.editor.setValue(this.formatter(this.max));
this.isNeedRevise = -1;
this.value = this.max;
return;
}
this.value = result;
this.isNeedRevise = 0;
this.editor.setValue(this.formatter(result));
},
getIsNeedRevise: function () {
return this.isNeedRevise;
},
getMinAndMax: function () {
return { return {
hour: this.h.getValue(), min: this.min,
minute: this.m.getValue(), max: this.max
second: this.s.getValue()
}; };
}, },
_format: function (p) { getStep: function () {
return p < 10 ? ('0' + p) : p return this.step;
}, },
getCurrentTimeStr: function () { getValue: function () {
return this._format(this.h.getValue()) + ':' + this._format(this.m.getValue()) + ':' + this._format(this.s.getValue()) return this.value;
}, },
setStep: function (step) { setStep: function (step) {
@ -2421,12 +2556,13 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
}, },
setValue: function (v) { setValue: function (v) {
this.value = v;
this.editor.setValue(this.formatter(v));
} }
}); });
BI.DateTimeCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.NumberSpinner.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.date_time_combo", BI.DateTimeCombo);/** BI.shortcut("bi.test_editor", BI.NumberSpinner);/**
* Created by GUY on 2015/9/7. * Created by GUY on 2015/9/7.
* @class BI.DateCalendarPopup * @class BI.DateCalendarPopup
* @extends BI.Widget * @extends BI.Widget
@ -2435,7 +2571,7 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
_defaultConfig: function () { _defaultConfig: function () {
var conf = BI.DateTimePopup.superclass._defaultConfig.apply(this, arguments); var conf = BI.DateTimePopup.superclass._defaultConfig.apply(this, arguments);
return BI.extend(conf, { return BI.extend(conf, {
baseCls: "bi-date-calendar-popup", baseCls: "bi-date-calendar-popup demo-clolor",
min: '1900-01-01', //最小日期 min: '1900-01-01', //最小日期
max: '2099-12-31', //最大日期 max: '2099-12-31', //最大日期
selectedTime: null selectedTime: null
@ -2466,16 +2602,23 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
this._year = this.today.getFullYear(); this._year = this.today.getFullYear();
this._month = this.today.getMonth(); this._month = this.today.getMonth();
this._day = this.today.getDate(); this._day = this.today.getDate();
this._hour = this.today.getHours();
this._minute = this.today.getMinutes();
this._second = this.today.getSeconds();
this.selectedTime = o.selectedTime || { this.selectedTime = o.selectedTime || {
year: this._year, year: this._year,
month: this._month, month: this._month,
day: this._day day: this._day,
hour: this._hour,
minute: this._minute,
second: this._second
}; };
this.datePicker = BI.createWidget({ this.datePicker = BI.createWidget({
type: "bi.date_picker", type: "bi.date_picker",
min: o.min, min: o.min,
max: o.max max: o.max,
cls: "demo-clolor",
}); });
this.calendar = BI.createWidget({ this.calendar = BI.createWidget({
@ -2494,21 +2637,42 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
afterCardShow: function () { afterCardShow: function () {
this.setValue(self.selectedTime); this.setValue(self.selectedTime);
self.calendar.setSelect(BI.Calendar.getPageByDateJSON(self.selectedTime));
} }
}); });
this.timeTunning = BI.createWidget({ this.timeTunning = BI.createWidget({
type: "bi.time_tunning" type: "bi.time_tunning",
currentTime: {
hour: this._hour,
minute: this._minute,
second: this._second
}
});
this.timeTunning.on(BI.TimeTuning.EVENT_CHANGE, function () {
self.selectedTime = self.timeTunning.getValue();
}); });
this.buttons = BI.createWidget({ this.buttons = BI.createWidget({
type: "bi.button_group", type: "bi.button_group",
items: [{ items: [{
type: "bi.text_button", type: "bi.button",
text: BI.i18nText('BI-Basic_Clears') textHeight: 30,
clear: true,
text: "取消",
handler: function () {
self.fireEvent(BI.DateTimePopup.EVENT_CLICK_CANCEL);
}
}, {
text: "|"
}, { }, {
type: "bi.text_button", type: "bi.button",
text: BI.i18nText("BI-Basic_Sure") textHeight: 30,
clear: true,
text: BI.i18nText("BI-Basic_Sure"),
handler: function () {
self.fireEvent(BI.DateTimePopup.EVENT_CLICK_CONFIRM);
}
}], }],
chooseType: 0, chooseType: 0,
behaviors: {}, behaviors: {},
@ -2531,23 +2695,28 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
this.calendar.on(BI.Navigation.EVENT_CHANGE, function () { this.calendar.on(BI.Navigation.EVENT_CHANGE, function () {
self.selectedTime = self.calendar.getValue(); self.selectedTime = self.calendar.getValue();
self.setValue(self.selectedTime); self.fireEvent(BI.DateTimePopup.EVENT_CHANGE);
self.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE);
}); });
self.calendar.setSelect(BI.Calendar.getPageByDateJSON(self.selectedTime));
this.calendar.setValue(this.selectedTime);
}, },
setValue: function (timeOb) { setValue: function (timeOb) {
this.datePicker.setValue(timeOb); this.datePicker.setValue(timeOb);
this.calendar.setSelect(BI.Calendar.getPageByDateJSON(timeOb)); this.calendar.setSelect(BI.Calendar.getPageByDateJSON(timeOb));
this.calendar.setValue(timeOb); this.calendar.setValue(timeOb);
this.timeTunning.setValue(timeOb);
this.selectedTime = timeOb; this.selectedTime = timeOb;
}, },
getValue: function () { getValue: function () {
return this.selectedTime; return $.extend({}, this.calendar.getValue(), this.timeTunning.getValue());
} }
}); });
BI.DateTimePopup.EVENT_CHANGE = "EVENT_CHANGE"; BI.DateTimePopup.EVENT_CHANGE = "EVENT_CHANGE";
BI.DateTimePopup.EVENT_CLICK_CONFIRM = "EVENT_CLICK_CONFIRM";
BI.DateTimePopup.EVENT_CLICK_CANCEL = "EVENT_CLICK_CANCEL";
BI.shortcut("bi.date_time_popup", BI.DateTimePopup);/** BI.shortcut("bi.date_time_popup", BI.DateTimePopup);/**
* Created by dailer on 2017/7/19. * Created by dailer on 2017/7/19.
* 时间微调器练习 * 时间微调器练习
@ -2599,7 +2768,9 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
width: 60, width: 60,
height: 30 height: 30
}); });
this.h.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {}); this.h.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {
self.fireEvent(BI.TimeTuning.EVENT_CHANGE);
});
//分 //分
this.m = BI.createWidget({ this.m = BI.createWidget({
@ -2612,6 +2783,7 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
}) })
this.m.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () { this.m.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {
self._reviseHour(); self._reviseHour();
self.fireEvent(BI.TimeTuning.EVENT_CHANGE);
}); });
//秒 //秒
@ -2625,6 +2797,7 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
}) })
this.s.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () { this.s.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {
self._reviseMinute(); self._reviseMinute();
self.fireEvent(BI.TimeTuning.EVENT_CHANGE);
}); });
@ -2657,7 +2830,7 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
BI.createWidget({ BI.createWidget({
type: "bi.htape", type: "bi.htape",
cls: "bi-border demo-clolor", cls: "demo-clolor",
element: this, element: this,
items: [this.editor], items: [this.editor],
width: 270, width: 270,
@ -2666,12 +2839,12 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
}, },
_reviseMinute: function () { _reviseMinute: function () {
this.m._finetuning(this.s.isNeedRevise); this.m._finetuning(this.s.getIsNeedRevise());
this._reviseHour(); this._reviseHour();
}, },
_reviseHour: function () { _reviseHour: function () {
this.h._finetuning(this.m.isNeedRevise); this.h._finetuning(this.m.getIsNeedRevise());
}, },
getCurrentTime: function () { getCurrentTime: function () {
@ -2690,169 +2863,97 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
return this._format(this.h.getValue()) + ':' + this._format(this.m.getValue()) + ':' + this._format(this.s.getValue()) return this._format(this.h.getValue()) + ':' + this._format(this.m.getValue()) + ':' + this._format(this.s.getValue())
}, },
getValue: function () {
return {
hour: this.h.getValue(),
minute: this.m.getValue(),
second: this.s.getValue()
}
},
setStep: function (step) { setStep: function (step) {
this.step = step || this.step; this.step = step || this.step;
}, },
setValue: function (v) { setValue: function (timeObj) {
this.value = v; this.h.setValue(timeObj.hour);
this.editor.setValue(); this.m.setValue(timeObj.minute);
this.s.setValue(timeObj.second);
} }
}); });
BI.TimeTuning.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.TimeTuning.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.time_tunning", BI.TimeTuning);/** BI.shortcut("bi.time_tunning", BI.TimeTuning);BI.DateTimeTrigger = BI.inherit(BI.Trigger, {
* Created by dailer on 2017/7/18.
* 数值微调器练习
*/
BI.FineTuningNumberEditor = BI.inherit(BI.Widget, {
_defaultConfig: function () { _defaultConfig: function () {
return BI.extend(BI.FineTuningNumberEditor.superclass._defaultConfig.apply(this, arguments), { return BI.extend(BI.DateTimeTrigger.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-fine-tuning-number-editor bi-border", extraCls: "bi-date-trigger",
value: 0, min: '1900-01-01', //最小日期
disabled: false, max: '2099-12-31', //最大日期
min: 0, height: 32
max: 100000, });
step: 1,
formatter: BI.emptyFn,
parser: BI.emptyFn
})
}, },
_init: function () { _init: function () {
BI.FineTuningNumberEditor.superclass._init.apply(this, arguments); BI.DateTimeTrigger.superclass._init.apply(this, arguments);
var self = this, var self = this,
o = this.options; o = this.options;
if (o.formatter == BI.emptyFn) { this.label = BI.createWidget({
this.formatter = function (v) { type: "bi.label",
return v; textAlign: "left",
} text: "",
} else { height: o.height
this.formatter = o.formatter;
}
this.parser = o.parser;
this.step = o.step;
this.min = o.min;
this.max = o.max;
this.value = o.value;
this.isNeedRevise = 0;
this.editor = BI.createWidget({
type: "bi.sign_editor",
value: o.value,
errorText: BI.i18nText("BI-Please_Input_Natural_Number")
});
this.editor.on(BI.TextEditor.EVENT_CONFIRM, function () {
self.setValue(self.editor.getValue());
self.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM);
});
this.topBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-pre-page-h-font top-button bi-border-left bi-border-bottom",
});
this.topBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._isNeedRevise();
self._finetuning(1);
self.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM);
});
this.bottomBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-next-page-h-font bottom-button bi-border-left bi-border-top"
});
this.bottomBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(-1);
self.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM);
}); });
this._finetuning(0);
BI.createWidget({ BI.createWidget({
type: "bi.htape", type: "bi.htape",
element: this, element: this,
items: [this.editor, { items: [{
el: { el: BI.createWidget({
type: "bi.grid", type: "bi.icon_button",
columns: 1, cls: "search-font"
rows: 2, }),
items: [{
column: 0,
row: 0,
el: this.topBtn
}, {
column: 0,
row: 1,
el: this.bottomBtn
}]
},
width: 30 width: 30
}, {
el: this.label
}] }]
}); })
},
//微调
_finetuning: function (add) {
//窝是在不值该如何处理精度损失问题,所以迫不得已采取了这个方法
var v = BI.parseFloat(this.editor.getValue()) * 1000000000000;
var addend = add * this.step * 1000000000000;
var result = (v + addend) / 1000000000000;
if (result > this.max) {
this.editor.setValue(this.formatter(this.min));
this.isNeedRevise = 1;
this.value = this.min;
return;
}
if (result < this.min) {
this.editor.setValue(this.formatter(this.max));
this.isNeedRevise = -1;
this.value = this.max;
return;
}
this.value = result;
this.isNeedRevise = 0;
this.editor.setValue(this.formatter(result));
var today = new Date(),
timeObj = {
year: today.getFullYear(),
month: today.getMonth(),
day: today.getDate(),
hour: today.getHours(),
minute: today.getMinutes(),
second: today.getSeconds()
};
this.setValue(timeObj);
}, },
_isNeedRevise: function () {
// console.log(this.editor.getValue() - this.value);
},
getMinAndMax: function () {
return { _parseTimeObjToStr: function (timeObj) {
min: this.min, var _format = function (p) {
max: this.max return p < 10 ? ('0' + p) : p
}; };
BI.each(timeObj, function (key, val) {
timeObj[key] = _format(timeObj[key]);
});
return timeObj.year + "-" + (1 + BI.parseInt(timeObj.month)) + "-" + timeObj.day + " " + timeObj.hour + ":" + timeObj.minute + ":" + timeObj.second;
}, },
getStep: function () { setValue: function (v) {
return this.step; this.label.setValue(this._parseTimeObjToStr(v));
},
getValue: function () {
return this.value;
}, },
setStep: function (step) { getValue: function () {
this.step = step || this.step;
},
setValue: function (v) {
this.value = v;
this.editor.setValue(this.formatter(v));
} }
}); });
BI.FineTuningNumberEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.test_editor", BI.FineTuningNumberEditor);/** BI.shortcut("bi.date_time_trigger1", BI.DateTimeTrigger);/**
* 日期控件中的月份下拉框 * 日期控件中的月份下拉框
* *
* Created by GUY on 2015/9/7. * Created by GUY on 2015/9/7.

2
demo/js/config/component.js

@ -3,7 +3,7 @@
*/ */
Demo.COMPONENT_CONFIG = [{ Demo.COMPONENT_CONFIG = [{
id: 5, id: 5,
text: "部件" text: "部件+服务"
}, { }, {
pId: 5, pId: 5,
text: "bi.value_chooser_combo", text: "bi.value_chooser_combo",

22
demo/js/widget/date/demo.date.js

@ -11,18 +11,34 @@ Demo.Date = BI.inherit(BI.Widget, {
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_auto", type: "bi.horizontal_auto",
vgap: 10, vgap: 10,
items: [{ items: [{
type: "bi.date_combo", type: "bi.date_combo",
ref: function () {
self.datecombo = this;
},
width: 300 width: 300
}, { }, {
type: "bi.button", type: "bi.button",
text: "getVlaue", text: "getVlaue",
height: 50, width: 300,
width: 300 handler: function () {
BI.Msg.alert("date", JSON.stringify(self.datecombo.getValue()));
}
}, {
type: "bi.button",
text: "setVlaue '2017-12-31'",
width: 300,
handler: function () {
self.datecombo.setValue({
year: 2017,
month: 11,
day: 31
})
}
}] }]
} }
} }

19
demo/js/widget/date/demo.datepane.js

@ -3,7 +3,7 @@ Demo.DatePane = BI.inherit(BI.Widget, {
baseCls: "demo-datepane" baseCls: "demo-datepane"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_auto", type: "bi.horizontal_auto",
items: [{ items: [{
@ -20,13 +20,26 @@ Demo.DatePane = BI.inherit(BI.Widget, {
month: 12, month: 12,
day: 11 day: 11
}, },
height:300 ref: function (_ref) {
self.datepane = _ref;
},
height: 300
}, },
{ {
type: "bi.button", type: "bi.button",
text: "getValue", text: "getValue",
handler: function () { handler: function () {
BI.Msg.toast("date" + JSON.stringify(datepane.getValue())); BI.Msg.toast("date" + JSON.stringify(self.datepane.getValue()));
}
}, {
type: "bi.button",
text: "setVlaue '2017-12-31'",
handler: function () {
self.datepane.setValue({
year: 2017,
month: 11,
day: 31
})
} }
} }
], ],

24
demo/js/widget/filemanager/demo.file.manager.js

@ -34,20 +34,34 @@ Demo.FileManager = BI.inherit(BI.Widget, {
id: "121", id: "121",
pId: "111", pId: "111",
buildUrl: "www.baidu.com", buildUrl: "www.baidu.com",
value: "111", value: "121",
text: "文件2", text: "文件1",
lastModify: 1454316355142 lastModify: 1454316355142
}, { }, {
id: "122", id: "122",
pId: "111", pId: "111",
buildUrl: "www.baidu.com", buildUrl: "www.baidu.com",
value: "112", value: "122",
text: "文件3", text: "文件2",
lastModify: 1454316355142 lastModify: 1454316355142
}]; }];
return { var filemanager = BI.createWidget({
type: "bi.file_manager", type: "bi.file_manager",
items: items items: items
});
return {
type: "bi.vtape",
items: [{
el: filemanager,
height: "fill"
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.alert("", JSON.stringify(filemanager.getValue()));
},
height: 25
}]
} }
} }
}); });

28
demo/js/widget/month/demo.month.js

@ -6,13 +6,35 @@ Demo.Month = BI.inherit(BI.Widget, {
baseCls: "demo-exceltable" baseCls: "demo-exceltable"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_adapt", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.month_combo", type: "bi.month_combo",
width: 300,
ref: function () {
self.monthcombo = this;
}
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.monthcombo.getValue()));
},
width: 300 width: 300
}] }, {
type: "bi.button",
text: "setValue : 11",
handler: function () {
self.monthcombo.setValue(11);
},
width: 300
}, {
type: "bi.label",
text: "月份value 范围为0-11,显示范围为1-12",
width: 300
}],
vgap: 10
} }
} }
}) })

24
demo/js/widget/quarter/demo.quarter.js

@ -6,13 +6,31 @@ Demo.Quarter = BI.inherit(BI.Widget, {
baseCls: "demo-exceltable" baseCls: "demo-exceltable"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_adapt", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.quarter_combo", type: "bi.quarter_combo",
width: 300,
ref: function () {
self.quartercombo = this;
}
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.quartercombo.getValue()));
},
width: 300 width: 300
}] }, {
type: "bi.button",
text: "setValue : 3",
handler: function () {
self.quartercombo.setValue(3);
},
width: 300
}],
vgap: 10
} }
} }
}) })

23
demo/js/widget/year/demo.year.js

@ -6,12 +6,31 @@ Demo.Year = BI.inherit(BI.Widget, {
baseCls: "demo-exceltable" baseCls: "demo-exceltable"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_adapt", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.year_combo", type: "bi.year_combo",
width: 300,
ref: function () {
self.yearcombo = this;
}
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.yearcombo.getValue()));
},
width: 300 width: 300
}] }, {
type: "bi.button",
text: "setValue : 2018",
handler: function () {
self.yearcombo.setValue(2018);
},
width: 300
}],
vgap: 10
} }
} }
}) })

10
demo/js/widget/yearmonth/demo.year_month_combo.js

@ -23,6 +23,16 @@ Demo.YearMonthCombo = BI.inherit(BI.Widget, {
BI.Msg.toast(JSON.stringify(self.widget.getValue())) BI.Msg.toast(JSON.stringify(self.widget.getValue()))
}, },
width: 300 width: 300
}, {
type: "bi.button",
text: "setVlaue '2017-12'",
width: 300,
handler: function () {
self.widget.setValue({
year: 2017,
month: 11
})
}
}], }],
vgap: 20 vgap: 20
} }

18
demo/js/widget/yearquarter/demo.year_quarter_combo.js

@ -6,24 +6,34 @@ Demo.YearQuarterCombo = BI.inherit(BI.Widget, {
baseCls: "" baseCls: ""
}, },
render: function () { render: function () {
var self=this; var self = this;
return { return {
type: "bi.horizontal_auto", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.year_quarter_combo", type: "bi.year_quarter_combo",
width: 300, width: 300,
ref:function(_ref){ ref: function (_ref) {
self.widget=_ref; self.widget = _ref;
}, },
yearBehaviors: {}, yearBehaviors: {},
quarterBehaviors: {}, quarterBehaviors: {},
}, { }, {
type: "bi.button", type: "bi.button",
text: "getValue", text: "getValue",
handler:function(){ handler: function () {
BI.Msg.toast(JSON.stringify(self.widget.getValue())) BI.Msg.toast(JSON.stringify(self.widget.getValue()))
}, },
width: 300 width: 300
}, {
type: "bi.button",
text: "setVlaue '2017 季度3'",
width: 300,
handler: function () {
self.widget.setValue({
year: 2017,
quarter: 3
})
}
}], }],
vgap: 20 vgap: 20
} }

388
docs/demo.js

@ -3129,7 +3129,7 @@ BI.shortcut("demo.value_chooser_pane", Demo.ValueChooserPane);Demo.BASE_CONFIG =
*/ */
Demo.COMPONENT_CONFIG = [{ Demo.COMPONENT_CONFIG = [{
id: 5, id: 5,
text: "部件" text: "部件+服务"
}, { }, {
pId: 5, pId: 5,
text: "bi.value_chooser_combo", text: "bi.value_chooser_combo",
@ -3589,14 +3589,14 @@ Demo.COMPONENT_CONFIG = [{
text: "bi.dialog", text: "bi.dialog",
value: "demo.dialog" value: "demo.dialog"
}, { }, {
id: 7, pId: 4,
text: '数值微调器', id: 419,
value: "demo.test_editor" text: '文件管理',
}, { }, {
id: 8, pId: 419,
text: '所有日期控件', text: "bi.file_manager",
value: "demo.all_date_widget" value: "demo.file_manager"
} },
];Demo.Func = BI.inherit(BI.Widget, { ];Demo.Func = BI.inherit(BI.Widget, {
props: { props: {
baseCls: "demo-func" baseCls: "demo-func"
@ -6562,179 +6562,34 @@ Demo.Date = BI.inherit(BI.Widget, {
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_auto", type: "bi.horizontal_auto",
vgap: 10, vgap: 10,
items: [{ items: [{
type: "bi.date_combo", type: "bi.date_combo",
width: 300 ref: function () {
}, { self.datecombo = this;
type: "bi.date_picker",
width: 300
}, {
type: "bi.date_trigger",
width: 300
}, {
type: "bi.date_calendar_popup",
width: 300
}, {
type: "bi.date_triangle_trigger",
width: 300
}, {
type: "bi.calendar",
logic: {
dynamic: true
},
width: 300
}]
}
}
})
BI.shortcut("demo.all_date_widget", Demo.Date);/**
* Created by Dailer on 2017/7/18.
*/
Demo.TestEditor = BI.inherit(BI.Widget, {
props: {
baseCls: ""
},
render: function () {
var editor = BI.createWidget({
type: "bi.sign_editor",
cls: "bi-border",
width: 90,
height: 28,
});
var test = BI.createWidget({
type: "bi.test_editor",
// formatter: function (v) {
// return v + "%";
// },
value: 12,
width: 90,
height: 28,
step: 1
});
var timetunning = BI.createWidget({
type: "bi.time_tunning",
currentTime: {
hour: 13,
minute: 45,
second: 50
}
});
var dateTimeCombo = BI.createWidget({
type: "bi.date_time_combo",
width: 300
});
var enable = 1;
return {
type: "bi.horizontal_auto",
items: [{
el: test
},
{
type: "bi.left",
items: [{
el: editor
}, {
type: "bi.button",
text: "设置step",
width: 90,
height: 28,
handler: function () {
test.setStep(editor.getValue());
BI.Msg.toast("设置成功")
},
lgap: 5
}, {
type: "bi.button",
text: "toggle disabled",
height: 28,
handler: function () {
enable *= -1;
test.setEnable(Boolean(1 + enable));
BI.Msg.toast("设置成功")
},
lgap: 20
}]
},
{
type: "bi.left",
items: [
timetunning,
{
type: "bi.label",
text: "时间选择控件,自动进位与退位,返回数据自动对小于10的数补0",
whiteSpace: "normal",
cls: "layout-bg3",
height: 50,
width: 400,
lgap: 10
}
],
},
{
type: "bi.left",
items: [{
type: "bi.button",
text: "getCurrentTime",
cls: "layout-bg1",
handler: function () {
BI.Msg.alert("JSON 形式", JSON.stringify(timetunning.getCurrentTime()));
}
}, {
type: "bi.button",
text: "getCurrentTimeStr",
cls: "layout-bg1",
handler: function () {
BI.Msg.alert("字符串形式", timetunning.getCurrentTimeStr());
}
}],
hgap: 10
}, },
{
type: "bi.left",
items: [dateTimeCombo]
}
],
vgap: 20,
hgap: 10
}
}
});
BI.shortcut("demo.test_editor", Demo.TestEditor);/**
* Created by Dailer on 2017/7/11.
*/
Demo.Date = BI.inherit(BI.Widget, {
props: {
baseCls: "demo-date"
},
_init: function () {
Demo.Date.superclass._init.apply(this, arguments);
},
render: function () {
return {
type: "bi.horizontal_auto",
vgap: 10,
items: [{
type: "bi.date_combo",
width: 300 width: 300
}, { }, {
type: "bi.button", type: "bi.button",
text: "getVlaue", text: "getVlaue",
height: 50, width: 300,
width: 300 handler: function () {
BI.Msg.alert("date", JSON.stringify(self.datecombo.getValue()));
}
}, {
type: "bi.button",
text: "setVlaue '2017-12-31'",
width: 300,
handler: function () {
self.datecombo.setValue({
year: 2017,
month: 11,
day: 31
})
}
}] }]
} }
} }
@ -6745,7 +6600,7 @@ BI.shortcut("demo.date", Demo.Date);Demo.DatePane = BI.inherit(BI.Widget, {
baseCls: "demo-datepane" baseCls: "demo-datepane"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_auto", type: "bi.horizontal_auto",
items: [{ items: [{
@ -6762,13 +6617,26 @@ BI.shortcut("demo.date", Demo.Date);Demo.DatePane = BI.inherit(BI.Widget, {
month: 12, month: 12,
day: 11 day: 11
}, },
height:300 ref: function (_ref) {
self.datepane = _ref;
},
height: 300
}, },
{ {
type: "bi.button", type: "bi.button",
text: "getValue", text: "getValue",
handler: function () { handler: function () {
BI.Msg.toast("date" + JSON.stringify(datepane.getValue())); BI.Msg.toast("date" + JSON.stringify(self.datepane.getValue()));
}
}, {
type: "bi.button",
text: "setVlaue '2017-12-31'",
handler: function () {
self.datepane.setValue({
year: 2017,
month: 11,
day: 31
})
} }
} }
], ],
@ -7211,7 +7079,74 @@ Demo.TextEditor = BI.inherit(BI.Widget, {
} }
}) })
BI.shortcut("demo.text_editor", Demo.TextEditor);/** BI.shortcut("demo.text_editor", Demo.TextEditor);/*
Created by dailer on 2017 / 7 / 21.
*/
Demo.FileManager = BI.inherit(BI.Widget, {
props: {
baseCls: ""
},
render: function () {
var items = [{
id: "1",
value: "1",
text: "根目录",
lastModify: 1454316355142
}, {
id: "11",
pId: "1",
value: "11",
text: "第一级子目录1",
lastModify: 1454316355142
}, {
id: "12",
pId: "1",
value: "12",
text: "第一级子目录2",
lastModify: 1454316355142
}, {
id: "111",
pId: "11",
value: "111",
text: "第二级子目录",
lastModify: 1454316355142
}, {
id: "121",
pId: "111",
buildUrl: "www.baidu.com",
value: "121",
text: "文件1",
lastModify: 1454316355142
}, {
id: "122",
pId: "111",
buildUrl: "www.baidu.com",
value: "122",
text: "文件2",
lastModify: 1454316355142
}];
var filemanager = BI.createWidget({
type: "bi.file_manager",
items: items
});
return {
type: "bi.vtape",
items: [{
el: filemanager,
height: "fill"
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.alert("", JSON.stringify(filemanager.getValue()));
},
height: 25
}]
}
}
});
BI.shortcut("demo.file_manager", Demo.FileManager);/**
* Created by Dailer on 2017/7/11. * Created by Dailer on 2017/7/11.
*/ */
Demo.Month = BI.inherit(BI.Widget, { Demo.Month = BI.inherit(BI.Widget, {
@ -7219,13 +7154,35 @@ Demo.Month = BI.inherit(BI.Widget, {
baseCls: "demo-exceltable" baseCls: "demo-exceltable"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_adapt", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.month_combo", type: "bi.month_combo",
width: 300,
ref: function () {
self.monthcombo = this;
}
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.monthcombo.getValue()));
},
width: 300 width: 300
}] }, {
type: "bi.button",
text: "setValue : 11",
handler: function () {
self.monthcombo.setValue(11);
},
width: 300
}, {
type: "bi.label",
text: "月份value 范围为0-11,显示范围为1-12",
width: 300
}],
vgap: 10
} }
} }
}) })
@ -8164,13 +8121,31 @@ Demo.Quarter = BI.inherit(BI.Widget, {
baseCls: "demo-exceltable" baseCls: "demo-exceltable"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_adapt", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.quarter_combo", type: "bi.quarter_combo",
width: 300,
ref: function () {
self.quartercombo = this;
}
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.quartercombo.getValue()));
},
width: 300 width: 300
}] }, {
type: "bi.button",
text: "setValue : 3",
handler: function () {
self.quartercombo.setValue(3);
},
width: 300
}],
vgap: 10
} }
} }
}) })
@ -9530,12 +9505,31 @@ Demo.Year = BI.inherit(BI.Widget, {
baseCls: "demo-exceltable" baseCls: "demo-exceltable"
}, },
render: function () { render: function () {
var self = this;
return { return {
type: "bi.horizontal_adapt", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.year_combo", type: "bi.year_combo",
width: 300,
ref: function () {
self.yearcombo = this;
}
}, {
type: "bi.button",
text: "getValue",
handler: function () {
BI.Msg.toast(JSON.stringify(self.yearcombo.getValue()));
},
width: 300 width: 300
}] }, {
type: "bi.button",
text: "setValue : 2018",
handler: function () {
self.yearcombo.setValue(2018);
},
width: 300
}],
vgap: 10
} }
} }
}) })
@ -9565,6 +9559,16 @@ Demo.YearMonthCombo = BI.inherit(BI.Widget, {
BI.Msg.toast(JSON.stringify(self.widget.getValue())) BI.Msg.toast(JSON.stringify(self.widget.getValue()))
}, },
width: 300 width: 300
}, {
type: "bi.button",
text: "setVlaue '2017-12'",
width: 300,
handler: function () {
self.widget.setValue({
year: 2017,
month: 11
})
}
}], }],
vgap: 20 vgap: 20
} }
@ -9579,24 +9583,34 @@ Demo.YearQuarterCombo = BI.inherit(BI.Widget, {
baseCls: "" baseCls: ""
}, },
render: function () { render: function () {
var self=this; var self = this;
return { return {
type: "bi.horizontal_auto", type: "bi.horizontal_auto",
items: [{ items: [{
type: "bi.year_quarter_combo", type: "bi.year_quarter_combo",
width: 300, width: 300,
ref:function(_ref){ ref: function (_ref) {
self.widget=_ref; self.widget = _ref;
}, },
yearBehaviors: {}, yearBehaviors: {},
quarterBehaviors: {}, quarterBehaviors: {},
}, { }, {
type: "bi.button", type: "bi.button",
text: "getValue", text: "getValue",
handler:function(){ handler: function () {
BI.Msg.toast(JSON.stringify(self.widget.getValue())) BI.Msg.toast(JSON.stringify(self.widget.getValue()))
}, },
width: 300 width: 300
}, {
type: "bi.button",
text: "setVlaue '2017 季度3'",
width: 300,
handler: function () {
self.widget.setValue({
year: 2017,
quarter: 3
})
}
}], }],
vgap: 20 vgap: 20
} }

431
docs/widget.js

@ -2360,7 +2360,7 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
o = this.options; o = this.options;
this.trigger = BI.createWidget({ this.trigger = BI.createWidget({
type: "bi.date_trigger" type: "bi.date_time_trigger1"
}); });
this.trigger.on(BI.DateTrigger.EVENT_TRIGGER_CLICK, function () { this.trigger.on(BI.DateTrigger.EVENT_TRIGGER_CLICK, function () {
@ -2371,13 +2371,21 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
type: "bi.date_time_popup" type: "bi.date_time_popup"
}); });
this.popup.on(BI.DateCalendarPopup.EVENT_CHANGE, function () { this.popup.on(BI.DateTimePopup.EVENT_CHANGE, function () {
self.setValue(self.popup.getValue()); //self.setValue(self.popup.getValue());
});
this.popup.on(BI.DateTimePopup.EVENT_CLICK_CONFIRM, function () {
//do something here
self.setValue();
self.combo.hideView();
});
this.popup.on(BI.DateTimePopup.EVENT_CLICK_CANCEL, function () {
self.combo.hideView();
}); });
this.combo = BI.createWidget({ this.combo = BI.createWidget({
type: "bi.combo", type: "bi.combo",
toggle: false, toggle: true,
element: this, element: this,
isNeedAdjustHeight: false, isNeedAdjustHeight: false,
isNeedAdjustWidth: false, isNeedAdjustWidth: false,
@ -2391,29 +2399,156 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
}, },
_reviseMinute: function () { getValue: function () {
this.m._finetuning(this.s.isNeedRevise); return this.popup.getValue();
this._reviseHour();
}, },
_reviseHour: function () { setStep: function (step) {
this.h._finetuning(this.m.isNeedRevise); this.step = step || this.step;
}, },
getCurrentTime: function () { setValue: function (v) {
this.trigger.setValue(this.popup.getValue());
}
});
BI.DateTimeCombo.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.date_time_combo", BI.DateTimeCombo);/**
* Created by dailer on 2017/7/18.
* 数值微调器练习
*/
BI.NumberSpinner = BI.inherit(BI.Widget, {
_defaultConfig: function () {
return BI.extend(BI.NumberSpinner.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-fine-tuning-number-editor bi-border",
value: 0,
min: 0,
max: 100000,
step: 1,
formatter: BI.emptyFn,
parser: BI.emptyFn
})
},
_init: function () {
BI.NumberSpinner.superclass._init.apply(this, arguments);
var self = this,
o = this.options;
if (o.formatter == BI.emptyFn) {
this.formatter = function (v) {
return v;
}
} else {
this.formatter = o.formatter;
}
this.parser = o.parser;
this.step = o.step;
this.min = o.min;
this.max = o.max;
this.value = o.value;
this.isNeedRevise = 0;
this.editor = BI.createWidget({
type: "bi.sign_editor",
value: o.value,
errorText: BI.i18nText("BI-Please_Input_Natural_Number")
});
this.editor.on(BI.TextEditor.EVENT_CONFIRM, function () {
self.setValue(self.editor.getValue());
self.fireEvent(BI.NumberSpinner.EVENT_CONFIRM);
});
this.topBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-pre-page-h-font top-button bi-border-left bi-border-bottom",
});
this.topBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(1);
self.fireEvent(BI.NumberSpinner.EVENT_CONFIRM);
});
this.bottomBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-next-page-h-font bottom-button bi-border-left bi-border-top"
});
this.bottomBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(-1);
self.fireEvent(BI.NumberSpinner.EVENT_CONFIRM);
});
this._finetuning(0);
BI.createWidget({
type: "bi.htape",
element: this,
items: [this.editor, {
el: {
type: "bi.grid",
columns: 1,
rows: 2,
items: [{
column: 0,
row: 0,
el: this.topBtn
}, {
column: 0,
row: 1,
el: this.bottomBtn
}]
},
width: 30
}]
});
},
//微调
_finetuning: function (add) {
//窝是在不值该如何处理精度损失问题,所以迫不得已采取了这个方法
var v = BI.parseFloat(this.editor.getValue()) * 1000000000000;
var addend = add * this.step * 1000000000000;
var result = (v + addend) / 1000000000000;
if (result > this.max) {
this.editor.setValue(this.formatter(this.min));
this.isNeedRevise = 1;
this.value = this.min;
return;
}
if (result < this.min) {
this.editor.setValue(this.formatter(this.max));
this.isNeedRevise = -1;
this.value = this.max;
return;
}
this.value = result;
this.isNeedRevise = 0;
this.editor.setValue(this.formatter(result));
},
getIsNeedRevise: function () {
return this.isNeedRevise;
},
getMinAndMax: function () {
return { return {
hour: this.h.getValue(), min: this.min,
minute: this.m.getValue(), max: this.max
second: this.s.getValue()
}; };
}, },
_format: function (p) { getStep: function () {
return p < 10 ? ('0' + p) : p return this.step;
}, },
getCurrentTimeStr: function () { getValue: function () {
return this._format(this.h.getValue()) + ':' + this._format(this.m.getValue()) + ':' + this._format(this.s.getValue()) return this.value;
}, },
setStep: function (step) { setStep: function (step) {
@ -2421,12 +2556,13 @@ BI.DateTimeCombo = BI.inherit(BI.Widget, {
}, },
setValue: function (v) { setValue: function (v) {
this.value = v;
this.editor.setValue(this.formatter(v));
} }
}); });
BI.DateTimeCombo.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.NumberSpinner.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.date_time_combo", BI.DateTimeCombo);/** BI.shortcut("bi.test_editor", BI.NumberSpinner);/**
* Created by GUY on 2015/9/7. * Created by GUY on 2015/9/7.
* @class BI.DateCalendarPopup * @class BI.DateCalendarPopup
* @extends BI.Widget * @extends BI.Widget
@ -2435,7 +2571,7 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
_defaultConfig: function () { _defaultConfig: function () {
var conf = BI.DateTimePopup.superclass._defaultConfig.apply(this, arguments); var conf = BI.DateTimePopup.superclass._defaultConfig.apply(this, arguments);
return BI.extend(conf, { return BI.extend(conf, {
baseCls: "bi-date-calendar-popup", baseCls: "bi-date-calendar-popup demo-clolor",
min: '1900-01-01', //最小日期 min: '1900-01-01', //最小日期
max: '2099-12-31', //最大日期 max: '2099-12-31', //最大日期
selectedTime: null selectedTime: null
@ -2466,16 +2602,23 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
this._year = this.today.getFullYear(); this._year = this.today.getFullYear();
this._month = this.today.getMonth(); this._month = this.today.getMonth();
this._day = this.today.getDate(); this._day = this.today.getDate();
this._hour = this.today.getHours();
this._minute = this.today.getMinutes();
this._second = this.today.getSeconds();
this.selectedTime = o.selectedTime || { this.selectedTime = o.selectedTime || {
year: this._year, year: this._year,
month: this._month, month: this._month,
day: this._day day: this._day,
hour: this._hour,
minute: this._minute,
second: this._second
}; };
this.datePicker = BI.createWidget({ this.datePicker = BI.createWidget({
type: "bi.date_picker", type: "bi.date_picker",
min: o.min, min: o.min,
max: o.max max: o.max,
cls: "demo-clolor",
}); });
this.calendar = BI.createWidget({ this.calendar = BI.createWidget({
@ -2494,21 +2637,42 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
afterCardShow: function () { afterCardShow: function () {
this.setValue(self.selectedTime); this.setValue(self.selectedTime);
self.calendar.setSelect(BI.Calendar.getPageByDateJSON(self.selectedTime));
} }
}); });
this.timeTunning = BI.createWidget({ this.timeTunning = BI.createWidget({
type: "bi.time_tunning" type: "bi.time_tunning",
currentTime: {
hour: this._hour,
minute: this._minute,
second: this._second
}
});
this.timeTunning.on(BI.TimeTuning.EVENT_CHANGE, function () {
self.selectedTime = self.timeTunning.getValue();
}); });
this.buttons = BI.createWidget({ this.buttons = BI.createWidget({
type: "bi.button_group", type: "bi.button_group",
items: [{ items: [{
type: "bi.text_button", type: "bi.button",
text: BI.i18nText('BI-Basic_Clears') textHeight: 30,
clear: true,
text: "取消",
handler: function () {
self.fireEvent(BI.DateTimePopup.EVENT_CLICK_CANCEL);
}
}, {
text: "|"
}, { }, {
type: "bi.text_button", type: "bi.button",
text: BI.i18nText("BI-Basic_Sure") textHeight: 30,
clear: true,
text: BI.i18nText("BI-Basic_Sure"),
handler: function () {
self.fireEvent(BI.DateTimePopup.EVENT_CLICK_CONFIRM);
}
}], }],
chooseType: 0, chooseType: 0,
behaviors: {}, behaviors: {},
@ -2531,23 +2695,28 @@ BI.DateTimePopup = BI.inherit(BI.Widget, {
this.calendar.on(BI.Navigation.EVENT_CHANGE, function () { this.calendar.on(BI.Navigation.EVENT_CHANGE, function () {
self.selectedTime = self.calendar.getValue(); self.selectedTime = self.calendar.getValue();
self.setValue(self.selectedTime); self.fireEvent(BI.DateTimePopup.EVENT_CHANGE);
self.fireEvent(BI.DateCalendarPopup.EVENT_CHANGE);
}); });
self.calendar.setSelect(BI.Calendar.getPageByDateJSON(self.selectedTime));
this.calendar.setValue(this.selectedTime);
}, },
setValue: function (timeOb) { setValue: function (timeOb) {
this.datePicker.setValue(timeOb); this.datePicker.setValue(timeOb);
this.calendar.setSelect(BI.Calendar.getPageByDateJSON(timeOb)); this.calendar.setSelect(BI.Calendar.getPageByDateJSON(timeOb));
this.calendar.setValue(timeOb); this.calendar.setValue(timeOb);
this.timeTunning.setValue(timeOb);
this.selectedTime = timeOb; this.selectedTime = timeOb;
}, },
getValue: function () { getValue: function () {
return this.selectedTime; return $.extend({}, this.calendar.getValue(), this.timeTunning.getValue());
} }
}); });
BI.DateTimePopup.EVENT_CHANGE = "EVENT_CHANGE"; BI.DateTimePopup.EVENT_CHANGE = "EVENT_CHANGE";
BI.DateTimePopup.EVENT_CLICK_CONFIRM = "EVENT_CLICK_CONFIRM";
BI.DateTimePopup.EVENT_CLICK_CANCEL = "EVENT_CLICK_CANCEL";
BI.shortcut("bi.date_time_popup", BI.DateTimePopup);/** BI.shortcut("bi.date_time_popup", BI.DateTimePopup);/**
* Created by dailer on 2017/7/19. * Created by dailer on 2017/7/19.
* 时间微调器练习 * 时间微调器练习
@ -2599,7 +2768,9 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
width: 60, width: 60,
height: 30 height: 30
}); });
this.h.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {}); this.h.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {
self.fireEvent(BI.TimeTuning.EVENT_CHANGE);
});
//分 //分
this.m = BI.createWidget({ this.m = BI.createWidget({
@ -2612,6 +2783,7 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
}) })
this.m.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () { this.m.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {
self._reviseHour(); self._reviseHour();
self.fireEvent(BI.TimeTuning.EVENT_CHANGE);
}); });
//秒 //秒
@ -2625,6 +2797,7 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
}) })
this.s.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () { this.s.on(BI.FineTuningNumberEditor.EVENT_CONFIRM, function () {
self._reviseMinute(); self._reviseMinute();
self.fireEvent(BI.TimeTuning.EVENT_CHANGE);
}); });
@ -2657,7 +2830,7 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
BI.createWidget({ BI.createWidget({
type: "bi.htape", type: "bi.htape",
cls: "bi-border demo-clolor", cls: "demo-clolor",
element: this, element: this,
items: [this.editor], items: [this.editor],
width: 270, width: 270,
@ -2666,12 +2839,12 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
}, },
_reviseMinute: function () { _reviseMinute: function () {
this.m._finetuning(this.s.isNeedRevise); this.m._finetuning(this.s.getIsNeedRevise());
this._reviseHour(); this._reviseHour();
}, },
_reviseHour: function () { _reviseHour: function () {
this.h._finetuning(this.m.isNeedRevise); this.h._finetuning(this.m.getIsNeedRevise());
}, },
getCurrentTime: function () { getCurrentTime: function () {
@ -2690,169 +2863,97 @@ BI.TimeTuning = BI.inherit(BI.Widget, {
return this._format(this.h.getValue()) + ':' + this._format(this.m.getValue()) + ':' + this._format(this.s.getValue()) return this._format(this.h.getValue()) + ':' + this._format(this.m.getValue()) + ':' + this._format(this.s.getValue())
}, },
getValue: function () {
return {
hour: this.h.getValue(),
minute: this.m.getValue(),
second: this.s.getValue()
}
},
setStep: function (step) { setStep: function (step) {
this.step = step || this.step; this.step = step || this.step;
}, },
setValue: function (v) { setValue: function (timeObj) {
this.value = v; this.h.setValue(timeObj.hour);
this.editor.setValue(); this.m.setValue(timeObj.minute);
this.s.setValue(timeObj.second);
} }
}); });
BI.TimeTuning.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.TimeTuning.EVENT_CHANGE = "EVENT_CHANGE";
BI.shortcut("bi.time_tunning", BI.TimeTuning);/** BI.shortcut("bi.time_tunning", BI.TimeTuning);BI.DateTimeTrigger = BI.inherit(BI.Trigger, {
* Created by dailer on 2017/7/18.
* 数值微调器练习
*/
BI.FineTuningNumberEditor = BI.inherit(BI.Widget, {
_defaultConfig: function () { _defaultConfig: function () {
return BI.extend(BI.FineTuningNumberEditor.superclass._defaultConfig.apply(this, arguments), { return BI.extend(BI.DateTimeTrigger.superclass._defaultConfig.apply(this, arguments), {
baseCls: "bi-fine-tuning-number-editor bi-border", extraCls: "bi-date-trigger",
value: 0, min: '1900-01-01', //最小日期
disabled: false, max: '2099-12-31', //最大日期
min: 0, height: 32
max: 100000, });
step: 1,
formatter: BI.emptyFn,
parser: BI.emptyFn
})
}, },
_init: function () { _init: function () {
BI.FineTuningNumberEditor.superclass._init.apply(this, arguments); BI.DateTimeTrigger.superclass._init.apply(this, arguments);
var self = this, var self = this,
o = this.options; o = this.options;
if (o.formatter == BI.emptyFn) { this.label = BI.createWidget({
this.formatter = function (v) { type: "bi.label",
return v; textAlign: "left",
} text: "",
} else { height: o.height
this.formatter = o.formatter;
}
this.parser = o.parser;
this.step = o.step;
this.min = o.min;
this.max = o.max;
this.value = o.value;
this.isNeedRevise = 0;
this.editor = BI.createWidget({
type: "bi.sign_editor",
value: o.value,
errorText: BI.i18nText("BI-Please_Input_Natural_Number")
});
this.editor.on(BI.TextEditor.EVENT_CONFIRM, function () {
self.setValue(self.editor.getValue());
self.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM);
});
this.topBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-pre-page-h-font top-button bi-border-left bi-border-bottom",
});
this.topBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._isNeedRevise();
self._finetuning(1);
self.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM);
});
this.bottomBtn = BI.createWidget({
type: "bi.icon_button",
trigger: "lclick,",
cls: "column-next-page-h-font bottom-button bi-border-left bi-border-top"
});
this.bottomBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(-1);
self.fireEvent(BI.FineTuningNumberEditor.EVENT_CONFIRM);
}); });
this._finetuning(0);
BI.createWidget({ BI.createWidget({
type: "bi.htape", type: "bi.htape",
element: this, element: this,
items: [this.editor, { items: [{
el: { el: BI.createWidget({
type: "bi.grid", type: "bi.icon_button",
columns: 1, cls: "search-font"
rows: 2, }),
items: [{
column: 0,
row: 0,
el: this.topBtn
}, {
column: 0,
row: 1,
el: this.bottomBtn
}]
},
width: 30 width: 30
}, {
el: this.label
}] }]
}); })
},
//微调
_finetuning: function (add) {
//窝是在不值该如何处理精度损失问题,所以迫不得已采取了这个方法
var v = BI.parseFloat(this.editor.getValue()) * 1000000000000;
var addend = add * this.step * 1000000000000;
var result = (v + addend) / 1000000000000;
if (result > this.max) {
this.editor.setValue(this.formatter(this.min));
this.isNeedRevise = 1;
this.value = this.min;
return;
}
if (result < this.min) {
this.editor.setValue(this.formatter(this.max));
this.isNeedRevise = -1;
this.value = this.max;
return;
}
this.value = result;
this.isNeedRevise = 0;
this.editor.setValue(this.formatter(result));
var today = new Date(),
timeObj = {
year: today.getFullYear(),
month: today.getMonth(),
day: today.getDate(),
hour: today.getHours(),
minute: today.getMinutes(),
second: today.getSeconds()
};
this.setValue(timeObj);
}, },
_isNeedRevise: function () {
// console.log(this.editor.getValue() - this.value);
},
getMinAndMax: function () {
return { _parseTimeObjToStr: function (timeObj) {
min: this.min, var _format = function (p) {
max: this.max return p < 10 ? ('0' + p) : p
}; };
BI.each(timeObj, function (key, val) {
timeObj[key] = _format(timeObj[key]);
});
return timeObj.year + "-" + (1 + BI.parseInt(timeObj.month)) + "-" + timeObj.day + " " + timeObj.hour + ":" + timeObj.minute + ":" + timeObj.second;
}, },
getStep: function () { setValue: function (v) {
return this.step; this.label.setValue(this._parseTimeObjToStr(v));
},
getValue: function () {
return this.value;
}, },
setStep: function (step) { getValue: function () {
this.step = step || this.step;
},
setValue: function (v) {
this.value = v;
this.editor.setValue(this.formatter(v));
} }
}); });
BI.FineTuningNumberEditor.EVENT_CONFIRM = "EVENT_CONFIRM";
BI.shortcut("bi.test_editor", BI.FineTuningNumberEditor);/** BI.shortcut("bi.date_time_trigger1", BI.DateTimeTrigger);/**
* 日期控件中的月份下拉框 * 日期控件中的月份下拉框
* *
* Created by GUY on 2015/9/7. * Created by GUY on 2015/9/7.

Loading…
Cancel
Save