view ticket
This commit is contained in:
81
TaxPayerFull/Layout/LTicket.razor
Normal file
81
TaxPayerFull/Layout/LTicket.razor
Normal file
@@ -0,0 +1,81 @@
|
||||
@using Shared.DTOs
|
||||
|
||||
<Modal @ref="modal" title="Modal title" IsVerticallyCentered="true">
|
||||
<BodyTemplate>
|
||||
<div class="col-md-1">
|
||||
This is a vertically centered modal.
|
||||
</div>
|
||||
</BodyTemplate>
|
||||
<FooterTemplate>
|
||||
<Button Color="ButtonColor.Secondary" @onclick="OnHideModalClick">Close</Button>
|
||||
<Button Color="ButtonColor.Primary">Save changes</Button>
|
||||
</FooterTemplate>
|
||||
</Modal>
|
||||
|
||||
<li class="list-group-item" data-toggle="modal" data-target="#issue">
|
||||
<div class="row">
|
||||
<div class="col-md-1">
|
||||
<a style="cursor:pointer" @onclick="OnShowModalClick"><br />#@Ticket.TicketID</a>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<h6 style="cursor:pointer; color: #4793AF;" @onclick="OnShowModalClick">@Ticket.Title</h6>
|
||||
<Badge Color="@badgeColor" IndicatorType="BadgeIndicatorType.RoundedPill">@Ticket.MsgStatus</Badge>
|
||||
|
||||
</div>
|
||||
|
||||
<div style="text-align:center;" class="col-md-2">
|
||||
<p>تاریخ شروع <br /> @Ticket.CreateDate</p>
|
||||
</div>
|
||||
@if (!string.IsNullOrEmpty(Ticket.EndDate))
|
||||
{
|
||||
<div style="text-align:center;" class="col-md-2">
|
||||
<p>تاریخ پایان <br /> @Ticket.EndDate</p>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public TicketDTO Ticket { get; set; }
|
||||
public BadgeColor badgeColor = BadgeColor.Light;
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
switch (Ticket.Status)
|
||||
{
|
||||
case StatusTicket.Awaitingreview:
|
||||
badgeColor = BadgeColor.Warning;
|
||||
break;
|
||||
case StatusTicket.Read_Checking:
|
||||
badgeColor = BadgeColor.Primary;
|
||||
break;
|
||||
case StatusTicket.hasbeenanswered:
|
||||
badgeColor = BadgeColor.Success;
|
||||
break;
|
||||
case StatusTicket.End:
|
||||
badgeColor = BadgeColor.Secondary;
|
||||
break;
|
||||
case StatusTicket.optout:
|
||||
badgeColor = BadgeColor.Danger;
|
||||
break;
|
||||
default:
|
||||
badgeColor = BadgeColor.Light;
|
||||
break;
|
||||
}
|
||||
await base.OnParametersSetAsync();
|
||||
}
|
||||
//-----------
|
||||
private Modal modal = default!;
|
||||
private async Task OnShowModalClick()
|
||||
{
|
||||
await modal.ShowAsync();
|
||||
}
|
||||
|
||||
private async Task OnHideModalClick()
|
||||
{
|
||||
await modal.HideAsync();
|
||||
}
|
||||
}
|
@@ -68,7 +68,9 @@
|
||||
<ItemBlog Item="request.list[i]" />
|
||||
}
|
||||
</div>
|
||||
|
||||
<nav aria-label="Page navigation">
|
||||
<br />
|
||||
<ul class="pagination justify-content-center">
|
||||
@for (int page = 1; page <= request?.PageCount; page++)
|
||||
{
|
||||
|
@@ -1,102 +1,142 @@
|
||||
@page "/Ticket"
|
||||
@using Front.Services
|
||||
@using Shared.DTOs
|
||||
@using Shared.DTOs.Serch
|
||||
@layout PanelLayout
|
||||
|
||||
|
||||
@inject HttpClientController hc;
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="container">
|
||||
<div class="row clearfix">
|
||||
<div class="col-lg-12">
|
||||
<div class="card chat-app">
|
||||
<div id="plist" class="people-list">
|
||||
<ul class="list-unstyled chat-list mt-2 mb-0">
|
||||
<li class="clearfix">
|
||||
<img src="https://bootdey.com/img/Content/avatar/avatar1.png" alt="avatar">
|
||||
<div class="about">
|
||||
<div class="name">Vincent Porter</div>
|
||||
<div class="status"> <i class="fa fa-circle offline"></i> left 7 mins ago </div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="clearfix active">
|
||||
<img src="https://bootdey.com/img/Content/avatar/avatar2.png" alt="avatar">
|
||||
<div class="about">
|
||||
<div class="name">Aiden Chavez</div>
|
||||
<div class="status"> <i class="fa fa-circle online"></i> online </div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="clearfix">
|
||||
<img src="https://bootdey.com/img/Content/avatar/avatar3.png" alt="avatar">
|
||||
<div class="about">
|
||||
<div class="name">Mike Thomas</div>
|
||||
<div class="status"> <i class="fa fa-circle online"></i> online </div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="clearfix">
|
||||
<img src="https://bootdey.com/img/Content/avatar/avatar7.png" alt="avatar">
|
||||
<div class="about">
|
||||
<div class="name">Christian Kelly</div>
|
||||
<div class="status"> <i class="fa fa-circle offline"></i> left 10 hours ago </div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="clearfix">
|
||||
<img src="https://bootdey.com/img/Content/avatar/avatar8.png" alt="avatar">
|
||||
<div class="about">
|
||||
<div class="name">Monica Ward</div>
|
||||
<div class="status"> <i class="fa fa-circle online"></i> online </div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="clearfix">
|
||||
<img src="https://bootdey.com/img/Content/avatar/avatar3.png" alt="avatar">
|
||||
<div class="about">
|
||||
<div class="name">Dean Henry</div>
|
||||
<div class="status"> <i class="fa fa-circle offline"></i> offline since Oct 28 </div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="chat">
|
||||
<div class="chat-header clearfix">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="chat-about">
|
||||
<h6 class="m-b-0">Aiden Chavez</h6>
|
||||
<h4 class="fw-bold py-3 mb-4">
|
||||
<span class="text-muted fw-light">متفرقه /</span> پشتیبانی
|
||||
</h4>
|
||||
<div class="row">
|
||||
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
|
||||
<Icon Name="@alertIconName" class="me-2"></Icon>
|
||||
@alertMessage
|
||||
</Alert>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-4">
|
||||
<h5 class="card-header">تیکت ها</h5>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<ul class="list-group fa-padding" style="border: 2px solid #0d6efd">
|
||||
<li class="list-group-item" data-toggle="modal" data-target="#issue">
|
||||
<div class="row g-3">
|
||||
<div class="col-md-2">
|
||||
<InputText @bind-Value="TicketID" placeholder="شناسه" style="text-align:center;" class="form-control" type="text" id="EconomicCode" />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<InputText style="text-align:center;" placeholder="عنوان" @bind-Value="Title" class="form-control" type="text" id="UniqeMemory" />
|
||||
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
|
||||
<button type="submit" onclick="@Submit" class="btn btn-primary">جستجو</button>
|
||||
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
|
||||
<button type="submit" onclick="@Submit" class="btn btn-primary">جدید</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="chat-history">
|
||||
<ul class="m-b-0">
|
||||
<li class="clearfix">
|
||||
<div class="message other-message"> Hi Aiden, how are you? How is the project coming along? </div>
|
||||
<div class="message-data">
|
||||
<span class="message-data-time">10:10 AM, Today</span>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<li style="text-align:left;" class="clearfix">
|
||||
<div>
|
||||
<div class="message my-message">Are we meeting today?</div>
|
||||
<div class="message-data">
|
||||
<span style="text-align:right;" class="message-data-time">10:12 AM, Today</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="chat-message clearfix">
|
||||
<div class="input-group mb-0">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-send"></i></span>
|
||||
</div>
|
||||
<input type="text" class="form-control" placeholder="Enter text here...">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<ul class="list-group fa-padding">
|
||||
@for (int i = 0; i < request?.list.Count; i++)
|
||||
{
|
||||
<LTicket Ticket="request?.list[i]" />
|
||||
}
|
||||
</ul>
|
||||
<nav aria-label="Page navigation">
|
||||
<br />
|
||||
<ul class="pagination justify-content-center">
|
||||
@for (int page = 1; page <= request?.PageCount; page++)
|
||||
{
|
||||
if (page == PageIndex)
|
||||
{
|
||||
<li class="page-item disabled">
|
||||
<a class="page-link" href="@hc._nav.GetUriWithQueryParameter("PageIndex",page)">@(page)</a>
|
||||
</li>
|
||||
}
|
||||
else
|
||||
{
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="@hc._nav.GetUriWithQueryParameter("PageIndex",page)">@(page)</a>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
@code {
|
||||
// alert
|
||||
AlertColor alertColor = AlertColor.Primary;
|
||||
IconName alertIconName = IconName.CheckCircleFill;
|
||||
bool Hidealert = true;
|
||||
string alertMessage = "";
|
||||
|
||||
|
||||
public string? TicketID { get; set; }
|
||||
public string? Title { get; set; }
|
||||
|
||||
[Parameter, SupplyParameterFromQuery]
|
||||
public int? PageIndex { get; set; }
|
||||
|
||||
public Shared.DTOs.PagingDto<TicketDTO>? request { get; set; }
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
if (PageIndex == null) PageIndex = 1;
|
||||
request = new PagingDto<TicketDTO>(2, 10, new List<TicketDTO>()
|
||||
{
|
||||
new TicketDTO
|
||||
{
|
||||
CreateDate="1402/08/05",
|
||||
CreateTime="20:10:10",
|
||||
EndDate="1402/08/08",
|
||||
EndTime="08:10:10",
|
||||
MsgStatus="خوانده شده/ در حال بررسی",
|
||||
Status=StatusTicket.optout,
|
||||
TicketID=1,
|
||||
Title="این یک تست برای یک تیکت است"
|
||||
},
|
||||
new TicketDTO
|
||||
{
|
||||
CreateDate="1402/08/05",
|
||||
CreateTime="20:10:10",
|
||||
EndDate="1402/08/08",
|
||||
EndTime="08:10:10",
|
||||
MsgStatus="خوانده شده/ در حال بررسی",
|
||||
Status=StatusTicket.optout,
|
||||
TicketID=1,
|
||||
Title="این یک تست برای یک تیکت است"
|
||||
}
|
||||
});
|
||||
await base.OnParametersSetAsync();
|
||||
}
|
||||
private async Task Submit()
|
||||
{
|
||||
var eeee = Title + " " + Title;
|
||||
}
|
||||
}
|
||||
|
@@ -1,264 +0,0 @@
|
||||
body {
|
||||
background-color: #f4f7f6;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: #fff;
|
||||
transition: .5s;
|
||||
border: 0;
|
||||
margin-bottom: 30px;
|
||||
border-radius: .55rem;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 10%);
|
||||
}
|
||||
|
||||
.chat-app .people-list {
|
||||
width: 280px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 20px;
|
||||
z-index: 7
|
||||
}
|
||||
|
||||
.chat-app .chat {
|
||||
margin-left: 280px;
|
||||
border-left: 1px solid #eaeaea
|
||||
}
|
||||
|
||||
.people-list {
|
||||
-moz-transition: .5s;
|
||||
-o-transition: .5s;
|
||||
-webkit-transition: .5s;
|
||||
transition: .5s
|
||||
}
|
||||
|
||||
.people-list .chat-list li {
|
||||
padding: 10px 15px;
|
||||
list-style: none;
|
||||
border-radius: 3px
|
||||
}
|
||||
|
||||
.people-list .chat-list li:hover {
|
||||
background: #efefef;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.people-list .chat-list li.active {
|
||||
background: #efefef
|
||||
}
|
||||
|
||||
.people-list .chat-list li .name {
|
||||
font-size: 15px
|
||||
}
|
||||
|
||||
.people-list .chat-list img {
|
||||
width: 45px;
|
||||
border-radius: 50%
|
||||
}
|
||||
|
||||
.people-list img {
|
||||
float: left;
|
||||
border-radius: 50%
|
||||
}
|
||||
|
||||
.people-list .about {
|
||||
float: left;
|
||||
padding-left: 8px
|
||||
}
|
||||
|
||||
.people-list .status {
|
||||
color: #999;
|
||||
font-size: 13px
|
||||
}
|
||||
|
||||
.chat .chat-header {
|
||||
padding: 15px 20px;
|
||||
border-bottom: 2px solid #f4f7f6
|
||||
}
|
||||
|
||||
.chat .chat-header img {
|
||||
float: left;
|
||||
border-radius: 40px;
|
||||
width: 40px
|
||||
}
|
||||
|
||||
.chat .chat-header .chat-about {
|
||||
float: left;
|
||||
padding-left: 10px
|
||||
}
|
||||
|
||||
.chat .chat-history {
|
||||
padding: 20px;
|
||||
border-bottom: 2px solid #fff
|
||||
}
|
||||
|
||||
.chat .chat-history ul {
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.chat .chat-history ul li {
|
||||
list-style: none;
|
||||
margin-bottom: 30px
|
||||
}
|
||||
|
||||
.chat .chat-history ul li:last-child {
|
||||
margin-bottom: 0px
|
||||
}
|
||||
|
||||
.chat .chat-history .message-data {
|
||||
margin-bottom: 15px
|
||||
}
|
||||
|
||||
.chat .chat-history .message-data img {
|
||||
border-radius: 40px;
|
||||
width: 40px
|
||||
}
|
||||
|
||||
.chat .chat-history .message-data-time {
|
||||
color: #434651;
|
||||
padding-left: 6px
|
||||
}
|
||||
|
||||
.chat .chat-history .message {
|
||||
color: #444;
|
||||
padding: 18px 20px;
|
||||
line-height: 26px;
|
||||
font-size: 16px;
|
||||
border-radius: 7px;
|
||||
display: inline-block;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.chat .chat-history .message:after {
|
||||
bottom: 100%;
|
||||
left: 7%;
|
||||
border: solid transparent;
|
||||
content: " ";
|
||||
height: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border-bottom-color: #fff;
|
||||
border-width: 10px;
|
||||
margin-left: -10px
|
||||
}
|
||||
|
||||
.chat .chat-history .my-message {
|
||||
background: #efefef
|
||||
}
|
||||
|
||||
.chat .chat-history .my-message:after {
|
||||
bottom: 100%;
|
||||
left: 30px;
|
||||
border: solid transparent;
|
||||
content: " ";
|
||||
height: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border-bottom-color: #efefef;
|
||||
border-width: 10px;
|
||||
margin-left: -10px
|
||||
}
|
||||
|
||||
.chat .chat-history .other-message {
|
||||
background: #e8f1f3;
|
||||
text-align: right
|
||||
}
|
||||
|
||||
.chat .chat-history .other-message:after {
|
||||
border-bottom-color: #e8f1f3;
|
||||
left: 93%
|
||||
}
|
||||
|
||||
.chat .chat-message {
|
||||
padding: 20px
|
||||
}
|
||||
|
||||
.online,
|
||||
.offline,
|
||||
.me {
|
||||
margin-right: 2px;
|
||||
font-size: 8px;
|
||||
vertical-align: middle
|
||||
}
|
||||
|
||||
.online {
|
||||
color: #86c541
|
||||
}
|
||||
|
||||
.offline {
|
||||
color: #e47297
|
||||
}
|
||||
|
||||
.me {
|
||||
color: #1d8ecd
|
||||
}
|
||||
|
||||
.float-right {
|
||||
float: right
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
visibility: hidden;
|
||||
display: block;
|
||||
font-size: 0;
|
||||
content: " ";
|
||||
clear: both;
|
||||
height: 0
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
.chat-app .people-list {
|
||||
height: 465px;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
background: #fff;
|
||||
left: -400px;
|
||||
display: none
|
||||
}
|
||||
|
||||
.chat-app .people-list.open {
|
||||
left: 0
|
||||
}
|
||||
|
||||
.chat-app .chat {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.chat-app .chat .chat-header {
|
||||
border-radius: 0.55rem 0.55rem 0 0
|
||||
}
|
||||
|
||||
.chat-app .chat-history {
|
||||
height: 300px;
|
||||
overflow-x: auto
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 992px) {
|
||||
.chat-app .chat-list {
|
||||
height: 650px;
|
||||
overflow-x: auto
|
||||
}
|
||||
|
||||
.chat-app .chat-history {
|
||||
height: 600px;
|
||||
overflow-x: auto
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 1) {
|
||||
.chat-app .chat-list {
|
||||
height: 480px;
|
||||
overflow-x: auto
|
||||
}
|
||||
|
||||
.chat-app .chat-history {
|
||||
height: calc(100vh - 350px);
|
||||
overflow-x: auto
|
||||
}
|
||||
}
|
@@ -33,9 +33,9 @@ builder.Services.AddScoped(sp => new UserAuthenticationDTO()
|
||||
}) ;
|
||||
|
||||
|
||||
//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7075/api/") });
|
||||
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7075/api/") });
|
||||
|
||||
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://localhost:5271/api/") });
|
||||
//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://localhost:5271/api/") });
|
||||
|
||||
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fa-Ir");
|
||||
|
||||
|
Reference in New Issue
Block a user