UNPKG

mt-ui-components-vue3

Version:

玛果添实UI组件库(Vue3)

247 lines (246 loc) 7.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.termsParamsFormat = exports.hasExpand = exports.handleQData = exports.handleParamsToString = exports.handleLikeValue = exports.getTermTypes = exports.getTermTypeFn = exports.getTermOptions = exports.filterTreeSelectNode = exports.filterSelectNode = exports.compatibleOldTerms = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _lodashEs = require("lodash"); var _setting = require("./setting"); require("./typing"); /** * 处理like,nlike特殊值 * @param v */ var handleLikeValue = function handleLikeValue(v) { if ((0, _lodashEs.isString)(v)) { return v.split('').reduce(function (pre, next) { var _next = next; if (next === '\\') { _next = '\\\\'; } else if (next === '%') { _next = '\\%'; } return pre + _next; }, ''); } return v; }; exports.handleLikeValue = handleLikeValue; var handleItemValue = function handleItemValue(item, columnOptionMap) { var _item = columnOptionMap.get(item.column); if (!_item) return item; if (_item.rename) { item.column = _item.rename; } if (_item.handleValue && (0, _lodashEs.isFunction)(_item.handleValue)) { item.value = _item.handleValue(item.value); } if (['like', 'nlike'].includes(item.termType) && !!item.value) { item.value = "%".concat(handleLikeValue(item.value), "%"); } return item; }; /** * 处理为外部使用 * @terms {Array} 表单数据 * @columnOptionMap {Map} column的Map对象 */ var termsParamsFormat = function termsParamsFormat(terms, columnOptionMap) { var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'adv'; var searchType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'terms'; // 过滤掉terms中value无效的item var cloneParams = (0, _lodashEs.cloneDeep)(terms); if (searchType == 'terms') { if (type === 'adv') { return { terms: cloneParams.terms.map(function (item) { if (item.terms) { item.terms = item.terms.filter(function (iItem) { return iItem && iItem.value !== undefined && iItem.value !== '' && iItem.column !== undefined; }).map(function (iItem) { return handleItemValue(iItem, columnOptionMap); }); } return item; }).filter(function (item) { return item.terms.length; }) }; } else { console.log('cloneParams', cloneParams); return cloneParams.filter(function (iItem) { return iItem && iItem.value !== undefined && iItem.value !== '' && iItem.column !== undefined; }).map(function (iItem) { return handleItemValue(iItem, columnOptionMap); }); } } else if (searchType == 'object') { var result = {}; cloneParams.filter(function (item) { return item && item.value !== undefined && item.value !== ''; }).forEach(function (item) { (0, _extends3.default)(result, (0, _defineProperty2.default)({}, item.column, item.value)); }); return result; } }; /** * TreeSelect过滤 * @param value 过滤值 * @param treeNode * @param key */ exports.termsParamsFormat = termsParamsFormat; var filterTreeSelectNode = function filterTreeSelectNode(value, treeNode) { var _treeNode$key; var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'name'; return (_treeNode$key = treeNode[key]) === null || _treeNode$key === void 0 ? void 0 : _treeNode$key.includes(value); }; /** * Select过滤 * @param value 过滤值 * @param option * @param key */ exports.filterTreeSelectNode = filterTreeSelectNode; var filterSelectNode = function filterSelectNode(value, option) { var _option$key; var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'label'; return (_option$key = option[key]) === null || _option$key === void 0 ? void 0 : _option$key.includes(value); }; exports.filterSelectNode = filterSelectNode; var handleQData = function handleQData(terms) { // 排序, null 往后放 terms.terms.forEach(function (a) { for (var i = 0; i < a.terms.length; i++) { for (var j = 0; j < a.terms.length - i - 1; j++) { if (!a.terms[j] && a.terms[j + 1]) { var temp = a.terms[j]; a.terms[j] = a.terms[j + 1]; a.terms[j + 1] = temp; } } } }); return terms; }; exports.handleQData = handleQData; var hasExpand = function hasExpand(terms) { var itemCount = 0; terms.forEach(function (a) { a.terms.forEach(function (b) { if (b) { itemCount += 1; } }); }); return itemCount >= 2; }; exports.hasExpand = hasExpand; var compatibleOldTerms = function compatibleOldTerms() { var q = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '{"terms":[{"terms":[{"column":"name","termType":"like","value":"111","type":"and"}]}]}'; var _terms = [{ terms: [null, null, null] }, { terms: [null, null, null], type: 'and' }]; try { var _terms$terms; var terms = JSON.parse(q || '{}'); (_terms$terms = terms.terms) === null || _terms$terms === void 0 ? void 0 : _terms$terms.forEach(function (a, aIndex) { var _a$terms; a === null || a === void 0 ? void 0 : (_a$terms = a.terms) === null || _a$terms === void 0 ? void 0 : _a$terms.forEach(function (b, bIndex) { _terms[aIndex].terms[bIndex] = b; }); if (a.type) { _terms[aIndex].type = a.type; } }); return { terms: _terms }; } catch (e) { return { terms: _terms }; } }; exports.compatibleOldTerms = compatibleOldTerms; var handleParamsToString = function handleParamsToString() { var terms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'and'; var _terms = [{ terms: [null, null, null] }, { terms: [null, null, null], type: type }]; var termsIndex = 0; var termsStar = 0; terms.forEach(function (item, index) { if (index > 2) { termsIndex = 1; termsStar = 4; } _terms[termsIndex].terms[index - termsStar] = item; }); return JSON.stringify({ terms: _terms }); }; exports.handleParamsToString = handleParamsToString; var getTermTypeFn = function getTermTypeFn(type, column) { if (column !== null && column !== void 0 && column.includes('id') && type === 'string') { // 默认id为 eq return 'eq'; } switch (type) { case 'select': case 'treeSelect': case 'number': return 'eq'; case 'date': case 'time': return 'gt'; case 'timeRange': case 'rangePicker': return 'btw'; default: return 'like'; } }; exports.getTermTypeFn = getTermTypeFn; var getTermTypes = function getTermTypes(types) { return _setting.termType.filter(function (item) { return types.includes(item.value); }); }; exports.getTermTypes = getTermTypes; var getTermOptions = function getTermOptions(type, column) { var keys = []; switch (type) { case 'select': case 'treeSelect': keys = column !== null && column !== void 0 && column.includes('state') ? ['not'] : ['eq']; break; case 'time': case 'date': keys = ['gt', 'lt']; break; case 'timeRange': case 'rangePicker': keys = ['btw', 'nbtw']; break; case 'number': keys = ['eq']; break; default: keys = column !== null && column !== void 0 && column.includes('id') && type === 'string' ? ['eq'] : ['like', 'nlike']; break; } return keys.length ? getTermTypes(keys) : _setting.termType; }; exports.getTermOptions = getTermOptions;