Skip to content

Commit 7f95f94

Browse files
feat(UniverSheet): add LoadingText parameter (#901)
* feat: UniverSheet add onRendered Lifecycle * chore: 增加资源文件 * feat: 增加遮罩 * feat: 增加加载功能 * chore: bump version 10.0.7 --------- Co-authored-by: zhaijunlei <276318515@qq.com>
1 parent 76a1793 commit 7f95f94

8 files changed

Lines changed: 60 additions & 10 deletions

File tree

src/components/BootstrapBlazor.UniverSheet/BootstrapBlazor.UniverSheet.csproj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>10.0.6</Version>
4+
<Version>10.0.7</Version>
55
</PropertyGroup>
66

77
<PropertyGroup>
88
<PackageTags>Bootstrap Blazor WebAssembly wasm UI Components Univer Sheet Excel</PackageTags>
99
<Description>Bootstrap UI components extensions of Univer Sheet</Description>
1010
</PropertyGroup>
1111

12+
<ItemGroup>
13+
<Content Remove="Locales\*.json" />
14+
<EmbeddedResource Include="Locales\*.json" />
15+
</ItemGroup>
16+
1217
<ItemGroup>
1318
<PackageReference Include="BootstrapBlazor" Version="$(BBVersion)" />
1419
</ItemGroup>

src/components/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,9 @@
22
@inherits BootstrapModuleComponentBase
33
@attribute [JSModuleAutoLoader("./_content/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor.js", JSObjectReference = true)]
44

5-
<div @attributes="@AdditionalAttributes" class="@ClassString" id="@Id"></div>
5+
<div @attributes="@AdditionalAttributes" class="@ClassString" id="@Id" style="position: relative; overflow: hidden;">
6+
<div class="bb-univer-sheet-wrap" style="height: 100%;"></div>
7+
<div class="bb-univer-sheet-backdrop" style="background-color: #000; opacity: 0.3; position: absolute; inset: 0; z-index: 1205; display: flex; align-items: center; justify-content: center;">
8+
<div style="color: #fff;">@LoadingText</div>
9+
</div>
10+
</div>

src/components/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// Website: https://www.blazor.zone or https://argozhang.github.io/
44

55
using Microsoft.AspNetCore.Components;
6+
using Microsoft.Extensions.Localization;
67
using System.Globalization;
78

89
namespace BootstrapBlazor.Components;
@@ -48,12 +49,21 @@ public partial class UniverSheet
4849
[Parameter]
4950
public UniverSheetData? Data { get; set; }
5051

52+
/// <summary>
53+
/// 获得/设置 正在加载显示文本 默认 null 未设置读取资源文件
54+
/// </summary>
55+
[Parameter]
56+
public string? LoadingText { get; set; }
57+
5158
/// <summary>
5259
/// 获得/设置 Frame 加载页面传递过来的数据
5360
/// </summary>
5461
[Parameter]
5562
public Func<UniverSheetData?, Task<UniverSheetData?>>? OnPostDataAsync { get; set; }
5663

64+
[Inject, NotNull]
65+
private IStringLocalizer<UniverSheet>? Localizer { get; set; }
66+
5767
private string? ClassString => CssBuilder.Default("bb-univer-sheet")
5868
.AddClassFromAttributes(AdditionalAttributes)
5969
.Build();
@@ -78,6 +88,7 @@ protected override void OnParametersSet()
7888
base.OnParametersSet();
7989

8090
Lang ??= CultureInfo.CurrentUICulture.Name;
91+
LoadingText ??= Localizer[nameof(LoadingText)];
8192
}
8293

8394
/// <summary>

src/components/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,22 @@ export async function init(id, invoke, options) {
1111

1212
const { theme, lang, plugins, data, ribbonType, darkMode } = options;
1313
const univerSheet = {
14-
el,
14+
el: el.querySelector('.bb-univer-sheet-wrap'),
1515
invoke,
1616
data,
1717
plugins,
1818
theme,
1919
lang,
2020
ribbonType,
21-
darkMode
21+
darkMode,
22+
events: {
23+
onRendered: () => {
24+
const backdrop = el.querySelector('.bb-univer-sheet-backdrop');
25+
if (backdrop) {
26+
backdrop.classList.add('d-none');
27+
}
28+
}
29+
}
2230
};
2331

2432
await createUniverSheetAsync(univerSheet);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"BootstrapBlazor.Components.UniverSheet": {
3+
"LoadingText": "Loading ..."
4+
}
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"BootstrapBlazor.Components.UniverSheet": {
3+
"LoadingText": "正在加载 ..."
4+
}
5+
}

src/components/BootstrapBlazor.UniverSheet/wwwroot/univer.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { addScript, addLink, getTheme } from '../BootstrapBlazor/modules/utility.js'
1+
import { addScript, addLink, getTheme } from '../BootstrapBlazor/modules/utility.js'
22
import DataService from './data-service.js'
33

44
const loadAssets2 = async lang => {
@@ -30,6 +30,7 @@ const loadAssets = async lang => {
3030
await addScript('./_content/BootstrapBlazor.UniverSheet/univer/univer-bundle.js');
3131
await addLink('./_content/BootstrapBlazor.UniverSheet/univer/univer-sheet.bundle.css');
3232
}
33+
3334
export async function createUniverSheetAsync(sheet) {
3435
sheet.lang = sheet.lang ?? 'en-US';
3536
await loadAssets(sheet.lang);
@@ -46,7 +47,7 @@ export async function createUniverSheetAsync(sheet) {
4647
const lang = sheet.lang.replace('-', '')
4748
const langStr = lang.charAt(0).toUpperCase() + lang.slice(1)
4849
const options = {
49-
theme: sheet.theme,
50+
theme: sheet.theme,
5051
darkMode: sheet.darkMode,
5152
locale: lang,
5253
locales: {
@@ -66,12 +67,12 @@ export async function createUniverSheetAsync(sheet) {
6667
ribbonType: sheet.ribbonType ?? 'simple', // default | classic | simple
6768
menu: {
6869
'sheet.menu.print': {
69-
hidden: true,
70+
hidden: true,
7071
},
7172
'sheets-exchange-client.operation.exchange': {
72-
hidden: true,
73+
hidden: true,
7374
},
74-
},
75+
},
7576
}),
7677
UniverSheetsDrawingPreset(),
7778
UniverSheetsThreadCommentPreset(),
@@ -113,6 +114,17 @@ export async function createUniverSheetAsync(sheet) {
113114
univerAPI.createWorkbook();
114115
}
115116

117+
const { onRendered } = sheet.events;
118+
if (onRendered) {
119+
const disposable = univerAPI.addEvent(univerAPI.Event.LifeCycleChanged, e => {
120+
const { stage } = e;
121+
if (stage === univerAPI.Enum.LifecycleStages.Rendered) {
122+
onRendered();
123+
disposable.dispose()
124+
}
125+
});
126+
}
127+
116128
sheet.univer = univer;
117129
sheet.univerAPI = univerAPI;
118130
sheet.dispose = () => {

src/components/BootstrapBlazor.UniverSheet/wwwroot/univer/univer-sheet.bundle.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
.bb-univer-sheet {
44
width: 100%;
55
height: 100%;
6-
overflow: hidden;
76
}
87

98
.univer-theme {

0 commit comments

Comments
 (0)