魏超 5 gadus atpakaļ
vecāks
revīzija
9a675a47f5

+ 5
- 0
config/config.js Parādīt failu

260
                   name: '资讯列表',
260
                   name: '资讯列表',
261
                   component: './news/list/NewsList',
261
                   component: './news/list/NewsList',
262
                 },
262
                 },
263
+                {
264
+                  path: '/news/list/editNewsList',
265
+                  name: '',
266
+                  component: './news/list/editNewsList',
267
+                },
263
               ],
268
               ],
264
             },
269
             },
265
             {
270
             {

+ 40
- 0
src/components/SelectButton/NewTypeSelect.jsx Parādīt failu

1
+import React, { useState, useEffect } from 'react';
2
+import { Select } from 'antd';
3
+
4
+import request from '../../utils/request'
5
+
6
+const { Option } = Select;
7
+
8
+/**
9
+ *
10
+ *
11
+ * @param {*} props
12
+ * @returns
13
+ */
14
+const NewsTypeSelect = (props) => {
15
+  const [ data, setData ] = useState([])
16
+
17
+  useEffect(() => {
18
+    getCityList();
19
+  },[])
20
+
21
+  const getCityList = (e) => {
22
+    request({
23
+        url: '/api/admin/taNewsType',
24
+        method: 'GET',
25
+        params: {pageNum: 1,pageSize: 999},
26
+    }).then((data) => {
27
+        setData(data.records)
28
+    })
29
+  }
30
+
31
+  return (
32
+      <Select value={props.value} style={{ width: '180px' }} placeholder="请选择类型" onChange={props.onChange}>
33
+          {data.map(type => (
34
+            <Option key={type.newsTypeId}>{type.newsTypeName}</Option>
35
+          ))}
36
+      </Select>
37
+  )
38
+}
39
+export default NewsTypeSelect
40
+

+ 68
- 10
src/pages/news/list/NewsList.jsx Parādīt failu

1
 import React, { useState, useEffect } from 'react';
1
 import React, { useState, useEffect } from 'react';
2
-import { Form, Icon, Input, Button, DatePicker, Select, Card, Row, Col, Pagination, Alert } from 'antd';
2
+import { Form, Icon, Input, Button, DatePicker, Select, Modal, message, Card, Row, Col, Pagination, Alert } from 'antd';
3
 import moment from 'moment';
3
 import moment from 'moment';
4
+import router from 'umi/router';
4
 import request from '../../../utils/request';
5
 import request from '../../../utils/request';
5
 import apis from '../../../services/apis';
6
 import apis from '../../../services/apis';
6
 import Styles from './style.less';
7
 import Styles from './style.less';
8
+import NewsTypeSelect from '../../../components/SelectButton/NewTypeSelect'
7
 
9
 
8
 
10
 
9
 const { Option } = Select;
11
 const { Option } = Select;
19
  */
21
  */
20
 function CartBody(props) {
22
 function CartBody(props) {
21
   const { data } = props
23
   const { data } = props
22
-  console.log(props);
24
+
25
+  const cancelPage = () =>{
26
+    router.push({
27
+      pathname: '/news/list/NewsList',
28
+    });
29
+  }
30
+
31
+  // 查询列表
32
+  const getList = (params) => {
33
+    request({
34
+        url: '/api/admin/taNews',
35
+        method: 'GET',
36
+        params: { ...params },
37
+    }).then((data) => {
38
+        cancelPage();
39
+    })
40
+  }
41
+
42
+  //删除资讯
43
+  const changeNewsListStatus = (newsId) => () => {
44
+    Modal.confirm({
45
+      title: '确认删除该资讯?',
46
+      okText: '确认',
47
+      cancelText: '取消',
48
+      onOk() {
49
+        request({
50
+          url: '/api/admin/taNews/' + newsId,
51
+          method: 'DELETE',
52
+          // data: { ...row },
53
+        }).then((data) => {
54
+          message.info('操作成功!')
55
+          getList({ pageNum: 1, pageSize: 10 });
56
+        })
57
+      }
58
+    });
59
+  }
60
+
61
+  // 跳转到编辑资讯列表
62
+  const toEditList = (newsId) => ()  => {
63
+    router.push({
64
+      pathname: '/news/list/editNewsList',
65
+      query: {
66
+        newsId
67
+      },
68
+    });
69
+  }
70
+
23
   return (
71
   return (
24
           <Card
72
           <Card
25
             hoverable
73
             hoverable
30
             <p className={Styles.cardText}>
78
             <p className={Styles.cardText}>
31
               <span className={Styles.title}>资讯类型</span>
79
               <span className={Styles.title}>资讯类型</span>
32
               <span >:{ data.newsType.newsTypeName }</span>
80
               <span >:{ data.newsType.newsTypeName }</span>
33
-              <span className={Styles.ediText}>
81
+              <span className={Styles.ediText} onClick={toEditList(data.newsId)}>
34
                 编辑
82
                 编辑
35
                 <Icon type="form" style={{ color: '#C0C4CC', marginLeft: '10px' }} />
83
                 <Icon type="form" style={{ color: '#C0C4CC', marginLeft: '10px' }} />
36
               </span>
84
               </span>
37
             </p>
85
             </p>
38
             <p className={Styles.cardText}>
86
             <p className={Styles.cardText}>
39
               <span className={Styles.title}>状态</span>
87
               <span className={Styles.title}>状态</span>
40
-              <span >:{ data.status == 0 ? "已发布" : "未发布" }</span>
88
+              <span >:{ data.newsStatus == 0 ? "已发布" : "未发布" }</span>
41
             </p>
89
             </p>
42
             <p className={Styles.cardItem}>
90
             <p className={Styles.cardItem}>
43
               <span className={Styles.title}>阅读数量</span>
91
               <span className={Styles.title}>阅读数量</span>
45
             </p>
93
             </p>
46
             <p className={Styles.cardItem}>
94
             <p className={Styles.cardItem}>
47
               <span className={Styles.title}>转发数量</span>
95
               <span className={Styles.title}>转发数量</span>
48
-              <span className={ Styles.address }>:{ data.shareNum }</span>
96
+              <span>:{ data.shareNum }</span>
49
             </p>
97
             </p>
50
             <p className={Styles.cardItem}>
98
             <p className={Styles.cardItem}>
51
               <span className={Styles.title}>点赞数量</span>     
99
               <span className={Styles.title}>点赞数量</span>     
66
               </span>
114
               </span>
67
               <span style={{
115
               <span style={{
68
                 color: '#FF4A4A', position: 'absolute', right: '0',
116
                 color: '#FF4A4A', position: 'absolute', right: '0',
69
-              }} >
117
+              }} onClick={changeNewsListStatus(data.newsId)}>
70
                 删除
118
                 删除
71
                 <Icon type="rest" style={{ color: '#C0C4CC', marginLeft: '8px' }} />
119
                 <Icon type="rest" style={{ color: '#C0C4CC', marginLeft: '8px' }} />
72
               </span>
120
               </span>
122
     });
170
     });
123
   }
171
   }
