fx-form-widget
Version:
91 lines (88 loc) • 2.83 kB
JavaScript
;
exports.__esModule = true;
exports["default"] = void 0;
var _mobx = require("mobx");
var Schema = function Schema() {
var _this = this;
this.schemaData = [];
this.globalData = {
// 全局数据
displayType: 'row',
labelWidth: 110,
column: 1,
unEditable: false // 判断是编辑还是详情状态 true详情/false编辑
};
this.dynamicForm = null;
this.onSchemaChange = function (type, newSchemaData, dropId, position) {
var schemaData = [].concat(_this.schemaData);
var _index = -1,
_insideIndex = -1,
_idx = -1,
_insideIdx = -1; //_index: 移动点在schemaData第一层的位置, _insideIndex: 移动点在schemaData第二层的位置, _idx: drop点schemaData第一层的位置, _insideIdx: drop点在schemaData children里的位置
if (['remove', 'edit', 'sort'].indexOf(type) > -1) {
schemaData.forEach(function (schemaDataItem, index) {
var pid = schemaDataItem.pid,
_schemaDataItem$child = schemaDataItem.children,
children = _schemaDataItem$child === void 0 ? [] : _schemaDataItem$child;
if (pid === 3) {
// 为布局组件时
_insideIndex = children.findIndex(function (item) {
return item.wid === newSchemaData.wid;
});
if (_insideIndex !== -1) {
// 当在children里找到时
_index = index;
} else {
if (schemaDataItem.wid === newSchemaData.wid) _index = index;
}
} else {
if (schemaDataItem.wid === newSchemaData.wid) _index = index;
}
});
}
switch (type) {
case 'edit':
if (_insideIndex === -1) {
// @ts-ignore
schemaData.splice(_index, 1, newSchemaData);
} else {
// @ts-ignore
schemaData[_index].children.splice(_insideIndex, 1, newSchemaData);
}
break;
default:
return;
}
_this.schemaData = schemaData;
};
this.onGlobalDataChange = function (data) {
if (data === void 0) {
data = {};
}
return _this.globalData = data;
};
this.onSchemaDataChange = function (data) {
if (data === void 0) {
data = {};
}
return _this.schemaData = data;
};
this.onDynamicFormChange = function (data) {
if (data === void 0) {
data = null;
}
return _this.dynamicForm = data;
};
this.updateState = function (params) {
for (var _i = 0, _Object$entries = Object.entries(params); _i < _Object$entries.length; _i++) {
var _Object$entries$_i = _Object$entries[_i],
_key = _Object$entries$_i[0],
value = _Object$entries$_i[1];
_this[_key] = value;
}
};
(0, _mobx.makeAutoObservable)(this);
}
// 组件数据
;
var _default = exports["default"] = new Schema();