zmdms-webui 3.5.2 → 3.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/applayoutheader/setting/fullCom.js +5 -1
- package/dist/es/applayoutheader/setting/userInfo.js +9 -5
- package/dist/es/applayoutheader/setting/userInfoModal.js +18 -12
- package/dist/es/applayoutheader/setting/userPwdModal.js +19 -13
- package/dist/es/applayoutheader/tabs/index.js +10 -6
- package/dist/es/applayoutsider/menu/Logo.js +5 -1
- package/dist/es/applayoutsider/menu/SearchInput.js +6 -2
- package/dist/es/applayoutsider/menu/SubMenu.js +6 -2
- package/dist/es/asyncdynamicsetting/asyncDynamicDrawer.js +2 -0
- package/dist/es/asyncdynamicsetting/useAsyncDrawer.js +2 -0
- package/dist/es/button/button.js +4 -2
- package/dist/es/button/buttonDownload.js +6 -4
- package/dist/es/button/buttonExport.js +8 -4
- package/dist/es/button/buttonPreview.js +6 -3
- package/dist/es/canvastable/canvasTable.js +33 -29
- package/dist/es/canvastable/components/CanvasTableMenu.js +5 -1
- package/dist/es/canvastable/components/FilterPopover.js +15 -11
- package/dist/es/canvastable/hooks/useProcessedColumns.js +7 -2
- package/dist/es/canvastable/hooks/useSummaryRow.js +6 -2
- package/dist/es/canvastable/hooks/useTableRender.js +5 -1
- package/dist/es/chatroom/chat-room.js +8 -3
- package/dist/es/config/i18n/en/appLayoutHeader.js +70 -0
- package/dist/es/config/i18n/en/appLayoutSider.js +14 -0
- package/dist/es/config/i18n/en/asyncDynamicSetting.js +42 -0
- package/dist/es/config/i18n/en/authLoading.js +6 -0
- package/dist/es/config/i18n/en/button.js +14 -0
- package/dist/es/config/i18n/en/canvasTable.js +50 -0
- package/dist/es/config/i18n/en/chatRoom.js +14 -0
- package/dist/es/config/i18n/en/datePicker.js +22 -0
- package/dist/es/config/i18n/en/detailList.js +6 -0
- package/dist/es/config/i18n/en/differences.js +6 -0
- package/dist/es/config/i18n/en/dynamicSetting.js +72 -0
- package/dist/es/config/i18n/en/electronSignatures.js +173 -0
- package/dist/es/config/i18n/en/enhanceSelect.js +8 -0
- package/dist/es/config/i18n/en/footer.js +8 -0
- package/dist/es/config/i18n/en/form.js +26 -0
- package/dist/es/config/i18n/en/formItem.js +8 -0
- package/dist/es/config/i18n/en/inputNumber.js +7 -0
- package/dist/es/config/i18n/en/login.js +76 -0
- package/dist/es/config/i18n/en/modal.js +8 -0
- package/dist/es/config/i18n/en/notAuthPage.js +8 -0
- package/dist/es/config/i18n/en/notRoutePage.js +8 -0
- package/dist/es/config/i18n/en/operationBtn.js +10 -0
- package/dist/es/config/i18n/en/print.js +16 -0
- package/dist/es/config/i18n/en/select.js +6 -0
- package/dist/es/config/i18n/en/table.js +65 -0
- package/dist/es/config/i18n/en/tabs.js +10 -0
- package/dist/es/config/i18n/en/translationButton.js +26 -0
- package/dist/es/config/i18n/en/tree.js +6 -0
- package/dist/es/config/i18n/en/uploadList.js +82 -0
- package/dist/es/config/i18n/en/ztTransfer.js +14 -0
- package/dist/es/config/i18n/en.js +65 -1
- package/dist/es/config/i18n/i18nInstance.js +33 -0
- package/dist/es/config/i18n/zh_cn/appLayoutHeader.js +70 -0
- package/dist/es/config/i18n/zh_cn/appLayoutSider.js +14 -0
- package/dist/es/config/i18n/zh_cn/asyncDynamicSetting.js +42 -0
- package/dist/es/config/i18n/zh_cn/authLoading.js +6 -0
- package/dist/es/config/i18n/zh_cn/button.js +14 -0
- package/dist/es/config/i18n/zh_cn/canvasTable.js +50 -0
- package/dist/es/config/i18n/zh_cn/chatRoom.js +14 -0
- package/dist/es/config/i18n/zh_cn/datePicker.js +22 -0
- package/dist/es/config/i18n/zh_cn/detailList.js +6 -0
- package/dist/es/config/i18n/zh_cn/differences.js +6 -0
- package/dist/es/config/i18n/zh_cn/dynamicSetting.js +72 -0
- package/dist/es/config/i18n/zh_cn/electronSignatures.js +342 -0
- package/dist/es/config/i18n/zh_cn/enhanceSelect.js +8 -0
- package/dist/es/config/i18n/zh_cn/footer.js +8 -0
- package/dist/es/config/i18n/zh_cn/form.js +26 -0
- package/dist/es/config/i18n/zh_cn/formItem.js +8 -0
- package/dist/es/config/i18n/zh_cn/inputNumber.js +7 -0
- package/dist/es/config/i18n/zh_cn/login.js +76 -0
- package/dist/es/config/i18n/zh_cn/modal.js +8 -0
- package/dist/es/config/i18n/zh_cn/notAuthPage.js +8 -0
- package/dist/es/config/i18n/zh_cn/notRoutePage.js +8 -0
- package/dist/es/config/i18n/zh_cn/operationBtn.js +10 -0
- package/dist/es/config/i18n/zh_cn/print.js +16 -0
- package/dist/es/config/i18n/zh_cn/select.js +6 -0
- package/dist/es/config/i18n/zh_cn/table.js +65 -0
- package/dist/es/config/i18n/zh_cn/tabs.js +10 -0
- package/dist/es/config/i18n/zh_cn/translationButton.js +26 -0
- package/dist/es/config/i18n/zh_cn/tree.js +6 -0
- package/dist/es/config/i18n/zh_cn/uploadList.js +82 -0
- package/dist/es/config/i18n/zh_cn/ztTransfer.js +14 -0
- package/dist/es/config/i18n/zh_cn.d.ts +538 -0
- package/dist/es/config/i18n/zh_cn.js +65 -1
- package/dist/es/config/index.js +1 -1
- package/dist/es/config/useLocale.d.ts +554 -0
- package/dist/es/config/useLocale.js +41 -8
- package/dist/es/datepicker/index.js +9 -3
- package/dist/es/datepicker/utils.js +32 -26
- package/dist/es/detaillist/item.js +7 -2
- package/dist/es/detaillist/list.js +2 -0
- package/dist/es/differences/differences.js +8 -1
- package/dist/es/dynamicsetting/dynamicDrawer.js +41 -24
- package/dist/es/dynamicsetting/hooks.js +2 -0
- package/dist/es/dynamicsetting/moreConfig.js +6 -2
- package/dist/es/dynamicsetting/useSearch.js +5 -1
- package/dist/es/dynamicsetting/useTemplate.js +19 -15
- package/dist/es/electronsignatures/content.js +52 -31
- package/dist/es/electronsignatures/filecomponents/file-upload.js +2 -0
- package/dist/es/electronsignatures/filecomponents/useFetchFileTypeData.js +2 -0
- package/dist/es/enhanceselect/enhance-select.js +7 -3
- package/dist/es/enhanceselect/list-query.js +2 -0
- package/dist/es/enhanceselect/page-query.js +2 -0
- package/dist/es/form/common-search-list.js +7 -2
- package/dist/es/form/form.js +9 -5
- package/dist/es/form/resetButton.js +16 -11
- package/dist/es/form/useCommonSearch.js +12 -9
- package/dist/es/formitem/formItem.js +4 -2
- package/dist/es/inputnumber/inputNumber.js +11 -2
- package/dist/es/inputnumber/utils.js +41 -8
- package/dist/es/login/forget-password.js +9 -5
- package/dist/es/login/index.js +12 -8
- package/dist/es/modal/modal.js +6 -2
- package/dist/es/operationbtn/operationBtn.js +5 -3
- package/dist/es/select/hooks.js +5 -1
- package/dist/es/table/components/ColumnAddDel.js +11 -5
- package/dist/es/table/components/EnhanceBodyCell.js +7 -5
- package/dist/es/table/components/FilterDropdown.js +7 -3
- package/dist/es/table/components/SortTitle.js +8 -4
- package/dist/es/table/components/TableMenu.js +5 -1
- package/dist/es/table/components/TitleOperation.js +5 -1
- package/dist/es/table/components/table-header-operation/FillDown.js +7 -3
- package/dist/es/table/excel.js +8 -4
- package/dist/es/table/hooks/useSelectSubtotal.js +8 -1
- package/dist/es/table/table.js +6 -4
- package/dist/es/table/useColumns.js +8 -4
- package/dist/es/table/useSummary.js +6 -2
- package/dist/es/table/useTableValidate.js +39 -7
- package/dist/es/table/utils.js +10 -5
- package/dist/es/tabs/tab-type.js +10 -1
- package/dist/es/title/title.js +2 -0
- package/dist/es/translationbutton/DownFile.js +8 -4
- package/dist/es/translationbutton/PreviewFile.js +5 -3
- package/dist/es/translationbutton/hooks.js +5 -1
- package/dist/es/translationbutton/translationButton.js +15 -12
- package/dist/es/tree/tree.js +8 -2
- package/dist/es/uploadlist/hooks.js +17 -11
- package/dist/es/uploadlist/uploadList.js +39 -26
- package/dist/es/uploadlist/uploadListDetail.js +15 -11
- package/dist/es/uploadlist/uploadTable.js +23 -19
- package/dist/es/uploadlist/utils.js +8 -1
- package/dist/es/zttransfer/Container.js +5 -1
- package/dist/es/zttransfer/SelectContainer.js +5 -1
- package/dist/es/zttransfer/zt-transfer.js +5 -1
- package/dist/index.build.d.ts +1 -0
- package/dist/index.es.js +1 -0
- package/package.json +5 -2
|
@@ -39,10 +39,14 @@ import { useExcelExport } from '../table/excel.js';
|
|
|
39
39
|
import { getTableColumns } from '../table/utils.js';
|
|
40
40
|
import DynamicSetting from '../dynamicsetting/dynamicSetting.js';
|
|
41
41
|
import '../dynamicsetting/useTemplate.js';
|
|
42
|
+
import useLocale from '../config/useLocale.js';
|
|
43
|
+
import '../config/ZtxkContext.js';
|
|
44
|
+
import '../config/MyStorage.js';
|
|
42
45
|
|
|
43
46
|
function CanvasTable(props) {
|
|
44
47
|
var _a;
|
|
45
|
-
var
|
|
48
|
+
var locale = useLocale().CanvasTable;
|
|
49
|
+
var _b = props.dataSource, dataSource = _b === void 0 ? [] : _b, _c = props.columns, columns = _c === void 0 ? [] : _c, _d = props.rowKey, rowKey = _d === void 0 ? "id" : _d, _e = props.height, height = _e === void 0 ? 600 : _e, width = props.width, _f = props.rowHeight, rowHeight = _f === void 0 ? 36 : _f, _g = props.headerHeight, headerHeight = _g === void 0 ? 36 : _g, rowSelection = props.rowSelection, onSortChange = props.onSortChange, onFilterChange = props.onFilterChange, onScroll = props.onScroll, onRowClick = props.onRowClick, onColumnResize = props.onColumnResize, _h = props.bordered, bordered = _h === void 0 ? true : _h, _j = props.striped, striped = _j === void 0 ? false : _j, emptyText = props.emptyText, style = props.style, className = props.className, _k = props.loading, loading = _k === void 0 ? false : _k, _l = props.isContextMenu, isContextMenu = _l === void 0 ? true : _l, isFullscreenHandle = props.isFullscreenHandle, mode = props.mode, dynamicKey = props.dynamicKey, dynamicVersion = props.dynamicVersion, customDynamicListHandle = props.customDynamicListHandle, isDimensionDynamic = props.isDimensionDynamic, _m = props.isDimensionMergeChildren, isDimensionMergeChildren = _m === void 0 ? true : _m, dimensionCustomSumKeys = props.dimensionCustomSumKeys, isAutoMerge = props.isAutoMerge, _o = props.isIndexMerge, isIndexMerge = _o === void 0 ? true : _o, _p = props.isSelectionMerge, isSelectionMerge = _p === void 0 ? false : _p, _q = props.renderMode, renderMode = _q === void 0 ? "object" : _q, fixedRowsCount = props.fixedRowsCount, fixedRowsConfig = props.fixedRowsConfig, _r = props.summaryFixed, summaryFixed = _r === void 0 ? false : _r, _s = props.isAutoScrollY, isAutoScrollY = _s === void 0 ? false : _s, _t = props.autoScrollYMarginBottom, autoScrollYMarginBottom = _t === void 0 ? 65 : _t, canvasTableId = props.canvasTableId, headerWrap = props.headerWrap, _u = props.headerAlign, headerAlign = _u === void 0 ? "center" : _u, tableRefHandle = props.tableRefHandle, exportExcelConfig = props.exportExcelConfig, _v = props.maxHeight, maxHeight = _v === void 0 ? 3000 : _v, expandable = props.expandable;
|
|
46
50
|
var actualMode = "mode" in props ? mode : "index";
|
|
47
51
|
var canvasRef = useRef(null);
|
|
48
52
|
var containerRef = useRef(null);
|
|
@@ -65,17 +69,17 @@ function CanvasTable(props) {
|
|
|
65
69
|
return String((_a = record[rowKey]) !== null && _a !== void 0 ? _a : index);
|
|
66
70
|
}, [rowKey]);
|
|
67
71
|
// 动态列配置
|
|
68
|
-
var
|
|
72
|
+
var _w = useDynamicListByColumns(columns, {
|
|
69
73
|
dynamicKey: dynamicKey,
|
|
70
74
|
dynamicVersion: dynamicVersion,
|
|
71
75
|
customDynamicListHandle: customDynamicListHandle,
|
|
72
|
-
}), defaultDynamicList =
|
|
76
|
+
}), defaultDynamicList = _w.defaultDynamicList, currentDynamicList = _w.currentDynamicList, onCurrentListChange = _w.onCurrentListChange, dynamicSettingRef = _w.dynamicSettingRef;
|
|
73
77
|
// 根据动态列配置处理columns
|
|
74
78
|
var dynamicColumns = useMemo(function () { return getTableColumns(columns, currentDynamicList); }, [columns, currentDynamicList]).columns;
|
|
75
79
|
// 内部列宽状态(未开启动态配置时使用)
|
|
76
|
-
var
|
|
80
|
+
var _x = useState({}), internalColumnWidths = _x[0], setInternalColumnWidths = _x[1];
|
|
77
81
|
// 跟踪用户手动调整过宽度的列(用于排除自动宽度分配)
|
|
78
|
-
var
|
|
82
|
+
var _y = useState(new Set()), manuallyResizedColumnKeys = _y[0], setManuallyResizedColumnKeys = _y[1];
|
|
79
83
|
// 处理选中框列、序号列等
|
|
80
84
|
var processedColumnsOld = useProcessedColumns({
|
|
81
85
|
columns: columns,
|
|
@@ -90,31 +94,31 @@ function CanvasTable(props) {
|
|
|
90
94
|
headerAlign: headerAlign,
|
|
91
95
|
});
|
|
92
96
|
// 表格状态管理
|
|
93
|
-
var
|
|
97
|
+
var _z = useTableState({
|
|
94
98
|
dataSource: dataSource,
|
|
95
99
|
columns: processedColumnsOld,
|
|
96
100
|
rowSelection: rowSelection,
|
|
97
101
|
onFilterChange: onFilterChange,
|
|
98
102
|
isAutoMerge: isAutoMerge,
|
|
99
|
-
}), state =
|
|
103
|
+
}), state = _z.state, setState = _z.setState, handleFilterChange = _z.handleFilterChange, closeFilterPopover = _z.closeFilterPopover;
|
|
100
104
|
// 树形展开管理
|
|
101
|
-
var
|
|
105
|
+
var _0 = useExpandable({
|
|
102
106
|
dataSource: dataSource,
|
|
103
107
|
expandable: expandable,
|
|
104
108
|
rowKey: rowKey,
|
|
105
|
-
}), expandedKeys =
|
|
109
|
+
}), expandedKeys = _0.expandedKeys, flattenedData = _0.flattenedData, toggleExpand = _0.toggleExpand, expandRow = _0.expandRow, collapseRow = _0.collapseRow, setExpandedRowKeys = _0.setExpandedRowKeys, hasExpandable = _0.hasExpandable;
|
|
106
110
|
var order = useMemo(function () {
|
|
107
111
|
return state.sortOrder && state.sortField
|
|
108
112
|
? { field: state.sortField, order: state.sortOrder }
|
|
109
113
|
: undefined;
|
|
110
114
|
}, [state.sortOrder, state.sortField]);
|
|
111
|
-
var
|
|
115
|
+
var _1 = useAutoMerge(dataSource, processedColumnsOld, {
|
|
112
116
|
isAutoMerge: isAutoMerge,
|
|
113
117
|
isDimensionDynamic: isDimensionDynamic,
|
|
114
118
|
isDimensionMergeChildren: isDimensionMergeChildren,
|
|
115
119
|
order: order,
|
|
116
120
|
dimensionCustomSumKeys: dimensionCustomSumKeys,
|
|
117
|
-
}), newDataSource =
|
|
121
|
+
}), newDataSource = _1[0], processedColumns = _1[1];
|
|
118
122
|
// 如果开启了树形展开,使用扁平化后的数据源
|
|
119
123
|
var expandedDataSource = useMemo(function () {
|
|
120
124
|
if (hasExpandable) {
|
|
@@ -123,10 +127,10 @@ function CanvasTable(props) {
|
|
|
123
127
|
return newDataSource;
|
|
124
128
|
}, [hasExpandable, flattenedData, newDataSource]);
|
|
125
129
|
// 生成合计行和最终数据源(基于全量数据,合计值不随筛选变化)
|
|
126
|
-
var
|
|
130
|
+
var _2 = useSummaryRow({
|
|
127
131
|
columns: processedColumns,
|
|
128
132
|
dataSource: expandedDataSource,
|
|
129
|
-
}), finalDataSource =
|
|
133
|
+
}), finalDataSource = _2.finalDataSource, hasSummaryRowConfig = _2.hasSummaryRow;
|
|
130
134
|
// 基于含合计行的全量数据筛选
|
|
131
135
|
// 末尾合计行(总计)始终保留在最后,不参与筛选
|
|
132
136
|
var processedDataSource = useMemo(function () {
|
|
@@ -161,9 +165,9 @@ function CanvasTable(props) {
|
|
|
161
165
|
// 基于含合计行的全量数据源生成筛选候选值
|
|
162
166
|
var autoGeneratedFilters = useMemo(function () { return generateAutoFilters(finalDataSource, processedColumns); }, [finalDataSource, processedColumns]);
|
|
163
167
|
// 用于存储计算后的表头高度(用于自动高度的精确计算)
|
|
164
|
-
var
|
|
168
|
+
var _3 = useState(undefined), preciseHeaderHeight = _3[0], setPreciseHeaderHeight = _3[1];
|
|
165
169
|
// 用于存储是否需要横向滚动条(用于自动高度的精确计算)
|
|
166
|
-
var
|
|
170
|
+
var _4 = useState(false), needHorizontalScrollbar = _4[0], setNeedHorizontalScrollbar = _4[1];
|
|
167
171
|
// 自动高度计算(需要在容器尺寸计算之前)
|
|
168
172
|
var autoHeight = useCanvasTableAutoHeight(isAutoScrollY, autoScrollYMarginBottom, canvasTableId, processedDataSource.length, // 数据行数(用于 content 模式)
|
|
169
173
|
headerHeight, // 表头基础高度(用于 content 模式的初始计算)
|
|
@@ -230,7 +234,7 @@ function CanvasTable(props) {
|
|
|
230
234
|
return calculateTotalHeight(calculatedHeaderHeight, processedDataSource.length, rowHeight);
|
|
231
235
|
}, [calculatedHeaderHeight, processedDataSource.length, rowHeight]);
|
|
232
236
|
// 计算滚动条指标
|
|
233
|
-
var
|
|
237
|
+
var _5 = useScrollbarMetrics({
|
|
234
238
|
containerWidth: containerWidth,
|
|
235
239
|
containerHeight: containerHeight,
|
|
236
240
|
totalWidth: totalWidth,
|
|
@@ -238,14 +242,14 @@ function CanvasTable(props) {
|
|
|
238
242
|
headerHeight: calculatedHeaderHeight,
|
|
239
243
|
scrollTop: 0,
|
|
240
244
|
scrollLeft: 0,
|
|
241
|
-
}), maxScrollTop =
|
|
245
|
+
}), maxScrollTop = _5.maxScrollTop, maxScrollLeft = _5.maxScrollLeft;
|
|
242
246
|
// 滚动管理(使用预先计算的maxScrollTop和maxScrollLeft)
|
|
243
|
-
var
|
|
247
|
+
var _6 = useTableScroll({
|
|
244
248
|
containerRef: containerRef,
|
|
245
249
|
maxScrollTop: maxScrollTop,
|
|
246
250
|
maxScrollLeft: maxScrollLeft,
|
|
247
251
|
onScroll: onScroll,
|
|
248
|
-
}), scrollState =
|
|
252
|
+
}), scrollState = _6.scrollState, setScrollState = _6.setScrollState;
|
|
249
253
|
// 使用 ref 保存最新的滚动位置,确保在组件卸载过程中仍能访问
|
|
250
254
|
var scrollPositionRef = useRef({ x: 0, y: 0 });
|
|
251
255
|
useEffect(function () {
|
|
@@ -289,12 +293,12 @@ function CanvasTable(props) {
|
|
|
289
293
|
needHorizontalScrollbar,
|
|
290
294
|
]);
|
|
291
295
|
// 单元格框选
|
|
292
|
-
var
|
|
296
|
+
var _7 = useTableSelection({
|
|
293
297
|
state: state,
|
|
294
298
|
setState: setState,
|
|
295
299
|
}),
|
|
296
300
|
// selectionStartRef,
|
|
297
|
-
startSelection =
|
|
301
|
+
startSelection = _7.startSelection, updateSelection = _7.updateSelection, extendSelection = _7.extendSelection;
|
|
298
302
|
// 处理列宽调整
|
|
299
303
|
var handleColumnResize = useCallback(function (columnKey, newWidth) {
|
|
300
304
|
var _a;
|
|
@@ -349,20 +353,20 @@ function CanvasTable(props) {
|
|
|
349
353
|
onCurrentListChange,
|
|
350
354
|
]);
|
|
351
355
|
// 列宽调整
|
|
352
|
-
var
|
|
356
|
+
var _8 = useColumnResize({
|
|
353
357
|
columnRenderInfos: columnRenderInfos,
|
|
354
358
|
containerWidth: containerWidth,
|
|
355
359
|
headerHeight: calculatedHeaderHeight,
|
|
356
360
|
scrollLeft: scrollState.scrollLeft,
|
|
357
361
|
onColumnResize: handleColumnResize,
|
|
358
|
-
}), resizeState =
|
|
362
|
+
}), resizeState = _8.resizeState, checkResizeHandle = _8.checkResizeHandle, startResize = _8.startResize, updateResize = _8.updateResize, endResize = _8.endResize, setHoverResizeColumn = _8.setHoverResizeColumn, getColumnWidth = _8.getColumnWidth, RESIZE_HANDLE_WIDTH = _8.RESIZE_HANDLE_WIDTH;
|
|
359
363
|
// 复制到剪贴板
|
|
360
|
-
var
|
|
364
|
+
var _9 = useCopyToClipboard({
|
|
361
365
|
cellSelection: state.cellSelection,
|
|
362
366
|
processedDataSource: processedDataSource,
|
|
363
367
|
columns: processedColumns,
|
|
364
368
|
containerRef: containerRef,
|
|
365
|
-
}), getSelectedCellsText =
|
|
369
|
+
}), getSelectedCellsText = _9.getSelectedCellsText, copyToClipboard = _9.copyToClipboard;
|
|
366
370
|
// 处理右键菜单的复制操作
|
|
367
371
|
var handleCopy = useCallback(function () {
|
|
368
372
|
var text = getSelectedCellsText();
|
|
@@ -382,7 +386,7 @@ function CanvasTable(props) {
|
|
|
382
386
|
childrenColumnName: (_a = props.expandable) === null || _a === void 0 ? void 0 : _a.childrenColumnName,
|
|
383
387
|
});
|
|
384
388
|
// 交互事件处理(使用baseScrollbarMetrics的maxScrollTop/maxScrollLeft以保持稳定)
|
|
385
|
-
var
|
|
389
|
+
var _10 = useTableInteraction({
|
|
386
390
|
state: state,
|
|
387
391
|
setState: setState,
|
|
388
392
|
scrollState: scrollState,
|
|
@@ -432,7 +436,7 @@ function CanvasTable(props) {
|
|
|
432
436
|
fixedRowsCount: fixedRowsCount,
|
|
433
437
|
fixedRowsConfig: fixedRowsConfig,
|
|
434
438
|
summaryFixed: summaryFixed,
|
|
435
|
-
}), handleCanvasMouseDown =
|
|
439
|
+
}), handleCanvasMouseDown = _10.handleCanvasMouseDown, handleCanvasMouseMove = _10.handleCanvasMouseMove, handleCanvasMouseUp = _10.handleCanvasMouseUp, handleCanvasMouseLeave = _10.handleCanvasMouseLeave, handleCanvasContextMenu = _10.handleCanvasContextMenu;
|
|
436
440
|
// 渲染表格
|
|
437
441
|
useTableRender(__assign(__assign({ canvasRef: canvasRef, processedDataSource: processedDataSource, columnRenderInfos: columnRenderInfos, columns: processedColumns, // 传递原始columns用于渲染多级表头
|
|
438
442
|
state: state, scrollState: scrollState, rowSelection: rowSelection, containerWidth: containerWidth, containerHeight: containerHeight, headerHeight: calculatedHeaderHeight, baseHeaderHeight: headerHeight, // 传入原始基础高度用于计算每层高度
|
|
@@ -603,8 +607,8 @@ function CanvasTable(props) {
|
|
|
603
607
|
WebkitFontSmoothing: "antialiased",
|
|
604
608
|
MozOsxFontSmoothing: "grayscale",
|
|
605
609
|
textRendering: "optimizeLegibility",
|
|
606
|
-
} }), dynamicKey ? (jsx(DynamicSetting, { parentDynamicKey: TABLE_DYNAMIC_KEY, dynamicKey: dynamicKey, defaultList: defaultDynamicList, onCurrentListChange: onCurrentListChange, ref: dynamicSettingRef, hiddenOperationIcon: true, isMore: true, isFixed: true, isDimensionDynamic: isDimensionDynamic })) : null, jsx(EmptyPlaceholder, { visible: processedDataSource.length === 0, text: emptyText, headerHeight: calculatedHeaderHeight }), jsx(HeaderOverlay, { overlays: headerOverlays }), jsx(CellOverlay, { overlays: cellOverlays }), filterPopoverElement, jsx(Tooltip, { visible: state.tooltip.visible, content: state.tooltip.content, position: state.tooltip.position }), jsx(BadgePopover, { visible: state.badgePopover.visible, content: state.badgePopover.content, position: state.badgePopover.position, popoverRef: badgePopoverRef }), menuId ? (jsx(CanvasTableMenu, { menuId: menuId, containerRef: containerRef, isFullscreenHandle: isFullscreenHandle, tableMenuRef: tableMenuRef, onCopy: handleCopy, onExport: function () {
|
|
607
|
-
return exportExcel((exportExcelConfig === null || exportExcelConfig === void 0 ? void 0 : exportExcelConfig.fileName) ||
|
|
610
|
+
} }), dynamicKey ? (jsx(DynamicSetting, { parentDynamicKey: TABLE_DYNAMIC_KEY, dynamicKey: dynamicKey, defaultList: defaultDynamicList, onCurrentListChange: onCurrentListChange, ref: dynamicSettingRef, hiddenOperationIcon: true, isMore: true, isFixed: true, isDimensionDynamic: isDimensionDynamic })) : null, jsx(EmptyPlaceholder, { visible: processedDataSource.length === 0, text: emptyText || locale.emptyText, headerHeight: calculatedHeaderHeight }), jsx(HeaderOverlay, { overlays: headerOverlays }), jsx(CellOverlay, { overlays: cellOverlays }), filterPopoverElement, jsx(Tooltip, { visible: state.tooltip.visible, content: state.tooltip.content, position: state.tooltip.position }), jsx(BadgePopover, { visible: state.badgePopover.visible, content: state.badgePopover.content, position: state.badgePopover.position, popoverRef: badgePopoverRef }), menuId ? (jsx(CanvasTableMenu, { menuId: menuId, containerRef: containerRef, isFullscreenHandle: isFullscreenHandle, tableMenuRef: tableMenuRef, onCopy: handleCopy, onExport: function () {
|
|
611
|
+
return exportExcel((exportExcelConfig === null || exportExcelConfig === void 0 ? void 0 : exportExcelConfig.fileName) || locale.exportFileName, exportExcelConfig);
|
|
608
612
|
} })) : null] })) })));
|
|
609
613
|
}
|
|
610
614
|
|
|
@@ -4,9 +4,13 @@ import { useState, useEffect, useImperativeHandle } from 'react';
|
|
|
4
4
|
import { Menu as it, Item as pt } from '../../node_modules/react-contexify/dist/index.js';
|
|
5
5
|
import screenfull from '../../node_modules/screenfull/index.js';
|
|
6
6
|
import { useLatest } from 'ahooks';
|
|
7
|
+
import useLocale from '../../config/useLocale.js';
|
|
8
|
+
import '../../config/ZtxkContext.js';
|
|
9
|
+
import '../../config/MyStorage.js';
|
|
7
10
|
|
|
8
11
|
var CanvasTableMenu = function (_a) {
|
|
9
12
|
var menuId = _a.menuId, containerRef = _a.containerRef, isFullscreenHandle = _a.isFullscreenHandle, tableMenuRef = _a.tableMenuRef, onCopy = _a.onCopy, onExport = _a.onExport;
|
|
13
|
+
var locale = useLocale().CanvasTable;
|
|
10
14
|
var _b = useState(false), isFull = _b[0], setIsFull = _b[1];
|
|
11
15
|
var isFullscreenHandleRef = useLatest(isFullscreenHandle);
|
|
12
16
|
function toggleFullscreen() {
|
|
@@ -67,7 +71,7 @@ var CanvasTableMenu = function (_a) {
|
|
|
67
71
|
useImperativeHandle(tableMenuRef, function () { return ({
|
|
68
72
|
toggleFullscreen: toggleFullscreen,
|
|
69
73
|
}); });
|
|
70
|
-
return (jsxs(Fragment, { children: [jsxs(it, __assign({ id: menuId, className: "canvas-table-menu" }, { children: [jsx(pt, __assign({ data: "copy", onClick: onMenuItemClick }, { children:
|
|
74
|
+
return (jsxs(Fragment, { children: [jsxs(it, __assign({ id: menuId, className: "canvas-table-menu" }, { children: [jsx(pt, __assign({ data: "copy", onClick: onMenuItemClick }, { children: locale.copy })), onExport ? (jsx(pt, __assign({ data: "export", onClick: onMenuItemClick }, { children: locale.exportExcel }))) : null, jsx(pt, __assign({ data: "fullscreen", onClick: onMenuItemClick }, { children: isFull ? locale.exitFullscreen : locale.fullscreen }))] })), isFull ? (jsx("div", __assign({ className: "canvas-table--exit-fullscreen", onClick: toggleFullscreen }, { children: locale.exitFullscreen }))) : null] }));
|
|
71
75
|
};
|
|
72
76
|
|
|
73
77
|
export { CanvasTableMenu as default };
|
|
@@ -2,10 +2,14 @@ import { __assign, __spreadArray } from '../../_virtual/_tslib.js';
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useState, useEffect, useMemo } from 'react';
|
|
4
4
|
import { Select, Tabs, Space, Input, Button, Checkbox } from 'antd';
|
|
5
|
+
import useLocale, { formatLocaleText } from '../../config/useLocale.js';
|
|
6
|
+
import '../../config/ZtxkContext.js';
|
|
7
|
+
import '../../config/MyStorage.js';
|
|
5
8
|
|
|
6
9
|
var Option = Select.Option;
|
|
7
10
|
var FilterPopover = function (_a) {
|
|
8
11
|
var visible = _a.visible; _a.columnKey; _a.columnTitle; var _b = _a.dataType, dataType = _b === void 0 ? "text" : _b, precision = _a.precision, thousand = _a.thousand, position = _a.position, filterOptions = _a.filterOptions, selectedValues = _a.selectedValues, onConfirm = _a.onConfirm, onReset = _a.onReset, onClose = _a.onClose, popoverRef = _a.popoverRef;
|
|
12
|
+
var locale = useLocale().CanvasTable;
|
|
9
13
|
// 临时选中值(点击确认才生效)
|
|
10
14
|
var _c = useState([]), tempSelectedValues = _c[0], setTempSelectedValues = _c[1];
|
|
11
15
|
// 搜索关键词
|
|
@@ -217,27 +221,27 @@ var FilterPopover = function (_a) {
|
|
|
217
221
|
} }, { children: [jsx(Tabs, { activeKey: activeTab, onChange: setActiveTab, size: "small", items: [
|
|
218
222
|
{
|
|
219
223
|
key: "single",
|
|
220
|
-
label:
|
|
221
|
-
children: (jsx("div", { children: jsxs(Space.Compact, __assign({ style: { width: "100%", marginBottom: "12px" } }, { children: [jsxs(Select, __assign({ value: numberOperator, onChange: setNumberOperator, style: { width: "80px" } }, { children: [jsx(Option, __assign({ value: "=" }, { children: "=" })), jsx(Option, __assign({ value: "!=" }, { children: "!=" })), jsx(Option, __assign({ value: ">" }, { children: ">" })), jsx(Option, __assign({ value: "<" }, { children: "<" })), jsx(Option, __assign({ value: ">=" }, { children: ">=" })), jsx(Option, __assign({ value: "<=" }, { children: "<=" }))] })), jsx(Input, { type: "number", placeholder:
|
|
224
|
+
label: locale.filterSingle,
|
|
225
|
+
children: (jsx("div", { children: jsxs(Space.Compact, __assign({ style: { width: "100%", marginBottom: "12px" } }, { children: [jsxs(Select, __assign({ value: numberOperator, onChange: setNumberOperator, style: { width: "80px" } }, { children: [jsx(Option, __assign({ value: "=" }, { children: "=" })), jsx(Option, __assign({ value: "!=" }, { children: "!=" })), jsx(Option, __assign({ value: ">" }, { children: ">" })), jsx(Option, __assign({ value: "<" }, { children: "<" })), jsx(Option, __assign({ value: ">=" }, { children: ">=" })), jsx(Option, __assign({ value: "<=" }, { children: "<=" }))] })), jsx(Input, { type: "number", placeholder: locale.filterNumberPlaceholder, value: numberValue, onChange: function (e) { return setNumberValue(e.target.value); }, onPressEnter: handleNumberFilter, style: { flex: 1 } })] })) })),
|
|
222
226
|
},
|
|
223
227
|
{
|
|
224
228
|
key: "range",
|
|
225
|
-
label:
|
|
229
|
+
label: locale.filterRange,
|
|
226
230
|
children: (jsxs("div", { children: [jsxs("div", __assign({ style: { marginBottom: "8px" } }, { children: [jsx("div", __assign({ style: {
|
|
227
231
|
fontSize: "12px",
|
|
228
232
|
color: "#666",
|
|
229
233
|
marginBottom: "4px",
|
|
230
|
-
} }, { children:
|
|
234
|
+
} }, { children: locale.filterMinLabel })), jsxs(Space.Compact, __assign({ style: { width: "100%" } }, { children: [jsxs(Select, __assign({ value: minOperator, onChange: setMinOperator, style: { width: "70px" } }, { children: [jsx(Option, __assign({ value: ">=" }, { children: ">=" })), jsx(Option, __assign({ value: ">" }, { children: ">" }))] })), jsx(Input, { type: "number", placeholder: locale.filterMinPlaceholder, value: minValue, onChange: function (e) { return setMinValue(e.target.value); }, onPressEnter: handleNumberFilter, style: { flex: 1 } })] }))] })), jsxs("div", __assign({ style: { marginBottom: "12px" } }, { children: [jsx("div", __assign({ style: {
|
|
231
235
|
fontSize: "12px",
|
|
232
236
|
color: "#666",
|
|
233
237
|
marginBottom: "4px",
|
|
234
|
-
} }, { children:
|
|
238
|
+
} }, { children: locale.filterMaxLabel })), jsxs(Space.Compact, __assign({ style: { width: "100%" } }, { children: [jsxs(Select, __assign({ value: maxOperator, onChange: setMaxOperator, style: { width: "70px" } }, { children: [jsx(Option, __assign({ value: "<=" }, { children: "<=" })), jsx(Option, __assign({ value: "<" }, { children: "<" }))] })), jsx(Input, { type: "number", placeholder: locale.filterMaxPlaceholder, value: maxValue, onChange: function (e) { return setMaxValue(e.target.value); }, onPressEnter: handleNumberFilter, style: { flex: 1 } })] }))] })), jsx("div", __assign({ style: { fontSize: "12px", color: "#1890ff" } }, { children: locale.filterRangeExample }))] })),
|
|
235
239
|
},
|
|
236
240
|
] }), jsx("div", __assign({ style: {
|
|
237
241
|
borderTop: "1px solid #f0f0f0",
|
|
238
242
|
paddingTop: "12px",
|
|
239
243
|
marginTop: "12px",
|
|
240
|
-
} }, { children: jsxs(Space, { children: [jsx(Button, __assign({ size: "small", type: "primary", onClick: handleNumberFilter, disabled: !numberValue && !minValue && !maxValue }, { children:
|
|
244
|
+
} }, { children: jsxs(Space, { children: [jsx(Button, __assign({ size: "small", type: "primary", onClick: handleNumberFilter, disabled: !numberValue && !minValue && !maxValue }, { children: locale.filterOk })), jsx(Button, __assign({ size: "small", onClick: handleResetAndClose }, { children: locale.filterReset }))] }) }))] })));
|
|
241
245
|
}
|
|
242
246
|
// 文本类型的筛选界面
|
|
243
247
|
return (jsxs("div", __assign({ ref: popoverRef, className: "canvas-table-filter-popover", style: {
|
|
@@ -251,24 +255,24 @@ var FilterPopover = function (_a) {
|
|
|
251
255
|
padding: "8px",
|
|
252
256
|
minWidth: "200px",
|
|
253
257
|
maxWidth: "300px",
|
|
254
|
-
} }, { children: [jsxs("div", __assign({ style: { padding: "4px 8px", marginBottom: "8px" } }, { children: [jsx(Input, { placeholder:
|
|
258
|
+
} }, { children: [jsxs("div", __assign({ style: { padding: "4px 8px", marginBottom: "8px" } }, { children: [jsx(Input, { placeholder: locale.filterSearchPlaceholder, value: searchText, onChange: function (e) { return setSearchText(e.target.value); }, allowClear: true, size: "small", onPressEnter: handleConfirm }), searchText && (jsx("div", __assign({ style: {
|
|
255
259
|
fontSize: "12px",
|
|
256
260
|
color: "#1890ff",
|
|
257
261
|
marginTop: "4px",
|
|
258
262
|
padding: "0 4px",
|
|
259
|
-
} }, { children:
|
|
263
|
+
} }, { children: formatLocaleText(locale.filterFuzzyTip, { text: searchText }) })))] })), jsx("div", __assign({ style: {
|
|
260
264
|
padding: "5px 12px",
|
|
261
265
|
borderBottom: "1px solid #f0f0f0",
|
|
262
266
|
marginBottom: "4px",
|
|
263
|
-
} }, { children: jsx(Checkbox, __assign({ indeterminate: isIndeterminate, checked: isAllSelected, onChange: handleSelectAll }, { children:
|
|
267
|
+
} }, { children: jsx(Checkbox, __assign({ indeterminate: isIndeterminate, checked: isAllSelected, onChange: handleSelectAll }, { children: locale.filterSelectAll })) })), jsx("div", __assign({ style: { maxHeight: "300px", overflowY: "auto" } }, { children: filteredOptions.length > 0 ? (filteredOptions.map(function (filter) { return (jsx("div", __assign({ style: { padding: "5px 12px", cursor: "pointer" }, onClick: function () { return handleCheckboxChange(filter.value); } }, { children: jsx(Checkbox, __assign({ checked: tempSelectedValues.includes(filter.value) }, { children: filter.text })) }), filter.value)); })) : (jsx("div", __assign({ style: {
|
|
264
268
|
padding: "20px",
|
|
265
269
|
textAlign: "center",
|
|
266
270
|
color: "#999",
|
|
267
|
-
} }, { children:
|
|
271
|
+
} }, { children: locale.filterNoMatch }))) })), jsx("div", __assign({ style: {
|
|
268
272
|
borderTop: "1px solid #f0f0f0",
|
|
269
273
|
marginTop: "8px",
|
|
270
274
|
paddingTop: "8px",
|
|
271
|
-
} }, { children: jsxs(Space, { children: [jsx(Button, __assign({ size: "small", type: "primary", onClick: handleConfirm }, { children:
|
|
275
|
+
} }, { children: jsxs(Space, { children: [jsx(Button, __assign({ size: "small", type: "primary", onClick: handleConfirm }, { children: locale.filterOk })), jsx(Button, __assign({ size: "small", onClick: handleResetAndClose }, { children: locale.filterReset }))] }) }))] })));
|
|
272
276
|
};
|
|
273
277
|
|
|
274
278
|
export { FilterPopover as default };
|
|
@@ -9,6 +9,9 @@ import { MERGE_INDEX } from '../../table/constant.js';
|
|
|
9
9
|
import 'lodash/isEqual';
|
|
10
10
|
import 'ahooks';
|
|
11
11
|
import '../../node_modules/immutability-helper/index.js';
|
|
12
|
+
import useLocale from '../../config/useLocale.js';
|
|
13
|
+
import '../../config/ZtxkContext.js';
|
|
14
|
+
import '../../config/MyStorage.js';
|
|
12
15
|
import '../../node_modules/exceljs/dist/exceljs.min.js';
|
|
13
16
|
import '../components/FilterPopover.js';
|
|
14
17
|
import '../../node_modules/react-contexify/dist/index.js';
|
|
@@ -16,19 +19,20 @@ import '../../node_modules/screenfull/index.js';
|
|
|
16
19
|
import ColumnDynamic from '../components/ColumnDynamic.js';
|
|
17
20
|
|
|
18
21
|
var useProcessedColumns = function (params) {
|
|
22
|
+
var locale = useLocale().CanvasTable;
|
|
19
23
|
var columns = params.columns, dynamicColumns = params.dynamicColumns, mode = params.mode, rowSelection = params.rowSelection, internalColumnWidths = params.internalColumnWidths, dynamicKey = params.dynamicKey, _a = params.renderMode, renderMode = _a === void 0 ? "object" : _a, dynamicSettingRef = params.dynamicSettingRef, headerWrap = params.headerWrap, _b = params.headerAlign, headerAlign = _b === void 0 ? "center" : _b;
|
|
20
24
|
return useMemo(function () {
|
|
21
25
|
var cols = __spreadArray([], (dynamicColumns || columns), true);
|
|
22
26
|
// 添加序号列
|
|
23
27
|
if (mode === "index") {
|
|
24
|
-
var title =
|
|
28
|
+
var title = locale.serialNumber;
|
|
25
29
|
if (dynamicKey && dynamicSettingRef) {
|
|
26
30
|
title = jsx(ColumnDynamic, { dynamicSettingRef: dynamicSettingRef });
|
|
27
31
|
}
|
|
28
32
|
cols.unshift({
|
|
29
33
|
key: "__index__",
|
|
30
34
|
title: title,
|
|
31
|
-
dynamicTitle:
|
|
35
|
+
dynamicTitle: locale.serialNumber,
|
|
32
36
|
width: 60,
|
|
33
37
|
fixed: "left",
|
|
34
38
|
align: "center",
|
|
@@ -100,6 +104,7 @@ var useProcessedColumns = function (params) {
|
|
|
100
104
|
dynamicSettingRef,
|
|
101
105
|
headerWrap,
|
|
102
106
|
headerAlign,
|
|
107
|
+
locale,
|
|
103
108
|
]);
|
|
104
109
|
};
|
|
105
110
|
|
|
@@ -5,6 +5,9 @@ import 'lodash/isEqual';
|
|
|
5
5
|
import 'ahooks';
|
|
6
6
|
import '../../node_modules/immutability-helper/index.js';
|
|
7
7
|
import 'react/jsx-runtime';
|
|
8
|
+
import useLocale from '../../config/useLocale.js';
|
|
9
|
+
import '../../config/ZtxkContext.js';
|
|
10
|
+
import '../../config/MyStorage.js';
|
|
8
11
|
import { plus, exactRound, addThousedSeparator } from 'zmdms-utils';
|
|
9
12
|
import '../../node_modules/exceljs/dist/exceljs.min.js';
|
|
10
13
|
import 'dayjs';
|
|
@@ -15,6 +18,7 @@ import { getAllLeafColumns } from '../utils/columnHelpers.js';
|
|
|
15
18
|
*/
|
|
16
19
|
var useSummaryRow = function (params) {
|
|
17
20
|
var columns = params.columns, dataSource = params.dataSource;
|
|
21
|
+
var locale = useLocale().CanvasTable;
|
|
18
22
|
var summaryRow = useMemo(function () {
|
|
19
23
|
// 先扁平化多级表头,获取所有叶子列
|
|
20
24
|
var leafColumns = getAllLeafColumns(columns);
|
|
@@ -65,7 +69,7 @@ var useSummaryRow = function (params) {
|
|
|
65
69
|
}
|
|
66
70
|
else if (colIndex === firstColIndex) {
|
|
67
71
|
// 第一列显示"合计"(可以是序号列、选择框列或数据列)
|
|
68
|
-
summaryRecord[dataIndex] =
|
|
72
|
+
summaryRecord[dataIndex] = locale.total;
|
|
69
73
|
}
|
|
70
74
|
else {
|
|
71
75
|
summaryRecord[dataIndex] = "";
|
|
@@ -79,7 +83,7 @@ var useSummaryRow = function (params) {
|
|
|
79
83
|
});
|
|
80
84
|
summaryRecord[IS_SUMMARY] = true;
|
|
81
85
|
return summaryRecord;
|
|
82
|
-
}, [columns, dataSource]);
|
|
86
|
+
}, [columns, dataSource, locale]);
|
|
83
87
|
// 包含合计行的数据源
|
|
84
88
|
var finalDataSource = useMemo(function () {
|
|
85
89
|
if (summaryRow) {
|
|
@@ -4,6 +4,9 @@ import 'zmdms-utils';
|
|
|
4
4
|
import 'dayjs';
|
|
5
5
|
import '../../_virtual/_tslib.js';
|
|
6
6
|
import { useMemoizedFn } from 'ahooks';
|
|
7
|
+
import useLocale from '../../config/useLocale.js';
|
|
8
|
+
import '../../config/ZtxkContext.js';
|
|
9
|
+
import '../../config/MyStorage.js';
|
|
7
10
|
import './renderers/BadgeRenderer.js';
|
|
8
11
|
import './renderers/ExpandIconRenderer.js';
|
|
9
12
|
import { HeaderRenderer } from './renderers/HeaderRenderer.js';
|
|
@@ -19,6 +22,7 @@ import { FixedColumnRenderer } from './renderers/FixedColumnRenderer.js';
|
|
|
19
22
|
* 重构版本:使用渲染器模式,职责分离
|
|
20
23
|
*/
|
|
21
24
|
var useTableRender = function (params) {
|
|
25
|
+
var locale = useLocale().CanvasTable;
|
|
22
26
|
// 添加节流机制,避免频繁重绘
|
|
23
27
|
var rafIdRef = useRef(null);
|
|
24
28
|
var isDrawingRef = useRef(false);
|
|
@@ -273,7 +277,7 @@ var useTableRender = function (params) {
|
|
|
273
277
|
ctx.fillStyle = "#ff4d4f";
|
|
274
278
|
ctx.font = "14px Arial";
|
|
275
279
|
ctx.textAlign = "center";
|
|
276
|
-
ctx.fillText(
|
|
280
|
+
ctx.fillText(locale.renderError, canvas.width / 2, canvas.height / 2);
|
|
277
281
|
}
|
|
278
282
|
}
|
|
279
283
|
}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { __assign } from '../_virtual/_tslib.js';
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import classNames from '../node_modules/classnames/index.js';
|
|
4
|
+
import useLocale from '../config/useLocale.js';
|
|
5
|
+
import 'react';
|
|
6
|
+
import '../config/ZtxkContext.js';
|
|
7
|
+
import '../config/MyStorage.js';
|
|
4
8
|
import Input from '../input/input.js';
|
|
5
9
|
import MemoTag from '../tag/tag.js';
|
|
6
10
|
|
|
7
11
|
var ChatRoom = function (props) {
|
|
8
|
-
var
|
|
12
|
+
var locale = useLocale().ChatRoom;
|
|
13
|
+
var bordered = props.bordered, _a = props.height, height = _a === void 0 ? "88vh" : _a, _b = props.title, title = _b === void 0 ? locale.defaultTitle : _b;
|
|
9
14
|
var containerClassName = classNames("ztxk-chat-room--container", {
|
|
10
15
|
"ztxk-chat-room--container--bordered": bordered,
|
|
11
16
|
});
|
|
12
|
-
return (jsxs("div", __assign({ className: containerClassName, style: { height: height } }, { children: [jsxs("div", __assign({ className: "ztxk-chat-room--left" }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--title", title: title }, { children: title })), jsx("div", __assign({ className: "ztxk-chat-room--search" }, { children: jsx(Input.Search, { placeholder:
|
|
17
|
+
return (jsxs("div", __assign({ className: containerClassName, style: { height: height } }, { children: [jsxs("div", __assign({ className: "ztxk-chat-room--left" }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--title", title: title }, { children: title })), jsx("div", __assign({ className: "ztxk-chat-room--search" }, { children: jsx(Input.Search, { placeholder: locale.searchPlaceholder }) })), jsx("div", __assign({ className: "ztxk-chat-room--list" }, { children: Array(10)
|
|
13
18
|
.fill(1)
|
|
14
19
|
.map(function (item, index) { return (jsxs("div", __assign({ className: classNames("ztxk-chat-room--list__item", {
|
|
15
20
|
active: index === 0,
|
|
16
|
-
}) }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--item__name" }, { children: jsx("span", { children: "\u963F\u677E\u5927\u963F\u677E\u5927\u963F\u677E\u5927" }) })), jsxs("div", __assign({ className: "ztxk-chat-room--item__text" }, { children: [jsxs("div", __assign({ className: "ztxk-chat-room--item__text--top" }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--item__text--room" }, { children:
|
|
21
|
+
}) }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--item__name" }, { children: jsx("span", { children: "\u963F\u677E\u5927\u963F\u677E\u5927\u963F\u677E\u5927" }) })), jsxs("div", __assign({ className: "ztxk-chat-room--item__text" }, { children: [jsxs("div", __assign({ className: "ztxk-chat-room--item__text--top" }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--item__text--room" }, { children: locale.roomNumber })), jsx(MemoTag, __assign({ className: "" }, { children: "\u6807\u7B7E" }))] })), jsx("div", __assign({ className: "ztxk-chat-room--item__text--bottom" }, { children: "\u6D88\u606F\u63D0\u793A\u5BCC\u6587\u672C" }))] })), jsxs("div", __assign({ className: "ztxk-chat-room--item__other" }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--item__other--name" }, { children: "\u4E1A\u52A1\u5458\u6C47\u62A5" })), jsx("div", __assign({ className: "ztxk-chat-room--item__other--time" }, { children: "\u65F6\u95F4" }))] }))] }), index)); }) }))] })), jsxs("div", __assign({ className: "ztxk-chat-room--right" }, { children: [jsx("div", __assign({ className: "ztxk-chat-room--title" }, { children: locale.meetingDetail })), jsx("div", __assign({ className: "ztxk-chat-room--content" }, { children: jsxs("div", __assign({ className: "ztxk-chat-room--content--item" }, { children: [locale.meetingNameLabel, "\u4F1A\u8BAE1"] })) }))] }))] })));
|
|
17
22
|
};
|
|
18
23
|
|
|
19
24
|
export { ChatRoom as default };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var appLayoutHeaderLocale = {
|
|
2
|
+
/** 页签右键菜单:关闭当前页签 */
|
|
3
|
+
close: "Close",
|
|
4
|
+
/** 页签右键菜单:关闭其他页签 */
|
|
5
|
+
closeOther: "Close others",
|
|
6
|
+
/** 页签右键菜单:关闭右侧页签 */
|
|
7
|
+
closeRight: "Close to the right",
|
|
8
|
+
/** 最后一页不可关闭提示 */
|
|
9
|
+
lastTabCannotClose: "The last tab cannot be closed!",
|
|
10
|
+
/** 全屏 */
|
|
11
|
+
fullscreen: "Fullscreen",
|
|
12
|
+
/** 退出全屏 */
|
|
13
|
+
exitFullscreen: "Exit fullscreen",
|
|
14
|
+
/** 用户下拉菜单:账号信息 */
|
|
15
|
+
accountInfo: "Account Info",
|
|
16
|
+
/** 用户下拉菜单:修改密码 */
|
|
17
|
+
changePassword: "Change Password",
|
|
18
|
+
/** 用户下拉菜单:退出系统 */
|
|
19
|
+
logout: "Sign out",
|
|
20
|
+
/** 退出登录加载提示 */
|
|
21
|
+
loggingOut: "Signing out",
|
|
22
|
+
/** 用户信息弹窗标题 */
|
|
23
|
+
userInfoTitle: "User Info",
|
|
24
|
+
/** 编辑按钮 */
|
|
25
|
+
edit: "Edit",
|
|
26
|
+
/** 保存按钮 */
|
|
27
|
+
save: "Save",
|
|
28
|
+
/** 取消按钮 */
|
|
29
|
+
cancel: "Cancel",
|
|
30
|
+
/** 保存失败提示 */
|
|
31
|
+
saveFailed: "Save failed!",
|
|
32
|
+
/** 表单项:账号 */
|
|
33
|
+
account: "Account",
|
|
34
|
+
/** 账号必填校验提示 */
|
|
35
|
+
accountRequired: "Please enter an account",
|
|
36
|
+
/** 表单项:姓名 */
|
|
37
|
+
realName: "Name",
|
|
38
|
+
/** 姓名必填校验提示 */
|
|
39
|
+
realNameRequired: "Please enter a name",
|
|
40
|
+
/** 表单项:电话 */
|
|
41
|
+
phone: "Phone",
|
|
42
|
+
/** 电话必填校验提示 */
|
|
43
|
+
phoneRequired: "Please enter a phone number",
|
|
44
|
+
/** 表单项:邮箱 */
|
|
45
|
+
email: "Email",
|
|
46
|
+
/** 表单项:身份证号 */
|
|
47
|
+
identityCard: "ID Card No.",
|
|
48
|
+
/** 修改密码弹窗标题 */
|
|
49
|
+
changePasswordTitle: "Change Password",
|
|
50
|
+
/** 表单项:原密码 */
|
|
51
|
+
oldPassword: "Current Password",
|
|
52
|
+
/** 原密码必填校验提示 */
|
|
53
|
+
oldPasswordRequired: "Please enter the current password",
|
|
54
|
+
/** 表单项:新密码 */
|
|
55
|
+
newPassword: "New Password",
|
|
56
|
+
/** 新密码必填校验提示 */
|
|
57
|
+
newPasswordRequired: "Please enter a new password",
|
|
58
|
+
/** 新密码规则提示 */
|
|
59
|
+
passwordRuleTip: "The password must be longer than 8 characters and contain at least 3 of the following: digits, uppercase letters, lowercase letters, and special characters!",
|
|
60
|
+
/** 表单项:确认新密码 */
|
|
61
|
+
confirmPassword: "Confirm New Password",
|
|
62
|
+
/** 确认密码必填校验提示 */
|
|
63
|
+
confirmPasswordRequired: "Please confirm the password",
|
|
64
|
+
/** 两次密码输入不一致提示 */
|
|
65
|
+
passwordInconsistent: "The two passwords do not match",
|
|
66
|
+
/** 密码修改成功提示 */
|
|
67
|
+
passwordChangeSuccess: "Password changed successfully!",
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export { appLayoutHeaderLocale as default };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var appLayoutSiderLocale = {
|
|
2
|
+
/** logo 未传 title 时的默认悬停标题 */
|
|
3
|
+
defaultLogoTitle: "Zhejiang Communications Group",
|
|
4
|
+
/** 菜单搜索框默认占位提示 */
|
|
5
|
+
searchPlaceholder: "Search menu",
|
|
6
|
+
/** 二级菜单浮动按钮 */
|
|
7
|
+
float: "Float",
|
|
8
|
+
/** 二级菜单固定按钮 */
|
|
9
|
+
fixed: "Fixed",
|
|
10
|
+
/** 二级菜单 logo 悬停标题 */
|
|
11
|
+
subMenuLogoTitle: "HR System",
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { appLayoutSiderLocale as default };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var asyncDynamicSettingLocale = {
|
|
2
|
+
/** 抽屉默认标题 */
|
|
3
|
+
customConfigTitle: "Custom Configuration",
|
|
4
|
+
/** 标题栏拖拽排序提示 */
|
|
5
|
+
dragSortHint: " (drag to sort)",
|
|
6
|
+
/** 拖拽排序限制提示:不能排到某项前面 */
|
|
7
|
+
cannotSortToFront: "{dragLabel} cannot be sorted before {targetLabel}",
|
|
8
|
+
/** 拖拽排序限制提示:不能排到某项后面 */
|
|
9
|
+
cannotSortToBack: "{dragLabel} cannot be sorted after {targetLabel}",
|
|
10
|
+
/** 互斥项勾选冲突提示 */
|
|
11
|
+
exclusiveConflictError: "The selected items are mutually exclusive and cannot be checked together!",
|
|
12
|
+
/** 底部按钮:取消 */
|
|
13
|
+
cancel: "Cancel",
|
|
14
|
+
/** 底部按钮:重置 */
|
|
15
|
+
reset: "Reset",
|
|
16
|
+
/** 底部按钮:确定 */
|
|
17
|
+
ok: "OK",
|
|
18
|
+
/** 搜索框占位符 */
|
|
19
|
+
searchPlaceholder: "Search",
|
|
20
|
+
/** 全选按钮 */
|
|
21
|
+
selectAll: "Select all",
|
|
22
|
+
/** 反选按钮 */
|
|
23
|
+
selectInverse: "Invert",
|
|
24
|
+
/** 维度配置区块标题 */
|
|
25
|
+
dimensionConfig: "Dimensions",
|
|
26
|
+
/** 字段配置区块标题 */
|
|
27
|
+
fieldConfig: "Fields",
|
|
28
|
+
/** 更多配置:固定标签 */
|
|
29
|
+
fixedLabel: "Fixed:",
|
|
30
|
+
/** 更多配置:固定位置-左 */
|
|
31
|
+
fixedLeft: "Left",
|
|
32
|
+
/** 更多配置:固定位置-右 */
|
|
33
|
+
fixedRight: "Right",
|
|
34
|
+
/** 更多配置:不固定 */
|
|
35
|
+
fixedNone: "None",
|
|
36
|
+
/** 更多配置:合计标签 */
|
|
37
|
+
sumLabel: "Total:",
|
|
38
|
+
/** 维度列不支持全选/反选提示 */
|
|
39
|
+
dimensionNoSelectAll: "Select all / invert is not supported for dimension columns",
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { asyncDynamicSettingLocale as default };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var buttonLocale = {
|
|
2
|
+
/** 二次确认弹窗确认按钮文字 */
|
|
3
|
+
confirm: "OK",
|
|
4
|
+
/** 二次确认弹窗取消按钮文字 */
|
|
5
|
+
cancel: "Cancel",
|
|
6
|
+
/** 附件下载失败提示 */
|
|
7
|
+
downloadFail: "Download failed!",
|
|
8
|
+
/** 导出失败提示 */
|
|
9
|
+
exportFail: "Export failed!",
|
|
10
|
+
/** 附件超出大小限制时的在线预览提示 */
|
|
11
|
+
previewSizeLimit: "Files larger than {size} cannot be previewed online. Please download the file first.",
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { buttonLocale as default };
|