124
 
172
 
173
+  // 跳转到编辑资讯列表
174
+  const toEditList = (id) => ()  => {
175
+    router.push({
176
+      pathname: '/news/list/editNewsList',
177
+      query: {
178
+        id
179
+      },
180
+    });
181
+  }
182
+
183
+
125
   // Change 事件
184
   // Change 事件
126
   function handleSelectChange(e) {
185
   function handleSelectChange(e) {
127
     // eslint-disable-next-line no-console
186
     // eslint-disable-next-line no-console
165
           )}
224
           )}
166
         </Form.Item>
225
         </Form.Item>
167
         <Form.Item>
226
         <Form.Item>
168
-          {getFieldDecorator('type')(
169
-            <Select style={{ width: '180px' }} placeholder="咨询类型" onChange={handleSelectChange}>
170
-            </Select>,
227
+          {getFieldDecorator('buildingId')(
228
+            <NewsTypeSelect />,
171
           )}
229
           )}
172
         </Form.Item>       
230
         </Form.Item>       
173
         <Form.Item>
231
         <Form.Item>
184
           </Button>
242
           </Button>
185
         </Form.Item>
243
         </Form.Item>
186
       </Form>
244
       </Form>
187
-      <Button type="primary" className={Styles.addButton}>
245
+      <Button type="primary" className={Styles.addButton} onClick={toEditList()}>
188
         新增
246
         新增
189
       </Button>
247
       </Button>
190
 
248
 

+ 148
- 0
src/pages/news/list/editNewsList.jsx Parādīt failu

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

+ 1
- 1
src/pages/news/type/NewsType.jsx Parādīt failu

45
   }
45
   }
46
 
46
 
47
 
47
 
48
-  // 跳转到编辑咨询
48
+  // 跳转到编辑资讯
49
   const toEditNews = (id) => () => {
49
   const toEditNews = (id) => () => {
50
     router.push({
50
     router.push({
51
       pathname: '/news/type/editNews',
51
       pathname: '/news/type/editNews',