choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
255 lines (240 loc) • 6.93 kB
JavaScript
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
import _typeof from "@babel/runtime/helpers/typeof";
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
import omit from 'lodash/omit';
import DataSet from '../../../data-set/DataSet';
import { DataSetSelection, DataToJSON, FieldType } from '../../../data-set/interface';
import { $l } from '../../../locale-context';
import { OPERATOR, OPERATOR_TYPE } from './Operator';
function processAxiosConfig() {
var axiosConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var args = arguments.length > 1 ? arguments[1] : undefined;
if (typeof axiosConfig === 'function') {
return axiosConfig(_objectSpread({}, args));
}
return axiosConfig;
}
function getTransportConfig(props) {
var config = props.config,
type = props.type,
searchCode = props.searchCode,
queryDataSet = props.queryDataSet,
tableFilterAdapter = props.tableFilterAdapter;
return processAxiosConfig(tableFilterAdapter, {
type: type,
config: config,
searchCode: searchCode,
queryDataSet: queryDataSet
});
}
export var ConditionDataSet = function ConditionDataSet() {
return {
paging: false,
fields: [{
name: 'fieldName',
type: FieldType.string
}, {
name: 'comparator',
type: FieldType.string,
defaultValue: 'EQUAL'
}, {
name: 'conditionType',
type: FieldType.string,
defaultValue: 'regular'
}, {
name: 'value',
transformRequest: function transformRequest(value) {
if (_typeof(value) === 'object') {
return JSON.stringify(value);
}
return value;
},
transformResponse: function transformResponse(value) {
try {
return JSON.parse(value);
} catch (e) {
return value;
}
}
}],
dataToJSON: DataToJSON.all,
events: {
update: function update() {}
}
};
};
export var AdvancedFieldSet;
(function (AdvancedFieldSet) {
AdvancedFieldSet["fieldName"] = "__fieldName__";
AdvancedFieldSet["comparator"] = "__comparator__";
AdvancedFieldSet["tableName"] = "__tableName__";
AdvancedFieldSet["alias"] = "__alias__";
AdvancedFieldSet["source"] = "__source__";
AdvancedFieldSet["conditionType"] = "__conditionType__";
})(AdvancedFieldSet || (AdvancedFieldSet = {}));
export var NewFilterDataSet = function NewFilterDataSet(_ref) {
var propFields = _ref.propFields;
var advancedFields = propFields.map(function (field) {
return omit(field, ['defaultValue', 'ignore', 'cascadeMap']);
});
return {
paging: false,
selection: false,
autoCreate: false,
primaryKey: 'searchId',
autoQuery: false,
fields: [{
name: AdvancedFieldSet.fieldName,
type: FieldType.string,
required: true
}, {
name: AdvancedFieldSet.comparator,
type: FieldType.string,
computedProps: {
required: function required(_ref2) {
var record = _ref2.record;
return record.get(AdvancedFieldSet.fieldName);
}
},
options: new DataSet({
selection: DataSetSelection.single,
paging: false,
data: OPERATOR_TYPE.ALL
})
}, {
name: AdvancedFieldSet.tableName,
type: FieldType.string
}, {
name: AdvancedFieldSet.alias,
type: FieldType.string
}, {
name: AdvancedFieldSet.source,
type: FieldType.string
}, {
name: AdvancedFieldSet.conditionType,
type: FieldType.string,
defaultValue: 'comparator'
}, {
name: 'value',
computedProps: {
bind: function bind(_ref3) {
var record = _ref3.record;
return record.get(AdvancedFieldSet.fieldName);
}
},
transformRequest: function transformRequest(value) {
if (_typeof(value) === 'object') {
return JSON.stringify(value);
}
return value;
},
transformResponse: function transformResponse(value) {
try {
return JSON.parse(value);
} catch (e) {
return value;
}
}
}].concat(_toConsumableArray(advancedFields)),
dataToJSON: DataToJSON.dirty,
events: {
update: function update(_ref4) {
var record = _ref4.record,
name = _ref4.name,
oldValue = _ref4.oldValue;
var fieldName = record.get(AdvancedFieldSet.fieldName);
var comparator = record.get(AdvancedFieldSet.comparator);
if ([OPERATOR.IS_NULL.value, OPERATOR.IS_NOT_NULL.value].includes(comparator)) {
record.set(fieldName, null);
}
if (name === AdvancedFieldSet.fieldName) {
record.set(oldValue, null);
if (comparator) {
record.init(AdvancedFieldSet.comparator, null);
}
}
}
}
};
};
export var QuickFilterDataSet = function QuickFilterDataSet(_ref5) {
var searchCode = _ref5.searchCode,
queryDataSet = _ref5.queryDataSet,
tableFilterAdapter = _ref5.tableFilterAdapter;
return {
paging: false,
autoQuery: false,
autoLocateFirst: false,
primaryKey: 'searchId',
transport: {
adapter: function adapter(config, type) {
return getTransportConfig({
config: config,
type: type,
searchCode: searchCode,
queryDataSet: queryDataSet,
tableFilterAdapter: tableFilterAdapter
});
}
},
fields: [{
name: 'searchName',
label: $l('Table', 'filter_name'),
type: 'string',
maxLength: 20,
required: true
}, {
name: 'searchId',
type: 'string'
}, // 条件逻辑值
{
name: 'conExpression',
type: 'string',
defaultValue: 'all',
// 兼容旧数据
transformResponse: function transformResponse(value) {
if (!value) {
return 'all';
}
return value;
},
transformRequest: function transformRequest(value) {
return value || 'all';
}
}, {
name: 'defaultFlag',
type: 'boolean',
falseValue: 0,
trueValue: 1,
label: $l('Table', 'set_default')
}, {
name: 'searchCode',
type: 'string',
defaultValue: searchCode
}, {
name: 'conditionList',
type: 'object'
}, {
name: 'saveFilterValue',
type: 'boolean',
falseValue: 0,
trueValue: 1,
defaultValue: 1,
// 默认保存筛选值,兼容旧数据
transformResponse: function transformResponse(value) {
if (value === 0) {
return 0;
}
return 1;
},
label: $l('Table', 'save_filter_value')
}, {
// 是否租户默认配置
name: 'isTenant',
type: 'boolean',
falseValue: 0,
trueValue: 1
}]
};
};
//# sourceMappingURL=QuickFilterDataSet.js.map