MyCaselist.razor 24 KB

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