weichaochao 5 lat temu
rodzic
commit
6193cf8128
1 zmienionych plików z 33 dodań i 25 usunięć
  1. 33
    25
      src/pages/news/list/editNewsList.jsx

+ 33
- 25
src/pages/news/list/editNewsList.jsx Wyświetl plik

@@ -7,7 +7,7 @@ import moment from 'moment';
7 7
 import router from 'umi/router';
8 8
 import BuildSelect from '../../../components/SelectButton/BuildSelect'
9 9
 import NewsTypeSelect from '../../../components/SelectButton/NewTypeSelect'
10
-import XForm, { FieldTypes } from '../../../components/XForm';
10
+import  { FieldTypes, createForm } from '../../../components/XForm';
11 11
 import Wangedit from '../../../components/Wangedit/Wangedit'
12 12
 import request from '../../../utils/request'
13 13
 import ImageUploader from '../../../components/XForm/ImageUpload';
@@ -20,6 +20,21 @@ import xiaochengxu from '../../../assets/xiaochengxu.png'
20 20
 
21 21
 const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
22 22
 const { TextArea } = Input;
23
+
24
+let detailVisible = false;
25
+let urlVisible = false;
26
+
27
+const setExtraData = (data) => {
28
+  detailVisible = data.newsDetailType == '1'
29
+  urlVisible = data.newsDetailType == '0'
30
+}
31
+
32
+const handleFormValueChange = (props, changedValues, allValues) => {
33
+    setExtraData(allValues)
34
+}
35
+
36
+const XForm = createForm({ onValuesChange: handleFormValueChange })
37
+
23 38
 /**
24 39
  *
25 40
  *
@@ -31,9 +46,6 @@ const { TextArea } = Input;
31 46
   const newsId = props.location.query.newsId
32 47
   const [ dynamicData, setDynamicData ] = useState({})
33 48
 
34
-  const [detailVisible, setDetailVisible] = useState(false)
35
-  const [urlVisible, setUrlVisible] = useState(false)
36
-
37 49
     useEffect(() => {
38 50
       if(newsId){
39 51
         getDynamicData(newsId);
@@ -44,29 +56,25 @@ const { TextArea } = Input;
44 56
   const getDynamicData = (newsId) => {
45 57
     request({ ...apis.news.get, urlData: { id: newsId },}).then((data) => {
46 58
       setDynamicData(data)
47
-      if (data.newsDetailType === '1'){
48
-        setDetailVisible(false)
49
-        setUrlVisible(true)
50
-      }else{
51
-        setDetailVisible(true)
52
-        setUrlVisible(false)
53
-      }    
59
+      detailVisible = data.newsDetailType == '1'
60
+      urlVisible = data.newsDetailType == '0'
54 61
     }).catch((err) => {
55 62
       console.log(err)
56 63
       message.info(err.msg || err.message)
57 64
     })
58 65
     }
59 66
 
60
-  const changeRadio = (e) => {
61
-    console.log(e.target.value,'eeee')
62
-    if(e.target.value == 1){
63
-      setDetailVisible(false)
64
-      setUrlVisible(true)
65
-    }else{
66
-      setDetailVisible(true)
67
-      setUrlVisible(false)
68
-    }
69
-  }
67
+  // const changeRadio = (e) => {
68
+  //   console.log(e.target.value,'eeee')
69
+  //   if(e.target.value == "1"){
70
+  //     detailVisible = true
71
+  //     urlVisible = false
72
+  //   }
73
+  //   if(e.target.value == "0"){
74
+  //     detailVisible = false
75
+  //     urlVisible = true
76
+  //   }
77
+  // }
70 78
 
71 79
   const cancelPage = () =>{
72 80
     router.push({
@@ -122,7 +130,7 @@ const { TextArea } = Input;
122 130
       {
123 131
         label: '资讯详情',
124 132
         name: 'newsDetailType',
125
-        render: <Radio.Group onChange={changeRadio} defaultValue={dynamicData.newsDetailType}> 
133
+        render: <Radio.Group> 
126 134
                 <Radio value={1}>自定义</Radio>
127 135
                 <Radio value={0}>公众号链接</Radio>
128 136
                 </Radio.Group>,
@@ -135,7 +143,7 @@ const { TextArea } = Input;
135 143
         label: '详情内容',
136 144
         name: 'newsDetail',
137 145
         render: <Wangedit />,
138
-        hidden: () => detailVisible,
146
+        hidden: () => !detailVisible,
139 147
         value: dynamicData.newsDetail,
140 148
         rules: [
141 149
           {required: true, message: '请输入详情内容'},
@@ -145,7 +153,7 @@ const { TextArea } = Input;
145 153
         label: '公众号链接',
146 154
         name: 'newsDetail',
147 155
         type: FieldTypes.Text,
148
-        hidden: () => urlVisible,
156
+        hidden: () => !urlVisible,
149 157
         value: dynamicData.newsDetail,
150 158
         rules: [
151 159
           {required: true, message: '请输入公众号链接'},
@@ -182,7 +190,7 @@ const { TextArea } = Input;
182 190
       }
183 191
     }
184 192
     
185
-    return <XForm onSubmit={handleSubmit} onCancel={cancelPage} fields={fields}></XForm>
193
+    return <XForm onSubmit={handleSubmit} onCancel={cancelPage}  fields={fields}></XForm>
186 194
   }
187 195
   
188 196
   const Poster = (props) => {