UNPKG

saas-dynamic-component

Version:

saas-dynamic-component ==== saas平台动态引擎组件库,目前包括查询引擎、表格引擎,后续待增加...

217 lines (206 loc) 6.97 kB
'use strict'; 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;