tfp
Version:
A Web UI framework for TaskBuilder
65 lines (60 loc) • 1.88 kB
JavaScript
import {FormInput} from "../controller.js";
/**
* 开关组件
* @param {[type]} dataModel [description]
*/
export default class Switch extends FormInput {
constructor(__tfp, dataModel, parent) {
super(__tfp, "Switch", dataModel, parent);
}
//属性
get value() {
if(this._jqObj) {
if(this._jqObj.find("div").css("float")=="right") {
this.dataModel.value = this.dataModel.options[1];
} else {
this.dataModel.value = this.dataModel.options[0];
}
}
/*if(this.dataModel.value==undefined || this.dataModel.value==null) {
if(this.dataModel.options && this.dataModel.options.length>0)
this.dataModel.value = this.dataModel.options[0];
}*/
return this.dataModel.value;
}
set value(value) {
this.dataModel.value = value;
if(this._jqObj) {
if((value+"")==(this.dataModel.options[1]+"")) {
this._jqObj.find("div").css("float", "right");
this._jqObj.find("div").css("background-color", "#0099ff");
} else {
this._jqObj.find("div").css("float", "left");
this._jqObj.find("div").css("background-color", "#999999");
}
}
if(!this._tfp.isDesigning) {
this.valueOnChange();
this.exeEventHandler("onChange", value);
}
}
get options() { return this.dataModel.options }
set options(value) {
if(!value) return;
if(typeof(value)=="string") {
this.dataModel.options = value.split(",");
} else if(Array.isArray(value)) {
this.dataModel.options = value;
}
}
initRuntime() {
let that = this;
this._jqObj.click(function() {
if(that.dataModel.value == that.dataModel.options[1]) {
that.value = that.dataModel.options[0];
} else {
that.value = that.dataModel.options[1];
}
});
}
}