tableConfig.tsx 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. import { ProColumns } from "@ant-design/pro-components";
  2. import { Space, Switch } from "antd";
  3. import BookList from '../bookList';
  4. import LoginList from "../loginList";
  5. export const columns = (params: { enumList: { [key: string]: any }, upDate: (params: { id: any, enabled: boolean }) => void }): ProColumns<any>[] => {
  6. let { enumList, upDate } = params
  7. return [
  8. {
  9. title: "openId",
  10. dataIndex: 'openId',
  11. key: "openId",
  12. align: "center",
  13. // hideInSearch: true,
  14. },
  15. {
  16. title: "unionId",
  17. dataIndex: 'unionId',
  18. key: "unionId",
  19. align: "center",
  20. },
  21. {
  22. title: "用户昵称",
  23. dataIndex: 'nickname',
  24. key: "nickname",
  25. align: "center",
  26. },
  27. {
  28. title: "手机号",
  29. dataIndex: 'phoneNum',
  30. key: "phoneNum",
  31. hideInSearch: true,
  32. align: "center",
  33. },
  34. {
  35. title: "用户身份",
  36. dataIndex: 'userStanding',
  37. key: "userStanding",
  38. valueType: 'select',
  39. valueEnum: new Map(enumList?.USER_STANDING?.values?.map(({ value, description }: any) => [value, description])),
  40. align: "center",
  41. render: (a: any, b: any) => {
  42. let arr: any = new Map(enumList?.USER_STANDING?.values?.map(({ value, description }: any) => [value, description]))
  43. return arr.get(b?.userStanding) || '-'
  44. }
  45. },
  46. {
  47. title: "累计充值金额",
  48. dataIndex: 'chargeAmount',
  49. key: "chargeAmount",
  50. valueType: 'digit',
  51. align: "center",
  52. render:(a,b)=>{
  53. return b?.chargeAmount
  54. }
  55. },
  56. {
  57. title: "累计充值次数",
  58. dataIndex: 'chargeNum',
  59. key: "chargeNum",
  60. valueType: 'digit',
  61. align: "center",
  62. render:(a,b)=>{
  63. return b?.chargeNum
  64. }
  65. },
  66. {
  67. title: "书币余额",
  68. dataIndex: 'coinNumMin',
  69. key: "coinNumMin",
  70. valueType: 'digit',
  71. align: "center",
  72. render:(a,b)=>{
  73. return b?.coinNum
  74. }
  75. },
  76. {
  77. title: "VIP到期时间",
  78. dataIndex: 'vipExpireTime',
  79. key: "vipExpireTime",
  80. valueType: 'digit',
  81. align: "center",
  82. render:(a,b)=>{
  83. return b?.vipExpireTime || '-'
  84. }
  85. },
  86. {
  87. title: "用户来源",
  88. dataIndex: 'userSource',
  89. key: "userSource",
  90. valueType: 'digit',
  91. align: "center",
  92. render:(a,b)=>{
  93. return b?.userSource || '-'
  94. }
  95. },
  96. {
  97. title: "登录设备",
  98. dataIndex: 'osType',
  99. key: "osType",
  100. valueType: 'digit',
  101. align: "center",
  102. render:(a,b)=>{
  103. return b?.osType || '-'
  104. }
  105. },
  106. {
  107. title: "最近登录IP",
  108. dataIndex: 'lastLoginIp',
  109. key: "lastLoginIp",
  110. align: "center",
  111. hideInSearch: true,
  112. },
  113. {
  114. title: "最近登录时间",
  115. dataIndex: 'lastLoginTime',
  116. key: "lastLoginTime",
  117. align: "center",
  118. hideInSearch: true,
  119. },
  120. {
  121. title: "注册时间",
  122. dataIndex: 'createTime',
  123. key: "createTime",
  124. hideInSearch: true,
  125. align: "center",
  126. },
  127. {
  128. title: "更新时间",
  129. dataIndex: 'updateTime',
  130. key: "updateTime",
  131. hideInSearch: true,
  132. align: "center",
  133. },
  134. {
  135. title: "状态",
  136. dataIndex: 'enabled',
  137. key: "enabled",
  138. align: "center",
  139. valueType: 'select',
  140. valueEnum: { true: "正常", false: "禁用" },
  141. render: (a, b) => {
  142. return <Switch checked={b.enabled} size="default" checkedChildren="正常" unCheckedChildren="禁用" onChange={(enabled) => { upDate({ id: b.id, enabled }) }} />
  143. }
  144. },
  145. {
  146. title: '操作',
  147. dataIndex: 'cz',
  148. key: 'cz',
  149. width: 90,
  150. ellipsis: true,
  151. align: 'center',
  152. hideInSearch: true,
  153. render: (a: any, b: any) => {
  154. return <Space size={0}>
  155. <BookList data={b} />
  156. <LoginList data={b} />
  157. </Space>
  158. }
  159. },
  160. // 搜索条件
  161. {
  162. title: "最早登录时间",
  163. dataIndex: 'lastLoginTimeMin',
  164. valueType: 'date',
  165. hideInTable: true
  166. },
  167. {
  168. title: "最晚登录时间",
  169. dataIndex: 'lastLoginTimeMax',
  170. valueType: 'date',
  171. hideInTable: true
  172. },
  173. {
  174. title: "注册开始时间",
  175. dataIndex: 'startTime',
  176. valueType: 'date',
  177. hideInTable: true
  178. },
  179. {
  180. title: "注册结束时间",
  181. dataIndex: 'endTime',
  182. valueType: 'date',
  183. hideInTable: true
  184. },
  185. ];
  186. }