UNPKG

tfp

Version:

A Web UI framework for TaskBuilder

213 lines (173 loc) 7.16 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _controller = require("../controller.js"); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** * 表单组件 * @param {[type]} dataModel [description] */ var Form = /*#__PURE__*/function (_ContainerComponent) { (0, _inherits2["default"])(Form, _ContainerComponent); var _super = _createSuper(Form); function Form(__tfp, dataModel, parent) { (0, _classCallCheck2["default"])(this, Form); return _super.call(this, __tfp, "Form", dataModel, parent); } //loadDataService属性 (0, _createClass2["default"])(Form, [{ key: "loadDataService", get: function get() { return this.dataModel.loadDataService; }, set: function set(value) { this.dataModel.loadDataService = value; } //dataBindingMember属性 }, { key: "dataBindingMember", get: function get() { return this.dataModel.dataBindingMember; }, set: function set(value) { this.dataModel.dataBindingMember = value; } //submitService属性 }, { key: "submitService", get: function get() { return this.dataModel.submitService; }, set: function set(value) { this.dataModel.submitService = value; } //是否显示提交成功提示 }, { key: "showSubmitSuccessHint", get: function get() { return this.dataModel.showSubmitSuccessHint ? true : false; }, set: function set(value) { this.dataModel.showSubmitSuccessHint = value ? true : false; } /** * 校验表单输入项的数据是否符合要求 * @param {[type]} ipt [description] * @param {[type]} args [description] * @return {[type]} [description] */ }, { key: "checkInputData", value: function checkInputData(cdm, args) { var cpt = this._tfp.get(cdm.id); var cptTypeInfo = this._tfp.type(cpt.type); if (cpt.isFormInput) { if (cpt.required && (isNull((cpt.value + "").trim()) || Array.isArray(cpt.value) && cpt.value.length == 0)) { if (cpt.comment) { this._tfp.showMsg(cpt.comment + "不能为空!"); } else { this._tfp.showMsg(cpt.id + "不能为空!"); } if (cpt.focus) cpt.focus(); return false; } if (!isNull(cpt.value)) { args[cpt.id] = cpt.value; /*if(ipt.type=="DateTime" && ipt.value.length<19) { args[ipt.id] = ipt.value + ":00"; } else if(ipt.type=="Date" && ipt.value.length<19) { args[ipt.id] = ipt.value + " 0:00:00"; }*/ } } else if (cpt.type == "DataSet") { var rows = cpt.getRows({ checkRequired: true }); if (!rows) return false; args[cpt.id] = rows; } var isOK = true; if (cdm.components) { for (var i = 0; i < cdm.components.length; i++) { isOK = this.checkInputData(cdm.components[i], args); if (!isOK) return false; } } return isOK; } }, { key: "submit", value: function submit() { if (!this.dataModel.submitService) { alert("请为[" + this.id + "]设置数据提交服务!"); return; } var serviceCpt = this._tfp.get(this.dataModel.submitService); if (!serviceCpt) { alert("ID为[" + this.dataModel.submitService + "]的组件不存在!"); return; } //对表单内的输入项的数据进行校验,并生成请求参数 var args = {}; var isOK = true; if (this.dataModel.components) { for (var i = 0; i < this.dataModel.components.length; i++) { isOK = this.checkInputData(this.dataModel.components[i], args); if (!isOK) return; } } var that = this; serviceCpt.request(args, function (req, res) { if (that.dataModel.showSubmitSuccessHint) that._tfp.showMsg("提交成功!"); /*if(that._tfp.curPage.pagetype=="dialog") { onDialogOK({req: req, res: res}); closeCurDialog(); }*/ }); } }, { key: "bindData", value: function bindData(data) { if (!this.dataModel.components) return; for (var i = 0; i < this.dataModel.components.length; i++) { this._tfp.bindCptData(this.dataModel.components[i], data); } } }, { key: "loadData", value: function loadData() { if (!this.dataModel.loadDataService) { alert("请为[" + this.id + "]设置加载数据服务!"); return; } var serviceCpt = this._tfp.get(this.dataModel.loadDataService); if (!serviceCpt) { alert("ID为[" + this.dataModel.loadDataService + "]的组件不存在!"); return; } var that = this; //与服务组件建立绑定 if (!serviceCpt.bindCpts) serviceCpt.bindCpts = []; if (!serviceCpt.bindCpts.contains(this.id)) serviceCpt.bindCpts.push(this.id); serviceCpt.request(null, function (req, res) { var data = res; //如果设置了数据绑定成员名称,则从服务响应对象中取这个成员对象作为表单的数据源 //否则,将整个响应对象作为表单的数据源 if (that.dataModel.dataBindingMember) data = res[that.dataModel.dataBindingMember]; //把表单的数据先缓存起来,以便后续某些场景需要继续使用 that.dataModel.data = data; that.bindData(data); }); } }, { key: "initRuntime", value: function initRuntime() { if (!this.dataModel.loadDataService) return; console.log('initRuntime'); this.loadData(); } }]); return Form; }(_controller.ContainerComponent); exports["default"] = Form;