UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

133 lines (132 loc) 9.58 kB
"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