MyCaselist.razor 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. @page "/MyCaseList"
  2. @using wispro.sp.web.Components
  3. @using wispro.sp.share
  4. @inject IAgentFeedBackMemoItemsService _afService;
  5. <PageContainer TabList="@tabList" OnTabChange="OnTabChange">
  6. <Breadcrumb>
  7. <Breadcrumb>
  8. <BreadcrumbItem>
  9. <a href="/Home"><Icon Type="home"></Icon></a>
  10. </BreadcrumbItem>
  11. <BreadcrumbItem>
  12. <Icon Type="setting"></Icon><span>我的绩效清单</span>
  13. </BreadcrumbItem>
  14. </Breadcrumb>
  15. </Breadcrumb>
  16. <ChildContent>
  17. <Card>
  18. @*<Pagination @bind-Current="@_pageIndex" @bind-Total="@_total" ShowSizeChanger OnChange="OnChange" />*@
  19. @if (_Datas == null)
  20. {
  21. <center><Spin /></center>
  22. }
  23. else
  24. {
  25. if (_CurrentKey == "myList")
  26. {
  27. <PageHeader>
  28. <PageHeaderTitle>基础点数统计</PageHeaderTitle>
  29. <PageHeaderExtra><Button Type="@ButtonType.Primary">缺失数据提报</Button></PageHeaderExtra>
  30. <PageHeaderContent>
  31. <div style="border:1px solid #000000">
  32. <AntDesign.Row Align="center" Justify="center">
  33. <AntDesign.Col Span="2" style="border-left:1px solid #000000"><center></center></AntDesign.Col>
  34. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>新申请</center></AntDesign.Col>
  35. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>OA(国内、涉外)</center></AntDesign.Col>
  36. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>其它</center></AntDesign.Col>
  37. <AntDesign.Col Span="2" style="border:1px solid #000000"></AntDesign.Col>
  38. <AntDesign.Col Span="4" style="border:1px solid #000000">一次OA授权</AntDesign.Col>
  39. <AntDesign.Col Span="4" style="border:1px solid #000000"></AntDesign.Col>
  40. </AntDesign.Row>
  41. <AntDesign.Row>
  42. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>代理人</center></AntDesign.Col>
  43. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办</center></AntDesign.Col>
  44. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>核稿</center></AntDesign.Col>
  45. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办</center></AntDesign.Col>
  46. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>核稿</center></AntDesign.Col>
  47. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办</center></AntDesign.Col>
  48. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>核稿</center></AntDesign.Col>
  49. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>调查案</center></AntDesign.Col>
  50. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>承办人</center></AntDesign.Col>
  51. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>审核人</center></AntDesign.Col>
  52. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>总计</center></AntDesign.Col>
  53. </AntDesign.Row>
  54. <AntDesign.Row>
  55. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@_userService.CurrentUser.Name</center></AntDesign.Col>
  56. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("新申请处理")</center></AntDesign.Col>
  57. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("新申请审核")</center></AntDesign.Col>
  58. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("OA处理")</center></AntDesign.Col>
  59. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("OA审核")</center></AntDesign.Col>
  60. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("其它处理")</center></AntDesign.Col>
  61. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("其它审核")</center></AntDesign.Col>
  62. <AntDesign.Col Span="2" style="border:1px solid #000000"><center></center></AntDesign.Col>
  63. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("一次OA授权处理")</center></AntDesign.Col>
  64. <AntDesign.Col Span="2" style="border:1px solid #000000"><center>@GetStatistics("一次OA授权审核")</center></AntDesign.Col>
  65. <AntDesign.Col Span="4" style="border:1px solid #000000"><center>@GetStatistics("ALL")</center></AntDesign.Col>
  66. </AntDesign.Row>
  67. </div>
  68. </PageHeaderContent>
  69. </PageHeader>
  70. <AntDesign.Table DataSource="_Datas" TItem="PerformanceItem" @ref="@table"
  71. @bind-PageIndex="_pageIndex"
  72. @bind-PageSize="_pageSize"
  73. Total="_total"
  74. ScrollX="1150" Size="TableSize.Small" Bordered
  75. @bind-SelectedRows="selectedItems"
  76. OnRow="OnRow"
  77. Loading="_loading"
  78. RowClassName="@(x => x.Data.isDanger() ? "danger" : "")"
  79. OnChange="HandleTableChange" RemoteDataSource>
  80. <RowTemplate>
  81. <AntDesign.Selection Key="@(context.Id.ToString())" Width="50" Fixed="left" />
  82. <AntDesign.Column Title="序号" TData="int" Width="50" Fixed="left">
  83. @serialNumber(_pageIndex, _pageSize, context.Id)
  84. </AntDesign.Column>
  85. <AntDesign.Column Title="绩效特殊字段" @bind-Field="@context.AgentFeedbackMemo" Width="250" Fixed="left">
  86. </AntDesign.Column>
  87. <AntDesign.Column Title="基础点数" TData="string" Width="100">@(context.BasePoint == null ? "" : context.BasePoint)</AntDesign.Column>
  88. <AntDesign.Column Title="我方文号" @bind-Field="@context.CaseNo" Width="150" Sortable Filterable />
  89. <AntDesign.Column Title="案件类型" @bind-Field="@context.CaseType" Width="120" Sortable Filterable />
  90. <AntDesign.Column Title="案件系数"
  91. @bind-Field="@context.CaseCoefficient" Width="120"
  92. Filters="CaseCoeFilters"
  93. FilterMultiple="false"
  94. OnFilter="((value,name)=>name.StartsWith(value))"
  95. Sortable />
  96. <AntDesign.Column Title="处理事项" @bind-Field="@context.DoItem" Width="150" Sortable Filterable />
  97. <AntDesign.Column Title="处理事项系数" @bind-Field="@context.DoItemCoefficient" Width="150" Sortable Filterable />
  98. <AntDesign.Column Title="案件阶段" @bind-Field="@context.CaseStage" Width="100"></AntDesign.Column>
  99. <AntDesign.Column Title="处理人" TData="string" DataIndex="@nameof(context.ItemStaffs)" Width="150">
  100. @if (context.ItemStaffs != null)
  101. {
  102. foreach (ItemStaff itemStaff in context.ItemStaffs)
  103. {
  104. <span>@(itemStaff.DoPerson.Name)&nbsp;</span>
  105. }
  106. }
  107. </AntDesign.Column>
  108. <AntDesign.Column Title="核稿人" TData="string" Width="100">@(context.Reviewer == null ? "" : context.Reviewer.Name)</AntDesign.Column>
  109. <ActionColumn Fixed="right" Title="操作" Width="120">
  110. <Space>
  111. <SpaceItem>
  112. <AntDesign.DropdownButton OnClick="() => OnsubShensu(context)" Type="@((ButtonType.Primary, ButtonType.Default))" ButtonsStyle="@("background-color: #1890ff;")">
  113. <Overlay>
  114. <Menu>
  115. @if (((!context.CaseNo.Contains("CN") || context.CaseNo.Contains("WO")) && context.DoItem == "新申请") || context.DoItem == "翻译")
  116. {
  117. @*<MenuItem Key="1" icon="plus" Click="OnsubShensu"></MenuItem>*@
  118. <MenuItem Key="2" icon="plus" OnClick="() => OnJXCal(context)">计算字数</MenuItem>
  119. }
  120. @if (context.ItemStaffs.Count > 1)
  121. {
  122. <MenuItem Key="3" icon="plus" OnClick="() => OnJXCal(context)">设定分配比例</MenuItem>
  123. }
  124. </Menu>
  125. </Overlay>
  126. <ChildContent>申诉</ChildContent>
  127. </AntDesign.DropdownButton>
  128. </SpaceItem>
  129. </Space>
  130. </ActionColumn>
  131. </RowTemplate>
  132. <ExpandTemplate>
  133. <div style="width:1000px;margin-left:30px;">
  134. <Card Title=@("详情")>
  135. <Body>
  136. <Descriptions Bordered Size="@DescriptionsSize.Small">
  137. <DescriptionsItem Title="绩效特殊字段" Span="3">
  138. <Select DataSource="@_afService.GetItems(context.Data)"
  139. @bind-Value="@context.Data.AgentFeedbackMemo"
  140. LabelName="@nameof(Reason.Name)"
  141. ValueName="@nameof(Reason.Value)"
  142. Placeholder="请选项一项"
  143. DefaultActiveFirstItem="false"
  144. EnableSearch="true"
  145. AllowClear="true"
  146. Style="width:220px;"
  147. OnSelectedItemChanged="SelectChanged"
  148. OnClearSelected="() => ClearSelect(context.Data.Id)"
  149. OnFocus="() => OnFocus(context.Data)">
  150. </Select>
  151. </DescriptionsItem>
  152. <DescriptionsItem Title="完成时间">@(context.Data.FinishedDate.HasValue ? context.Data.FinishedDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  153. <DescriptionsItem Title="返稿日">@(context.Data.ReturnDate.HasValue ? context.Data.ReturnDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  154. <DescriptionsItem Title="客户期限">@(context.Data.CustomerLimitDate.HasValue ? context.Data.CustomerLimitDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  155. <DescriptionsItem Title="初稿日">@(context.Data.FirstDraftDate.HasValue ? context.Data.FirstDraftDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  156. <DescriptionsItem Title="内部期限">@(context.Data.InternalDate.HasValue ? context.Data.InternalDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  157. <DescriptionsItem Title="案件状态">@context.Data.CaseState</DescriptionsItem>
  158. <DescriptionsItem Title="处理事项备注">@context.Data.DoItemMemo</DescriptionsItem>
  159. <DescriptionsItem Title="案件名称" Span="2">@context.Data.CaseName</DescriptionsItem>
  160. <DescriptionsItem Title="申请人" Span="3">@context.Data.ApplicationName</DescriptionsItem>
  161. <DescriptionsItem Title="备注" Span="3">@context.Data.CaseMemo</DescriptionsItem>
  162. </Descriptions>
  163. </Body>
  164. </Card>
  165. </div>
  166. </ExpandTemplate>
  167. </AntDesign.Table>
  168. }
  169. else
  170. {
  171. <AntDesign.Table DataSource="_Datas" TItem="PerformanceItem" @ref="@table"
  172. @bind-PageIndex="_pageIndex"
  173. @bind-PageSize="_pageSize"
  174. Total="_total" ScrollX="1200"
  175. Size="TableSize.Small" Bordered
  176. @bind-SelectedRows="selectedItems"
  177. OnRow="OnRow"
  178. Loading="_loading"
  179. OnChange="HandleTableChange" RemoteDataSource>
  180. <RowTemplate>
  181. <AntDesign.Selection Key="@(context.Id.ToString())" Width="50" Fixed="left" />
  182. <AntDesign.Column Title="序号" TData="int" Width="50" Fixed="left">
  183. @serialNumber(_pageIndex, _pageSize, context.Id)
  184. </AntDesign.Column>
  185. <AntDesign.Column Title="绩效特殊字段" @bind-Field="@context.AgentFeedbackMemo" Width="250" Fixed="left"/>
  186. <AntDesign.Column Title="基础点数" TData="string" Width="100">@(context.BasePoint == null ? "" : context.BasePoint)</AntDesign.Column>
  187. <AntDesign.Column Title="我方文号" @bind-Field="@context.CaseNo" Width="150" Sortable Filterable />
  188. <AntDesign.Column Title="案件类型" @bind-Field="@context.CaseType" Width="120" Sortable Filterable />
  189. <AntDesign.Column Title="案件系数"
  190. @bind-Field="@context.CaseCoefficient" Width="120"
  191. Filters="CaseCoeFilters"
  192. FilterMultiple="false"
  193. OnFilter="((value,name)=>name.StartsWith(value))"
  194. Sortable />
  195. <AntDesign.Column Title="处理事项" @bind-Field="@context.DoItem" Width="150" Sortable Filterable />
  196. <AntDesign.Column Title="处理事项系数" @bind-Field="@context.DoItemCoefficient" Width="150" Sortable Filterable />
  197. <AntDesign.Column Title="案件阶段" @bind-Field="@context.CaseStage" Width="100"></AntDesign.Column>
  198. <AntDesign.Column Title="处理人" TData="string" DataIndex="@nameof(context.ItemStaffs)" Width="150">
  199. @if (context.ItemStaffs != null)
  200. {
  201. foreach (ItemStaff itemStaff in context.ItemStaffs)
  202. {
  203. <span>@(itemStaff.DoPerson.Name)&nbsp;</span>
  204. }
  205. }
  206. </AntDesign.Column>
  207. <AntDesign.Column Title="核稿人" TData="string" Width="100">@(context.Reviewer == null ? "" : context.Reviewer.Name)</AntDesign.Column>
  208. </RowTemplate>
  209. <ExpandTemplate>
  210. <div style="width:1000px;margin-left:30px;">
  211. <Card Title=@("详情")>
  212. <Body>
  213. <Descriptions Bordered Size="@DescriptionsSize.Small">
  214. <DescriptionsItem Title="完成时间">@(context.Data.FinishedDate.HasValue ? context.Data.FinishedDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  215. <DescriptionsItem Title="返稿日">@(context.Data.ReturnDate.HasValue ? context.Data.ReturnDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  216. <DescriptionsItem Title="客户期限">@(context.Data.CustomerLimitDate.HasValue ? context.Data.CustomerLimitDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  217. <DescriptionsItem Title="初稿日">@(context.Data.FirstDraftDate.HasValue ? context.Data.FirstDraftDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  218. <DescriptionsItem Title="内部期限">@(context.Data.InternalDate.HasValue ? context.Data.InternalDate.Value.ToString("yyyy-MM-dd") : "")</DescriptionsItem>
  219. <DescriptionsItem Title="案件状态">@context.Data.CaseState</DescriptionsItem>
  220. <DescriptionsItem Title="处理事项备注">@context.Data.DoItemMemo</DescriptionsItem>
  221. <DescriptionsItem Title="案件名称" Span="2">@context.Data.CaseName</DescriptionsItem>
  222. <DescriptionsItem Title="申请人" Span="3">@context.Data.ApplicationName</DescriptionsItem>
  223. <DescriptionsItem Title="备注" Span="3">@context.Data.CaseMemo</DescriptionsItem>
  224. </Descriptions>
  225. </Body>
  226. </Card>
  227. </div>
  228. </ExpandTemplate>
  229. </AntDesign.Table>
  230. }
  231. }
  232. </Card>
  233. </ChildContent>
  234. </PageContainer>
  235. <style>
  236. .danger {
  237. background-color: #fa3d2c;
  238. }
  239. </style>
  240. <Modal Title="涉外新申请算法备注" Visible="_ShowJXModal"
  241. OnOk="@HandleOk1"
  242. OnCancel="@HandleCancel1"
  243. MaskClosable="false"
  244. Width="600">
  245. <Card Style="width:100%" Bordered>
  246. <div>
  247. <Row>
  248. <AntDesign.Col Span="4"><b>我方文号:</b></AntDesign.Col>
  249. <AntDesign.Col Span="8">@EditingItem.CaseNo</AntDesign.Col>
  250. <AntDesign.Col Span="4"><b>处理事项:</b></AntDesign.Col>
  251. <AntDesign.Col Span="8">@EditingItem.DoItem</AntDesign.Col>
  252. </Row>
  253. <Row><AntDesign.Col Span="24">&nbsp;</AntDesign.Col></Row>
  254. <Row>
  255. <AntDesign.Col Span="4"><b>案件名称:</b></AntDesign.Col>
  256. <AntDesign.Col Span="20">@EditingItem.CaseName</AntDesign.Col>
  257. </Row>
  258. </div>
  259. </Card>
  260. <br />
  261. <Form Model="_calType" LabelColSpan="6" WrapperColSpan="16">
  262. <FormItem Label="请谁确认">
  263. <Select DataSource="@Reviewers"
  264. @bind-Value="@context.ReviewerId"
  265. LabelName="@nameof(Staff.Name)"
  266. ValueName="@nameof(Staff.Id)"
  267. Placeholder="请选择确认人"
  268. Style="width: 100%"
  269. AllowClear
  270. DefaultActiveFirstItem="false"
  271. EnableSearch>
  272. </Select>
  273. </FormItem>
  274. <FormItem Label="绩效特殊字段备注">
  275. <RadioGroup @bind-Value="@context.AgentMemo" Disabled="false">
  276. <Radio Value="@("英-中")">英-中</Radio>
  277. <Radio Value="@("英-德")">英-德</Radio>
  278. <Radio Value="@("中-英")">中-英</Radio>
  279. </RadioGroup>
  280. </FormItem>
  281. <FormItem Label="字数">
  282. <AntDesign.InputNumber @bind-Value="context.wordCount" Min="1"></AntDesign.InputNumber>
  283. </FormItem>
  284. </Form>
  285. </Modal>
  286. <Modal Title="申诉窗口" Visible="@_visible"
  287. OnOk="@HandleOk"
  288. OnCancel="@HandleCancel"
  289. MaskClosable="false"
  290. Width="600">
  291. <Card Style="width:100%" Bordered>
  292. <div>
  293. <Row>
  294. <AntDesign.Col Span="4"><b>我方文号:</b></AntDesign.Col>
  295. <AntDesign.Col Span="8">@EditingItem.CaseNo</AntDesign.Col>
  296. <AntDesign.Col Span="4"><b>处理事项:</b></AntDesign.Col>
  297. <AntDesign.Col Span="8">@EditingItem.DoItem</AntDesign.Col>
  298. </Row>
  299. <Row><AntDesign.Col Span="24">&nbsp;</AntDesign.Col></Row>
  300. <Row>
  301. <AntDesign.Col Span="4"><b>案件名称:</b></AntDesign.Col>
  302. <AntDesign.Col Span="20">@EditingItem.CaseName</AntDesign.Col>
  303. </Row>
  304. </div>
  305. </Card>
  306. <br />
  307. <Form Model="_shenshou" LabelColSpan="6" WrapperColSpan="16">
  308. <FormItem Label="类型">
  309. <Select DataSource="@AvatarMenuItems"
  310. @bind-Value="@context.Type"
  311. LabelName="@nameof(shensuType.Name)"
  312. ValueName="@nameof(shensuType.Name)"
  313. Placeholder="请选择申诉类型"
  314. Style="width:100%"
  315. AllowClear
  316. DefaultActiveFirstItem="false"
  317. EnableSearch
  318. OnSelectedItemChanged="OnSelectedItemChangedHandler">
  319. </Select>
  320. </FormItem>
  321. <FormItem Label="向谁申诉">
  322. <Select DataSource="@Reviewers"
  323. @bind-Value="@context.ReviewerId"
  324. LabelName="@nameof(Staff.Name)"
  325. ValueName="@nameof(Staff.Id)"
  326. Placeholder="请选择审核人"
  327. Style="width: 100%"
  328. AllowClear
  329. DefaultActiveFirstItem="false"
  330. EnableSearch>
  331. </Select>
  332. </FormItem>
  333. @if (_SelectedItem != null && !string.IsNullOrEmpty(_SelectedItem.ChangeField))
  334. {
  335. <FormItem Label=@($"{_SelectedItem.ChangeField}变更为")>
  336. <Input @bind-Value="@context.ChangeTo" />
  337. </FormItem>
  338. }
  339. <FormItem Label="申诉理由">
  340. <TextArea @bind-Value="@context.Reason" Rows="6" Style="width: 100%" />
  341. </FormItem>
  342. <FormItem Label="附件">
  343. <Upload @attributes="attrs"
  344. FileList="fileList"
  345. OnChange="HandleChange">
  346. <Button Icon="upload"><span>添加附件</span></Button>
  347. </Upload>
  348. </FormItem>
  349. </Form>
  350. </Modal>