MyCaselist.razor 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. @page "/MyCaseList"
  2. @using wispro.sp.web.Components
  3. @using wispro.sp.share
  4. @inject IAgentFeedBackMemoItemsService _afService;
  5. @inject IAuthService _authService;
  6. <PageContainer TabList="@tabList" OnTabChange="OnTabChange">
  7. <Breadcrumb>
  8. <Breadcrumb>
  9. <BreadcrumbItem>
  10. <a href="/Home"><Icon Type="home"></Icon></a>
  11. </BreadcrumbItem>
  12. <BreadcrumbItem>
  13. <Icon Type="setting"></Icon><span>我的绩效清单</span>
  14. </BreadcrumbItem>
  15. </Breadcrumb>
  16. </Breadcrumb>
  17. <ChildContent>
  18. <Card>
  19. @*<Pagination @bind-Current="@_pageIndex" @bind-Total="@_total" ShowSizeChanger OnChange="OnChange" />*@
  20. @if (_Datas == null)
  21. {
  22. <center><Spin /></center>
  23. }
  24. else
  25. {
  26. if (_CurrentKey == "myList")
  27. {
  28. <PageHeader>
  29. <PageHeaderTitle>基础点数统计</PageHeaderTitle>
  30. <PageHeaderExtra>
  31. <AuthorizeView Roles="@strAddProjectJX">
  32. <Button Type="@ButtonType.Primary" OnClick="()=>goAssignPoint()">添加项目绩效</Button>
  33. </AuthorizeView>
  34. @foreach (AppealType at in apTypeService.GetItems(1))
  35. {
  36. <Button Type="@ButtonType.Primary" OnClick="()=>ShowModel(null,at)">@at.Name</Button>
  37. }
  38. </PageHeaderExtra>
  39. <PageHeaderContent>
  40. <div style="border:1px solid #000000">
  41. <AntDesign.Row Align="center" Justify="center">
  42. <AntDesign.Col Span="2" style="border-left:1px solid #000000"><center></center></AntDesign.Col>
  43. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>新申请</center></AntDesign.Col>
  44. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>OA(国内、涉外)</center></AntDesign.Col>
  45. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>其它</center></AntDesign.Col>
  46. <AntDesign.Col Span="2" style="border:1px solid #000000"></AntDesign.Col>
  47. <AntDesign.Col Span="4" style="border:1px solid #000000">一次OA授权</AntDesign.Col>
  48. <AntDesign.Col Span="4" style="border:1px solid #000000"></AntDesign.Col>
  49. </AntDesign.Row>
  50. <AntDesign.Row>
  51. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@_user.Name</center></AntDesign.Col>
  52. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办</center></AntDesign.Col>
  53. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>核稿</center></AntDesign.Col>
  54. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办</center></AntDesign.Col>
  55. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>核稿</center></AntDesign.Col>
  56. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办</center></AntDesign.Col>
  57. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>核稿</center></AntDesign.Col>
  58. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>调查案</center></AntDesign.Col>
  59. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办人</center></AntDesign.Col>
  60. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>审核人</center></AntDesign.Col>
  61. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>总计</center></AntDesign.Col>
  62. </AntDesign.Row>
  63. <AntDesign.Row>
  64. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>基础点数</center></AntDesign.Col>
  65. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("新申请处理",true)</center></AntDesign.Col>
  66. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("新申请审核", true)</center></AntDesign.Col>
  67. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("OA处理", true)</center></AntDesign.Col>
  68. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("OA审核", true)</center></AntDesign.Col>
  69. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("其它处理", true)</center></AntDesign.Col>
  70. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("其它审核", true)</center></AntDesign.Col>
  71. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("专案处理", true)</center></AntDesign.Col>
  72. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("一次OA授权处理", true)</center></AntDesign.Col>
  73. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("一次OA授权审核", true)</center></AntDesign.Col>
  74. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>@GetStatistics("ALL", true)</center></AntDesign.Col>
  75. </AntDesign.Row>
  76. <AntDesign.Row>
  77. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>调整后点数</center></AntDesign.Col>
  78. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("新申请处理")</center></AntDesign.Col>
  79. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("新申请审核")</center></AntDesign.Col>
  80. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("OA处理")</center></AntDesign.Col>
  81. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("OA审核")</center></AntDesign.Col>
  82. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("其它处理")</center></AntDesign.Col>
  83. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("其它审核")</center></AntDesign.Col>
  84. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("专案处理")</center></AntDesign.Col>
  85. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("一次OA授权处理")</center></AntDesign.Col>
  86. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("一次OA授权审核")</center></AntDesign.Col>
  87. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>@GetStatistics("ALL")</center></AntDesign.Col>
  88. </AntDesign.Row>
  89. </div>
  90. </PageHeaderContent>
  91. </PageHeader>
  92. <AntDesign.Table DataSource="_Datas" TItem="PerformanceItem" @ref="@table"
  93. @bind-PageIndex="_pageIndex"
  94. @bind-PageSize="_pageSize"
  95. Total="_total"
  96. ScrollX="1150" Size="TableSize.Small" Bordered
  97. @bind-SelectedRows="selectedItems"
  98. OnRow="OnRow"
  99. Loading="_loading"
  100. RowClassName="@(x => x.Data.isDanger() ? "danger" : "")"
  101. OnChange="HandleTableChange" RemoteDataSource>
  102. <RowTemplate>
  103. <AntDesign.Selection Key="@(context.Id.ToString())" Width="50" Fixed="left" />
  104. <AntDesign.Column Title="序号" TData="int" Width="50" Fixed="left">
  105. @serialNumber(_pageIndex, _pageSize, context.Id)
  106. </AntDesign.Column>
  107. <AntDesign.Column Title="基础点数" Width="100" @bind-Field="@context.BasePoint" Sortable>
  108. <span>@(context.BasePoint == null ? "" : context.BasePoint)</span>
  109. </AntDesign.Column>
  110. <AntDesign.Column Title="我方文号" @bind-Field="@context.CaseNo" Width="150" Sortable Filterable />
  111. <AntDesign.Column Title="案件类型" @bind-Field="@context.CaseType" Width="120" Sortable Filterable />
  112. <AntDesign.Column Title="申请类型" @bind-Field="@context.ApplicationType" Width="120" Sortable Filterable/>
  113. <AntDesign.Column Title="案件系数"
  114. @bind-Field="@context.CaseCoefficient" Width="100"
  115. Filters="CaseCoeFilters"
  116. FilterMultiple="false"
  117. OnFilter="((value,name)=>name.StartsWith(value))"
  118. Sortable />
  119. <AntDesign.Column Title="处理事项" @bind-Field="@context.DoItem" Width="150" Sortable Filterable />
  120. <AntDesign.Column Title="处理事项系数" @bind-Field="@context.DoItemCoefficient" Width="150" Sortable Filterable />
  121. <AntDesign.Column Title="案件阶段" @bind-Field="@context.CaseStage" Width="100"></AntDesign.Column>
  122. <AntDesign.Column Title="处理人" TData="string" DataIndex="@nameof(context.ItemStaffs)" Width="150">
  123. @if (context.ItemStaffs != null)
  124. {
  125. foreach (ItemStaff itemStaff in context.ItemStaffs)
  126. {
  127. <span>@(itemStaff.DoPerson.Name)&nbsp;</span>
  128. }
  129. }
  130. </AntDesign.Column>
  131. <AntDesign.Column Title="核稿人" TData="string" Width="100">@(context.Reviewer == null ? "" : context.Reviewer.Name)</AntDesign.Column>
  132. <ActionColumn Fixed="right" Title="操作" Width="50" Style="text-align:right">
  133. <Space>
  134. <SpaceItem>
  135. @{
  136. var menuItems = apTypeService.GetItems(context);
  137. if (menuItems.Count > 0)
  138. {
  139. <AntDesign.Dropdown>
  140. <Overlay>
  141. <Menu>
  142. @foreach (var apType in menuItems)
  143. {
  144. <MenuItem @key="@($"{context.Id}-{apType.Id}")" OnClick="()=>ShowModel(context,apType)">@apType.Name</MenuItem>
  145. }
  146. </Menu>
  147. </Overlay>
  148. <ChildContent>
  149. <Button Type="Primary" Icon="down" Style="background: #f6ffed;"></Button>
  150. </ChildContent>
  151. </AntDesign.Dropdown>
  152. }
  153. }
  154. </SpaceItem>
  155. </Space>
  156. </ActionColumn>
  157. </RowTemplate>
  158. <ExpandTemplate>
  159. <div style="width:1000px;margin-left:30px;">
  160. <Card Title=@("详情")>
  161. <Body>
  162. <Descriptions Bordered Size="@DescriptionsSize.Small">
  163. <DescriptionsItem Title="绩效特殊字段" Span="3">
  164. <Select DataSource="@_afService.GetItems(context.Data)"
  165. @bind-Value="@context.Data.AgentFeedbackMemo"
  166. LabelName="@nameof(Reason.Name)"
  167. ValueName="@nameof(Reason.Value)"
  168. Placeholder="请选项一项"
  169. DefaultActiveFirstItem="false"
  170. EnableSearch="true"
  171. AllowClear="true"
  172. Style="width:220px;"
  173. OnSelectedItemChanged="SelectChanged"
  174. OnClearSelected="() => ClearSelect(context.Data.Id)"
  175. OnFocus="() => OnFocus(context.Data)">
  176. </Select>
  177. </DescriptionsItem>
  178. <DescriptionsItem Title="完成时间">@(context.Data.FinishedDate.HasValue ? context.Data.FinishedDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  179. <DescriptionsItem Title="返稿日">@(context.Data.ReturnDate.HasValue ? context.Data.ReturnDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  180. <DescriptionsItem Title="客户期限">@(context.Data.CustomerLimitDate.HasValue ? context.Data.CustomerLimitDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  181. <DescriptionsItem Title="初稿日">@(context.Data.FirstDraftDate.HasValue ? context.Data.FirstDraftDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  182. <DescriptionsItem Title="内部期限">@(context.Data.InternalDate.HasValue ? context.Data.InternalDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  183. <DescriptionsItem Title="案件状态">@context.Data.CaseState</DescriptionsItem>
  184. <DescriptionsItem Title="处理事项备注">@context.Data.DoItemMemo</DescriptionsItem>
  185. <DescriptionsItem Title="案件名称" Span="2">@context.Data.CaseName</DescriptionsItem>
  186. <DescriptionsItem Title="申请人" Span="3">@context.Data.ApplicationName</DescriptionsItem>
  187. <DescriptionsItem Title="备注" Span="3">@context.Data.CaseMemo</DescriptionsItem>
  188. </Descriptions>
  189. </Body>
  190. </Card>
  191. </div>
  192. </ExpandTemplate>
  193. </AntDesign.Table>
  194. }
  195. else
  196. {
  197. <AntDesign.Table DataSource="_Datas" TItem="PerformanceItem" @ref="@table"
  198. @bind-PageIndex="_pageIndex"
  199. @bind-PageSize="_pageSize"
  200. Total="_total" ScrollX="1200"
  201. Size="TableSize.Small" Bordered
  202. @bind-SelectedRows="selectedItems"
  203. OnRow="OnRow"
  204. Loading="_loading"
  205. OnChange="HandleTableChange" RemoteDataSource>
  206. <RowTemplate>
  207. <AntDesign.Selection Key="@(context.Id.ToString())" Width="50" Fixed="left" />
  208. <AntDesign.Column Title="序号" TData="int" Width="50" Fixed="left">
  209. @serialNumber(_pageIndex, _pageSize, context.Id)
  210. </AntDesign.Column>
  211. <AntDesign.Column Title="基础点数" TData="string" Width="100">@(context.BasePoint == null ? "" : context.BasePoint)</AntDesign.Column>
  212. <AntDesign.Column Title="我方文号" @bind-Field="@context.CaseNo" Width="150" Sortable Filterable />
  213. <AntDesign.Column Title="案件类型" @bind-Field="@context.CaseType" Width="120" Sortable Filterable />
  214. <AntDesign.Column Title="案件系数"
  215. @bind-Field="@context.CaseCoefficient" Width="120"
  216. Filters="CaseCoeFilters"
  217. FilterMultiple="false"
  218. OnFilter="((value,name)=>name.StartsWith(value))"
  219. Sortable />
  220. <AntDesign.Column Title="处理事项" @bind-Field="@context.DoItem" Width="150" Sortable Filterable />
  221. <AntDesign.Column Title="处理事项系数" @bind-Field="@context.DoItemCoefficient" Width="150" Sortable Filterable />
  222. <AntDesign.Column Title="绩效特殊字段" @bind-Field="@context.AgentFeedbackMemo" Width="250" />
  223. <AntDesign.Column Title="案件阶段" @bind-Field="@context.CaseStage" Width="100"></AntDesign.Column>
  224. <AntDesign.Column Title="处理人" TData="string" DataIndex="@nameof(context.ItemStaffs)" Width="150">
  225. @if (context.ItemStaffs != null)
  226. {
  227. foreach (ItemStaff itemStaff in context.ItemStaffs)
  228. {
  229. <span>@(itemStaff.DoPerson.Name)&nbsp;</span>
  230. }
  231. }
  232. </AntDesign.Column>
  233. <AntDesign.Column Title="核稿人" TData="string" Width="100">@(context.Reviewer == null ? "" : context.Reviewer.Name)</AntDesign.Column>
  234. </RowTemplate>
  235. <ExpandTemplate>
  236. <div style="width:1000px;margin-left:30px;">
  237. <Card Title=@("详情")>
  238. <Body>
  239. <Descriptions Bordered Size="@DescriptionsSize.Small">
  240. <DescriptionsItem Title="完成时间">@(context.Data.FinishedDate.HasValue ? context.Data.FinishedDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  241. <DescriptionsItem Title="返稿日">@(context.Data.ReturnDate.HasValue ? context.Data.ReturnDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  242. <DescriptionsItem Title="客户期限">@(context.Data.CustomerLimitDate.HasValue ? context.Data.CustomerLimitDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  243. <DescriptionsItem Title="初稿日">@(context.Data.FirstDraftDate.HasValue ? context.Data.FirstDraftDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  244. <DescriptionsItem Title="内部期限">@(context.Data.InternalDate.HasValue ? context.Data.InternalDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  245. <DescriptionsItem Title="案件状态">@context.Data.CaseState</DescriptionsItem>
  246. <DescriptionsItem Title="处理事项备注">@context.Data.DoItemMemo</DescriptionsItem>
  247. <DescriptionsItem Title="案件名称" Span="2">@context.Data.CaseName</DescriptionsItem>
  248. <DescriptionsItem Title="申请人" Span="3">@context.Data.ApplicationName</DescriptionsItem>
  249. <DescriptionsItem Title="备注" Span="3">@context.Data.CaseMemo</DescriptionsItem>
  250. </Descriptions>
  251. </Body>
  252. </Card>
  253. </div>
  254. </ExpandTemplate>
  255. </AntDesign.Table>
  256. }
  257. }
  258. </Card>
  259. </ChildContent>
  260. </PageContainer>
  261. <style>
  262. .danger {
  263. background-color: #fa3d2c;
  264. }
  265. </style>