mirror of
https://github.com/dotnetcore/BootstrapBlazor.git
synced 2025-12-20 10:26:41 +08:00
Compare commits
102 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27bdfd6e29 | ||
|
|
4d2c80455c | ||
|
|
58d55948a9 | ||
|
|
1db27bd0e3 | ||
|
|
6c33415d60 | ||
|
|
ad0dde6a77 | ||
|
|
c69602576c | ||
|
|
7c2ed72d90 | ||
|
|
fc0cbdf9ab | ||
|
|
35a9063263 | ||
|
|
03179ce854 | ||
|
|
0e0b4f3753 | ||
|
|
8d27c9f512 | ||
|
|
36173dc1c1 | ||
|
|
6e41983480 | ||
|
|
586df7d7a3 | ||
|
|
9da9aae4c8 | ||
|
|
a8285ceee0 | ||
|
|
fb605ab836 | ||
|
|
18a078b7d0 | ||
|
|
27f64b5b6d | ||
|
|
e0cbf7e3df | ||
|
|
ecce016d5b | ||
|
|
fb1b20cecb | ||
|
|
3e5f8b0132 | ||
|
|
1daa39c907 | ||
|
|
167659efb9 | ||
|
|
9dabca417d | ||
|
|
84bc83f0cb | ||
|
|
e678a2f5b8 | ||
|
|
60307c7477 | ||
|
|
30d6014347 | ||
|
|
f20dc947d2 | ||
|
|
65b303b85c | ||
|
|
ddfe18403e | ||
|
|
780c62779e | ||
|
|
6a0f46fe33 | ||
|
|
7ba667ae0c | ||
|
|
16d2a5ea43 | ||
|
|
f86eb83f38 | ||
|
|
01381e6eb0 | ||
|
|
521ac556eb | ||
|
|
75c90114cc | ||
|
|
93b6c762bc | ||
|
|
1ea3b0c557 | ||
|
|
e512889405 | ||
|
|
82efd4c0a3 | ||
|
|
5c340a0a5e | ||
|
|
64ec11a7b2 | ||
|
|
1b6f255e69 | ||
|
|
7ec9f5465d | ||
|
|
9ffab94133 | ||
|
|
a9ee8e2427 | ||
|
|
6fb225ca5f | ||
|
|
16caafbf06 | ||
|
|
edd73c7b70 | ||
|
|
fb0722123e | ||
|
|
a82b94bdf8 | ||
|
|
5fc5144de2 | ||
|
|
18c8605a81 | ||
|
|
0ffc91d7f5 | ||
|
|
c8e64e514c | ||
|
|
2297c3ed74 | ||
|
|
f1b9015f81 | ||
|
|
5e977c739d | ||
|
|
6449e7c018 | ||
|
|
545cf193f0 | ||
|
|
6107c1b4ad | ||
|
|
1086f41f3d | ||
|
|
d6372f382e | ||
|
|
7eb8fd4e87 | ||
|
|
9d584ceafa | ||
|
|
bb4bc05a30 | ||
|
|
e61fdc09ec | ||
|
|
d0e9e50754 | ||
|
|
4eaca8c6d5 | ||
|
|
2091c47826 | ||
|
|
7226cf5107 | ||
|
|
1411c14667 | ||
|
|
1a30698fa7 | ||
|
|
74a98a2b73 | ||
|
|
42d970791e | ||
|
|
590f25dc4a | ||
|
|
841d83b2fa | ||
|
|
e97d8eff21 | ||
|
|
b7afa43a0d | ||
|
|
e4b2060651 | ||
|
|
98e8c3b360 | ||
|
|
13acf28508 | ||
|
|
304c6ec7d7 | ||
|
|
fc2937e79e | ||
|
|
584683f6e2 | ||
|
|
b7d7baaee5 | ||
|
|
951576d1d3 | ||
|
|
0a017f4286 | ||
|
|
54334d8912 | ||
|
|
2b13e540e7 | ||
|
|
daddb07c7e | ||
|
|
af385879fe | ||
|
|
fae7b14b84 | ||
|
|
9fc8deb46b | ||
|
|
4cc14bd805 |
@@ -4,6 +4,8 @@
|
||||
.gitignore
|
||||
.vs
|
||||
.vscode
|
||||
.gitee
|
||||
.github
|
||||
*/bin
|
||||
*/obj
|
||||
**/.toolstarget
|
||||
**/.toolstarget
|
||||
|
||||
8
.gitattributes
vendored
8
.gitattributes
vendored
@@ -17,7 +17,7 @@
|
||||
#
|
||||
# Merging from the command prompt will add diff markers to the files if there
|
||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||
# the diff markers are never inserted). Diff markers may cause the following
|
||||
# the diff markers are never inserted). Diff markers may cause the following
|
||||
# file extensions to fail to load in VS. An alternative would be to treat
|
||||
# these files as binary and thus will always conflict and require user
|
||||
# intervention with every merge. To do so, just uncomment the entries below
|
||||
@@ -46,9 +46,9 @@
|
||||
|
||||
###############################################################################
|
||||
# diff behavior for common document formats
|
||||
#
|
||||
#
|
||||
# Convert binary document formats to text before diffing them. This feature
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# entries below.
|
||||
###############################################################################
|
||||
#*.doc diff=astextplain
|
||||
@@ -60,4 +60,4 @@
|
||||
#*.pdf diff=astextplain
|
||||
#*.PDF diff=astextplain
|
||||
#*.rtf diff=astextplain
|
||||
#*.RTF diff=astextplain
|
||||
#*.RTF diff=astextplain
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
### 重现步骤
|
||||
[请务必填写重现步骤,作者无法重现步骤将无法修复缺陷,此类 Issue 将被标注为无法重现,三天后将会被关闭]
|
||||
[创建 Issue 后,作者会第一时间响应,请务必认真对待,作者认真对待 Issue 也请提交 Issue 的人认真对待,如创建 Issue 就不理的将会关闭]
|
||||
|
||||
|
||||
### 报错信息
|
||||
|
||||
无
|
||||
|
||||
### 组件版本
|
||||
|
||||
latest
|
||||
|
||||
### 浏览器
|
||||
|
||||
all
|
||||
|
||||
### 运行模式
|
||||
- [X] Server Side
|
||||
- [ ] Web Assembly
|
||||
- [X] Web Assembly
|
||||
|
||||
2
.github/workflows/pack.yml
vendored
2
.github/workflows/pack.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
- name: Setup .NET Core
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 5.0.101
|
||||
dotnet-version: 5.0.102
|
||||
|
||||
- name: Publish to Nuget
|
||||
env:
|
||||
|
||||
4
.github/workflows/publish.yml
vendored
4
.github/workflows/publish.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Deploy To Pages
|
||||
name: Deploy To Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
- name: Setup .NET Core
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: 5.0.101
|
||||
dotnet-version: 5.0.102
|
||||
|
||||
- name: Publish wasm
|
||||
run: |
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -351,6 +351,6 @@ src/**/*.xml
|
||||
|
||||
###### -- Custom Ignore Section, Make sure all files you add to the git repo are below this line -- ######
|
||||
|
||||
# Coverage
|
||||
# Coverage
|
||||
coverage*.xml
|
||||
tools/
|
||||
tools/
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
[issuetracker "Gitee-Issue"]
|
||||
regex = "#(.+?)\\)"
|
||||
url = "https://gitee.com/LongbowEnterprise/BootstrapBlazor/issues/$1?from=project-issue"
|
||||
url = "https://gitee.com/LongbowEnterprise/BootstrapBlazor/issues/$1"
|
||||
|
||||
[issuetracker "Gitee-Url"]
|
||||
regex = "([a-zA-z]+://[^\\s]*)"
|
||||
|
||||
@@ -85,8 +85,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.TableExport
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Shared", "src\BootstrapBlazor.Shared\BootstrapBlazor.Shared.csproj", "{C63F35FD-FE14-4517-9457-9DA43F0DCB9E}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Docs", "src\BootstrapBlazor.Docs\BootstrapBlazor.Docs.csproj", "{09F31634-B9A7-4EB3-97D3-8DA5B5210730}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.Server", "src\BootstrapBlazor.Server\BootstrapBlazor.Server.csproj", "{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BootstrapBlazor.WebAssembly.ClientHost", "src\Wasm\BootstrapBlazor.WebAssembly.ClientHost\BootstrapBlazor.WebAssembly.ClientHost.csproj", "{0556D9AB-8673-4248-8817-4D99F4DCC568}"
|
||||
@@ -135,10 +133,6 @@ Global
|
||||
{C63F35FD-FE14-4517-9457-9DA43F0DCB9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C63F35FD-FE14-4517-9457-9DA43F0DCB9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C63F35FD-FE14-4517-9457-9DA43F0DCB9E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{09F31634-B9A7-4EB3-97D3-8DA5B5210730}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{09F31634-B9A7-4EB3-97D3-8DA5B5210730}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{09F31634-B9A7-4EB3-97D3-8DA5B5210730}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{09F31634-B9A7-4EB3-97D3-8DA5B5210730}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -173,7 +167,6 @@ Global
|
||||
{EEB9751A-5C06-4725-8037-FA9C0F140018} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
|
||||
{5ED0DD16-1583-4FC3-B2E9-FE5DBA98BD47} = {CD062AB6-244D-402A-8F33-C37DAC5856CC}
|
||||
{C63F35FD-FE14-4517-9457-9DA43F0DCB9E} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
|
||||
{09F31634-B9A7-4EB3-97D3-8DA5B5210730} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
|
||||
{1ED371F3-2B28-4B2D-91B8-0C00DA42CB65} = {A2182155-43ED-44C1-BF6F-1B70EBD2DFFE}
|
||||
{0556D9AB-8673-4248-8817-4D99F4DCC568} = {C8E79F4C-8C55-4E13-96B5-3D2BD6A07B74}
|
||||
{FFFD2EB7-AE88-4DAD-A825-528B2CEFB4B5} = {C8E79F4C-8C55-4E13-96B5-3D2BD6A07B74}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Copyright>Longbow</Copyright>
|
||||
<Authors>Argo Zhang(argo@163.com)</Authors>
|
||||
<Company>Longbow</Company>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)src\keys\Longbow.Utility.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Copyright>Argo Zhang</Copyright>
|
||||
<Authors>Argo Zhang(argo@163.com)</Authors>
|
||||
<Company>Longbow</Company>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)src\keys\Longbow.Utility.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -186,7 +186,7 @@
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright Argo Zhang (argo@163.com)
|
||||
Copyright [Argo Zhang] (argo@163.com)
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
||||
25
README.md
25
README.md
@@ -24,9 +24,10 @@ English | <a href="README.zh-CN.md">中文</a>
|
||||
- Supports Progressive Web Applications (PWA).
|
||||
- Build with C#, a multi-paradigm static language for an efficient development experience.
|
||||
- .NET Standard 2.1 based, with direct reference to the rich .NET ecosystem.
|
||||
- Supports NET5. (Server-Side, WASM)
|
||||
- Seamless integration with existing ASP.NET Core MVC and Razor Pages projects.
|
||||
|
||||
## Online Examples
|
||||
## Online Examples
|
||||
[](https://www.blazor.zone)
|
||||
[](https://argozhang.github.io)
|
||||
|
||||
@@ -45,6 +46,14 @@ English | <a href="README.zh-CN.md">中文</a>
|
||||
|
||||
`dotnet new bbapp`
|
||||
|
||||
## Install Bootstrap Blazor Project Template
|
||||
|
||||
1. Download Project Template
|
||||
|
||||
Microsoft Market [link](https://marketplace.visualstudio.com/items?itemName=Longbow.BootstrapBlazorUITemplate)
|
||||
|
||||
2. Double Click **BootstrapBlazor.UITemplate.vsix**
|
||||
|
||||
## Import Bootstrap Blazor into an existing project
|
||||
|
||||
1. Go to the project folder of the application and install the Nuget package reference
|
||||
@@ -53,7 +62,7 @@ English | <a href="README.zh-CN.md">中文</a>
|
||||
|
||||
2. **Add** the `stylesheet` `javascripts` file to your main index file - `Pages/_Host.cshtml (Server)` or `wwwroot/index.html (WebAssembly)`
|
||||
|
||||
**HTML**
|
||||
**HTML**
|
||||
|
||||
```HTML
|
||||
<!DOCTYPE html>
|
||||
@@ -68,11 +77,11 @@ English | <a href="README.zh-CN.md">中文</a>
|
||||
<script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
```
|
||||
|
||||
3. Open the `~/Startup.cs` file in the and register the `Bootstrap Blazor` service:
|
||||
|
||||
**C#**
|
||||
**C#**
|
||||
|
||||
```csharp
|
||||
namespace BootstrapBlazorAppName
|
||||
@@ -82,7 +91,7 @@ namespace BootstrapBlazorAppName
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
//more code may be present here
|
||||
services.AddBootstrapBlazor();
|
||||
services.AddBootstrapBlazor();
|
||||
}
|
||||
|
||||
//more code may be present here
|
||||
@@ -120,7 +129,7 @@ To start the wizard, use either of the following approaches
|
||||

|
||||

|
||||
|
||||
### Mobile devices
|
||||
### Mobile devices
|
||||
|
||||

|
||||

|
||||
@@ -132,7 +141,7 @@ To start the wizard, use either of the following approaches
|
||||
| **Android** | Supported | Supported | N/A | Android v5.0+ supported | Supported |
|
||||
| **Windows 10 Mobile** | N/A | N/A | N/A | N/A | Supported |
|
||||
|
||||
### Desktop browsers
|
||||
### Desktop browsers
|
||||
|
||||

|
||||

|
||||
@@ -163,6 +172,6 @@ To start the wizard, use either of the following approaches
|
||||
|
||||
## Donate
|
||||
|
||||
If this project is helpful to you, please scan the QR code below for a cup of coffee.
|
||||
If this project is helpful to you, please scan the QR code below for a cup of coffee.
|
||||
|
||||
<img src="https://raw.githubusercontent.com/ArgoZhang/Images/master/Donate/BarCode%402x.png" width="382px;" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Bootstrap Blazor Component
|
||||
# Bootstrap Blazor Component
|
||||
|
||||
<a href="README.md">English</a> | <span>中文</span>
|
||||
|
||||
@@ -18,10 +18,24 @@ Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架:
|
||||
- 在服务器和客户端之间共享应用逻辑。
|
||||
- 受益于 .NET 的性能、可靠性和安全性。
|
||||
- 始终高效支持 Windows、Linux 和 macOS 上的 Visual Studio。
|
||||
- 支持 Net5
|
||||
- 以一组稳定、功能丰富且易用的通用语言、框架和工具为基础来进行生成。
|
||||
|
||||
本项目是利用 Bootstrap 样式进行封装的 UI 组件库
|
||||
|
||||
## 开发环境搭建
|
||||
1. 安装 .net core sdk 最新版 [官方网址](http://www.microsoft.com/net/download)
|
||||
2. 安装 Visual Studio 2019 最新版 [官方网址](https://visualstudio.microsoft.com/vs/getting-started/)
|
||||
3. 获取本项目代码 [BootstrapBlazor](https://gitee.com/LongbowEnterprise/BootstrapBlazor)
|
||||
|
||||
## QQ交流群
|
||||
|
||||
[](https://shang.qq.com/wpa/qunwpa?idkey=d381355e50ff91db410c3da3eadb081ba859f64c2877e86343f4709b171f28b8)
|
||||
|
||||
## 视频教程
|
||||
|
||||
B 站视频集锦 [传送门](https://gitee.com/LongbowEnterprise/BootstrapBlazor/wikis/%E8%A7%86%E9%A2%91%E8%B5%84%E6%BA%90?sort_id=3300624)
|
||||
|
||||
## 组件
|
||||
|
||||
Blazor应用基于组件。 Blazor 中的组件是指 UI 元素,例如页面、对话框或数据输入窗体。
|
||||
@@ -32,20 +46,23 @@ Blazor应用基于组件。 Blazor 中的组件是指 UI 元素,例如页面
|
||||
- 可以嵌套和重用。
|
||||
- 可以作为 Razor 类库或 NuGet 包共享和分发。
|
||||
|
||||
### 内置组件
|
||||
### 内置组件
|
||||
|
||||
内置组件 [传送门](https://www.balzor.zone/alerts)
|
||||
内置组件 [传送门](https://www.blazor.zone/alerts)
|
||||
|
||||
## 分支说明
|
||||
## 分支说明
|
||||
|
||||
- master 稳定分支
|
||||
- dev 开发功能分支
|
||||
- publish 与演示网站同步
|
||||
- 其他 均为临时分支
|
||||
|
||||
## 演示地址
|
||||
[](https://www.blazor.zone)
|
||||
## 演示地址
|
||||
[](https://argozhang.github.io)
|
||||
[](https://www.blazor.zone)
|
||||
|
||||
## GVP 奖杯
|
||||

|
||||
|
||||
## 项目截图
|
||||
|
||||
@@ -77,6 +94,6 @@ Blazor应用基于组件。 Blazor 中的组件是指 UI 元素,例如页面
|
||||
|
||||
## 捐助
|
||||
|
||||
如果这个项目对您有所帮助,请扫下方二维码打赏一杯咖啡。
|
||||
如果这个项目对您有所帮助,请扫下方二维码打赏一杯咖啡。
|
||||
|
||||
<img src="https://gitee.com/LongbowEnterprise/Pictures/raw/master/WeChat/BarCode@2x.png" width="382px;" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
version: 3.1.{build}
|
||||
version: 5.0.{build}
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
@@ -10,7 +10,7 @@ init:
|
||||
environment:
|
||||
CI: true
|
||||
Appveyor: true
|
||||
COVERALLS_REPO_TOKEN:
|
||||
COVERALLS_REPO_TOKEN:
|
||||
secure: 5L1b6XqSNTOfU1iZrARo5eUOi1HOleVO3VDCW0pr6yaspgkC5jxL+gBDK0OEY8EI
|
||||
COVERALLS_REPO_TOKEN_GITLAB:
|
||||
secure: yPxFQv4kSWtZ7Vvs70bIXDx9IOEEJ9utI3UyZsJGU7rt63gZnHOry0kt9DBMWcwV
|
||||
@@ -27,7 +27,7 @@ artifacts:
|
||||
deploy:
|
||||
- provider: NuGet
|
||||
api_key:
|
||||
secure: oRAxWkjeC6lJi4Kks6kacqXxOlIpxFatk9I32HQEFDlA8gy4x4xI7tA905S3ne54
|
||||
secure: 4GiuikUCa11fxasu2UCmU8bd3exMf46F49wnMlYWjSuWTBXbPpPN5YxRvLwtNcii
|
||||
username:
|
||||
secure: RiKaoizWFqvYLGs9oUSI8g==
|
||||
skip_symbols: true
|
||||
|
||||
5
global.json
Normal file
5
global.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"sdk": {
|
||||
"version": "5.0.102"
|
||||
}
|
||||
}
|
||||
@@ -2,5 +2,5 @@
|
||||
write-host $cmd -ForegroundColor Cyan
|
||||
cmd.exe /c $cmd
|
||||
}
|
||||
runCmd "dotnet build src\BootstrapBlazor.WebConsole --configuration Release"
|
||||
runCmd "dotnet build src\BootstrapBlazor.Server --configuration Release"
|
||||
runCmd "dotnet pack src\BootstrapBlazor --configuration Release"
|
||||
|
||||
@@ -5,6 +5,6 @@ git pull
|
||||
dotnet publish src/BootstrapBlazor.WebConsole -c Release
|
||||
|
||||
systemctl stop ba.blazor
|
||||
\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.WebConsole/bin/Release/netcoreapp3.1/publish/* /usr/local/ba/blazor
|
||||
\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.WebConsole/bin/Release/net5.0/publish/* /usr/local/ba/blazor
|
||||
systemctl start ba.blazor
|
||||
systemctl status ba.blazor -l
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<SupportedPlatform Include="browser" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -1,7 +0,0 @@
|
||||
<Alert Color="Color.Primary">主要的警告框</Alert>
|
||||
<Alert Color="Color.Secondary">次要的警告框</Alert>
|
||||
<Alert Color="Color.Success">成功的警告框</Alert>
|
||||
<Alert Color="Color.Danger">危险的警告框</Alert>
|
||||
<Alert Color="Color.Warning">警告的警告框</Alert>
|
||||
<Alert Color="Color.Info">信息的警告框</Alert>
|
||||
<Alert Color="Color.Dark">黑暗的警告框</Alert>
|
||||
@@ -1,7 +0,0 @@
|
||||
<Alert ShowDismiss="true" OnDismiss="@DismissClick" Color="Color.Primary">主要的警告框</Alert>
|
||||
<Alert ShowDismiss="true" OnDismiss="@DismissClick" Color="Color.Secondary">次要的警告框</Alert>
|
||||
<Alert ShowDismiss="true" OnDismiss="@DismissClick" Color="Color.Success">成功的警告框</Alert>
|
||||
<Alert ShowDismiss="true" OnDismiss="@DismissClick" Color="Color.Danger">危险的警告框</Alert>
|
||||
<Alert ShowDismiss="true" OnDismiss="@DismissClick" Color="Color.Warning">警告的警告框</Alert>
|
||||
<Alert ShowDismiss="true" OnDismiss="@DismissClick" Color="Color.Info">信息的警告框</Alert>
|
||||
<Alert ShowDismiss="true" OnDismiss="@DismissClick" Color="Color.Dark">黑暗的警告框</Alert>
|
||||
@@ -1,4 +0,0 @@
|
||||
<Alert Icon="fa fa-check-circle" Color="Color.Success">成功提示的文案</Alert>
|
||||
<Alert Icon="fa fa-warning" Color="Color.Warning">警告提示的文案</Alert>
|
||||
<Alert Icon="fa fa-question-circle" Color="Color.Info">消息提示的文案</Alert>
|
||||
<Alert Icon="fa fa-times-circle" Color="Color.Danger">错误提示的文案</Alert>
|
||||
@@ -1,15 +0,0 @@
|
||||
<Alert ShowBar="true" Color="Color.Info">
|
||||
<div>消息提示的文案</div>
|
||||
</Alert>
|
||||
<Alert ShowBar="true" Color="Color.Success">
|
||||
<div>成功提示的文案</div>
|
||||
</Alert>
|
||||
<Alert ShowBar="true" Color="Color.Primary">
|
||||
<div>主要的警告框</div>
|
||||
</Alert>
|
||||
<Alert ShowBar="true" Color="Color.Warning">
|
||||
<div>警告的警告框</div>
|
||||
</Alert>
|
||||
<Alert ShowBar="true" Color="Color.Danger">
|
||||
<div>危险的警告框</div>
|
||||
</Alert>
|
||||
@@ -1,15 +0,0 @@
|
||||
<ul class="demo-ul">
|
||||
<li><Anchor Target="anchor1" Offset="50">Anchor1</Anchor></li>
|
||||
<li><Anchor Target="anchor2" Offset="50">Anchor2</Anchor></li>
|
||||
<li><Anchor Target="anchor3" Offset="50">Anchor3</Anchor></li>
|
||||
<li><Anchor Target="anchor4" Offset="50">Anchor4</Anchor></li>
|
||||
</ul>
|
||||
|
||||
<h4 id="anchor1">Archor1</h4>
|
||||
<div>@ContentText1</div>
|
||||
<h4 id="anchor2">Archor2</h4>
|
||||
<div>@ContentText1</div>
|
||||
<h4 id="anchor3">Archor3</h4>
|
||||
<div>@ContentText1</div>
|
||||
<h4 id="anchor4">Archor4</h4>
|
||||
<div>@ContentText1</div>
|
||||
@@ -1 +0,0 @@
|
||||
<AutoComplete Items="@Items" />
|
||||
@@ -1 +0,0 @@
|
||||
<AutoComplete Items="@Items" ValueChanged="@OnValueChanged" />
|
||||
@@ -1 +0,0 @@
|
||||
<AutoComplete Items="@StaticItems" NoDataTip="没有找到你想要的数据" />
|
||||
@@ -1 +0,0 @@
|
||||
<AutoComplete Items="@StaticItems" IsLikeMatch="true" IgnoreCase="false" />
|
||||
@@ -1,31 +0,0 @@
|
||||
<p>前置标签显式规则与 <code>BootstrapInput</code> 组件一致 <a href="inputs">[传送门]</a></p>
|
||||
<Divider Text="双向绑定显示标签" Alignment="Alignment.Left" style="margin: 2rem 0;"></Divider>
|
||||
<ValidateForm class="form-inline" Model="@Model">
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<AutoComplete Items="@StaticItems" @bind-Value="@Model.Name" ShowLabel="true" />
|
||||
</div>
|
||||
</div>
|
||||
</ValidateForm>
|
||||
<Divider Text="双向绑定不显示标签" Alignment="Alignment.Left" style="margin: 2rem 0;" />
|
||||
<div class="form-inline">
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<AutoComplete Items="@StaticItems" @bind-Value="@Model.Name" ShowLabel="false" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Divider Text="自定义 DisplayText" Alignment="Alignment.Left" style="margin: 2rem 0;"></Divider>
|
||||
<div class="form-inline">
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<AutoComplete Items="@StaticItems" @bind-Value="@Model.Name" DisplayText="自定义城市" ShowLabel="true" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private Foo Model { get; set; } = new Foo() { Name = "" };
|
||||
|
||||
private IEnumerable<string> StaticItems => new List<string> { "1", "12", "123", "1234", "12345", "123456", "abc", "abcdef", "ABC", "aBcDeFg", "ABCDEFG" };
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<Avatar Url="images/argo-c.png" IsCircle="true" Size="Size.ExtraLarge" />
|
||||
<Avatar Url="images/argo-c.png" IsCircle="true" Size="Size.Large" />
|
||||
<Avatar Url="images/argo-c.png" IsCircle="true" />
|
||||
<Avatar Url="images/argo-c.png" IsCircle="true" Size="Size.Small" />
|
||||
<Avatar Url="images/argo-c.png" IsCircle="true" Size="Size.ExtraSmall" />
|
||||
|
||||
<Avatar Url="images/argo.png" Size="Size.ExtraLarge" />
|
||||
<Avatar Url="images/argo.png" Size="Size.Large" />
|
||||
<Avatar Url="images/argo.png" />
|
||||
<Avatar Url="images/argo.png" Size="Size.Small" />
|
||||
<Avatar Url="images/argo.png" Size="Size.ExtraSmall" />
|
||||
@@ -1,3 +0,0 @@
|
||||
<Avatar IsCircle="true" IsIcon="true" />
|
||||
<Avatar IsCircle="true" Url="images/argo-c.png" />
|
||||
<Avatar IsCircle="true" IsText="true" Text="User"/>
|
||||
@@ -1,4 +0,0 @@
|
||||
<Avatar IsCircle="true" IsBorder="true" Url="images/argo-c.png" />
|
||||
<Avatar IsCircle="true" IsBorder="true" Url="images/argo-c1.png" />
|
||||
<Avatar IsCircle="true" IsBorder="true" IsIcon="true" Icon="fa fa-tv" />
|
||||
<Avatar IsCircle="true" IsBorder="true" IsText="true" Text="AZ" />
|
||||
@@ -1,8 +0,0 @@
|
||||
<Badge Color="Color.Primary">primary</Badge>
|
||||
<Badge Color="Color.Secondary">secondary</Badge>
|
||||
<Badge Color="Color.Success">success</Badge>
|
||||
<Badge Color="Color.Danger">danger</Badge>
|
||||
<Badge Color="Color.Warning">warning</Badge>
|
||||
<Badge Color="Color.Info">info</Badge>
|
||||
<Badge Color="Color.Dark">dark</Badge>
|
||||
<Badge Color="Color.Light">light</Badge>
|
||||
@@ -1,8 +0,0 @@
|
||||
<Badge IsPill="true" Color="Color.Primary">primary</Badge>
|
||||
<Badge IsPill="true" Color="Color.Secondary">secondary</Badge>
|
||||
<Badge IsPill="true" Color="Color.Success">success</Badge>
|
||||
<Badge IsPill="true" Color="Color.Danger">danger</Badge>
|
||||
<Badge IsPill="true" Color="Color.Warning">warning</Badge>
|
||||
<Badge IsPill="true" Color="Color.Info">info</Badge>
|
||||
<Badge IsPill="true" Color="Color.Dark">dark</Badge>
|
||||
<Badge IsPill="true" Color="Color.Light">light</Badge>
|
||||
@@ -1,11 +0,0 @@
|
||||
<Button Color="Color.Primary">
|
||||
<i class="fa fa-tv"></i>
|
||||
<span>主要按钮</span>
|
||||
<Badge Color="Color.Danger">1</Badge>
|
||||
</Button>
|
||||
<div class="badge-widget">
|
||||
<i class="fa fa-tv"></i>
|
||||
<Badge Color="Color.Success">
|
||||
<span style="padding: 0 2px;">8</span>
|
||||
</Badge>
|
||||
</div>
|
||||
@@ -1,34 +0,0 @@
|
||||
<BarcodeReader OnInit="@OnInit" OnResult="@OnResult" OnStart="@OnStart" OnClose="@OnClose" OnError="@OnError" />
|
||||
|
||||
@code {
|
||||
private Task OnInit(IEnumerable<Camera> devices)
|
||||
{
|
||||
var cams = string.Join("", devices.Select(i => i.Label));
|
||||
Trace?.Log($"初始化摄像头完成 {cams}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnResult(string barcode)
|
||||
{
|
||||
Trace?.Log($"扫描到条码 {barcode}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnError(string error)
|
||||
{
|
||||
Trace?.Log($"发生错误 {error}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnStart()
|
||||
{
|
||||
Trace?.Log($"打开摄像头");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnClose()
|
||||
{
|
||||
Trace?.Log($"关闭摄像头");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<BarcodeReader ScanType="@ScanType.Image" OnResult="@OnImageResult" OnError="@OnImageError" />
|
||||
|
||||
@code {
|
||||
private Task OnImageResult(string barcode)
|
||||
{
|
||||
//Trace2?.Log($"扫描到条码 {barcode}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnImageError(string err)
|
||||
{
|
||||
//Trace2?.Log($"发生错误 {err}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<BarcodeReader OnResult="@OnImageResult" OnError="@OnImageError" AutoStart="true" />
|
||||
@@ -1,21 +0,0 @@
|
||||
<Breadcrumb Value="@DataSource" />
|
||||
|
||||
@code {
|
||||
[NotNull]
|
||||
private IEnumerable<BreadcrumbItem>? DataSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// OnInitialized 方法
|
||||
/// </summary>
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
base.OnInitialized();
|
||||
|
||||
DataSource = new List<BreadcrumbItem>
|
||||
{
|
||||
new BreadcrumbItem("Home", "#"),
|
||||
new BreadcrumbItem("Library", "#"),
|
||||
new BreadcrumbItem("Data")
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
<Button @onclick="@ButtonClick" Color="Color.Primary">主要按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Secondary">次要按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Success">成功按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Danger">危险按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Warning">警告按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Info">信息按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Dark">黑暗按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Light">高亮按钮</Button>
|
||||
<Button @onclick="@ButtonClick" Color="Color.Link">链接按钮</Button>
|
||||
@@ -1,9 +0,0 @@
|
||||
<Button IsOutline="true" Color="Color.Primary">主要按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Secondary">次要按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Success">成功按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Danger">危险按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Warning">警告按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Info">信息按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Dark">黑暗按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Light">高亮按钮</Button>
|
||||
<Button IsOutline="true" Color="Color.Link">链接按钮</Button>
|
||||
@@ -1,7 +0,0 @@
|
||||
<Button Size="Size.ExtraSmall" Color="Color.Primary">超小按钮</Button>
|
||||
<Button Size="Size.Small" Color="Color.Secondary">小按钮</Button>
|
||||
<Button Size="Size.None" Color="Color.Info">按钮</Button>
|
||||
<Button Size="Size.Medium" Color="Color.Success">中等按钮</Button>
|
||||
<Button Size="Size.Large" Color="Color.Danger">大按钮</Button>
|
||||
<Button Size="Size.ExtraLarge" Color="Color.Warning">超大按钮</Button>
|
||||
<Button IsBlock="true" Color="Color.Primary">Block 按钮</Button>
|
||||
@@ -1,33 +0,0 @@
|
||||
<Button IsDisabled="true" Color="Color.Primary">主要按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Secondary">次要按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Success">成功按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Danger">危险按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Warning">警告按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Info">信息按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Dark">黑暗按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Light">高亮按钮</Button>
|
||||
<Button IsDisabled="true" Color="Color.Link">链接按钮</Button>
|
||||
|
||||
<Button Text="点击被禁用" OnClick="@ClickButton1" @ref="ButtonDisableDemo" IsDisabled="@IsDisable">
|
||||
<Tooltip Title="点击按钮后由于被禁用 Tooltip 被销毁" Placement="Placement.Top" Trigger="hover" />
|
||||
</Button>
|
||||
<Button Color="Color.Info" Text="点击后使第一个按钮可用" OnClickWithoutRender="@ClickButton2" class="ml-3"></Button>
|
||||
|
||||
@code {
|
||||
private Button ButtonDisableDemo { get; set; }
|
||||
|
||||
private bool IsDisable { get; set; }
|
||||
|
||||
private void ClickButton1()
|
||||
{
|
||||
IsDisable = !IsDisable;
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private Task ClickButton2()
|
||||
{
|
||||
IsDisable = false;
|
||||
ButtonDisableDemo.SetDisable(false);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
<div class="btn-group" role="group">
|
||||
<Button Color="Color.Primary">按钮一</Button>
|
||||
<Button Color="Color.Success">按钮二</Button>
|
||||
</div>
|
||||
@@ -1,2 +0,0 @@
|
||||
<Button Color="Color.Primary" Icon="fa fa-fa" Text="状态按钮"></Button>
|
||||
<Button Color="Color.Info" Icon="fa fa-spinner fa-spin fa-fw" Text="进度按钮"></Button>
|
||||
@@ -1,6 +0,0 @@
|
||||
<Button ButtonStyle="ButtonStyle.Round" Color="Color.Primary">主要按钮</Button>
|
||||
<Button ButtonStyle="ButtonStyle.Round" Color="Color.Secondary">次要按钮</Button>
|
||||
<Button ButtonStyle="ButtonStyle.Round" Color="Color.Success">成功按钮</Button>
|
||||
<Button ButtonStyle="ButtonStyle.Round" Color="Color.Danger">危险按钮</Button>
|
||||
<Button ButtonStyle="ButtonStyle.Round" Color="Color.Warning">警告按钮</Button>
|
||||
<Button ButtonStyle="ButtonStyle.Circle" Icon="fa fa-fw fa-cubes"></Button>
|
||||
@@ -1,14 +0,0 @@
|
||||
<WinButton Text="按钮一" OnClick="@ClickButtonShowText"></WinButton>
|
||||
<WinButton Text="按钮二" OnClick="@ClickButtonShowText"></WinButton>
|
||||
<div>@ButtonText</div>
|
||||
|
||||
@code {
|
||||
private string ButtonText { get; set; } = "";
|
||||
|
||||
private Task ClickButtonShowText(string text)
|
||||
{
|
||||
ButtonText = text;
|
||||
StateHasChanged();
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<Calendar ValueChanged="@OnValueChanged" />
|
||||
@@ -1 +0,0 @@
|
||||
<Calendar @bind-Value="@BindValue" />
|
||||
@@ -1 +0,0 @@
|
||||
<Calendar ViewModel="CalendarViewModel.Week" />
|
||||
@@ -1,63 +0,0 @@
|
||||
<Calendar ViewModel="CalendarViewModel.Week">
|
||||
<tr>
|
||||
<td class="none">无</td>
|
||||
<td rowspan="4"><div class="less ch">语文</div></td>
|
||||
<td>数学</td>
|
||||
<td>语文</td>
|
||||
<td>数学</td>
|
||||
<td>英语</td>
|
||||
<td class="none">无</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="none">无</td>
|
||||
<td>数学</td>
|
||||
<td rowspan="3"><div class="less en">英语</div></td>
|
||||
<td>数学</td>
|
||||
<td>英语</td>
|
||||
<td class="none">无</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="none">无</td>
|
||||
<td>数学</td>
|
||||
<td>数学</td>
|
||||
<td>英语</td>
|
||||
<td class="none">无</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="none">无</td>
|
||||
<td>数学</td>
|
||||
<td>数学</td>
|
||||
<td>英语</td>
|
||||
<td class="none">无</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="background-color: #f8f9fa;" colspan="7">午休</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="none">无</td>
|
||||
<td>数学</td>
|
||||
<td>语文</td>
|
||||
<td>英语</td>
|
||||
<td>数学</td>
|
||||
<td>英语</td>
|
||||
<td class="none">无</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="none">无</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td class="none">无</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="none">无</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td>自习</td>
|
||||
<td class="none">无</td>
|
||||
</tr>
|
||||
</Calendar>
|
||||
@@ -1,37 +0,0 @@
|
||||
<Camera OnInit="@OnInit" OnStart="@OnStart" OnClose="@OnClose" OnError="@OnError" OnCapture="@OnCapture" />
|
||||
<Logger @ref="Trace" class="mt-3" />
|
||||
|
||||
@code {
|
||||
private Logger Trace { get; set; }
|
||||
|
||||
private Task OnInit(IEnumerable<DeviceItem> devices)
|
||||
{
|
||||
var cams = string.Join("", devices.Select(i => i.Label));
|
||||
Trace?.Log($"初始化摄像头完成 {cams}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnError(string err)
|
||||
{
|
||||
Trace?.Log("发生错误 {err}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnStart()
|
||||
{
|
||||
Trace?.Log("打开摄像头");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnClose()
|
||||
{
|
||||
Trace?.Log("关闭摄像头");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Task OnCapture()
|
||||
{
|
||||
Trace?.Log("拍照完成");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<Camera ShowPreview="true" />
|
||||
@@ -1 +0,0 @@
|
||||
<Camera AutoStart="true" />
|
||||
@@ -1 +0,0 @@
|
||||
<Captcha />
|
||||
@@ -1 +0,0 @@
|
||||
<Captcha ImagesPath="@ImagesPath" ImagesName="@ImagesName" />
|
||||
@@ -1 +0,0 @@
|
||||
<Captcha GetImageName="@GetImageName" />
|
||||
@@ -1,7 +0,0 @@
|
||||
<Card style="width: 18rem;">
|
||||
<CardBody>
|
||||
<h5 class="card-title">Card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
<a href="#" class="btn btn-primary">Go somewhere</a>
|
||||
</CardBody>
|
||||
</Card>
|
||||
@@ -1,13 +0,0 @@
|
||||
<Card>
|
||||
<CardHeader>
|
||||
Featured
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Special title treatment</h5>
|
||||
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
|
||||
<a href="#" class="btn btn-primary">Go somewhere</a>
|
||||
</CardBody>
|
||||
<CardFooter>
|
||||
2 days ago
|
||||
</CardFooter>
|
||||
</Card>
|
||||
@@ -1,13 +0,0 @@
|
||||
<Card IsCenter="true">
|
||||
<CardHeader>
|
||||
Featured
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Special title treatment</h5>
|
||||
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
|
||||
<a href="#" class="btn btn-primary">Go somewhere</a>
|
||||
</CardBody>
|
||||
<CardFooter>
|
||||
2 days ago
|
||||
</CardFooter>
|
||||
</Card>
|
||||
@@ -1,65 +0,0 @@
|
||||
<div class="row flex">
|
||||
<Card Color="Color.Primary" Class="ml-3 mt-2" IsCenter="true" style="width: 18rem;">
|
||||
<CardHeader>
|
||||
Header
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Primary card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card Color="Color.Secondary" Class="ml-3 mt-2" IsCenter="true" style="width: 18rem;">
|
||||
<CardHeader>
|
||||
Header
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Success card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card Color="Color.Success" Class="ml-3 mt-2" IsCenter="true" style="width: 18rem;">
|
||||
<CardHeader>
|
||||
Header
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Secondary card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card Color="Color.Warning" Class="ml-3 mt-2" IsCenter="true" style="width: 18rem;">
|
||||
<CardHeader>
|
||||
Header
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Warning card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card Color="Color.Danger" Class="ml-3 mt-2" IsCenter="true" style="width: 18rem;">
|
||||
<CardHeader>
|
||||
Header
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Danger card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card Color="Color.Info" Class="ml-3 mt-2" IsCenter="true" style="width: 18rem;">
|
||||
<CardHeader>
|
||||
Header
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Info card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</CardBody>
|
||||
</Card>
|
||||
<Card Color="Color.Dark" Class="ml-3 mt-2" IsCenter="true" style="width: 18rem;">
|
||||
<CardHeader>
|
||||
Header
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<h5 class="card-title">Dark card title</h5>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</CardBody>
|
||||
</Card>
|
||||
</div>
|
||||
@@ -1,10 +0,0 @@
|
||||
<Carousel Images="@Images" Width="280"></Carousel>
|
||||
|
||||
@code {
|
||||
private IEnumerable<string> Images = new List<string>()
|
||||
{
|
||||
"images/Pic0.jpg",
|
||||
"images/Pic1.jpg",
|
||||
"images/Pic2.jpg"
|
||||
};
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<Carousel Images="@Images" Width="280" IsFade="true"></Carousel>
|
||||
@@ -1,27 +0,0 @@
|
||||
<Carousel Images="@Images" Width="280" IsFade="true" OnClick="@OnClick"></Carousel>
|
||||
<Logger @ref="Trace" class="mt-3" />
|
||||
|
||||
@code {
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private Logger? Trace { get; set; }
|
||||
|
||||
private IEnumerable<string> Images => new List<string>()
|
||||
{
|
||||
"_content/BootstrapBlazor.Shared/images/Pic0.jpg",
|
||||
"_content/BootstrapBlazor.Shared/images/Pic1.jpg",
|
||||
"_content/BootstrapBlazor.Shared/images/Pic2.jpg"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="imageUrl"></param>
|
||||
/// <returns></returns>
|
||||
private Task OnClick(string imageUrl)
|
||||
{
|
||||
Trace?.Log($"Image Clicked: {imageUrl}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
<Chart OnInit="@(() => OnInit(LineDatasetCount, LineDataCount))" />
|
||||
|
||||
@code{
|
||||
private Task<ChartDataSource> OnInit(int dsCount, int daCount)
|
||||
{
|
||||
var ds = new ChartDataSource();
|
||||
ds.Options.XAxes.Add(new ChartAxes() { LabelString = "天数" });
|
||||
ds.Options.YAxes.Add(new ChartAxes() { LabelString = "数值" });
|
||||
|
||||
ds.Labels = Enumerable.Range(1, daCount).Select(i => i.ToString());
|
||||
|
||||
for (var index = 0; index < dsCount; index++)
|
||||
{
|
||||
ds.Data.Add(new ChartDataset()
|
||||
{
|
||||
Label = $"数据集 {index}",
|
||||
Data = Enumerable.Range(1, daCount).Select(i => Random(20, 37)).Cast<object>()
|
||||
});
|
||||
}
|
||||
return Task.FromResult(ds);
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
<Chart ChartType="ChartType.Bar" OnInit="@(() => OnInit(BarDatasetCount, BarDataCount))" />
|
||||
|
||||
@code{
|
||||
private Task<ChartDataSource> OnInit(int dsCount, int daCount)
|
||||
{
|
||||
var ds = new ChartDataSource();
|
||||
ds.Options.XAxes.Add(new ChartAxes() { LabelString = "天数" });
|
||||
ds.Options.YAxes.Add(new ChartAxes() { LabelString = "数值" });
|
||||
|
||||
ds.Labels = Enumerable.Range(1, daCount).Select(i => i.ToString());
|
||||
|
||||
for (var index = 0; index < dsCount; index++)
|
||||
{
|
||||
ds.Data.Add(new ChartDataset()
|
||||
{
|
||||
Label = $"数据集 {index}",
|
||||
Data = Enumerable.Range(1, daCount).Select(i => Randomer.Next(20, 37)).Cast<object>()
|
||||
});
|
||||
}
|
||||
return Task.FromResult(ds);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<Chart ChartType="ChartType.Pie" OnInit="@(() => OnPieInit(PieDatasetCount, PieDataCount))" />
|
||||
|
||||
@code{
|
||||
private Task<ChartDataSource> OnPieInit(int dsCount, int daCount)
|
||||
{
|
||||
var ds = new ChartDataSource();
|
||||
ds.Options.XAxes.Add(new ChartAxes() { LabelString = "天数" });
|
||||
ds.Options.ShowXAxesLine = false;
|
||||
|
||||
ds.Options.YAxes.Add(new ChartAxes() { LabelString = "数值" });
|
||||
ds.Options.ShowYAxesLine = false;
|
||||
|
||||
ds.Labels = Colors.Take(daCount);
|
||||
|
||||
for (var index = 0; index < dsCount; index++)
|
||||
{
|
||||
ds.Data.Add(new ChartDataset()
|
||||
{
|
||||
Label = $"数据集 {index}",
|
||||
Data = Enumerable.Range(1, daCount).Select(i => Randomer.Next(20, 37)).Cast<object>()
|
||||
});
|
||||
}
|
||||
return Task.FromResult(ds);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<Chart ChartType="ChartType.Doughnut" OnInit="@(() => OnPieInit(DoughnutDatasetCount, DoughnutDataCount))" />
|
||||
|
||||
@code{
|
||||
private Task<ChartDataSource> OnPieInit(int dsCount, int daCount)
|
||||
{
|
||||
var ds = new ChartDataSource();
|
||||
ds.Options.XAxes.Add(new ChartAxes() { LabelString = "天数" });
|
||||
ds.Options.ShowXAxesLine = false;
|
||||
|
||||
ds.Options.YAxes.Add(new ChartAxes() { LabelString = "数值" });
|
||||
ds.Options.ShowYAxesLine = false;
|
||||
|
||||
ds.Labels = Colors.Take(daCount);
|
||||
|
||||
for (var index = 0; index < dsCount; index++)
|
||||
{
|
||||
ds.Data.Add(new ChartDataset()
|
||||
{
|
||||
Label = $"数据集 {index}",
|
||||
Data = Enumerable.Range(1, daCount).Select(i => Randomer.Next(20, 37)).Cast<object>()
|
||||
});
|
||||
}
|
||||
return Task.FromResult(ds);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<Chart ChartType="ChartType.Bubble" OnInit="@(() => OnBubbleInit(BubbleDatasetCount, BubbleDataCount))" />
|
||||
|
||||
@code{
|
||||
private Task<ChartDataSource> OnPieInit(int dsCount, int daCount)
|
||||
{
|
||||
var ds = new ChartDataSource();
|
||||
ds.Options.XAxes.Add(new ChartAxes() { LabelString = "天数" });
|
||||
ds.Options.ShowXAxesLine = false;
|
||||
|
||||
ds.Options.YAxes.Add(new ChartAxes() { LabelString = "数值" });
|
||||
ds.Options.ShowYAxesLine = false;
|
||||
|
||||
ds.Labels = Colors.Take(daCount);
|
||||
|
||||
for (var index = 0; index < dsCount; index++)
|
||||
{
|
||||
ds.Data.Add(new ChartDataset()
|
||||
{
|
||||
Label = $"数据集 {index}",
|
||||
Data = Enumerable.Range(1, daCount).Select(i => Randomer.Next(20, 37)).Cast<object>()
|
||||
});
|
||||
}
|
||||
return Task.FromResult(ds);
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
<Checkbox TValue="string" State="CheckboxState.Checked" DisplayText="选中" ShowLabel="true"></Checkbox>
|
||||
<Checkbox TValue="string" State="CheckboxState.UnChecked" DisplayText="未选" ShowLabel="true"></Checkbox>
|
||||
@@ -1,10 +0,0 @@
|
||||
<div class="form-inline">
|
||||
<div class="row">
|
||||
<div class="form-group col-12 col-md-4">
|
||||
<Checkbox TValue="string" State="CheckboxState.Checked" IsDisabled="true" DisplayText="选中" ShowLabel="true"></Checkbox>
|
||||
</div>
|
||||
<div class="form-group col-12 col-md-4">
|
||||
<Checkbox TValue="string" State="CheckboxState.UnChecked" IsDisabled="true" DisplayText="未选" ShowLabel="true"></Checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1 +0,0 @@
|
||||
<Checkbox TValue="string" DisplayText="显示文字" ShowAfterLabel="true"></Checkbox>
|
||||
@@ -1,17 +0,0 @@
|
||||
<div class="form-inline">
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<Checkbox DisplayText="双向绑定" ShowLabel="true" @bind-Value="@BindValue"></Checkbox>
|
||||
</div>
|
||||
<div class="form-group col-12">
|
||||
<BootstrapInput @bind-Value="@BindValue" IsDisabled="true"></BootstrapInput>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private bool BindValue { get; set; }
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<div class="form-inline">
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<Checkbox DisplayText="双向绑定" ShowLabel="true" @bind-Value="@BindValue"></Checkbox>
|
||||
</div>
|
||||
<div class="form-group col-12">
|
||||
<BootstrapInput @bind-Value="@BindValue" IsDisabled="true"></BootstrapInput>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private bool BindValue { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<ValidateForm class="form-inline" Model="@Model">
|
||||
<div class="row">
|
||||
<div class="form-group col-12 col-sm-6">
|
||||
<Checkbox @bind-Value="@Model.BindValue" ShowLabel="true"></Checkbox>
|
||||
</div>
|
||||
<div class="form-group col-12 col-sm-6">
|
||||
<Checkbox @bind-Value="@Model.BindValue" ShowLabel="true" DisplayText="手写标签"></Checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</ValidateForm>
|
||||
|
||||
@code {
|
||||
class Foo
|
||||
{
|
||||
[DisplayName("标签文字")]
|
||||
public bool BindValue { get; set; }
|
||||
}
|
||||
|
||||
private Foo Model { get; set; } = new Foo();
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
<CheckboxList TModel="Foo" TValue="string" @bind-Value="@Value1" Items="@Items1"
|
||||
OnSelectedChanged="@OnSelectedChanged"
|
||||
ValueField="Value" TextField="Text" CheckedField="Checked"></CheckboxList>
|
||||
|
||||
@code {
|
||||
private class Foo
|
||||
{
|
||||
public string Text { get; set; } = "";
|
||||
|
||||
public int Value { get; set; }
|
||||
|
||||
public bool Checked { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private IEnumerable<Foo> Items1 { get; set; } = new List<Foo>()
|
||||
{
|
||||
new Foo { Text = "Item 1", Value = 1, Checked = true },
|
||||
new Foo { Text = "Item 2", Value = 2, Checked = false },
|
||||
new Foo { Text = "Item 3", Value = 3, Checked = true },
|
||||
new Foo { Text = "Item 4", Value = 4, Checked = false }
|
||||
};
|
||||
|
||||
private string Value1 { get; set; } = "1,3";
|
||||
|
||||
private Task OnSelectedChanged(IEnumerable<Foo> items, Foo foo, string value)
|
||||
{
|
||||
Trace?.Log($"{foo.Text} - {foo.Checked} Value: {foo.Value} 共 {items.Where(i => i.Checked).Count()} 项被选中 组件绑定值 value:{value}");
|
||||
Trace?.Log($"组件绑定值 Value1:{Value1}");
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
<ValidateForm Model="@FooModel">
|
||||
<div class="form-inline">
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<CheckboxList TModel="Foo" TValue="string" @bind-Value="@FooModel.Value" Items="@Items2"
|
||||
ValueField="Value" TextField="Text" CheckedField="Checked">
|
||||
<RequiredValidator />
|
||||
</CheckboxList>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<div class="control-label">绑定值:</div>
|
||||
<div class="form-control">@FooModel.Value</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ValidateForm>
|
||||
|
||||
@code {
|
||||
private class Model
|
||||
{
|
||||
public string Value { get; set; } = "5,8";
|
||||
}
|
||||
|
||||
private Model FooModel { get; set; } = new Model();
|
||||
|
||||
private class Foo
|
||||
{
|
||||
public string Text { get; set; } = "";
|
||||
|
||||
public int Value { get; set; }
|
||||
|
||||
public bool Checked { get; set; }
|
||||
}
|
||||
|
||||
private IEnumerable<Foo> Items2 { get; set; } = new List<Foo>()
|
||||
{
|
||||
new Foo { Text = "Item 5", Value = 5, Checked = true },
|
||||
new Foo { Text = "Item 6", Value = 6, Checked = false },
|
||||
new Foo { Text = "Item 7", Value = 7, Checked = true },
|
||||
new Foo { Text = "Item 8", Value = 8, Checked = false }
|
||||
};
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
<CheckboxList TModel="Foo" TValue="IEnumerable<int>" Items="@Items3" @bind-Value="@Value2"
|
||||
ValueField="Value" TextField="Text" CheckedField="Checked"></CheckboxList>
|
||||
<div class="form-inline mt-3">
|
||||
<div class="row">
|
||||
<div class="form-group col-12">
|
||||
<div class="control-label">绑定值:</div>
|
||||
<div class="form-control">@(string.Join(",", Value2))</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<CheckboxList TModel="Foo" TValue="IEnumerable<string>" Items="@Items4" @bind-Value="@Value3"
|
||||
ValueField="Text" TextField="Text" CheckedField="Checked"></CheckboxList>
|
||||
|
||||
@code {
|
||||
private IEnumerable<Foo> Items3 { get; set; } = new List<Foo>()
|
||||
{
|
||||
new Foo { Text = "Item 9", Value = 9, Checked = false },
|
||||
new Foo { Text = "Item 10", Value = 10, Checked = false },
|
||||
new Foo { Text = "Item 11", Value = 11, Checked = false },
|
||||
new Foo { Text = "Item 12", Value = 12, Checked = false }
|
||||
};
|
||||
|
||||
private IEnumerable<Foo> Items4 { get; set; } = new List<Foo>()
|
||||
{
|
||||
new Foo { Text = "Item 13", Value = 13, Checked = false },
|
||||
new Foo { Text = "Item 14", Value = 14, Checked = false },
|
||||
new Foo { Text = "Item 15", Value = 15, Checked = false },
|
||||
new Foo { Text = "Item 16", Value = 16, Checked = false },
|
||||
});
|
||||
|
||||
private IEnumerable<int> Value2 { get; set; } = new int[] { 9, 10 };
|
||||
|
||||
private IEnumerable<string> Value3 { get; set; } = new string[] { "Item 13", "Item 15" };
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<Circle Value="@CircleValue" />
|
||||
@@ -1,7 +0,0 @@
|
||||
<Circle Value="10" Color="Color.Primary" />
|
||||
<Circle Value="20" Color="Color.Success" />
|
||||
<Circle Value="30" Color="Color.Info" />
|
||||
<Circle Value="40" Color="Color.Warning" />
|
||||
<Circle Value="50" Color="Color.Danger" />
|
||||
<Circle Value="60" Color="Color.Secondary" />
|
||||
<Circle Value="70" Color="Color.Dark" />
|
||||
@@ -1 +0,0 @@
|
||||
<Circle Value="80" Color="Color.Info" StrokeWidth="5" />
|
||||
@@ -1,10 +0,0 @@
|
||||
<Circle Width="250" Value="75" Color="Color.Success" StrokeWidth="10" ShowProgress="false">
|
||||
<div class="circle-demo">
|
||||
<h1>42,001,776</h1>
|
||||
<p>消费人群规模</p>
|
||||
<span>
|
||||
总占人数
|
||||
<i>75%</i>
|
||||
</span>
|
||||
</div>
|
||||
</Circle>
|
||||
@@ -1,21 +0,0 @@
|
||||
<Collapse>
|
||||
<CollapseItems>
|
||||
<CollapseItem Text="一致性 Consistency">
|
||||
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
|
||||
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="反馈 Feedback" IsCollapsed="false">
|
||||
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
|
||||
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="效率 Efficiency">
|
||||
<div>简化流程:设计简洁直观的操作流程;</div>
|
||||
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
|
||||
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="可控 Controllability">
|
||||
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
|
||||
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
|
||||
</CollapseItem>
|
||||
</CollapseItems>
|
||||
</Collapse>
|
||||
@@ -1,21 +0,0 @@
|
||||
<Collapse ShowArrow="true">
|
||||
<CollapseItems>
|
||||
<CollapseItem Text="一致性 Consistency">
|
||||
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
|
||||
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="反馈 Feedback" IsCollapsed="false">
|
||||
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
|
||||
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="效率 Efficiency">
|
||||
<div>简化流程:设计简洁直观的操作流程;</div>
|
||||
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
|
||||
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="可控 Controllability">
|
||||
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
|
||||
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
|
||||
</CollapseItem>
|
||||
</CollapseItems>
|
||||
</Collapse>
|
||||
@@ -1,21 +0,0 @@
|
||||
<Collapse ShowArrow="true" IsAccordion ="true">
|
||||
<CollapseItems>
|
||||
<CollapseItem Text="一致性 Consistency">
|
||||
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
|
||||
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="反馈 Feedback">
|
||||
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
|
||||
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="效率 Efficiency">
|
||||
<div>简化流程:设计简洁直观的操作流程;</div>
|
||||
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
|
||||
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
|
||||
</CollapseItem>
|
||||
<CollapseItem Text="可控 Controllability">
|
||||
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
|
||||
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
|
||||
</CollapseItem>
|
||||
</CollapseItems>
|
||||
</Collapse>
|
||||
@@ -1 +0,0 @@
|
||||
<Collapse ExpandedText="点击我折叠" CollapsedText="点击我展开">学习让我快乐</Collapse>
|
||||
@@ -1 +0,0 @@
|
||||
<Console Items="@Messages" Height="126" />
|
||||
@@ -1 +0,0 @@
|
||||
<Console Items="@Messages" Height="126" OnClear="@OnClear" />
|
||||
@@ -1 +0,0 @@
|
||||
<Console Items="@ColorMessages" Height="126" OnClear="@OnClear" />
|
||||
@@ -1 +0,0 @@
|
||||
<Console Items="@Messages" Height="126" ShowAutoScroll="true" />
|
||||
@@ -1,13 +0,0 @@
|
||||
<DatePickerBody IsShown="true" ValueChanged="@DateValueChanged" ShowFooter="false" />
|
||||
|
||||
@code {
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="d"></param>
|
||||
private Task DateValueChanged(DateTime d)
|
||||
{
|
||||
DateLogger?.Log($"选择的日期为: {d:yyyy-MM-dd}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime" ViewModel="DatePickerViewModel.Date" Value="@(DateTime.Today.AddDays(3 - DateTime.Today.Day))"
|
||||
MinValue="@(DateTime.Today.AddDays(1 - DateTime.Today.Day))" MaxValue="@(DateTime.Today.AddDays(14 - DateTime.Today.Day))" />
|
||||
@@ -1 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime" Value="@DateTime.Today" />
|
||||
@@ -1,32 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime?" Value="@BindValue" ValueChanged="@DateTimeValueChanged" Placement="Placement.Right" />
|
||||
<input class="form-control" @bind="@BindValueString" />
|
||||
|
||||
@code{
|
||||
protected DateTime BindValue { get; set; } = DateTime.Today;
|
||||
|
||||
private string BindValueString
|
||||
{
|
||||
get
|
||||
{
|
||||
return BindValue.HasValue ? BindValue.Value.ToString("yyyy-MM-dd") : "";
|
||||
}
|
||||
set
|
||||
{
|
||||
if (DateTime.TryParse(value, out var d))
|
||||
{
|
||||
BindValue = d;
|
||||
}
|
||||
else
|
||||
{
|
||||
BindValue = DateTime.Today;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Task DateTimeValueChanged(DateTime? d)
|
||||
{
|
||||
BindValue = d;
|
||||
DateTimeLogger?.Log($"选择的时间为: {d:yyyy-MM-dd}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime" ViewModel="DatePickerViewModel.DateTime" />
|
||||
@@ -1 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime?" ViewModel="DatePickerViewModel.DateTime" />
|
||||
@@ -1,5 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime?" @bind-Value="@BindNullValue" DisplayText="选择时间" ShowLabel="true" />
|
||||
|
||||
@code {
|
||||
private DateTime? BindNullValue { get; set; }
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime" IsDisabled="true" />
|
||||
@@ -1 +0,0 @@
|
||||
<DateTimePicker TValue="DateTime" ShowSidebar="true" ViewModel="DatePickerViewModel.DateTime"/>
|
||||
@@ -1,15 +0,0 @@
|
||||
<DateTimeRange @bind-Value="@DateTimeRangeValue1" OnConfirm="OnConfirm" />
|
||||
<Logger @ref="DateLogger" class="mt-3" />
|
||||
|
||||
@code {
|
||||
[NotNull]
|
||||
private Logger? DateLogger { get; set; }
|
||||
|
||||
private DateTimeRangeValue DateTimeRangeValue1 { get; set; } = new DateTimeRangeValue();
|
||||
|
||||
private Task OnConfirm(DateTimeRangeValue value)
|
||||
{
|
||||
DateLogger?.Log($"选择的时间范围是: {value.Start:yyyy-MM-dd} - {value.End:yyyy-MM-dd}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<DateTimeRange @bind-Value="@DateTimeRangeValue2" />
|
||||
<div>
|
||||
@if (DateTimeRangeValue2.Start != DateTime.MinValue)
|
||||
{
|
||||
<span>时间范围:</span> @DateTimeRangeValue2.Start.ToString("yyyy-MM-dd");
|
||||
}
|
||||
@if (DateTimeRangeValue2.End != DateTime.MinValue)
|
||||
{
|
||||
<span> - </span> @DateTimeRangeValue2.End.ToString("yyyy-MM-dd");
|
||||
}
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private DateTimeRangeValue DateTimeRangeValue2 { get; set; } = new DateTimeRangeValue();
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user