tfp
Version:
A Web UI framework for TaskBuilder
91 lines (79 loc) • 2.44 kB
JavaScript
import { VisibleComponent } from "../controller.js";
/**
* 按钮组件
* @param {[type]} dataModel [description]
*/
export default class Button extends VisibleComponent {
constructor(__tfp, dataModel, parent) {
super(__tfp, "Button", dataModel, parent);
}
//属性
get value() { return this.dataModel.value }
set value(value) {
this.dataModel.value = value;
if (this._jqObj) {
this._jqObj.find("label").text(value);
this.exeEventHandler("onChange");
}
}
get buttonType() { return this.dataModel.buttonType }
set buttonType(value) {
this.dataModel.buttonType = value;
if (this._jqObj) {
this._jqObj.removeClass("wx-button-primary");
this._jqObj.removeClass("wx-button-default");
this._jqObj.removeClass(" wx-button-warn");
this._jqObj.addClass("wx-button-" + value);
}
}
get sizeType() { return this.dataModel.sizeType }
set sizeType(value) {
this.dataModel.sizeType = value;
if (this._jqObj) {
if (value) {
this._jqObj.attr("size", "mini");
} else {
this._jqObj.removeAttr("size");
}
}
}
get plain() { return this.dataModel.plain }
set plain(value) {
this.dataModel.plain = value ? true : false;
if (this._jqObj) {
this._jqObj.attr("plain", true);
if (!value) {
this._jqObj.removeAttr("plain");
}
}
}
get buttonDisabled() { return this.dataModel.buttonDisabled }
set buttonDisabled(value) {
this.dataModel.buttonDisabled = value;
// this.dataModel.buttonDisabled = value ? true : false;
if (this._jqObj) {
this._jqObj.attr("disabled", true);
if (!value) {
this._jqObj.removeAttr("disabled");
}
}
}
get loading() { return this.dataModel.loading }
set loading(value) {
this.dataModel.loading = value;
if (this._jqObj) {
if (value) {
let imgUrl = this._tfp.rootPath + "/src/components/button/images/lodding.png";
let str = `<div class="lodding"> <img class="loddingImg" src="${imgUrl}" /> </div>`
this._jqObj.prepend(str)
} else {
this._jqObj.find(".lodding").remove();
this._jqObj.removeAttr("lodding");
}
}
}
get formType() { return this.dataModel.formType }
set formType(value) {
this.dataModel.formType = value;
}
}