mh_custom/wtmProject.Shared/Pages/_Admin/WTM_CONTRACT/Edit.razor
2024-05-17 13:43:36 +08:00

106 lines
4.7 KiB
Plaintext

@page "/_Admin/WTM_CONTRACT/Edit/{id}"
@using wtmProject.ViewModel._Admin.WTM_CONTRACTVMs;
@using wtmProject.ViewModel._Admin.WTM_CUSTOMVMs
@inherits BasePage
<ValidateForm @ref="vform" Model="@Model" OnValidSubmit="@Submit">
<Row ItemsPerRow="ItemsPerRow.Three" RowType="RowType.Normal">
<Select @bind-Value="@Model.Entity.CustomId" Items="@AllWTM_CUSTOMs" OnSelectedItemChanged="OnCascadeBindSelectClick" ShowSearch=true PlaceHolder="@WtmBlazor.Localizer["Sys.PleaseSelect"]"/>
<Select @bind-Value="@Model.Entity.CustomClass" IsDisabled="true" PlaceHolder="@WtmBlazor.Localizer["Sys.PleaseSelect"]" />
<Select @bind-Value="@Model.Entity.VisitObjectId" Items="@AllWTM_CUSTOM_PERSONs" PlaceHolder="@WtmBlazor.Localizer["Sys.PleaseSelect"]"/>
<Select @bind-Value="@Model.Entity.MarkManageId" Items="@AllFrameworkUsers" PlaceHolder="@WtmBlazor.Localizer["Sys.PleaseSelect"]"/>
<Select @bind-Value="@Model.Entity.ProjectId" Items="@AllWTM_PROJECTs" PlaceHolder="@WtmBlazor.Localizer["Sys.PleaseSelect"]"/>
<BootstrapInput @bind-Value="@Model.Entity.ContractName" />
<BootstrapInput @bind-Value="@Model.Entity.ContractCode" />
<DateTimePicker @bind-Value="@Model.Entity.SignDate" />
<BootstrapInputNumber @bind-Value="@Model.Entity.ContractAmount" />
<BootstrapInputNumber @bind-Value="@Model.Entity.CostAmount" />
<Select @bind-Value="@Model.Entity.ContractCycle" PlaceHolder="@WtmBlazor.Localizer["Sys.PleaseSelect"]"/>
<Select @bind-Value="@Model.Entity.ProjectManageId" Items="@AllFrameworkUsers" PlaceHolder="@WtmBlazor.Localizer["Sys.PleaseSelect"]"/>
<BootstrapInput @bind-Value="@Model.Entity.GrossProfitMargin" IsDisabled="true" />
<WTUploadFile @bind-Value="@Model.Entity.Files" />
</Row>
<div class="modal-footer table-modal-footer">
@* <Button Color="Color.Primary" Icon="fa fa-save" Text="@WtmBlazor.Localizer["Sys.Close"]" OnClick="OnClose" />*@
<Button Color="Color.Primary" ButtonType="ButtonType.Submit" Icon="fa fa-save" Text="@WtmBlazor.Localizer["Sys.Edit"]" IsAsync="true" />
</div>
</ValidateForm>
@code {
private WTM_CONTRACTVM Model = null;
private ValidateForm vform { get; set; }
[Parameter]
public string id { get; set; }
private List<SelectedItem> AllWTM_CUSTOMs = new List<SelectedItem>();
private List<SelectedItem> AllWTM_CUSTOM_PERSONs = new List<SelectedItem>();
private List<SelectedItem> AllFrameworkUsers = new List<SelectedItem>();
private List<SelectedItem> AllWTM_PROJECTs = new List<SelectedItem>();
protected override async Task OnInitializedAsync()
{
AllWTM_CUSTOMs = await WtmBlazor.Api.CallItemsApi("/api/WTM_CONTRACT/GetWTM_CUSTOMs", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
AllWTM_CUSTOM_PERSONs = await WtmBlazor.Api.CallItemsApi("/api/WTM_CONTRACT/GetWTM_CUSTOM_PERSONs", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
AllFrameworkUsers = await WtmBlazor.Api.CallItemsApi("/api/WTM_CONTRACT/GetFrameworkUsers", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
AllWTM_PROJECTs = await WtmBlazor.Api.CallItemsApi("/api/WTM_CONTRACT/GetWTM_PROJECTs", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
var rv = await WtmBlazor.Api.CallAPI<WTM_CONTRACTVM>($"/api/WTM_CONTRACT/{id}");
Model = rv.Data;
CalculateC();
await base.OnInitializedAsync();
}
private async Task Submit(EditContext context)
{
await PostsForm(vform, $"/api/WTM_CONTRACT/edit", (s) => "Sys.OprationSuccess", method: HttpMethodEnum.PUT);
}
public void OnClose()
{
CloseDialog();
}
/// <summary>
/// 级联绑定
/// </summary>
/// <param name="item"></param>
private async Task OnCascadeBindSelectClick(SelectedItem item)
{
AllWTM_CUSTOM_PERSONs = await WtmBlazor.Api.CallItemsApi($"/api/WTM_VISIT_PLAN/GetWTM_CUSTOM_PERSONs_Temp?CustomId={item.Value}", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
var rv = await WtmBlazor.Api.CallAPI<WTM_CUSTOMVM>($"/api/WTM_CUSTOM/{item.Value}");
Model.Entity.CustomClass = rv.Data.Entity.CustomClass;
StateHasChanged();
}
/// <summary>
/// 自动计算毛利率
/// </summary>
private void CalculateC()
{
var A = Model.Entity.ContractAmount;
var B = Model.Entity.CostAmount;
if (A > 0 && B >= 0)
{
var data = ((A - B) / A * 100).ToString();
Model.Entity.GrossProfitMargin = string.Format("{0:F2}", data) + "%";
}
}
protected override void OnAfterRender(bool firstRender)
{
if (!firstRender)
{
CalculateC();
}
}
}