aq-fe-framework 0.1.156 → 0.1.157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/dist/{chunk-JLT4BL7I.mjs → chunk-ZO7PLULO.mjs} +4 -4
  2. package/dist/{css.module-4ICLUKPO.module.css → components/index.css} +16 -29
  3. package/dist/components/index.mjs +2 -2
  4. package/dist/modules-features/index.css +100 -0
  5. package/dist/modules-features/index.mjs +5 -5
  6. package/package.json +1 -1
  7. package/dist/api/apiFactory.ts +0 -46
  8. package/dist/api/baseAxios.ts +0 -22
  9. package/dist/app/admin/(core)/core12196/page.tsx +0 -13
  10. package/dist/app/admin/(core)/core16209/page.tsx +0 -13
  11. package/dist/app/admin/(core)/core18256/page.tsx +0 -12
  12. package/dist/app/admin/(core)/core26965/page.tsx +0 -13
  13. package/dist/app/admin/(core)/core27311/page.tsx +0 -13
  14. package/dist/app/admin/(core)/core38677/page.tsx +0 -13
  15. package/dist/app/admin/(core)/core40207/page.tsx +0 -13
  16. package/dist/app/admin/(core)/core60524/page.tsx +0 -11
  17. package/dist/app/admin/(core)/core64229/page.tsx +0 -12
  18. package/dist/app/admin/(core)/core71678/page.tsx +0 -11
  19. package/dist/app/admin/(core)/core76318/page.tsx +0 -13
  20. package/dist/app/admin/(core)/core83092/page.tsx +0 -13
  21. package/dist/app/admin/[...slug]/page.tsx +0 -7
  22. package/dist/app/admin/error.tsx +0 -42
  23. package/dist/app/admin/layout.tsx +0 -21
  24. package/dist/app/admin/test/page.tsx +0 -44
  25. package/dist/app/auth/login/page.tsx +0 -14
  26. package/dist/app/globals.css +0 -59
  27. package/dist/app/layout.tsx +0 -39
  28. package/dist/app/page.tsx +0 -18
  29. package/dist/components/Aceternity/BoxesBackground/MyBoxes.tsx +0 -66
  30. package/dist/components/Aceternity/BoxesBackground/MyBoxesBackground.tsx +0 -31
  31. package/dist/components/ActionIcons/ActionIcon/MyActionIcon.tsx +0 -47
  32. package/dist/components/ActionIcons/ActionIconCRUD/MyActionIconDelete.tsx +0 -81
  33. package/dist/components/ActionIcons/ActionIconCRUD/MyActionIconUpdate.tsx +0 -68
  34. package/dist/components/ActionIcons/ActionIconCheck/MyActionIconCheck.tsx +0 -50
  35. package/dist/components/ActionIcons/ActionIconDownloadPDF/MyActionIconDownloadPDF.tsx +0 -13
  36. package/dist/components/ActionIcons/ActionIconModal/MyActionIconModal.tsx +0 -113
  37. package/dist/components/ActionIcons/ActionIconUpload/MyActionIconUpload.tsx +0 -19
  38. package/dist/components/ActionIcons/ActionIconViewPdf/MyActionIconViewPDF.tsx +0 -63
  39. package/dist/components/ActionIcons/SwitchTheme/MySwitchTheme.tsx +0 -36
  40. package/dist/components/AppSpotlight/MyAppSpotlight.tsx +0 -112
  41. package/dist/components/Buttons/Anchor/MyAnchorViewPDF.tsx +0 -46
  42. package/dist/components/Buttons/Button/MyButton.tsx +0 -90
  43. package/dist/components/Buttons/ButtonCRUD/AQButtonCreateByImportFile.tsx +0 -81
  44. package/dist/components/Buttons/ButtonCRUD/AQButtonExportData.tsx +0 -75
  45. package/dist/components/Buttons/ButtonCRUD/MyButtonCreate.tsx +0 -68
  46. package/dist/components/Buttons/ButtonImport/MyButtonImport.tsx +0 -29
  47. package/dist/components/Buttons/ButtonImport/SelectFieldModal.tsx +0 -100
  48. package/dist/components/Buttons/ButtonImport/SelectFileModal.tsx +0 -81
  49. package/dist/components/Buttons/ButtonImport/useS_ButtonImport.ts +0 -196
  50. package/dist/components/Buttons/ButtonModal/AQSelectTableByOpenModal.tsx +0 -71
  51. package/dist/components/Buttons/ButtonModal/MyButtonModal.tsx +0 -117
  52. package/dist/components/Buttons/ButtonPrintPDF/MyButtonPrintPDF.tsx +0 -37
  53. package/dist/components/Buttons/ButtonPrintPDFTable/MyButtonPrintTablePDF.tsx +0 -174
  54. package/dist/components/Buttons/ButtonRouterBack/MyButtonRouterBack.tsx +0 -29
  55. package/dist/components/Buttons/ButtonViewPDF/MyButtonViewPDF.tsx +0 -121
  56. package/dist/components/Calendar/MyCalendar.tsx +0 -118
  57. package/dist/components/CenterFull/MyCenterFull.tsx +0 -10
  58. package/dist/components/Checkbox/MyCheckbox.tsx +0 -9
  59. package/dist/components/Combobox/Select/MySelect.tsx +0 -12
  60. package/dist/components/DataDisplay/Card/AQCard.tsx +0 -49
  61. package/dist/components/DataDisplay/CardInformation/MyCardInformation.tsx +0 -77
  62. package/dist/components/DataDisplay/DataTable/MyDataTable.tsx +0 -184
  63. package/dist/components/DataDisplay/IconText/MyIconText.tsx +0 -17
  64. package/dist/components/DataDisplay/KeyLabel/MyKeyLabel.tsx +0 -15
  65. package/dist/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx +0 -9
  66. package/dist/components/DataDisplay/StatCard/AQStatCard1.tsx +0 -68
  67. package/dist/components/FaviconSetter/FaviconSetter.tsx +0 -33
  68. package/dist/components/Inputs/DateInput/MyDateInput.tsx +0 -11
  69. package/dist/components/Inputs/Fieldset/MyFieldset.tsx +0 -32
  70. package/dist/components/Inputs/FileInput/MyFileInput.tsx +0 -12
  71. package/dist/components/Inputs/NumberInput/MyNumberInput.tsx +0 -12
  72. package/dist/components/Inputs/TextArea/MyTextArea.tsx +0 -11
  73. package/dist/components/Inputs/TextEditor/MyTextEditor.tsx +0 -191
  74. package/dist/components/Inputs/TextInput/MyTextInput.tsx +0 -30
  75. package/dist/components/Layouts/BasicAppShell/BasicAppShell.tsx +0 -357
  76. package/dist/components/Layouts/BasicAppShell/css.module.css +0 -62
  77. package/dist/components/Layouts/BasicAppShell/useS_BasicAppShell.ts +0 -64
  78. package/dist/components/Layouts/Container/MyContainer.tsx +0 -16
  79. package/dist/components/Layouts/FlexColumn/MyFlexColumn.tsx +0 -14
  80. package/dist/components/Layouts/FlexEnd/MyFlexEnd.tsx +0 -14
  81. package/dist/components/Layouts/FlexRow/MyFlexRow.tsx +0 -14
  82. package/dist/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx +0 -147
  83. package/dist/components/Layouts/HeaderMegaMenu/HeaderMegaMenuStore.ts +0 -19
  84. package/dist/components/Layouts/HeaderMegaMenu/css.module.css +0 -50
  85. package/dist/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx +0 -29
  86. package/dist/components/Layouts/PageContent/MyPageContent.tsx +0 -67
  87. package/dist/components/Layouts/Tab/MyTab.tsx +0 -33
  88. package/dist/components/Loaders/MyCardioLoader.tsx +0 -12
  89. package/dist/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx +0 -61
  90. package/dist/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx +0 -37
  91. package/dist/components/ScheduleX/MyScheduleX.tsx +0 -58
  92. package/dist/components/Skeletons/SkeletonTable/MySkeletonTable.tsx +0 -9
  93. package/dist/components/index.ts +0 -62
  94. package/dist/constants/array/daysOfWeek.ts +0 -9
  95. package/dist/constants/enum/ENUM_EMAILCONFIG.ts +0 -6
  96. package/dist/constants/enum/global.ts +0 -26
  97. package/dist/constants/object/color.ts +0 -5
  98. package/dist/constants/object/documentTypes.ts +0 -8
  99. package/dist/css.module-P45UW6UZ.module.css +0 -4
  100. package/dist/data/menuData.ts +0 -31
  101. package/dist/hooks/custom-hooks/useC_MutationAction.tsx +0 -36
  102. package/dist/hooks/index.ts +0 -2
  103. package/dist/hooks/query/AQ/useQ_AQ_GetAQModule.ts +0 -14
  104. package/dist/interfaces/EmailConfig.ts +0 -10
  105. package/dist/interfaces/IAQModule.ts +0 -21
  106. package/dist/interfaces/base.ts +0 -9
  107. package/dist/interfaces/global-interface/IAQSSO.ts +0 -15
  108. package/dist/interfaces/global-interface/IAQSyncData.ts +0 -9
  109. package/dist/interfaces/global-interface/IAcademicYear.ts +0 -12
  110. package/dist/interfaces/global-interface/IChangePassWord.ts +0 -8
  111. package/dist/interfaces/global-interface/IComplaintProccess.ts +0 -9
  112. package/dist/interfaces/global-interface/ICreateAccount.ts +0 -24
  113. package/dist/interfaces/global-interface/IDocument.ts +0 -25
  114. package/dist/interfaces/global-interface/IDocumentAttribute.ts +0 -12
  115. package/dist/interfaces/global-interface/IEvent.ts +0 -30
  116. package/dist/interfaces/global-interface/IEventComplaint.ts +0 -20
  117. package/dist/interfaces/global-interface/IEventFillter.ts +0 -14
  118. package/dist/interfaces/global-interface/IFile.ts +0 -8
  119. package/dist/interfaces/global-interface/IImportStudentPaticipation.ts +0 -8
  120. package/dist/interfaces/global-interface/IPagePermission.ts +0 -12
  121. package/dist/interfaces/global-interface/IRolePermission.ts +0 -7
  122. package/dist/interfaces/global-interface/ISRMUserinfo.ts +0 -35
  123. package/dist/interfaces/global-interface/IScientificProfileProjectUser.ts +0 -15
  124. package/dist/interfaces/global-interface/IScientificProfileResearchGroup.ts +0 -15
  125. package/dist/interfaces/global-interface/IScientificProfileResearchGroupUser.ts +0 -14
  126. package/dist/interfaces/global-interface/IScientificProfileResearchProject.ts +0 -21
  127. package/dist/interfaces/global-interface/ISignIn.ts +0 -7
  128. package/dist/interfaces/global-interface/ISystemCatalogAcademicYear.ts +0 -15
  129. package/dist/interfaces/global-interface/ISystemCatalogDomainCategory.ts +0 -11
  130. package/dist/interfaces/global-interface/ISystemCatalogProjectLevelCategory.ts +0 -11
  131. package/dist/interfaces/global-interface/ISystemCatalogProjectTypeCategory.ts +0 -11
  132. package/dist/interfaces/global-interface/ISystemCatalogRoleActivity.ts +0 -11
  133. package/dist/interfaces/global-interface/ISystemCatalogTaskCategory.ts +0 -11
  134. package/dist/interfaces/global-interface/ISystemManagementAcademicHistory.ts +0 -31
  135. package/dist/interfaces/global-interface/ISystemManagementProfessionalWorkHistory.ts +0 -14
  136. package/dist/interfaces/global-interface/ISystemManagementPublishedScientificWork.ts +0 -14
  137. package/dist/interfaces/global-interface/ISystemManagementRoleGroup.ts +0 -12
  138. package/dist/interfaces/global-interface/ISystemManagementRoleGroupMenuPermission.ts +0 -18
  139. package/dist/interfaces/global-interface/ISystemManagementScientificResearchProject.ts +0 -16
  140. package/dist/interfaces/global-interface/ISystemManagementUserMenuPermission.ts +0 -18
  141. package/dist/interfaces/global-interface/IUpdateAccount.ts +0 -15
  142. package/dist/interfaces/global-interface/IUser.ts +0 -21
  143. package/dist/interfaces/global-interface/IUserPermission.ts +0 -7
  144. package/dist/lib/utils.ts +0 -6
  145. package/dist/modules-features/admin/core/MainDashboard/BarChart_CourseStatus.tsx +0 -87
  146. package/dist/modules-features/admin/core/MainDashboard/BarChart_ExamStatus.tsx +0 -65
  147. package/dist/modules-features/admin/core/MainDashboard/BarChart_RevenueByAcademicYear.tsx +0 -82
  148. package/dist/modules-features/admin/core/MainDashboard/BarChart_StudentStatusIn30Days.tsx +0 -67
  149. package/dist/modules-features/admin/core/MainDashboard/HBarChart_CourseDropOutPercentage.tsx +0 -77
  150. package/dist/modules-features/admin/core/MainDashboard/HBarChart_CourseProgressPercentage.tsx +0 -77
  151. package/dist/modules-features/admin/core/MainDashboard/LineChart_RevenueIn12Months.tsx +0 -78
  152. package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalRevenueByDiscountIn3Months.tsx +0 -69
  153. package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalRevenueByVoucherIn3Months.tsx +0 -69
  154. package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalStudentIn12Months.tsx +0 -64
  155. package/dist/modules-features/admin/core/MainDashboard/ViewDiscountStat.tsx +0 -311
  156. package/dist/modules-features/admin/core/MainDashboard/ViewVoucherStat.tsx +0 -311
  157. package/dist/modules-features/admin/core/core12196/F_core12196.tsx +0 -20
  158. package/dist/modules-features/admin/core/core12196/F_core12196_Create.tsx +0 -101
  159. package/dist/modules-features/admin/core/core12196/F_core12196_Delete.tsx +0 -19
  160. package/dist/modules-features/admin/core/core12196/F_core12196_Read.tsx +0 -165
  161. package/dist/modules-features/admin/core/core12196/F_core12196_Update.tsx +0 -112
  162. package/dist/modules-features/admin/core/core16209/F_core16209.tsx +0 -108
  163. package/dist/modules-features/admin/core/core16209/F_core16209_Create.tsx +0 -112
  164. package/dist/modules-features/admin/core/core16209/F_core16209_Delete.tsx +0 -17
  165. package/dist/modules-features/admin/core/core16209/F_core16209_Update.tsx +0 -114
  166. package/dist/modules-features/admin/core/core18256/F_core18256.tsx +0 -29
  167. package/dist/modules-features/admin/core/core18256/F_core18256_Create.tsx +0 -34
  168. package/dist/modules-features/admin/core/core18256/F_core18256_Delete.tsx +0 -14
  169. package/dist/modules-features/admin/core/core18256/F_core18256_Read.tsx +0 -59
  170. package/dist/modules-features/admin/core/core18256/F_core18256_Select.tsx +0 -40
  171. package/dist/modules-features/admin/core/core18256/F_core18256_Update.tsx +0 -22
  172. package/dist/modules-features/admin/core/core26965/F_core26965.tsx +0 -17
  173. package/dist/modules-features/admin/core/core26965/F_core26965_Create.tsx +0 -106
  174. package/dist/modules-features/admin/core/core26965/F_core26965_Delete.tsx +0 -19
  175. package/dist/modules-features/admin/core/core26965/F_core26965_Read.tsx +0 -165
  176. package/dist/modules-features/admin/core/core26965/F_core26965_Update.tsx +0 -112
  177. package/dist/modules-features/admin/core/core27311/F_core27311.tsx +0 -21
  178. package/dist/modules-features/admin/core/core27311/F_core27311_Create.tsx +0 -109
  179. package/dist/modules-features/admin/core/core27311/F_core27311_Delete.tsx +0 -19
  180. package/dist/modules-features/admin/core/core27311/F_core27311_Read.tsx +0 -165
  181. package/dist/modules-features/admin/core/core27311/F_core27311_Update.tsx +0 -113
  182. package/dist/modules-features/admin/core/core35923/F_core35923.tsx +0 -46
  183. package/dist/modules-features/admin/core/core38677/F_core38677.tsx +0 -28
  184. package/dist/modules-features/admin/core/core38677/F_core38677_ReadUser.tsx +0 -79
  185. package/dist/modules-features/admin/core/core38677/F_core38677_Save.tsx +0 -52
  186. package/dist/modules-features/admin/core/core38677/F_core38677_ViewMenuPermissions.tsx +0 -264
  187. package/dist/modules-features/admin/core/core40207/F_core40207.tsx +0 -9
  188. package/dist/modules-features/admin/core/core40207/F_core40207_Create.tsx +0 -81
  189. package/dist/modules-features/admin/core/core40207/F_core40207_Delete.tsx +0 -17
  190. package/dist/modules-features/admin/core/core40207/F_core40207_Read.tsx +0 -98
  191. package/dist/modules-features/admin/core/core40207/F_core40207_Update.tsx +0 -83
  192. package/dist/modules-features/admin/core/core47643/F_core47643.tsx +0 -10
  193. package/dist/modules-features/admin/core/core47643/F_core47643_Delete.tsx +0 -13
  194. package/dist/modules-features/admin/core/core47643/F_core47643_Form.tsx +0 -34
  195. package/dist/modules-features/admin/core/core47643/F_core47643_Read.tsx +0 -57
  196. package/dist/modules-features/admin/core/core60524/F_core60524.tsx +0 -13
  197. package/dist/modules-features/admin/core/core60524/F_core60524_Form.tsx +0 -111
  198. package/dist/modules-features/admin/core/core60524/F_core60524_Save.tsx +0 -56
  199. package/dist/modules-features/admin/core/core60524/useS_core60524.ts +0 -16
  200. package/dist/modules-features/admin/core/core64229/F_core64229.tsx +0 -7
  201. package/dist/modules-features/admin/core/core64229/F_core64229_Delete.tsx +0 -21
  202. package/dist/modules-features/admin/core/core64229/F_core64229_Form.tsx +0 -95
  203. package/dist/modules-features/admin/core/core64229/F_core64229_Read.tsx +0 -67
  204. package/dist/modules-features/admin/core/core71678/F_core71678.tsx +0 -8
  205. package/dist/modules-features/admin/core/core71678/F_core71678_ChangePermission.tsx +0 -117
  206. package/dist/modules-features/admin/core/core71678/F_core71678_Create.tsx +0 -61
  207. package/dist/modules-features/admin/core/core71678/F_core71678_Delete.tsx +0 -16
  208. package/dist/modules-features/admin/core/core71678/F_core71678_Read.tsx +0 -92
  209. package/dist/modules-features/admin/core/core71678/F_core71678_Update.tsx +0 -49
  210. package/dist/modules-features/admin/core/core76318/F_core76318.tsx +0 -9
  211. package/dist/modules-features/admin/core/core76318/F_core76318_Create.tsx +0 -89
  212. package/dist/modules-features/admin/core/core76318/F_core76318_Delete.tsx +0 -17
  213. package/dist/modules-features/admin/core/core76318/F_core76318_Read.tsx +0 -104
  214. package/dist/modules-features/admin/core/core76318/F_core76318_Update.tsx +0 -89
  215. package/dist/modules-features/admin/core/core83092/F_core83092.tsx +0 -27
  216. package/dist/modules-features/admin/core/core83092/F_core83092_ReadUser.tsx +0 -85
  217. package/dist/modules-features/admin/core/core83092/F_core83092_Save.tsx +0 -52
  218. package/dist/modules-features/admin/core/core83092/F_core83092_ViewMenuPermissions.tsx +0 -263
  219. package/dist/modules-features/admin/core/core83092/useS_core83092.tsx +0 -70
  220. package/dist/modules-features/authenticate/F_authenticate_Login/F_authenticate_Login.tsx +0 -154
  221. package/dist/modules-features/authenticate/F_authenticate_Login/css.module.css +0 -4
  222. package/dist/modules-features/authenticate/F_authenticate_Logout.tsx +0 -22
  223. package/dist/modules-features/authenticate/F_authenticate_SplashPage.tsx +0 -21
  224. package/dist/modules-features/authenticate/useS_authenticate.ts +0 -23
  225. package/dist/modules-features/index.ts +0 -79
  226. package/dist/providers/MyMantineProvider.tsx +0 -140
  227. package/dist/providers/MyReactQueryProvider.tsx +0 -24
  228. package/dist/providers/Provider.tsx +0 -13
  229. package/dist/providers/mantine.module.css +0 -21
  230. package/dist/stores/CreateGenericStore.ts +0 -23
  231. package/dist/stores/index.ts +0 -1
  232. package/dist/types/types.ts +0 -16
  233. package/dist/utils/index.ts +0 -9
  234. package/dist/utils/utils_converter.ts +0 -39
  235. package/dist/utils/utils_currency.ts +0 -5
  236. package/dist/utils/utils_date.ts +0 -34
  237. package/dist/utils/utils_excel.ts +0 -128
  238. package/dist/utils/utils_file.ts +0 -61
  239. package/dist/utils/utils_notification.ts +0 -46
  240. package/dist/utils/utils_pdf.ts +0 -21
  241. package/dist/utils/utils_time.ts +0 -15
  242. package/dist/utils/utils_validateForm.ts +0 -9
