saas-dynamic-component
Version:
saas-dynamic-component ==== saas平台动态引擎组件库,目前包括查询引擎、表格引擎,后续待增加...
217 lines (206 loc) • 6.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _mobxStateTree = require('mobx-state-tree');
var _moment = require('moment');
var _moment2 = _interopRequireDefault(_moment);
var _mobx = require('mobx');
var _util = require('../utils/util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var searchEngineStore = _mobxStateTree.types.model("searchEngineStore", {
hostDomain: '',
queryTemplate: 'ypub-paas-web/proxy/queryTemplate',
getListData: 'ypub-paas-web/proxy/getListData',
getListTreeData: 'ypub-paas-web/proxy/getListTreeData'
}).volatile(function (self) {
return {
searchCollection: [],
queryItem: [],
selectItem: {},
cascaderData: {},
isMultiSelect: 0,
queryParams: [],
typeCollection: null,
popupVisible: {},
cascaderInputVisible: {}, //存储所有级联带搜索的输入框显示/隐藏,目前支持一级可搜索
hiddenList: [],
resultLoading: true
};
}).views(function (self) {
return {
get common() {
return (0, _mobxStateTree.getParent)(self).common;
}
};
}).actions(function (self) {
return {
setResultLoading: function setResultLoading(v) {
self.resultLoading = v;
},
setQueryItem: function setQueryItem(v) {
self.queryItem = v;
},
setCascaderData: function setCascaderData(v) {
self.cascaderData = v;
},
setPopupVisible: function setPopupVisible(v) {
self.popupVisible = v;
},
setCascaderInputVisible: function setCascaderInputVisible(v) {
self.cascaderInputVisible = v;
},
translateForm: function translateForm(form) {
var params = {};
form.validateFields(function (err, value) {
self.queryItem.map(function (item) {
if (item.dataType == 2) {
value[item.code] = value[item.code] == undefined ? undefined : (0, _moment2.default)(value[item.code]).format('YYYY-MM-DD');
}
if (item.virtual) {
var result = value[item.code];
var virtualFields = item.virtualFieldsMap;
if (result == undefined) {
result = [];
}
if (item.dataType == 5 || item.dataType == 9) {
for (var key in virtualFields) {
value[virtualFields[key]] = result[parseInt(key) - 1] == undefined ? undefined : result[parseInt(key) - 1];
}
} else {
value[virtualFields[1]] = value[item.code];
}
delete value[item.code];
}
});
params = value;
});
return params;
},
setQueryParams: function setQueryParams(v) {
var params = [];
for (var key in v) {
var type = self.typeCollection[key].dataType;
var columns = self.typeCollection[key].columnName;
var operator = self.typeCollection[key].operator;
var virtual = self.typeCollection[key].virtual;
if (type == 2) {
v[key] && (v[key] = (0, _moment2.default)(v[key]).format('YYYY-MM-DD'));
v[key] === null && (v[key] = undefined);
}
if (type == 5 || type == 9) {
(function () {
var listTree = {};
v[key] && v[key].map(function (item, i) {
listTree[i + 1] = item;
});
v[key] && (v[key] = listTree);
})();
}
if ((type == 1 || type == 6) && typeof v[key] == 'string') {
v[key] = [v[key]];
}
var fieldCode = {};
fieldCode[key] = v[key];
params.push({
columnName: columns,
fieldCode: fieldCode,
operator: operator,
virtual: virtual
});
}
self.queryParams = params;
},
compare: function compare(property) {
return function (frontVal, endVal) {
return frontVal[property] - endVal[property];
};
},
resetType: function resetType(data) {
var type = {};
data.map(function (item) {
type[item.code] = item;
});
return type;
},
setItemSelect: function setItemSelect(v) {
self.selectItem = v;
},
getTemplate: function getTemplate(params) {
return self.common.fetchData(self.hostDomain + self.queryTemplate, self.setTemplate, params, { method: 'get' }).catch(function (ex) {
self.common.Notification.error({
description: (0, _util.intlSaaS)('serverError') + ex,
duration: null
});
});
},
setTemplate: function setTemplate(result) {
if (result.success) {
self.resultLoading = false;
// 排序
self.searchCollection = result.data.sort(self.compare('fieldSort'));
self.typeCollection = self.resetType(result.data);
//区分显示查询项和隐藏查询项
var _showList = [],
_hiddenList = [];
self.searchCollection.map(function (item) {
if (item.isHidden == 1) {
_hiddenList.push(item);
} else {
_showList.push(item);
}
});
self.searchCollection = _showList;
self.hiddenList = _hiddenList;
if (self.searchCollection.length > 6) {
self.queryItem = self.searchCollection.slice(0, 6);
} else {
self.queryItem = self.searchCollection;
}
} else {
self.common.Notification.error({
description: (0, _util.intlSaaS)('serverError') + result.errorMessage,
duration: null
});
}
},
getSelectItem: function getSelectItem(params, isMultiSelect) {
self.isMultiSelect = isMultiSelect;
return self.common.fetchData(self.hostDomain + self.getListData, self.setSelectItem, params, { method: 'get' }).catch(function (ex) {
self.common.Notification.error({
description: (0, _util.intlSaaS)('serverError') + ex,
duration: null
});
});
},
setSelectItem: function setSelectItem(result) {
if (result.success) {
return result.data;
} else {
self.common.Notification.error({
description: (0, _util.intlSaaS)('serverError') + result.errorMessage,
duration: null
});
}
},
getCascader: function getCascader(params) {
return self.common.fetchData(self.hostDomain + self.getListTreeData, self.setCascader, params, { method: 'get' }).catch(function (ex) {
self.common.Notification.error({
description: (0, _util.intlSaaS)('serverError') + ex,
duration: null
});
});
},
setCascader: function setCascader(result) {
if (result.success) {
return result.data;
} else {
self.common.Notification.error({
description: (0, _util.intlSaaS)('serverError') + result.errorMessage,
duration: null
});
}
}
};
});
exports.default = searchEngineStore;