fastlion-amis
Version:
一种MIS页面生成工具
133 lines (132 loc) • 9.58 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SimpleSpan = exports.fakeQuickEdit = exports.SimpleSpanType = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var antd_1 = require("antd");
var components_1 = require("../../../components");
var lodash_1 = require("lodash");
var helper_1 = require("../../../utils/helper");
var Switch_1 = (0, tslib_1.__importDefault)(require("../../Form/Switch"));
var InputDate_1 = (0, tslib_1.__importDefault)(require("../../Form/InputDate"));
var Mapping_1 = require("../../Mapping");
var InputText_1 = (0, tslib_1.__importDefault)(require("../../Form/InputText"));
var InputNumber_1 = (0, tslib_1.__importDefault)(require("../../Form/InputNumber"));
var locale_1 = require("../../../locale");
var tpl_1 = require("../../../utils/tpl");
var sub_1 = require("../../../utils/sub");
var Formula_1 = require("../../Form/Formula");
var SimpleSpanType;
(function (SimpleSpanType) {
SimpleSpanType["Switch"] = "switch";
SimpleSpanType["InputDate"] = "input-date";
SimpleSpanType["Mapping"] = "mapping";
SimpleSpanType["InputText"] = "input-text";
SimpleSpanType["InputNumber"] = "input-number";
SimpleSpanType["LionFormula"] = "lion-formula";
})(SimpleSpanType = exports.SimpleSpanType || (exports.SimpleSpanType = {}));
// 样式缓存 防止你每次都重新渲染
var ClassCache = {};
exports.fakeQuickEdit = [SimpleSpanType.Switch, SimpleSpanType.InputText, SimpleSpanType.InputNumber, SimpleSpanType.InputDate];
var createClass = function (classNames, classFn) {
if (ClassCache[classNames.join(' ')])
return ClassCache[classNames.join(' ')];
else {
ClassCache[classNames.join(' ')] = classFn.apply(void 0, classNames);
return ClassCache[classNames.join(' ')];
}
};
var SimpleSpan = function (_a) {
var _b, _c, _d, _e, _f;
var render = _a.render, tableId = _a.tableId, itemIndex = _a.itemIndex, value = _a.value, multiple = _a.multiple, column = _a.column, ns = _a.ns, item = _a.item, cx = _a.cx;
var pristine = column.pristine;
var simpleTextRef = (0, react_1.useRef)(null);
// const [isOverflow, setIsOverflow] = useState(false)
// const [popOverVisable, setPopOverVisable] = useState(false)
var prefix = pristine.prefix, suffix = pristine.suffix, kilobitSeparator = pristine.kilobitSeparator, precision = pristine.precision, _g = pristine.showUppercase, showUppercase = _g === void 0 ? 0 : _g;
var baseParam = { classnames: cx, value: value, classPrefix: ns || 'cxd-' };
var editCellParam = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, item), column.pristine), column.pristine.quickEdit), baseParam);
var cellParam = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, item), column.pristine), baseParam);
var valueType = typeof value;
var disabled = column.pristine.disabledOn && (0, tpl_1.evalExpression)(column.pristine.disabledOn, item.data); // 快速编辑条件
var canEdit = !disabled && (!column.pristine.quickEditEnabledOn || (0, tpl_1.evalExpression)(column.pristine.quickEditEnabledOn, item.data)); // 快速编辑条件
// 如果有快速编辑 快速编辑优先返回
if (column.pristine.quickEdit && canEdit && exports.fakeQuickEdit.includes(editCellParam.type)) {
var quickEditCell = void 0;
switch (editCellParam.type) {
case SimpleSpanType.Switch:
quickEditCell = react_1.default.createElement(Switch_1.default, (0, tslib_1.__assign)({}, editCellParam));
break;
case SimpleSpanType.InputText:
quickEditCell = react_1.default.createElement(InputText_1.default, (0, tslib_1.__assign)({ onChange: function () {
var _a;
sub_1.EventSub.emit(tableId + "/" + sub_1.EventEnum.ShowVistiMap, itemIndex + 1, (_a = item.data) === null || _a === void 0 ? void 0 : _a.colIndex, true);
}, selectedOptions: [], className: 'Form-control', translate: (0, locale_1.makeTranslator)() }, editCellParam));
break;
case SimpleSpanType.InputNumber:
quickEditCell = react_1.default.createElement(InputNumber_1.default, (0, tslib_1.__assign)({ onChange: function () {
var _a;
sub_1.EventSub.emit(tableId + "/" + sub_1.EventEnum.ShowVistiMap, itemIndex + 1, (_a = item.data) === null || _a === void 0 ? void 0 : _a.colIndex, true);
}, className: 'Form-control', translate: (0, locale_1.makeTranslator)() }, editCellParam));
break;
case SimpleSpanType.InputDate:
quickEditCell = react_1.default.createElement(InputDate_1.default, (0, tslib_1.__assign)({ strictMode: false, timeFormat: '', dateFormat: 'YYYY-MM-DD', placeholder: 'Date.placeholder' }, editCellParam));
break;
}
if (quickEditCell) {
return react_1.default.createElement("div", { style: { width: editCellParam.width }, className: createClass(['Form', 'Form--normal', 'Form--quickEdit'], cx) },
react_1.default.createElement("div", { "data-role": "form-item", className: createClass(['Form-item', 'Form-item--normal', 'ReadOnly-item'], cx) }, quickEditCell));
}
}
switch (column.type) {
// 检查特殊处理 没有移上去就不用那么复杂的样式
case '__checkme': {
return react_1.default.createElement(components_1.Checkbox, { classPrefix: ns, type: multiple ? 'checkbox' : 'radio', checked: item === null || item === void 0 ? void 0 : item.checked, disabled: !!!(item === null || item === void 0 ? void 0 : item.checkable) });
}
// 公式简单标识
case SimpleSpanType.LionFormula: {
return react_1.default.createElement(Formula_1.FormulaTplControlRenderer, (0, tslib_1.__assign)({ onChange: function () { } }, cellParam, { render: render }));
}
// 键值对类型特殊处理
case SimpleSpanType.Mapping: {
return react_1.default.createElement(Mapping_1.MappingField, (0, tslib_1.__assign)({}, cellParam, { render: render }));
}
// 图片特殊处理-已弃用 因为需求要求不切回去 简单的就没什么用了
case 'lion-upload': {
return react_1.default.createElement("div", null,
" ",
((_c = (_b = value === null || value === void 0 ? void 0 : value.info) === null || _b === void 0 ? void 0 : _b.map) === null || _c === void 0 ? void 0 : _c.call(_b, function (_) {
return react_1.default.createElement("img", { width: 28, height: 28, key: _.thumbnailAddr || _.src, onError: function (event) {
var _a;
try {
if ((_a = event.target) === null || _a === void 0 ? void 0 : _a.style)
event.target.style.opacity = 0;
}
catch (_b) { }
}, src: _.thumbnailAddr || _.src });
})) || null);
}
// 操作栏特殊处理-已弃用 主要因为样式和功能太难对
case 'operation': {
return react_1.default.createElement("div", { className: createClass(['OperationField'], cx) }, (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (_f = (_e = (_d = pristine.buttons) === null || _d === void 0 ? void 0 : _d.slice) === null || _e === void 0 ? void 0 : _e.call(_d, 0, pristine.num)) === null || _f === void 0 ? void 0 : _f.map(function (_) {
var buttonDisable = (0, tpl_1.evalExpression)(_.disabledOn, item.data);
// console.log(_, buttonDisable)
return react_1.default.createElement(antd_1.Button, { disabled: buttonDisable, className: createClass(['Button', buttonDisable ? 'is-disabled' : '', "Button--" + _.level, 'date-range-confirm', "Button--" + _.size], cx), key: _.label, type: 'text' }, _.label);
}), true), [column.pristine.num < column.pristine.buttons.length ? react_1.default.createElement("span", { className: createClass(['Button--link', 'extendBtn', 'rotate'], cx) }, '···') : ''], false));
}
}
switch (valueType) {
case 'object':
// 空值返回 '-'
if (value === undefined || value === null)
return react_1.default.createElement("div", { style: { width: editCellParam.width, display: 'contents' } },
react_1.default.createElement("span", null, " - "));
return react_1.default.createElement("span", null, '复杂类型');
default:
var showValue = !(0, lodash_1.isNil)(value) ? (0, helper_1.standardValueText)(value, { prefix: prefix, suffix: suffix, kilobitSeparator: kilobitSeparator, precision: precision, showUppercase: showUppercase }) : '';
return react_1.default.createElement("div", { className: createClass(['Tpltab'], cx), style: { width: '100%' } },
react_1.default.createElement("span", { ref: simpleTextRef, title: showValue, className: createClass(['PlainField'], cx) }, showValue));
}
};
exports.SimpleSpan = SimpleSpan;
//# sourceMappingURL=./renderers/Table/simpleTableCell/SimpleMapping.js.map