demo.tsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import {Link} from 'umi';
  2. import { Alert } from 'antd';
  3. import { Input } from 'antd';
  4. type IWidget1Props ={
  5. message: String
  6. }
  7. export const Widget1 = ({message}: IWidget1Props) => {
  8. return (
  9. <div>
  10. bla bla bla
  11. <Alert message={message} type="success" />
  12. </div>
  13. );
  14. }
  15. export const Widget2 = ({}) => {
  16. return (
  17. <div>
  18. bla bla bla
  19. <Alert message="Widget 2" type="error" />
  20. </div>
  21. );
  22. }
  23. type IWidgetCourseInfo ={
  24. title: string,
  25. course_id:number,
  26. teacher_name:string,
  27. }
  28. export const WidgetCourseInfo = (course: IWidgetCourseInfo) => {
  29. return (
  30. <div>
  31. 课程名称
  32. <Alert message={course.title} type="success" />
  33. 课程id:{course.course_id}<br />
  34. 授课教师:{course.teacher_name}<br />
  35. </div>
  36. );
  37. }
  38. type IWidgetArticle ={
  39. text: string
  40. }
  41. export const WidgetCourseContent = (course: IWidgetArticle) => {
  42. return (
  43. <div>
  44. <h2>课程内容</h2>
  45. <WidgetWikiPaliArticle text={course.text} />
  46. </div>
  47. );
  48. }
  49. export const WidgetWikiPaliArticle = (content: IWidgetArticle) => {
  50. return (
  51. <div>
  52. <p>wikipali article content</p>
  53. {content.text}
  54. </div>
  55. );
  56. }
  57. export const WidgetWikiPaliArticleEdit = (content: IWidgetArticle) => {
  58. const onChange = e => {
  59. console.log('Change:', e.target.value);
  60. };
  61. const { TextArea } = Input;
  62. return (
  63. <div>
  64. <p>wikipali article content edit</p>
  65. <TextArea autoSize showCount maxLength={500} defaultValue={content.text} onChange={onChange} />
  66. </div>
  67. );
  68. }