crud.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import type { CreateCrudOptionsRet, CreateCrudOptionsProps } from '@fast-crud/fast-crud';
  2. import dayjs from 'dayjs';
  3. import { queryScore } from '../api';
  4. export default function createCrudOptions(crudOptionsProps: CreateCrudOptionsProps): CreateCrudOptionsRet {
  5. return {
  6. crudOptions: {
  7. request: {
  8. pageRequest: async ({ page, query }) => {
  9. query.subjectId = crudOptionsProps.context?.subjectId;
  10. const { total, data } = await queryScore(page.offset + 1, page.limit, query);
  11. return { records: data, total, currentPage: page.offset, pageSize: page.limit };
  12. },
  13. addRequest: () => {
  14. return Promise.resolve(true);
  15. },
  16. editRequest: () => {
  17. return Promise.resolve(true);
  18. },
  19. delRequest: () => {
  20. return Promise.resolve(true);
  21. }
  22. },
  23. rowHandle: {
  24. show: false
  25. },
  26. toolbar: {
  27. show: false
  28. },
  29. actionbar: {
  30. show: false
  31. },
  32. search: {
  33. show: true,
  34. buttons: {
  35. search: {
  36. show: true
  37. },
  38. reset: {
  39. show: true
  40. },
  41. custom: {
  42. show: true,
  43. text: '关闭',
  44. click: () => {
  45. crudOptionsProps.context?.viewActiveCloseFunc();
  46. }
  47. }
  48. }
  49. },
  50. columns: {
  51. studentNumber: {
  52. title: '学员编号',
  53. search: {
  54. show: true
  55. },
  56. type: 'text',
  57. column: {
  58. align: 'center',
  59. width: 240
  60. },
  61. form: {
  62. show: false
  63. }
  64. },
  65. testDate: {
  66. title: '考试日期',
  67. type: 'datetime',
  68. search: { show: false },
  69. column: {
  70. align: 'center'
  71. },
  72. form: {
  73. show: false
  74. },
  75. valueBuilder(context) {
  76. const { value, row, key } = context;
  77. if (value) {
  78. row[key] = dayjs(value).valueOf();
  79. }
  80. },
  81. valueResolve(context) {
  82. const { value, form, key } = context;
  83. if (value) {
  84. form[key] = dayjs(value).format('YYYY-MM-DD HH:mm:ss');
  85. }
  86. }
  87. },
  88. createTime: {
  89. key: 'createTime',
  90. title: '创建时间',
  91. type: 'datetime',
  92. column: {
  93. width: 250,
  94. align: 'center'
  95. },
  96. search: { show: false },
  97. valueBuilder(context) {
  98. const { value, row, key } = context;
  99. if (value) {
  100. row[key] = dayjs(value).valueOf();
  101. }
  102. },
  103. valueResolve(context) {
  104. const { value, form, key } = context;
  105. if (value) {
  106. form[key] = dayjs(value).format('YYYY-MM-DD HH:mm:ss');
  107. }
  108. }
  109. },
  110. modifyTime: {
  111. title: '修改时间',
  112. key: 'modifyTime',
  113. type: 'datetime',
  114. align: 'center',
  115. column: {
  116. width: 250,
  117. align: 'center'
  118. },
  119. valueBuilder(context) {
  120. const { value, row, key } = context;
  121. if (value) {
  122. row[key] = dayjs(value).valueOf();
  123. }
  124. },
  125. valueResolve(context) {
  126. const { value, form, key } = context;
  127. if (value) {
  128. form[key] = dayjs(value).format('YYYY-MM-DD HH:mm:ss');
  129. }
  130. }
  131. },
  132. passRate: {
  133. title: '及格率',
  134. type: 'text',
  135. search: { show: false },
  136. column: {
  137. align: 'center'
  138. }
  139. },
  140. excelRate: {
  141. title: '通过率',
  142. type: 'text',
  143. search: { show: false },
  144. column: {
  145. align: 'center'
  146. }
  147. },
  148. comment: {
  149. title: '备注信息',
  150. type: 'text',
  151. search: { show: false },
  152. column: {
  153. align: 'center',
  154. width: 200
  155. }
  156. }
  157. }
  158. }
  159. };
  160. }