知与行后台管理端

editNewsList.jsx 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. import React, { useState, useEffect } from 'react';
  2. import { Form, Input, Button, Icon, Select, Tabs, Radio, DatePicker,message } from 'antd';
  3. import { FormattedMessage } from 'umi-plugin-react/locale';
  4. import styles from '../../style/GoodsList.less';
  5. import moment from 'moment';
  6. import router from 'umi/router';
  7. import BuildSelect from '../../../components/SelectButton/BuildSelect'
  8. import NewsTypeSelect from '../../../components/SelectButton/NewTypeSelect'
  9. import XForm, { FieldTypes } from '../../../components/XForm';
  10. import Wangedit from '../../../components/Wangedit/Wangedit'
  11. import request from '../../../utils/request'
  12. const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
  13. /**
  14. *
  15. *
  16. * @param {*} props
  17. * @returns
  18. */
  19. const Edit = (props) => {
  20. const [ tab, changeTab ] = useState('basic')
  21. const newsId = props.location.query.newsId
  22. const [ dynamicData, setDynamicData ] = useState({})
  23. if(newsId){
  24. useEffect(() => {
  25. getDynamicData(newsId);
  26. },[])
  27. // 查询列表
  28. const getDynamicData = (newsId) => {
  29. request({
  30. url: '/api/admin/taNews/' + newsId,
  31. method: 'GET',
  32. params: { newsId },
  33. }).then((data) => {
  34. console.log(data)
  35. setDynamicData(data)
  36. })
  37. }
  38. }
  39. const cancelPage = () =>{
  40. router.push({
  41. pathname: '/news/list/NewsList',
  42. });
  43. }
  44. const Basic = (props) => {
  45. const fields = [
  46. {
  47. label: '意向项目',
  48. name: 'buildingId',
  49. render: <BuildSelect />,
  50. value: dynamicData.buildingId,
  51. rules: [
  52. {required: true, message: '请选择所属项目'},
  53. ]
  54. },
  55. {
  56. label: '资讯图片',
  57. name: 'newsImg',
  58. type: FieldTypes.ImageUploader,
  59. value: dynamicData.newsImg,
  60. },
  61. {
  62. label: '资讯标题',
  63. name: 'newsName',
  64. type: FieldTypes.Text,
  65. value: dynamicData.newsName,
  66. rules: [
  67. {required: true, message: '请输入资讯标题'},
  68. ]
  69. },
  70. {
  71. label: '资讯类型',
  72. name: 'newsTypeId',
  73. render: <NewsTypeSelect />,
  74. value: dynamicData.newsTypeId,
  75. rules: [
  76. {required: true, message: '请选择资讯类型'},
  77. ]
  78. },
  79. {
  80. label: '资讯详情',
  81. name: 'desc',
  82. render: <Wangedit />,
  83. value: dynamicData.desc,
  84. },
  85. ]
  86. const handleSubmit = val => {
  87. let {...submitValue} = val
  88. if(dynamicId){
  89. submitValue.dynamicId = dynamicId
  90. request({
  91. url: '/api/admin/buildingDynamic/update',
  92. method: 'PUT',
  93. data: submitValue,
  94. }).then((data) => {
  95. cancelPage()
  96. }).catch((err) => {
  97. message.info(err.msg || err.message)
  98. })
  99. }else{
  100. request({
  101. url: '/api/admin/taNews',
  102. method: 'POST',
  103. data: submitValue,
  104. }).then((data) => {
  105. cancelPage()
  106. }).catch((err) => {
  107. message.info(err.msg || err.message)
  108. })
  109. }
  110. }
  111. return <XForm onSubmit={handleSubmit} onCancel={cancelPage} fields={fields}></XForm>
  112. }
  113. const Poster = (props) => {
  114. return <div>Poster</div>
  115. }
  116. const Share = (props) => {
  117. return <div>Share</div>
  118. }
  119. return (
  120. <div>
  121. <div>
  122. <Radio.Group value={tab} buttonStyle="solid" onChange={e => changeTab(e.target.value)}>
  123. <Radio.Button value="basic">基本信息</Radio.Button>
  124. <Radio.Button value="poster">海报图片</Radio.Button>
  125. <Radio.Button value="share">分享设置</Radio.Button>
  126. </Radio.Group>
  127. </div>
  128. <div>
  129. { tab === 'basic' && <Basic /> }
  130. { tab === 'poster' && <Poster /> }
  131. { tab === 'share' && <Share /> }
  132. </div>
  133. </div>
  134. );
  135. }
  136. export default Edit