fastlion-amis
Version:
一种MIS页面生成工具
720 lines • 348 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CRUDRenderer = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var factory_1 = require("../factory");
var crud_1 = require("../store/crud");
var helper_1 = require("../utils/helper");
var Scoped_1 = require("../Scoped");
var Button_1 = (0, tslib_1.__importDefault)(require("../components/Button"));
var filter_schema_1 = (0, tslib_1.__importDefault)(require("../utils/filter-schema"));
var pick_1 = (0, tslib_1.__importDefault)(require("lodash/pick"));
var isEqual_1 = (0, tslib_1.__importDefault)(require("lodash/isEqual"));
var react_dom_1 = require("react-dom");
var tpl_1 = require("../utils/tpl");
var api_1 = require("../utils/api");
var omit_1 = (0, tslib_1.__importDefault)(require("lodash/omit"));
var findIndex_1 = (0, tslib_1.__importDefault)(require("lodash/findIndex"));
var Html_1 = (0, tslib_1.__importDefault)(require("../components/Html"));
var components_1 = require("../components");
var icons_1 = require("../components/icons");
var Table_1 = require("./Table");
var tpl_builtin_1 = require("../utils/tpl-builtin");
// Jay
var LabelPrint_1 = require("./Lion/LabelPrint");
var print_1 = require("../utils/print");
var LodopFuncs_1 = require("../utils/print/LodopFuncs");
var ExpressPrint_1 = require("./Lion/ExpressPrint/ExpressPrint");
var antd_1 = require("antd");
var ActionSheet_1 = (0, tslib_1.__importDefault)(require("../components/Lion/ActionSheet"));
var utils_1 = require("./Lion/utils/utils");
var util_1 = require("../utils/print/util");
var locale_1 = require("../locale");
var shell_1 = require("../utils/shell");
var utils_2 = require("../utils/utils");
var ScanOutlined_1 = (0, tslib_1.__importDefault)(require("@ant-design/icons/lib/icons/ScanOutlined"));
var gzip_1 = require("../utils/gzip");
var tools_1 = require("../utils/shell/tools");
var LoadingOutlined_1 = (0, tslib_1.__importDefault)(require("@ant-design/icons/lib/icons/LoadingOutlined"));
var BatchOperation_1 = require("../components/Lion/BatchOperation");
var VirtualTable_1 = (0, tslib_1.__importDefault)(require("../components/VirtualTable"));
var cloneDeep_1 = (0, tslib_1.__importDefault)(require("lodash/cloneDeep"));
var LionCopyItem_1 = (0, tslib_1.__importDefault)(require("./Lion/components/LionCopyItem"));
var sub_1 = require("../utils/sub");
var Workflow_1 = (0, tslib_1.__importDefault)(require("../components/Mobileprocess/Workflow"));
var shell_2 = require("../utils/shell/shell");
var lodash_1 = require("lodash");
var SecondFilterDrawer_1 = require("../components/table/SecondFilter/SecondFilterDrawer");
var antdCompoentsProxy_1 = require("../components/antdCompoentsProxy");
var storage_1 = require("../utils/storage");
var DefaultListPopup_1 = (0, tslib_1.__importDefault)(require("../components/Lion/DefaultListPopup"));
var icons_2 = require("@ant-design/icons");
var FingerprintModal_1 = (0, tslib_1.__importDefault)(require("../components/Lion/FingerprintModal"));
var xlsx_1 = require("../utils/xlsx");
var AiTool_1 = (0, tslib_1.__importDefault)(require("./Table/AiTool"));
// import modalStore from '../components/DragModal/modalStore';
var mobx_react_1 = require("mobx-react");
var tableCtxMenuStore_1 = (0, tslib_1.__importDefault)(require("./Table/tableCtxMenuStore"));
var commonTableFunction_1 = require("../store/utils/commonTableFunction");
var RfidUtil_1 = require("../utils/RfidUtil");
var DateRangePicker_1 = require("../components/DateRangePicker");
var DatePicker_1 = require("../components/DatePicker");
var moment_1 = (0, tslib_1.__importDefault)(require("moment"));
var OverflowWrapper_1 = (0, tslib_1.__importDefault)(require("../components/OverflowWrapper"));
// 不做处理的按钮类型
var specialButtonType = ['rfid-action'];
var CRUD = /** @class */ (function (_super) {
(0, tslib_1.__extends)(CRUD, _super);
function CRUD(props) {
var _a, _b, _c;
var _this = _super.call(this, props) || this;
_this.sort = false;
_this.saveData = new Map();
_this.startX = 0;
_this.startY = 0;
//离线的原始数据,用于重置按钮
_this.originOfflineData = [];
_this.offlineForm = react_1.default.createRef();
_this.hash = '';
_this.filterDrawerOpened = false;
_this.crudRef = react_1.default.createRef();
_this.fingerprintModalData = undefined;
_this.hasToolBars = false; //是否有工具栏判断
_this.getInitParam = function () {
var _a;
var __ = _this.props.translate;
var filterParam = {};
(_a = _this.props.filter) === null || _a === void 0 ? void 0 : _a.body.forEach(function (item) {
var _a, _b, _c;
var _d;
if (!(0, lodash_1.isNil)(item.value)) {
var key = (_d = item.name.split('.')) === null || _d === void 0 ? void 0 : _d[1];
var delimiter = item.delimiter || ',';
var format_1 = item.inputFormat || item.format;
if (['input-date-range', 'input-datetime-range', 'input-time-range'].includes(item.type)) {
var itemValue = item.value.includes(delimiter) ? item.value.split(delimiter)
.map(function (val) { return (0, tpl_builtin_1.filterDate)(val, undefined, format_1).format(format_1); }).join(delimiter) : item.value;
if (DateRangePicker_1.availableRanges[item.value]) {
var range = DateRangePicker_1.availableRanges[item.value];
var now = (0, moment_1.default)();
var startDate = range.startDate(now.clone()).format(format_1);
var endDate = range.endDate(now.clone()).format(format_1);
itemValue = [startDate, endDate].join(delimiter);
}
else {
// 通过正则尝试匹配
for (var i = 0, len = DateRangePicker_1.advancedRanges.length; i < len; i++) {
var value = DateRangePicker_1.advancedRanges[i];
var m = value.regexp.exec(item.value);
if (m) {
var range = value.resolve.apply(item.value, (0, tslib_1.__spreadArray)([__], m, true));
var now = (0, moment_1.default)();
var startDate = range.startDate(now.clone()).format(format_1);
var endDate = range.endDate(now.clone()).format(format_1);
itemValue = [startDate, endDate].join(delimiter);
}
}
}
filterParam = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, filterParam), (_a = {}, _a[key] = itemValue, _a));
}
else if (['input-date', 'input-datetime', 'input-time', 'input-month', 'input-quarter', 'input-year'].includes(item.type)) {
//实现时间点的解析
var itemValue = item.value.includes(delimiter) ? item.value : (0, tpl_builtin_1.filterDate)(item.value, undefined, format_1).format(format_1);
if (DatePicker_1.availableShortcuts[item.value]) {
var value = DatePicker_1.availableShortcuts[item.value];
var now = (0, moment_1.default)();
itemValue = value.date(now).format(format_1);
}
else {
for (var i = 0, len = DatePicker_1.advancedShortcuts.length; i < len; i++) {
var value = DatePicker_1.advancedShortcuts[i];
var m = value.regexp.exec(item.value);
if (m) {
var range = value.resolve.apply(item.value, (0, tslib_1.__spreadArray)([__], m, true));
var now = (0, moment_1.default)();
itemValue = range.date(now).format(format_1);
}
}
}
filterParam = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, filterParam), (_b = {}, _b[key] = itemValue, _b));
}
else {
filterParam = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, filterParam), (_c = {}, _c[key] = item.value, _c));
}
}
});
return filterParam;
};
_this.filterData = {};
// 判断条件是否是个合法空值 如果是 空 的情况 默认是true 如果不是 则判断 是不是 undefined null ''
_this.advancefilterValueIsLegalEmptyValue = function (item) {
return item.op !== 10 && ((0, lodash_1.isNil)(item.values) || item.values === '');
};
_this.calcToolActionsMaxCount = function () {
var toolActionsElement = _this.toolActionsRef.current;
if (toolActionsElement) {
var width = 0;
for (var i = 0; i < toolActionsElement.children.length; i++) {
var element = toolActionsElement.children.item(i);
width += element.clientWidth + 12;
if (width > toolActionsElement.clientWidth - 70) {
_this.setState({ toolChildMaxCount: i });
break;
}
}
}
};
// 处理高级查询条件 sub 和 普通的
_this.dealAdvacedCondition = function (advacedArr) {
return (advacedArr === null || advacedArr === void 0 ? void 0 : advacedArr.filter(function (item) {
if (_this.advancefilterValueIsLegalEmptyValue(item)) {
return false;
}
return true;
})) || [];
};
//记录当前选中行,以便再数据更新时向目标组件传送选中行的数据
_this.currentSelectedRow = 0;
_this.changeSelectedRow = function (index) {
if (index === void 0) { index = 0; }
_this.currentSelectedRow = index;
};
//获取全量数据,用于统计
_this.getAllData = function () { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
var _a, api, env, allData, params, optionsParam, paramsData, res;
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
return (0, tslib_1.__generator)(this, function (_p) {
switch (_p.label) {
case 0:
_a = this.props, api = _a.api, env = _a.env;
allData = {};
if (!api) return [3 /*break*/, 2];
params = {};
if (Object.keys(this.state.filtercont || {}).length) {
params = {
advancedFilter: this.dealAdvacedCondition((_b = this.state.filtercont) === null || _b === void 0 ? void 0 : _b.advancedFilter),
advancedFilterSub: this.dealAdvacedCondition((_c = this.state.filtercont) === null || _c === void 0 ? void 0 : _c.advancedFilterSub),
advancedHeader: (_d = this.state.filtercont) === null || _d === void 0 ? void 0 : _d.advancedHeader,
optionsParam: (_e = this.state.filtercont) === null || _e === void 0 ? void 0 : _e.optionsParam,
filterParam: (_f = this.state.filtercont) === null || _f === void 0 ? void 0 : _f.filterParam
};
if ((_g = this.state.filtercont) === null || _g === void 0 ? void 0 : _g.filterOptionData) {
optionsParam = ((_h = this.state.filtercont) === null || _h === void 0 ? void 0 : _h.filterOptionData).optionsParam;
params = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, params), optionsParam);
}
}
paramsData = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, params), { index: 1, filterParam: (_j = this.props.store.query) === null || _j === void 0 ? void 0 : _j.filterParam, topN: ((_l = (_k = this.state.filtercont) === null || _k === void 0 ? void 0 : _k.limitParam) === null || _l === void 0 ? void 0 : _l.limitStatus) ? (_o = (_m = this.state.filtercont) === null || _m === void 0 ? void 0 : _m.limitParam) === null || _o === void 0 ? void 0 : _o.topN : undefined });
return [4 /*yield*/, env.fetcher(api, (0, helper_1.createObject)(this.props.data, paramsData))];
case 1:
res = _p.sent();
if (res.ok && res.data) {
allData = res.data;
}
else {
allData = null;
antd_1.message.error(res.msg);
}
return [2 /*return*/, allData];
case 2: return [2 /*return*/, allData];
}
});
}); };
_this.dealCellValue = function (originValue, columnName) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
var columns = _this.props.columns;
var keepFormat = _this.state.keepDataFormat === '1';
var value = originValue;
var column = columns.find(function (column) { return column.name === columnName; });
var prefix = (_c = (_a = column.prefix) !== null && _a !== void 0 ? _a : (_b = column === null || column === void 0 ? void 0 : column.pristine) === null || _b === void 0 ? void 0 : _b.prefix) !== null && _c !== void 0 ? _c : '';
var suffix = (_f = (_d = column.suffix) !== null && _d !== void 0 ? _d : (_e = column === null || column === void 0 ? void 0 : column.pristine) === null || _e === void 0 ? void 0 : _e.suffix) !== null && _f !== void 0 ? _f : '';
if ((column === null || column === void 0 ? void 0 : column.type) === 'mapping') {
value = (_h = (_g = column === null || column === void 0 ? void 0 : column.map) === null || _g === void 0 ? void 0 : _g[originValue]) !== null && _h !== void 0 ? _h : (originValue !== null && originValue !== void 0 ? originValue : '');
}
else if ((column === null || column === void 0 ? void 0 : column.type) === 'number' && keepFormat) {
var kilobitSeparator = (_l = (_j = column.kilobitSeparator) !== null && _j !== void 0 ? _j : (_k = column === null || column === void 0 ? void 0 : column.pristine) === null || _k === void 0 ? void 0 : _k.kilobitSeparator) !== null && _l !== void 0 ? _l : false;
var precision = (_m = column.precision) !== null && _m !== void 0 ? _m : (_o = column === null || column === void 0 ? void 0 : column.pristine) === null || _o === void 0 ? void 0 : _o.precision;
if (kilobitSeparator && originValue != null) {
value = (0, helper_1.numberFormatter)(originValue, precision);
}
}
else if ((column === null || column === void 0 ? void 0 : column.type) === 'number' && !keepFormat) {
value = (0, lodash_1.isNil)(originValue) ? originValue : value / 100;
}
if (value != null) {
return typeof value == 'object' ? '[文件]' : "" + (keepFormat ? prefix : '') + (typeof value == 'string' ? value.replaceAll('\n', '').replaceAll('\r', '') : value) + (keepFormat ? suffix : '');
}
return '';
};
//导出统计数据
_this.handleExportStatic = function () {
var _a, _b, _c, _d;
var _e = _this.props, columns = _e.columns, data = _e.data;
var staticExportRange = _this.state.staticExportRange;
var selItems = [];
if (staticExportRange === '1') {
selItems = _this.getTableSelectedRowsData();
if (!selItems || selItems.length == 0) {
antd_1.message.warn('选中数据为空');
return;
}
}
var cols = columns.map(function (item) { return item.label; });
var excelData = (staticExportRange === '0' ? (_b = (_a = _this.tableStore) === null || _a === void 0 ? void 0 : _a.rows.map(function (row) { return row.data; })) !== null && _b !== void 0 ? _b : [] :
staticExportRange === '1' ? selItems :
data.itemsRaw).map(function (row) { return columns.map(function (item) { return _this.dealCellValue(row[item.name], item.name); }); });
(0, xlsx_1.exportXLSX)(cols, excelData, (((_d = (_c = _this.props.aliasTitle) === null || _c === void 0 ? void 0 : _c.trim) === null || _d === void 0 ? void 0 : _d.call(_c)) || '统计') + ".xlsx");
};
_this.handleExportCross = function () {
var _a, _b, _c;
var staticExportRange = _this.state.staticExportRange;
var tableHeadRows = _this.tableStore.tableHeadRows.map(function (row) { return row.filter(function (item) { return item.name != 'SF_CHECK' && item.name != 'SF_PSEUDO'; }); });
var columns = _this.tableStore.filteredColumns.filter(function (item) { return item.type !== '__checkme' && item.type != '__pseudoColumn'; });
var excelData = (0, lodash_1.flatMap)((_a = _this.tableStore.rows) !== null && _a !== void 0 ? _a : [], function (row) {
if (staticExportRange == '1') {
return row.checked ? row.data : [];
}
return row.data;
});
(0, xlsx_1.exportXLSXFromCross)(tableHeadRows, columns, excelData, (((_c = (_b = _this.props.aliasTitle) === null || _b === void 0 ? void 0 : _b.trim) === null || _c === void 0 ? void 0 : _c.call(_b)) || '交叉制表') + ".xlsx", _this.state.keepDataFormat === '1');
};
// 判断元素是否在小型弹窗里
_this.inSmallDialog = function () {
var _a, _b, _c;
return !!((_c = (_b = (_a = _this.crudRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.closest('div[role="dialog"]')) === null || _c === void 0 ? void 0 : _c.className.includes('Modal--sm'));
};
_this.markSort = function () {
_this.sort = true;
};
/**
*
* @param keepDataFormat 保留格式
* @param isTemplate 导出方式
*/
_this.handleExportDefault = function (keepDataFormat, exportType, exportRangeAll, exportFields) {
var _a, _b, _c, _d, _e;
var tableHeadRows = _this.tableStore.tableHeadRows.map(function (row) { return row.filter(function (item) { return item.column.type !== 'lion-upload' && item.name != 'SF_CHECK' && item.name != 'SF_PSEUDO' && item.name !== 'operation'; }); });
var columns = _this.tableStore.filteredColumns.filter(function (item) { return item.type !== 'lion-upload' && item.type !== '__checkme' && item.type != '__pseudoColumn' && item.name !== 'operation'; });
if (exportType === 'template' && (exportFields === null || exportFields === void 0 ? void 0 : exportFields.length)) {
var exportCols_1 = [];
var cols_1 = (_a = _this.tableStore) === null || _a === void 0 ? void 0 : _a.columns;
exportFields.forEach(function (item) {
var targetItem = cols_1 === null || cols_1 === void 0 ? void 0 : cols_1.find(function (col) { return col.name === item; });
if (targetItem)
exportCols_1.push(targetItem);
});
tableHeadRows = (0, commonTableFunction_1.getHeadRows)(exportCols_1).map(function (row) {
return row.filter(function (item) { return item.column.type !== 'lion-upload' && item.name != 'SF_CHECK' && item.name != 'SF_PSEUDO' && item.name !== 'operation' && item.name && exportFields.includes(item.name); });
});
columns = exportCols_1.filter(function (item) { return item.type !== 'lion-upload' && item.type !== '__checkme' && item.type != '__pseudoColumn' && item.name !== 'operation' && item.name && exportFields.includes(item.name); });
}
var excelData = (_c = (_b = _this.tableStore) === null || _b === void 0 ? void 0 : _b.rows.filter(function (row) { return exportRangeAll || row.checked; }).map(function (row) { return row.data; })) !== null && _c !== void 0 ? _c : [];
(0, xlsx_1.exportXLSXFromCross)(tableHeadRows, columns, excelData, (((_e = (_d = _this.props.aliasTitle) === null || _d === void 0 ? void 0 : _d.trim) === null || _e === void 0 ? void 0 : _e.call(_d)) || '导出') + ".xlsx", keepDataFormat);
};
_this.handleJump = function (body) {
var _a;
if (body.redirectType === '2') {
_this.props.env.fetcher(body.linkUrl, body.bodydata).then(function (res) {
if (res.ok && res.data != null) {
_this.setState({ flowModalProps: { flowDetail: res.data }, flowModalVisible: true });
}
else {
antd_1.message.error(res.msg);
}
});
return;
}
var types = (0, helper_1.isMobile)() ? 'drawer' : 'dialog';
var action = {
type: "action",
actionType: types,
close: true
};
action[types] = {
showLoading: (0, helper_1.isMobile)(),
title: body.linkTitle,
type: types,
size: (_a = body.linkSize) !== null && _a !== void 0 ? _a : 'lg',
bodyClassName: "overflow-y-auto max-h-nestSide-" + types,
className: "h-full",
actions: [],
overlay: (0, helper_1.isMobile)() ? false : true,
body: {
schemaApi: {
"method": "get",
"url": body.linkUrl
},
type: "service"
}
};
_this.handleAction(_this.props.e, action, body.bodydata);
};
// 表格数据获取统一规范一下
_this.getTableRowsData = function () {
var _a;
return ((_a = _this.tableStore) === null || _a === void 0 ? void 0 : _a.rows.map(function (row) { return row.data; })) || _this.props.store.data.items || [];
};
_this.getTableSelectedRowsData = function () {
var _a;
return ((_a = _this.tableStore) === null || _a === void 0 ? void 0 : _a.selectedRows.map(function (row) { return row.data; })) || _this.props.store.selectedItems.concat() || [];
};
// 上拉加载更多数据
_this.lionPullRequest = function (values, init) {
return new Promise(function (resolve, reject) {
var _a;
var _b, _c;
var _d = _this.props, defaultParams = _d.defaultParams, data = _d.data, store = _d.store;
var _e = _this.props, syncLocation = _e.syncLocation, pageField = _e.pageField, perPageField = _e.perPageField;
values = syncLocation
? (0, helper_1.qsparse)((0, helper_1.qsstringify)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultParams), values), store.query), undefined, true))
: values;
store.changePage(init ? store.page : store.page + 1, (0, helper_1.isMobile)() ? (((_c = (_b = _this.props) === null || _b === void 0 ? void 0 : _b.perPage) !== null && _c !== void 0 ? _c : 10) < 20 ? 20 : _this.props.perPage) : _this.props.perPage);
store.updateQuery((0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), (_a = {}, _a[pageField || 'page'] = store.page, _a)), undefined, pageField, perPageField);
_this.search({ page: store.page, loadDataMode: 'load-more' }, undefined, false, undefined, resolve, reject);
store.setPristineQuery();
});
};
_this.handleLoadMore = function () {
// if (!this.props.loadDataOnce) {
_this.search({ page: _this.props.store.page + 1, loadDataMode: 'load-more' });
// }
};
//移动端刷新或查询时需要滚动到顶部,不然会逐页请求数据
_this.handleScrollToTop = function () {
if ((0, helper_1.isMobile)()) {
var classPrefix = _this.props.classPrefix;
var crud = (0, react_dom_1.findDOMNode)(_this);
var container = crud.querySelector("." + classPrefix + "Table-content");
if (container) {
container.scrollTo({ top: 0 });
}
var Listitems = crud.querySelector("." + classPrefix + "List-items");
if (Listitems) {
Listitems.scrollTo({ top: 0 });
}
}
};
//刷新数据,带查询条件
_this.handleResetData = function () {
_this.handleScrollToTop();
_this.search({ page: 1 });
};
_this.handleSelectStructure = function (select) {
var newArray = [];
var pushChildren = function (item, newArray) {
newArray.push(item);
if (item.children && item.children.length > 0) {
item.children.forEach(function (child) {
pushChildren(child, newArray);
});
}
};
select.forEach(function (item) {
pushChildren(item, newArray);
});
return newArray;
};
_this.handleOptions = function (body) {
var columns = _this.props.columns;
var optionsParam = (0, cloneDeep_1.default)(body);
var compare1 = columns.map(function (item) { return item.name; });
var compare2 = optionsParam === null || optionsParam === void 0 ? void 0 : optionsParam.showFields;
if (compare1 && compare2 && (0, isEqual_1.default)(compare1, compare2)) {
optionsParam.showFields = [];
}
return optionsParam;
};
_this.bulkActionRender = function (btn, index) {
var _a, _b, _c, _d;
var _e = _this.props, render = _e.render, store = _e.store, fullDataApi = _e.fullDataApi, primaryField = _e.primaryField;
var ctx = store.mergedData;
var selectedItems = _this.getTableSelectedRowsData();
var unSelectedItems = store.unSelectedItems;
var ids = selectedItems.map(function (item) {
return item.hasOwnProperty(primaryField) ? item[primaryField] : null;
}).filter(function (item) { return item; }).join(',');
return render("bulk-action/" + index, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (0, omit_1.default)(btn, ['visibleOn', 'hiddenOn', 'disabledOn'])), { type: specialButtonType.includes(btn.type) ? btn.type : 'button', ignoreConfirm: true, hidden: false }), {
key: "bulk-" + index,
data: (0, helper_1.extendObject)(store.data, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, ctx), { ids: ids })),
filterData: _this.state.filterData,
fullDataApi: fullDataApi,
disabled: btn.disabled ||
(btn.requireSelected !== false ? ((0, helper_1.isMobile)() && (0, lodash_1.isObject)((_b = (_a = btn) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.data) && Object.keys((_d = (_c = btn) === null || _c === void 0 ? void 0 : _c.api) === null || _d === void 0 ? void 0 : _d.data).includes('SELECTION_IDS') && selectedItems.length > 0 ? false : !selectedItems.length) : false),
onAction: function (e, action) {
return _this.handleBulkAction(selectedItems.concat(), unSelectedItems.concat(), e, action, btn);
}
});
};
_this.exchangeMode = function () {
var _a = _this.props, listItem = _a.listItem, card = _a.card, cross = _a.cross;
var modes = _this.state.modes;
if (card && listItem && cross) {
return;
}
if (modes == 'table' || modes == undefined) {
_this.setState({ modes: listItem ? 'list' : cross ? 'cross' : 'cards' }, _this.handleFakeAnimation);
}
else {
_this.setState({ modes: 'table' }, _this.handleFakeAnimation);
}
};
//函数防抖,3s内只触发第一次
_this.debounceChangeMode = (0, lodash_1.debounce)(_this.exchangeMode.bind(_this), 3000, { leading: true, trailing: false });
_this.handleFakeAnimation = (0, lodash_1.debounce)(function () {
// // 加载假动画 在线上没问题amis上有问题
setTimeout(function () {
var _a, _b, _c;
(_c = (_b = (_a = _this.control) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.setLoading) === null || _c === void 0 ? void 0 : _c.call(_b, true);
}, 0);
setTimeout(function () {
var _a, _b, _c;
(_c = (_b = (_a = _this.control) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.setLoading) === null || _c === void 0 ? void 0 : _c.call(_b, false);
}, 1000);
}, 1000);
_this.toolBarAction = function () {
_this.reload(undefined, undefined, undefined);
};
_this.renderReload = function (toolbar, index) {
var _a = _this.props, render = _a.render, __ = _a.translate;
if (toolbar.isToolBar && (0, helper_1.isMobile)()) {
return (react_1.default.createElement("div", { className: 'toolbar-item', onClick: function () { return _this.toolBarAction(); } },
react_1.default.createElement("div", { className: 'toolbar-item-icon' },
react_1.default.createElement(icons_1.Icon, { icon: toolbar.icon })),
react_1.default.createElement("div", { className: 'toolbar-item-name' }, __('reload'))));
}
else {
var reloadButton = {
label: '',
icon: toolbar.icon,
tooltip: __('reload'),
tooltipPlacement: 'top',
type: 'button'
};
if (typeof toolbar === 'object') {
reloadButton = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, reloadButton), (0, omit_1.default)(toolbar, ['type', 'align']));
}
return render("toolbar/" + index, reloadButton, {
onAction: _this.toolBarAction
});
}
};
_this.filtBoolean = function () {
var _a, _b, _c, _d;
var filt = _this.state.filtercont;
return ((_b = (_a = _this.tableStore) === null || _a === void 0 ? void 0 : _a.filterColumns) === null || _b === void 0 ? void 0 : _b.size) > 0 || (filt && Object.keys(filt || {}).length && (((_c = filt === null || filt === void 0 ? void 0 : filt.advancedFilter) === null || _c === void 0 ? void 0 : _c.length) || ((_d = filt === null || filt === void 0 ? void 0 : filt.advancedFilterSub) === null || _d === void 0 ? void 0 : _d.length) || Object.keys((filt === null || filt === void 0 ? void 0 : filt.advancedHeader) || {}).length) ? true : false);
};
// 展示头部判断
_this.headerCanShow = function () {
var _a = _this.props, header = _a.header, filter = _a.filter;
return !!header || !!filter || _this.filtBoolean();
};
// Jay
_this.getTableStore = function (store) {
_this.tableStore = store;
};
_this.handleAdvanceSearch = function () { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
var res, confirmData, key, _a, filter_1, _b, body, filterParam_1, filterNameArr, isFilterPause, queryParams, optionsParam, rawShowFields, itemCount, itemSumCount, showFields_1, sortFields, groupByFields, allInclude, _c, advancedFilterVisible, filterExist;
var _this = this;
var _d, _e, _f;
return (0, tslib_1.__generator)(this, function (_g) {
switch (_g.label) {
case 0: return [4 /*yield*/, this.advanceFilterForm.validate()];
case 1:
res = _g.sent();
confirmData = (_d = this.advanceFilterForm) === null || _d === void 0 ? void 0 : _d.confirmAdvancedFilter();
// 移动端的确认逻辑与PC端区别开
if ((0, helper_1.isMobile)()) {
//删除filterParam值为空字符串的属性
if (confirmData.filterParam) {
for (key in confirmData.filterParam) {
if (Object.prototype.hasOwnProperty.call(confirmData.filterParam, key)) {
if (confirmData.filterParam[key] === '') {
delete confirmData.filterParam[key];
}
}
}
}
// 如果校验没有通过,查看是快速查询还是高级查询没有通过校验,与底下的逻辑区分开
if (!res) {
_a = this.props.filter, filter_1 = _a === void 0 ? {} : _a;
_b = filter_1.body, body = _b === void 0 ? [] : _b;
filterParam_1 = confirmData.filterParam;
filterNameArr = body.filter(function (bodyItem) { return bodyItem === null || bodyItem === void 0 ? void 0 : bodyItem.required; }).map(function (item) { var _a, _b; return (_b = (_a = item === null || item === void 0 ? void 0 : item.name) === null || _a === void 0 ? void 0 : _a.split('.')) === null || _b === void 0 ? void 0 : _b.pop(); });
isFilterPause = filterNameArr.some(function (name) { return (0, lodash_1.isNil)(filterParam_1[name]) || !filterParam_1[name].length; });
// filterParamStatus = !isFilterPause;
// 如果是高级查询模式下,直接return
if (this.state.advancedFilterAction) {
return [2 /*return*/];
}
else {
if (isFilterPause)
return [2 /*return*/];
}
}
}
else {
if (!res)
return [2 /*return*/];
}
this.handleScrollToTop();
queryParams = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, confirmData), { page: 1 });
optionsParam = (_e = queryParams === null || queryParams === void 0 ? void 0 : queryParams.filterOptionData) === null || _e === void 0 ? void 0 : _e.rawOptionsParams;
rawShowFields = (_f = queryParams === null || queryParams === void 0 ? void 0 : queryParams.filterOptionData) === null || _f === void 0 ? void 0 : _f.rawShowFields;
if (queryParams === null || queryParams === void 0 ? void 0 : queryParams.limitParam.limitStatus) {
queryParams = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, queryParams), { topN: queryParams.limitParam.topN });
}
else {
queryParams = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, queryParams), { topN: undefined });
}
if (this.advancedMode == 'normal' || this.advancedMode == 'popup-normal') {
itemCount = optionsParam.itemCount, itemSumCount = optionsParam.itemSumCount, showFields_1 = optionsParam.showFields, sortFields = optionsParam.sortFields, groupByFields = optionsParam.groupByFields;
if (!itemCount && !itemSumCount) {
if (rawShowFields.length == 0) {
antd_1.message.warning('显示字段不能为空');
return [2 /*return*/];
}
}
if (sortFields.length > 0 && groupByFields.length > 0) {
allInclude = sortFields.every(function (sortField) { return showFields_1.some(function (showField) { return sortField.includes(showField); }); });
if (!allInclude) {
antd_1.message.warning('同时使用排序和分组时,排序字段必须出现在显示字段中');
return [2 /*return*/];
}
}
}
_c = this.state, advancedFilterVisible = _c.advancedFilterVisible, filterExist = _c.filterExist;
if ((0, helper_1.isMobile)() && advancedFilterVisible && filterExist) {
this.setState({ filterExist: false });
}
this.props.store.updateQuery(queryParams);
this.setState({ filtercont: queryParams }, function () {
var _a, _b, _c, _d;
_this.handlefilters();
_this.search(undefined, undefined, undefined, true, function (res) {
if (optionsParam === null || optionsParam === void 0 ? void 0 : optionsParam.itemCount) {
if (res.status === 0) {
var count = res.data.items[0]['ITEM_NUMBER'];
if (count) {
antd_1.Modal.info({ icon: null, title: '提示', content: "\u9879\u6570: " + count, okText: '确定' });
}
}
}
}, undefined, undefined, queryParams);
_this.filterDrawerOpened = false;
(_b = (_a = _this.tableStore) === null || _a === void 0 ? void 0 : _a.filterColumns) === null || _b === void 0 ? void 0 : _b.clear();
(_d = (_c = _this.tableStore) === null || _c === void 0 ? void 0 : _c.orderColumns) === null || _d === void 0 ? void 0 : _d.clear();
_this.setState({ showColumnsFilter: false });
});
this.hideAdvancedFilter();
return [2 /*return*/];
}
});
}); };
_this.renderAdvancedFilterAction = (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("span", { style: { display: 'inline-block', marginRight: 10 } },
react_1.default.createElement(Button_1.default, { onClick: function (e) {
var _a;
(_a = _this.advanceFilterForm) === null || _a === void 0 ? void 0 : _a.resetIsModleFilter(e);
} }, _this.props.translate('reset'))),
react_1.default.createElement(Button_1.default, { level: "primary", onClick: function () { _this.handleAdvanceSearch(); } }, _this.props.translate('confirm'))));
_this.renderAdvancedModalFooter = function () {
var _a = _this.state, defaultList = _a.defaultList, templateSwitch = _a.templateSwitch, filtertpl = _a.filtertpl;
return react_1.default.createElement("div", { className: 'defaultModal-footer' },
!(0, helper_1.isMobile)() && react_1.default.createElement("div", { className: 'defaultModal-footer-left' },
react_1.default.createElement(Button_1.default, { level: "primary", disabled: templateSwitch, onClick: function () {
_this.setState({
templateSwitch: true,
multipleDefault: '',
defaultTempKey: ''
});
} }, "+ \u65B0\u589E\u9ED8\u8BA4"),
templateSwitch ? react_1.default.createElement("div", { className: 'template-name' },
react_1.default.createElement(antd_1.Input, { placeholder: "\u8BF7\u8F93\u5165\u6A21\u7248\u540D\u79F0", onChange: function (e) { var _a; return _this.setState({ multipleDefault: (_a = e.target.value) !== null && _a !== void 0 ? _a : '' }); } }),
react_1.default.createElement(Button_1.default, { onClick: function () {
_this.defaultOnOk();
_this.setState({ templateSwitch: false });
} },
react_1.default.createElement(icons_2.CheckOutlined, null)),
react_1.default.createElement(Button_1.default, { onClick: function () {
var _a, _b;
_this.setState({
templateSwitch: false,
multipleDefault: (_a = defaultList === null || defaultList === void 0 ? void 0 : defaultList[0]) === null || _a === void 0 ? void 0 : _a.tempName,
defaultTempKey: (_b = defaultList === null || defaultList === void 0 ? void 0 : defaultList[0]) === null || _b === void 0 ? void 0 : _b.tempKey
});
} },
react_1.default.createElement(icons_2.CloseOutlined, null))) :
react_1.default.createElement("div", null, defaultList.length > 0 &&
react_1.default.createElement(antd_1.Select
// allowClear={true}
, {
// allowClear={true}
className: 'defaultModal-select-content', dropdownClassName: "dropdown-select-style", bordered: true, placeholder: '\u5168\u90E8', style: { textAlign: 'left' }, getPopupContainer: _this.props.env.getModalContainer, defaultActiveFirstOption: true, suffixIcon: react_1.default.createElement(icons_1.Icon, { symbol: true, icon: '#icon-tooltool_down', className: "icon" }),
// defaultValue={defaultList.length > 0 ? defaultList[0].tempName : ''}
value: defaultList.length > 0 ? defaultList[0].tempKey : '', onSelect: function (value) {
var item = defaultList.find(function (item) { return item.tempKey == value; });
_this.defaultTemplate(item.tempKey, item.tempName);
_this.defaultOnOk(item.tempName, item.tempKey);
}, onChange: function (value) {
if (defaultList[0].tempKey == value)
return;
var item = defaultList.find(function (item) { return item.tempKey == value; });
_this.defaultAdvancedQuery(2, { tempName: item.tempName, tempKey: item.tempKey });
} }, defaultList.map(function (item) { return (react_1.default.createElement(antd_1.Select.Option, { value: item.tempKey, key: item.tempKey, className: 'defaultModal-select-content-option' },
react_1.default.createElement("div", { className: 'defaultModal-select-content-option-tempName' }, item.tempName),
react_1.default.createElement("div", { className: 'defaultModal-select-content-option-click', onClick: function (e) { return e.stopPropagation(); } },
react_1.default.createElement(icons_2.EditOutlined, { onClick: function (e) { return _this.defaultModify(e, item.tempKey, item.tempName); } }),
react_1.default.createElement("div", null,
react_1.default.createElement(antd_1.Popconfirm, { title: "\u786E\u5B9A\u8981\u5220\u9664\u5417?", onConfirm: function () { return _this.defaultDelete(item.tempKey); }, okText: _this.props.translate('confirm'), cancelText: _this.props.translate('cancel') },
react_1.default.createElement(icons_2.DeleteOutlined, null)))))); })))),
react_1.default.createElement("div", { className: 'defaultModal-footer-right' },
_this.props.advancedFilterApi && react_1.default.createElement(react_1.default.Fragment, null,
// 2025-02 更新逻辑为 有默认模版列表则显示设置默认按钮
(defaultList === null || defaultList === void 0 ? void 0 : defaultList.length) ? (react_1.default.createElement("span", { style: { display: 'inline-block', marginRight: 10 } },
react_1.default.createElement(Button_1.default, { disabled: templateSwitch, level: "primary", onClick: function () {
(0, helper_1.isMobile)() && _this.setState({ defaultVisible: true });
!(0, helper_1.isMobile)() && defaultList.length > 0 && _this.defaultOnOk(false, false, true);
// this.defaultAdvancedQuery(2)
} }, _this.props.translate('default')))) : null,
(0, helper_1.isMobile)() &&
(react_1.default.createElement("span", { style: { display: 'inline-block', marginRight: 10 } },
react_1.default.createElement(Button_1.default, { className: 'default-select', onClick: function () {
// this.defaultAdvancedQuery(1)
defaultList.length > 0 && _this.setState({ selectTmpShow: true });
} },
react_1.default.createElement("div", { className: "text" },
" ",
_this.state.multipleDefault || _this.props.translate('application'),
" "),
react_1.default.createElement(icons_2.DownOutlined, null))))),
react_1.default.createElement("span", { style: { display: 'inline-block', marginRight: 10 } },
react_1.default.createElement(Button_1.default, { onClick: function () {
var _a, _b;
(_a = _this.advanceFilterForm) === null || _a === void 0 ? void 0 : _a.resetAdvancedOptionsFilter();
(_b = _this.advanceFilterForm) === null || _b === void 0 ? void 0 : _b.resetAdvancedFilter();
} }, _this.props.translate('reset'))),
react_1.default.createElement(Button_1.default, { level: "primary", onClick: _this.handleAdvanceSearch }, _this.props.translate('confirm'))));
};
_this.handleTableRotate = function () {
var tableRotate = _this.state.tableRotate;
var classPrefix = _this.props.classPrefix;
_this.setState({ tableRotate: !tableRotate, toolChildMaxCount: undefined }, function () {
_this.calcToolActionsMaxCount();
if (tools_1.tools.isIOS) {
var crud = (0, react_dom_1.findDOMNode)(_this);
var container_1 = crud.querySelector("." + classPrefix + "Table-content");
setTimeout(function () {
var origin = container_1.scrollLeft;
container_1.scrollTo({ left: origin + 1 });
}, 800);
}
});
};
_this.clearSelectedItems = function () {
_this.props.store.setSelectedItems([]);
};
_this.getQueryStatus = function () {
return _this.state.queryStatus;
};
_this.handleAdvanced = function () {
var _a = _this.props, render = _a.render, __ = _a.translate, advancedFilter = _a.advancedFilte