@@ -1,64 +0,0 @@
1
- import { LineChart } from '@mantine/charts';
2
- import { Group, Paper, Text } from '@mantine/core';
3
-
4
- const data = [
5
- { month: '06/23', totalStudent: 245 },
6
- { month: '03/23', totalStudent: 456 },
7
- { month: '08/23', totalStudent: 343 },
8
- { month: '09/23', totalStudent: 860 },
9
- { month: '10/23', totalStudent: 930 },
10
- { month: '11/23', totalStudent: 790 },
11
- { month: '12/23', totalStudent: 1060 },
12
- { month: '01/24', totalStudent: 1700 },
13
- { month: '02/24', totalStudent: 1350 },
14
- { month: '03/24', totalStudent: 700 },
15
- { month: '04/24', totalStudent: 860 },
16
- { month: '05/24', totalStudent: 930 },
17
- ];
18
-
19
- interface ChartTooltipProps {
20
- label: string;
21
- payload: Record<string, any>[] | undefined;
22
- }
23
-
24
- function ChartTooltip({ label, payload }: ChartTooltipProps) {
25
- if (!payload) return null;
26
-
27
- return (
28
- <Paper px="md" py="sm" withBorder shadow="md" radius="md">
29
- <Text fw={500} mb={5}>
30
- {isNaN(Date.parse(label)) ? label : new Date(label.replace(/(\d{2})\/(\d{2})/, '20$2-$1')).toLocaleDateString('vi-VN', { month: 'long', year: 'numeric' })}
31
- </Text>
32
- {payload.map((item: any) => (
33
- <Text key={item.name} fz="sm">
34
- Số lượng: {item.value}
35
- </Text>
36
- ))}
37
- </Paper>
38
- );
39
- }
40
-
41
- export default function LineChart_TotalStudentIn12Months() {
42
- return (
43
- <>
44
- <Group>
45
- <Text mb={"50"}>Biểu đồ số lượng học viên 12 tháng qua</Text>
46
- <LineChart
47
- w={"100%"}
48
- h={200}
49
- data={data}
50
- dataKey="month"
51
- series={[
52
- { name: 'totalStudent', color: 'rgba(64, 65, 135, 1)' },
53
- ]}
54
- tooltipProps={{
55
- content: ({ label, payload }) => <ChartTooltip label={label} payload={payload} />,
56
- }}
57
- curveType="linear"
58
- yAxisLabel="Tổng số học viên"
59
- tickLine="y"
60
- />
61
- </Group>
62
- </>
63
- );
64
- }
@@ -1,311 +0,0 @@
1
- 'use client'
2
- import { Center, Progress, Space, Text } from "@mantine/core";
3
-
4
- // const data_singleDiscountCode = {
5
- // total: 500,
6
- // used: 453,
7
- // }
8
-
9
- export default function ViewDiscountStat() {
10
- return (
11
- <>
12
- <PieChart_DiscountUsedPercentage />
13
- {/* <Divider />
14
- <Group w={"100%"} align="end">
15
- <TextInput
16
- flex={1}
17
- label="Tìm mã giảm giá"
18
- placeholder="Nhập mã giảm giá"
19
- />
20
- <Button>
21
- Tìm kiếm
22
- </Button>
23
- </Group>
24
- <Space mt={32} />
25
- <Center>
26
- <Text>Đã sử dụng: <strong>{data_singleDiscountCode.used} / {data_singleDiscountCode.total}</strong> - ({((data_singleDiscountCode.used / data_singleDiscountCode.total) * 100).toFixed(2)}%)</Text>
27
- </Center>
28
- <Progress color="yellow" radius="xs" size="lg" value={(data_singleDiscountCode.used / data_singleDiscountCode.total) * 100} /> */}
29
- </>
30
- )
31
- }
32
-
33
-
34
- import { MyDataTable } from "@/components/DataDisplay/DataTable/MyDataTable";
35
- import { MyFlexColumn } from "@/components/Layouts/FlexColumn/MyFlexColumn";
36
- import { PieChart } from '@mantine/charts';
37
- import { MRT_ColumnDef } from "mantine-react-table";
38
- import { useMemo } from "react";
39
-
40
- function getRandomColor(seed: number): string {
41
- const random = Math.sin(seed) * 10000;
42
- const color = `#${Math.floor((random - Math.floor(random)) * 16777215).toString(16).padStart(6, '0')}`;
43
- return color;
44
- }
45
-
46
- const data_used_discountCode = [
47
- { name: 'DSC01', value: 54, color: getRandomColor(1) },
48
- { name: 'DSC02', value: 32, color: getRandomColor(2) },
49
- { name: 'DSC03', value: 5, color: getRandomColor(3) },
50
- { name: 'DSC04', value: 20, color: getRandomColor(4) },
51
- { name: 'DSC05', value: 12, color: getRandomColor(5) },
52
- { name: 'DSC06', value: 45, color: getRandomColor(6) },
53
- { name: 'DSC07', value: 23, color: getRandomColor(7) },
54
- { name: 'DSC08', value: 34, color: getRandomColor(8) },
55
- { name: 'DSC09', value: 29, color: getRandomColor(9) },
56
- { name: 'DSC10', value: 18, color: getRandomColor(10) },
57
- { name: 'DSC11', value: 37, color: getRandomColor(11) },
58
- { name: 'DSC12', value: 22, color: getRandomColor(12) },
59
- { name: 'DSC13', value: 41, color: getRandomColor(13) },
60
- { name: 'DSC14', value: 27, color: getRandomColor(14) },
61
- { name: 'DSC15', value: 33, color: getRandomColor(15) },
62
- { name: 'DSC16', value: 19, color: getRandomColor(16) },
63
- { name: 'DSC17', value: 25, color: getRandomColor(17) },
64
- { name: 'DSC18', value: 30, color: getRandomColor(18) },
65
- { name: 'DSC19', value: 21, color: getRandomColor(19) },
66
- { name: 'DSC20', value: 26, color: getRandomColor(20) }
67
- ];
68
-
69
- interface IUsedDiscountCode {
70
- code: string;
71
- name: string;
72
- total: number
73
- used: number;
74
- color: string;
75
- }
76
-
77
- const mockData = [
78
- {
79
- code: 'DSC01',
80
- name: 'Discount Code 1',
81
- total: 100,
82
- used: 54,
83
- color: getRandomColor(1)
84
- },
85
- {
86
- code: 'DSC02',
87
- name: 'Discount Code 2',
88
- total: 150,
89
- used: 32,
90
- color: getRandomColor(2)
91
- },
92
- {
93
- code: 'DSC03',
94
- name: 'Discount Code 3',
95
- total: 10,
96
- used: 5,
97
- color: getRandomColor(3)
98
- },
99
- {
100
- code: 'DSC04',
101
- name: 'Discount Code 4',
102
- total: 100,
103
- used: 20,
104
- color: getRandomColor(4)
105
- },
106
- {
107
- code: 'DSC05',
108
- name: 'Discount Code 5',
109
- total: 100,
110
- used: 12,
111
- color: getRandomColor(5)
112
- },
113
- {
114
- code: 'DSC06',
115
- name: 'Discount Code 6',
116
- total: 100,
117
- used: 45,
118
- color: getRandomColor(6)
119
- },
120
- {
121
- code: 'DSC07',
122
- name: 'Discount Code 7',
123
- total: 100,
124
- used: 23,
125
- color: getRandomColor(7)
126
- },
127
- {
128
- code: 'DSC08',
129
- name: 'Discount Code 8',
130
- total: 100,
131
- used: 34,
132
- color: getRandomColor(8)
133
- },
134
- {
135
- code: 'DSC09',
136
- name: 'Discount Code 9',
137
- total: 100,
138
- used: 29,
139
- color: getRandomColor(9)
140
- },
141
- {
142
- code: 'DSC10',
143
- name: 'Discount Code 10',
144
- total: 100,
145
- used: 18,
146
- color: getRandomColor(10)
147
- },
148
- {
149
- code: 'DSC11',
150
- name: 'Discount Code 11',
151
- total: 100,
152
- used: 37,
153
- color: getRandomColor(11)
154
- },
155
- {
156
- code: 'DSC12',
157
- name: 'Discount Code 12',
158
- total: 100,
159
- used: 22,
160
- color: getRandomColor(12)
161
- },
162
- {
163
- code: 'DSC13',
164
- name: 'Discount Code 13',
165
- total: 100,
166
- used: 41,
167
- color: getRandomColor(13)
168
- },
169
- {
170
- code: 'DSC14',
171
- name: 'Discount Code 14',
172
- total: 100,
173
- used: 27,
174
- color: getRandomColor(14)
175
- },
176
- {
177
- code: 'DSC15',
178
- name: 'Discount Code 15',
179
- total: 100,
180
- used: 33,
181
- color: getRandomColor(15)
182
- },
183
- {
184
- code: 'DSC16',
185
- name: 'Discount Code 16',
186
- total: 100,
187
- used: 19,
188
- color: getRandomColor(16)
189
- },
190
- {
191
- code: 'DSC17',
192
- name: 'Discount Code 17',
193
- total: 100,
194
- used: 25,
195
- color: getRandomColor(17)
196
- },
197
- {
198
- code: 'DSC18',
199
- name: 'Discount Code 18',
200
- total: 100,
201
- used: 30,
202
- color: getRandomColor(18)
203
- },
204
- {
205
- code: 'DSC19',
206
- name: 'Discount Code 19',
207
- total: 100,
208
- used: 21,
209
- color: getRandomColor(19)
210
- },
211
- {
212
- code: 'DSC20',
213
- name: 'Discount Code 20',
214
- total: 100,
215
- used: 26,
216
- color: getRandomColor(20)
217
- }
218
- ]
219
-
220
- export function PieChart_DiscountUsedPercentage() {
221
-
222
- const totalDisountCode = mockData.reduce((acc, cur) => acc + cur.used, 0);
223
-
224
- const columns = useMemo<MRT_ColumnDef<IUsedDiscountCode>[]>(
225
- () => [
226
- {
227
- header: "Màu",
228
- accessorKey: "color",
229
- accessorFn(originalRow) {
230
- return (
231
- <div style={{ width: 20, height: 20, backgroundColor: originalRow.color }} />
232
- )
233
- },
234
- minSize: 30,
235
- maxSize: 30
236
- },
237
- {
238
- header: "Mã",
239
- accessorKey: "code",
240
- minSize: 20,
241
- maxSize: 20
242
-
243
- },
244
- {
245
- header: "%",
246
- accessorKey: "used",
247
- accessorFn(originalRow) {
248
- return (
249
- <>
250
- <Center>
251
- <Text>{((originalRow.used / totalDisountCode) * 100).toFixed(0)}%</Text>
252
- </Center>
253
- </>
254
- )
255
- },
256
- minSize: 64,
257
- maxSize: 64
258
- },
259
- {
260
- header: "Số lượng sử dụng",
261
- accessorKey: "value",
262
- accessorFn(originalRow) {
263
- return originalRow.used;
264
- },
265
- Cell: ({ row }) => {
266
- return (
267
- <>
268
- <Center>
269
- <Text>Đã sử dụng: <strong>{row.original.used} / {row.original.total}</strong> - ({((row.original.used / row.original.total) * 100).toFixed(2)}%)</Text>
270
- </Center>
271
- <Progress color="yellow" radius="xs" size="lg" value={(row.original.used / row.original.total) * 100} />
272
- </>
273
- )
274
- },
275
- minSize: 50,
276
- maxSize: 50
277
- }
278
- ],
279
- []
280
- );
281
-
282
- return (
283
- <>
284
- <MyFlexColumn>
285
- <Text mb={"20"}>Biểu đồ phần trăm sử dụng chiết khấu học viên trong 60 ngày qua</Text>
286
- <Center>
287
- <PieChart
288
- startAngle={90}
289
- endAngle={-270}
290
- strokeWidth={0}
291
- withLabelsLine
292
- labelsPosition="outside"
293
- withLabels
294
- labelsType="percent"
295
- data={data_used_discountCode}
296
- />
297
- </Center>
298
- <Space mt={5} />
299
- <MyDataTable
300
- data={mockData}
301
- columns={columns}
302
- initialState={{
303
- density: "xs",
304
- pagination: { pageIndex: 0, pageSize: 5 },
305
- }}
306
- />
307
- </MyFlexColumn>
308
- </>
309
- )
310
- }
311
-
@@ -1,311 +0,0 @@
1
- 'use client'
2
- import { Center, Progress, Space, Text } from "@mantine/core";
3
-
4
- // const data_singleDiscountCode = {
5
- // total: 500,
6
- // used: 453,
7
- // }
8
-
9
- export default function ViewDiscountStat() {
10
- return (
11
- <>
12
- <PieChart_VoucherUsedPercentage />
13
- {/* <Divider />
14
- <Group w={"100%"} align="end">
15
- <TextInput
16
- flex={1}
17
- label="Tìm mã giảm giá"
18
- placeholder="Nhập mã giảm giá"
19
- />
20
- <Button>
21
- Tìm kiếm
22
- </Button>
23
- </Group>
24
- <Space mt={32} />
25
- <Center>
26
- <Text>Đã sử dụng: <strong>{data_singleDiscountCode.used} / {data_singleDiscountCode.total}</strong> - ({((data_singleDiscountCode.used / data_singleDiscountCode.total) * 100).toFixed(2)}%)</Text>
27
- </Center>
28
- <Progress color="yellow" radius="xs" size="lg" value={(data_singleDiscountCode.used / data_singleDiscountCode.total) * 100} /> */}
29
- </>
30
- )
31
- }
32
-
33
-
34
- import { MyDataTable } from "@/components/DataDisplay/DataTable/MyDataTable";
35
- import { MyFlexColumn } from "@/components/Layouts/FlexColumn/MyFlexColumn";
36
- import { PieChart } from '@mantine/charts';
37
- import { MRT_ColumnDef } from "mantine-react-table";
38
- import { useMemo } from "react";
39
-
40
- function getRandomColor(seed: number): string {
41
- const random = Math.sin(seed) * 10000;
42
- const color = `#${Math.floor((random - Math.floor(random)) * 16777215).toString(16).padStart(6, '0')}`;
43
- return color;
44
- }
45
-
46
- const data_used_discountCode = [
47
- { name: 'VOU01', value: 124, color: getRandomColor(1) },
48
- { name: 'VOU02', value: 34, color: getRandomColor(2) },
49
- { name: 'VOU03', value: 23, color: getRandomColor(3) },
50
- { name: 'VOU04', value: 34, color: getRandomColor(4) },
51
- { name: 'VOU05', value: 46, color: getRandomColor(5) },
52
- { name: 'VOU06', value: 123, color: getRandomColor(6) },
53
- { name: 'VOU07', value: 87, color: getRandomColor(7) },
54
- { name: 'VOU08', value: 25, color: getRandomColor(8) },
55
- { name: 'VOU09', value: 34, color: getRandomColor(9) },
56
- { name: 'VOU10', value: 67, color: getRandomColor(10) },
57
- { name: 'VOU11', value: 23, color: getRandomColor(11) },
58
- { name: 'VOU12', value: 98, color: getRandomColor(12) },
59
- { name: 'VOU13', value: 54, color: getRandomColor(13) },
60
- { name: 'VOU14', value: 27, color: getRandomColor(14) },
61
- { name: 'VOU15', value: 3, color: getRandomColor(15) },
62
- { name: 'VOU16', value: 56, color: getRandomColor(16) },
63
- { name: 'VOU17', value: 85, color: getRandomColor(17) },
64
- { name: 'VOU18', value: 45, color: getRandomColor(18) },
65
- { name: 'VOU19', value: 64, color: getRandomColor(19) },
66
- { name: 'VOU20', value: 12, color: getRandomColor(20) }
67
- ];
68
-
69
- interface IUsedVoucherCode {
70
- code: string;
71
- name: string;
72
- total: number
73
- used: number;
74
- color: string;
75
- }
76
-
77
- const mockData = [
78
- {
79
- code: 'VOU01',
80
- name: 'Voucher Code 1',
81
- total: 150,
82
- used: 124,
83
- color: getRandomColor(1)
84
- },
85
- {
86
- code: 'VOU02',
87
- name: 'Voucher Code 2',
88
- total: 150,
89
- used: 34,
90
- color: getRandomColor(2)
91
- },
92
- {
93
- code: 'VOU03',
94
- name: 'Voucher Code 3',
95
- total: 50,
96
- used: 23,
97
- color: getRandomColor(3)
98
- },
99
- {
100
- code: 'VOU04',
101
- name: 'Voucher Code 4',
102
- total: 100,
103
- used: 34,
104
- color: getRandomColor(4)
105
- },
106
- {
107
- code: 'VOU05',
108
- name: 'Voucher Code 5',
109
- total: 100,
110
- used: 46,
111
- color: getRandomColor(5)
112
- },
113
- {
114
- code: 'VOU06',
115
- name: 'Voucher Code 6',
116
- total: 130,
117
- used: 123,
118
- color: getRandomColor(6)
119
- },
120
- {
121
- code: 'VOU07',
122
- name: 'Voucher Code 7',
123
- total: 100,
124
- used: 87,
125
- color: getRandomColor(7)
126
- },
127
- {
128
- code: 'VOU08',
129
- name: 'Voucher Code 8',
130
- total: 100,
131
- used: 25,
132
- color: getRandomColor(8)
133
- },
134
- {
135
- code: 'VOU09',
136
- name: 'Voucher Code 9',
137
- total: 100,
138
- used: 34,
139
- color: getRandomColor(9)
140
- },
141
- {
142
- code: 'VOU10',
143
- name: 'Voucher Code 10',
144
- total: 100,
145
- used: 67,
146
- color: getRandomColor(10)
147
- },
148
- {
149
- code: 'VOU11',
150
- name: 'Voucher Code 11',
151
- total: 100,
152
- used: 23,
153
- color: getRandomColor(11)
154
- },
155
- {
156
- code: 'VOU12',
157
- name: 'Voucher Code 12',
158
- total: 100,
159
- used: 98,
160
- color: getRandomColor(12)
161
- },
162
- {
163
- code: 'VOU13',
164
- name: 'Voucher Code 13',
165
- total: 100,
166
- used: 54,
167
- color: getRandomColor(13)
168
- },
169
- {
170
- code: 'VOU14',
171
- name: 'Voucher Code 14',
172
- total: 100,
173
- used: 27,
174
- color: getRandomColor(14)
175
- },
176
- {
177
- code: 'VOU15',
178
- name: 'Voucher Code 15',
179
- total: 100,
180
- used: 3,
181
- color: getRandomColor(15)
182
- },
183
- {
184
- code: 'VOU16',
185
- name: 'Voucher Code 16',
186
- total: 100,
187
- used: 56,
188
- color: getRandomColor(16)
189
- },
190
- {
191
- code: 'VOU17',
192
- name: 'Voucher Code 17',
193
- total: 100,
194
- used: 85,
195
- color: getRandomColor(17)
196
- },
197
- {
198
- code: 'VOU18',
199
- name: 'Voucher Code 18',
200
- total: 100,
201
- used: 45,
202
- color: getRandomColor(18)
203
- },
204
- {
205
- code: 'VOU19',
206
- name: 'Voucher Code 19',
207
- total: 100,
208
- used: 64,
209
- color: getRandomColor(19)
210
- },
211
- {
212
- code: 'VOU20',
213
- name: 'Voucher Code 20',
214
- total: 100,
215
- used: 12,
216
- color: getRandomColor(20)
217
- }
218
- ]
219
-
220
- export function PieChart_VoucherUsedPercentage() {
221
-
222
- const totalVoucherCode = mockData.reduce((acc, cur) => acc + cur.used, 0);
223
-
224
- const columns = useMemo<MRT_ColumnDef<IUsedVoucherCode>[]>(
225
- () => [
226
- {
227
- header: "Màu",
228
- accessorKey: "color",
229
- accessorFn(originalRow) {
230
- return (
231
- <div style={{ width: 20, height: 20, backgroundColor: originalRow.color }} />
232
- )
233
- },
234
- minSize: 30,
235
- maxSize: 30
236
- },
237
- {
238
- header: "Mã",
239
- accessorKey: "code",
240
- minSize: 20,
241
- maxSize: 20
242
-
243
- },
244
- {
245
- header: "%",
246
- accessorKey: "used",
247
- accessorFn(originalRow) {
248
- return (
249
- <>
250
- <Center>
251
- <Text>{((originalRow.used / totalVoucherCode) * 100).toFixed(0)}%</Text>
252
- </Center>
253
- </>
254
- )
255
- },
256
- minSize: 64,
257
- maxSize: 64
258
- },
259
- {
260
- header: "Số lượng sử dụng",
261
- accessorKey: "value",
262
- accessorFn(originalRow) {
263
- return originalRow.used;
264
- },
265
- Cell: ({ row }) => {
266
- return (
267
- <>
268
- <Center>
269
- <Text>Đã sử dụng: <strong>{row.original.used} / {row.original.total}</strong> - ({((row.original.used / row.original.total) * 100).toFixed(2)}%)</Text>
270
- </Center>
271
- <Progress color="yellow" radius="xs" size="lg" value={(row.original.used / row.original.total) * 100} />
272
- </>
273
- )
274
- },
275
- minSize: 50,
276
- maxSize: 50
277
- }
278
- ],
279
- []
280
- );
281
-
282
- return (
283
- <>
284
- <MyFlexColumn>
285
- <Text mb={"20"}>Biểu đồ phần trăm sử dụng mã giảm giá học viên trong 60 ngày qua</Text>
286
- <Center>
287
- <PieChart
288
- startAngle={90}
289
- endAngle={-270}
290
- strokeWidth={0}
291
- withLabelsLine
292
- labelsPosition="outside"
293
- withLabels
294
- labelsType="percent"
295
- data={data_used_discountCode}
296
- />
297
- </Center>
298
- <Space mt={5} />
299
- <MyDataTable
300
- data={mockData}
301
- columns={columns}
302
- initialState={{
303
- density: "xs",
304
- pagination: { pageIndex: 0, pageSize: 5 },
305
- }}
306
- />
307
- </MyFlexColumn>
308
- </>
309
- )
310
- }
311
-
@@ -1,20 +0,0 @@
1
- import React from 'react'
2
- import { F_core12196_Read } from './F_core12196_Read'
3
- import { F_core12196_Create } from './F_core12196_Create'
4
- import { MyFlexEnd } from '@/components/Layouts/FlexEnd/MyFlexEnd'
5
- import { Paper, Space } from '@mantine/core'
6
-
7
- export function F_core12196({ FormTypeId
8
- }: {
9
- FormTypeId: number
10
- }) {
11
- return (
12
- <Paper p={'md'} >
13
- <MyFlexEnd>
14
- <F_core12196_Create FormTypeId={FormTypeId} />
15
- </MyFlexEnd>
16
- <Space />
17
- <F_core12196_Read FormTypeId={FormTypeId} />
18
- </Paper>
19
- )
20
- }