page.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. import React from 'react';
  2. import { Link } from 'react-router-dom';
  3. import './index.less';
  4. import Page from '@src/containers/Page';
  5. import UserLayout from '../../../layouts/User';
  6. import UserTable from '../../../components/UserTable';
  7. import UserAction from '../../../components/UserAction';
  8. import Switch from '../../../components/Switch';
  9. import menu from '../index';
  10. import Tabs from '../../../components/Tabs';
  11. const columns = [
  12. {
  13. key: 'title',
  14. title: '笔记对象',
  15. width: 140,
  16. render(text, row) {
  17. return row.group ? (
  18. <div className="group">
  19. <Link to="">{text}</Link>
  20. </div>
  21. ) : (
  22. <div className="sub">{text}</div>
  23. );
  24. },
  25. },
  26. {
  27. key: 'date',
  28. title: '更新时间',
  29. width: 100,
  30. render(text, row) {
  31. return row.group ? (
  32. <div className="group">
  33. <Link to="">{text}</Link>
  34. </div>
  35. ) : (
  36. <div className="sub">
  37. <div className="date">{text.split(' ')[0]}</div>
  38. <div className="date">{text.split(' ')[1]}</div>
  39. </div>
  40. );
  41. },
  42. },
  43. {
  44. key: 'content',
  45. title: '内容',
  46. width: 540,
  47. render(text, row) {
  48. return row.group ? (
  49. <div className="group">
  50. <Link to="">{text}</Link>
  51. </div>
  52. ) : (
  53. <div className="sub">{text}</div>
  54. );
  55. },
  56. },
  57. ];
  58. export default class extends Page {
  59. initState() {
  60. return {
  61. filterMap: {},
  62. sortMap: {},
  63. data: [
  64. {
  65. group: true,
  66. title: '语法',
  67. date: ' OG18 #678',
  68. content: '「图形」None of the attempts to specify the causes of crime explains why most of the p',
  69. list: [
  70. {
  71. title: '题目',
  72. ask:
  73. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉',
  74. answer:
  75. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,',
  76. },
  77. {
  78. title: '题目',
  79. ask:
  80. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉',
  81. answer:
  82. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,',
  83. },
  84. ],
  85. },
  86. {
  87. group: true,
  88. title: '语法',
  89. date: ' OG18 #678',
  90. content: '「图形」None of the attempts to specify the causes of crime explains why most of the p',
  91. list: [
  92. {
  93. title: '题目',
  94. ask:
  95. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉',
  96. answer:
  97. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,',
  98. },
  99. {
  100. title: '题目',
  101. ask:
  102. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,从比较对象和句子结构我们能把DE排除掉',
  103. answer:
  104. '从比较对象和句子结构我们能把DE排除掉,D选项中fat和livestock不是比较对象,E选项中and 后面的句子太凌乱is of a kind ….is…结构出现了重大问题,',
  105. },
  106. ],
  107. },
  108. ],
  109. selectList: [],
  110. tab: '1',
  111. page: 1,
  112. total: 1,
  113. };
  114. }
  115. onTabChange(tab) {
  116. this.setState({ tab });
  117. }
  118. onFilter(value) {
  119. this.setState({ filterMap: value });
  120. }
  121. onSort(value) {
  122. this.setState({ sortMap: value });
  123. }
  124. onDataChange(page) {
  125. this.setState({ page, allChecked: false, selectList: [] });
  126. }
  127. onAction() {}
  128. onSelect(selectList) {
  129. this.setState({ selectList });
  130. }
  131. renderView() {
  132. const { config } = this.props;
  133. return <UserLayout active={config.key} menu={menu} center={this.renderTable()} />;
  134. }
  135. renderTable() {
  136. const { tab, filterMap = {}, sortMap = {}, data = [] } = this.state;
  137. return (
  138. <div className="table-layout">
  139. <Tabs
  140. border
  141. type="division"
  142. theme="theme"
  143. size="small"
  144. space={2.5}
  145. width={100}
  146. active={tab}
  147. tabs={[{ key: '1', title: '练习' }, { key: '2', title: '模考' }]}
  148. onChange={key => this.onTabChange(key)}
  149. />
  150. <UserAction
  151. search
  152. selectList={[
  153. {
  154. label: '123',
  155. children: [
  156. {
  157. key: 'one',
  158. default: '1',
  159. select: [{ title: '123', key: '1' }, { title: '123', key: '2' }, { title: '123', key: '2' }],
  160. },
  161. {
  162. key: 'two',
  163. be: 'one',
  164. placeholder: '全部',
  165. selectMap: [{ title: '123', key: '1' }, { title: '123', key: '2' }, { title: '123', key: '2' }],
  166. },
  167. ],
  168. },
  169. {
  170. label: '123',
  171. right: true,
  172. select: [{ title: '123', key: '1' }, { title: '123', key: '2' }, { title: '123', key: '2' }],
  173. },
  174. ]}
  175. filterMap={filterMap}
  176. onFilter={value => this.onFilter(value)}
  177. />
  178. <UserAction
  179. sortList={[{ right: true, label: '提问时间', key: '1' }, { right: true, label: '回答时间', key: '2' }]}
  180. sortMap={sortMap}
  181. left={
  182. <div className="email">
  183. 只看已回答 <Switch />
  184. </div>
  185. }
  186. onSort={value => this.onSort(value)}
  187. />
  188. {data.map(item => {
  189. return (
  190. <div className="group">
  191. <UserTable border={false} size="small" columns={columns} data={[item]} header={false} />
  192. {item.list &&
  193. item.list.map(_item => {
  194. return (
  195. <div className="answer-layout">
  196. <div className="title">
  197. 提问区域: <b>{_item.title}</b>
  198. </div>
  199. <div className="small-tag">提问</div>
  200. <div className="desc">{_item.ask}</div>
  201. <div className="small-tag">回答</div>
  202. <div className="desc">{_item.answer}</div>
  203. </div>
  204. );
  205. })}
  206. </div>
  207. );
  208. })}
  209. </div>
  210. );
  211. }
  212. }