page.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import React from 'react';
  2. import { Col, Row, Button } from 'antd';
  3. import './index.less';
  4. import Page from '@src/containers/Page';
  5. import Block from '@src/components/Block';
  6. import EditTableCell from '@src/components/EditTableCell';
  7. import TableLayout from '@src/layouts/TableLayout';
  8. import { asyncSMessage } from '@src/services/AsyncTools';
  9. import { System } from '../../../stores/system';
  10. const locations = [
  11. { page: '4-1/3模考-千行CAT', location: '显示第一次模考成绩', value: '4-1/3-show' },
  12. { page: '4-1-1 做题结束-练习报告', location: '建议用时', value: '4-1-1-suggest' },
  13. { page: '4-2-2模考-数学机经-选择习题册', location: '已更新至邮箱', value: '4-2-2-update' },
  14. { page: '4-2-2模考-数学机经-选择习题册', location: '下载弹框', value: '4-2-2-download' },
  15. { page: '4-2-2模考-数学机经-选择习题册', location: '邮箱处', value: '4-2-2-email' },
  16. { page: '4-4 模考-休息', location: 'Optional Break', value: '4-4-optional' },
  17. { page: '4-2-3 模考-数学机经-购买', location: '购买方式', value: '4-2-3-buy' },
  18. { page: '4-2-3 模考-数学机经-购买', location: '填写邮箱', value: '4-2-3-email' },
  19. { page: '5-1/3主页/弹框', location: '备注6', value: '5-1/3-note' },
  20. ];
  21. export default class extends Page {
  22. constructor(props) {
  23. super(props);
  24. this.columns = [{
  25. title: '页面',
  26. dataIndex: 'page',
  27. }, {
  28. title: '位置',
  29. dataIndex: 'location',
  30. }, {
  31. title: '内容',
  32. dataIndex: 'value',
  33. render: (text, record) => {
  34. const { data } = this.state;
  35. return <EditTableCell value={data[record.value]} onChange={(v) => {
  36. this.changeData(record.value, v);
  37. }} />;
  38. },
  39. }];
  40. }
  41. initData() {
  42. System.getTips().then(result => {
  43. this.setState({ load: true, data: result });
  44. });
  45. }
  46. changeData(key, value) {
  47. const { data } = this.state;
  48. data[key] = value;
  49. this.setState({ data });
  50. }
  51. submit() {
  52. const { data } = this.state;
  53. System.setTips(data)
  54. .then(() => {
  55. this.setState(data);
  56. asyncSMessage('保存成功');
  57. });
  58. }
  59. renderView() {
  60. return <Block flex >
  61. <TableLayout
  62. columns={this.columns}
  63. list={locations}
  64. pagination={false}
  65. loading={this.props.core.loading}
  66. />
  67. <Row type="flex" justify="center">
  68. <Col>
  69. <Button type="primary" onClick={() => {
  70. this.submit();
  71. }}>保存</Button>
  72. </Col>
  73. </Row>
  74. </Block>;
  75. }
  76. }