2024-05-28 14:49:22 +08:00
|
|
|
|
@using Newtonsoft.Json
|
|
|
|
|
|
@inherits BasePage
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<style >
|
|
|
|
|
|
.indexSelect{
|
|
|
|
|
|
height:44px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.indexInputGroup {
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
position:absolute;
|
|
|
|
|
|
top: 20%;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translate(-50%,-50%);
|
|
|
|
|
|
z-index:1;
|
|
|
|
|
|
opacity: 0.9;
|
|
|
|
|
|
}
|
|
|
|
|
|
.rowIndex{
|
|
|
|
|
|
width: 80%;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 55%;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translate(-50%,-50%);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.carousel-item-demo2{
|
|
|
|
|
|
display:flex;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.demo-item{
|
|
|
|
|
|
margin-right:1rem;
|
|
|
|
|
|
background-color: rgba(var(--bs-body-color-rgb), .08);
|
|
|
|
|
|
border-radius: var(--bs-border-radius);
|
|
|
|
|
|
padding: 1rem 2rem;
|
|
|
|
|
|
height:200px;
|
|
|
|
|
|
width:150px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.top{
|
|
|
|
|
|
text-align:center;
|
|
|
|
|
|
font-size:1rem;
|
|
|
|
|
|
color:#367FA9;
|
|
|
|
|
|
}
|
|
|
|
|
|
.img{
|
|
|
|
|
|
height: 100px;
|
|
|
|
|
|
width: 100px;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
2024-05-28 14:49:22 +08:00
|
|
|
|
<div class="index">
|
|
|
|
|
|
<div class="welcome container">
|
|
|
|
|
|
<div class="form-inline">
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="form-inline">
|
|
|
|
|
|
<div>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<BootstrapInputGroup class="indexInputGroup">
|
|
|
|
|
|
<Select @bind-Value="@inputText" Items="@AllWTM_CUSTOMs" DisplayText="客户全称:" ShowLabel="true" ShowSearch="true" class="indexSelect" />
|
2024-05-28 14:49:22 +08:00
|
|
|
|
@*<BootstrapInput @bind-Value="@inputText" PlaceHolder="请输入 ..." DisplayText="客户全称:" ShowLabel="true" style="margin-right:10px;"></BootstrapInput>*@
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<Button Color="Color.Primary" ButtonType="ButtonType.Submit" Icon="fa fa-search" Text="快捷查询" IsAsync="true" OnClick="() => CustomReportClick()" style="width:108px;height:44px;" />
|
|
|
|
|
|
</BootstrapInputGroup>
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</div>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<div class="rowIndex">
|
|
|
|
|
|
<div class="col-12">
|
2024-05-28 14:49:22 +08:00
|
|
|
|
<div class="welcome-footer">
|
|
|
|
|
|
<div class="d-flex flex-wrap q-link">
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<div style="margin-bottom:20px;">
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@CustomCreateClick"><i class="fa fa-clipboard fa-0" style="color:#367FA9;"></i><p class="link-ctx" style="color:#367FA9;">新增客户档案</p></Button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="margin-bottom:20px;">
|
|
|
|
|
|
<TabLink Text="新增拜访计划" Url="/_Admin/WTM_VISIT_PLAN/Create"><i class="fa fa-bars fa-0" style="padding:6px 12px 0px 12px"></i><p style="padding:0px 12px 6px 12px">新增拜访计划</p></TabLink>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="margin-bottom:20px;">
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@BusinessCreateClick"><i class="fa fa-users fa-0" style="color:#367FA9;"></i><p class="link-ctx" style="color:#367FA9;">新增商机线索</p></Button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="margin-bottom:20px;">
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@ContractCreateClick"><i class="fa fa-shield fa-0" style="color:#367FA9;"></i><p class="link-ctx" style="color:#367FA9;">新增合同</p></Button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="margin-bottom:20px;">
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@BillingCreateClick"><i class="fa fa-text fa-0" style="color:#367FA9;"></i><p class="link-ctx" style="color:#367FA9;">新增开票</p></Button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@* <div style="margin-bottom:20px;">
|
|
|
|
|
|
<a target="_blank" href="/_codegen?ui=blazor" :underline="false">
|
|
|
|
|
|
<i class="fa fa-cogs fa-3"></i>
|
|
|
|
|
|
<p class="link-ctx">代码生成</p>
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</a>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
</div> *@
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@* <Carousel Width="820" ShowIndicators="false">
|
|
|
|
|
|
<CarouselItem>
|
|
|
|
|
|
<div class="carousel-item-demo2">
|
|
|
|
|
|
<div class="demo-item">
|
|
|
|
|
|
<div class="top">
|
|
|
|
|
|
<div>新增客户档案</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@CustomCreateClick"> <img src="./images/custom.png" class="img" /></Button>
|
|
|
|
|
|
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</div>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<div class="demo-item">
|
|
|
|
|
|
<div class="top">
|
|
|
|
|
|
<div>新增拜访计划</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<TabLink Text="新增拜访计划" Url="/_Admin/WTM_VISIT_PLAN/Create"> <img src="./images/visit.png" class="img" /></TabLink>
|
|
|
|
|
|
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</div>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<div class="demo-item">
|
|
|
|
|
|
<div class="top">
|
|
|
|
|
|
<div>新增商机线索</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@BusinessCreateClick"><img src="./images/business.png" class="img" /></Button>
|
|
|
|
|
|
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</div>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<div class="demo-item">
|
|
|
|
|
|
<div class="top">
|
|
|
|
|
|
<div>新增合同</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@ContractCreateClick"> <img src="./images/contract.png" class="img" /></Button>
|
|
|
|
|
|
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</div>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
<div class="demo-item">
|
|
|
|
|
|
<div class="top">
|
|
|
|
|
|
<div>新增开票</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<Button Color="Color.None" OnClick="@BillingCreateClick"> <img src="./images/billing.png" class="img" /></Button>
|
|
|
|
|
|
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2026-01-06 10:55:05 +08:00
|
|
|
|
</CarouselItem>
|
|
|
|
|
|
</Carousel>*@
|
2024-05-28 14:49:22 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@*<div class="intro container">
|
|
|
|
|
|
<div class="form-inline">
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
<div class="form-group col-12 col-sm-6 col-md-4">
|
|
|
|
|
|
<div class="card border-success">
|
|
|
|
|
|
<p class="d-none d-sm-block">
|
|
|
|
|
|
<i class="fa fa-cubes"></i>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>丰富模块</h3>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
提供多种基类,封装了绝大部分后台常用操作<br />
|
|
|
|
|
|
提供了用户,角色,用户组,菜单,日志,权限配置等常用模块<br />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group col-12 col-sm-6 col-md-4">
|
|
|
|
|
|
<div class="card border-primary">
|
|
|
|
|
|
<p class="d-none d-sm-block">
|
|
|
|
|
|
<i class="fa fa-rocket"></i>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>性能</h3>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
支持一对多,多对多关联模型的识别和代码生成<br />
|
|
|
|
|
|
支持React,Vue,Blazor,LayUI等多种前端架构<br />
|
|
|
|
|
|
支持sqlserver,sqlite,mysql,pgsql,oracle等多种数据库<br />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group col-12 col-sm-6 col-md-4">
|
|
|
|
|
|
<div class="card border-info">
|
|
|
|
|
|
<p class="d-none d-sm-block">
|
|
|
|
|
|
<i class="fa fa-trophy"></i>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>简单易用</h3>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
一键生成WTM项目<br />
|
|
|
|
|
|
一键生成增删改查,导入导出,批量操作代码<br />
|
|
|
|
|
|
封装了Layui,AntD,Element,Blazor的大部分控件,编写前台更加简便<br />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group col-12 col-sm-6 col-md-4">
|
|
|
|
|
|
<div class="card border-danger">
|
|
|
|
|
|
<p class="d-none d-sm-block">
|
|
|
|
|
|
<i class="fa fa-github"></i>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>免费开源</h3>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div class="form-inline">
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
<div class="col-12">
|
|
|
|
|
|
<div class="d-flex flex-wrap" style=" justify-content: space-around;">
|
|
|
|
|
|
<div class="badge-widget">
|
|
|
|
|
|
<i class="fa fa-star"></i>Star
|
|
|
|
|
|
<Badge style="display:block" Color="Color.Success"><span style="padding: 0 2px;">@model.stargazers_count</span></Badge>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="badge-widget">
|
|
|
|
|
|
<i class="fa fa-code-fork"></i>Frok
|
|
|
|
|
|
<Badge style="display:block" Color="Color.Success"><span style="padding: 0 2px;">@model.forks_count</span></Badge>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="badge-widget">
|
|
|
|
|
|
<i class="fa fa-eye"></i>Watch
|
|
|
|
|
|
<Badge style="display:block" Color="Color.Success"><span style="padding: 0 2px;">@model.subscribers_count</span></Badge>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="badge-widget">
|
|
|
|
|
|
<i class="fa fa-calendar"></i>Issue
|
|
|
|
|
|
<Badge style="display:block" Color="Color.Success"><span style="padding: 0 2px;">@model.open_issues_count</span></Badge>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group col-12 col-sm-6 col-md-4">
|
|
|
|
|
|
<div class="card border-warning">
|
|
|
|
|
|
<p class="d-none d-sm-block">
|
|
|
|
|
|
<i class="fa fa-code"></i>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>演示与示例</h3>
|
|
|
|
|
|
<div>详细文档与在线演示,开箱即用</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group col-12 col-sm-6 col-md-4">
|
|
|
|
|
|
<div class="card border-secondary">
|
|
|
|
|
|
<p class="d-none d-sm-block">
|
|
|
|
|
|
<i class="fa fa-refresh"></i>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>持续更新</h3>
|
|
|
|
|
|
<div>MIT协议,永不闭源,持续更新,及时响应问题与反馈</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>*@
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@code {
|
|
|
|
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
|
|
public Index.githubpoco model { get; set; } = new Index.githubpoco();
|
|
|
|
|
|
[Inject]
|
|
|
|
|
|
private IJSRuntime jsRuntime { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
[Inject]
|
|
|
|
|
|
private NavigationManager NavigationManager { get; set; }
|
|
|
|
|
|
public string inputText { get; set; }
|
|
|
|
|
|
private List<SelectedItem> AllWTM_CUSTOMs = new List<SelectedItem>();
|
|
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
|
|
|
|
{
|
|
|
|
|
|
AllWTM_CUSTOMs = await WtmBlazor.Api.CallItemsApi("/api/WTM_VISIT_PLAN/GetWTM_CUSTOMs", placeholder: WtmBlazor.Localizer["Sys.All"]);
|
|
|
|
|
|
await base.OnInitializedAsync();
|
|
|
|
|
|
}
|
|
|
|
|
|
private async Task CustomCreateClick()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (await OpenDialog<CustomCreate>("新增客户档案") == DialogResult.Yes)
|
|
|
|
|
|
{
|
|
|
|
|
|
//CloseDialog();
|
|
|
|
|
|
var path = "/_Admin/WTM_CUSTOM";
|
|
|
|
|
|
NavigationManager.NavigateTo(path);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private async Task BusinessCreateClick()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (await OpenDialog<BusinessCreate>("新增商机线索") == DialogResult.Yes)
|
|
|
|
|
|
{
|
|
|
|
|
|
//CloseDialog();
|
|
|
|
|
|
var path = "/_Admin/WTM_BUSINESS";
|
|
|
|
|
|
NavigationManager.NavigateTo(path);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private async Task ContractCreateClick()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (await OpenDialog<ContractCreate>("新增合同") == DialogResult.Yes)
|
|
|
|
|
|
{
|
|
|
|
|
|
//CloseDialog();
|
|
|
|
|
|
var path = "/_Admin/WTM_CONTRACT";
|
|
|
|
|
|
NavigationManager.NavigateTo(path);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private async Task BillingCreateClick()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (await OpenDialog<BillingCreate>("新增开票") == DialogResult.Yes)
|
|
|
|
|
|
{
|
|
|
|
|
|
//CloseDialog();
|
|
|
|
|
|
var path = "/_Admin/WTM_BILLING_LIST";
|
|
|
|
|
|
NavigationManager.NavigateTo(path);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void CustomReportClick()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(inputText))
|
|
|
|
|
|
{
|
|
|
|
|
|
var path = $"/CustomReport/Report/{inputText}";
|
|
|
|
|
|
NavigationManager.NavigateTo(path);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
WtmBlazor.Toast.Error(WtmBlazor.Localizer["Sys.Error"], "无效的客户名称");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|