weichaochao před 5 roky
rodič
revize
6193cf8128
1 změnil soubory, kde provedl 33 přidání a 25 odebrání
  1. 33
    25
      src/pages/news/list/editNewsList.jsx

+ 33
- 25
src/pages/news/list/editNewsList.jsx Zobrazit soubor

7
 import router from 'umi/router';
7
 import router from 'umi/router';
8
 import BuildSelect from '../../../components/SelectButton/BuildSelect'
8
 import BuildSelect from '../../../components/SelectButton/BuildSelect'
9
 import NewsTypeSelect from '../../../components/SelectButton/NewTypeSelect'
9
 import NewsTypeSelect from '../../../components/SelectButton/NewTypeSelect'
10
-import XForm, { FieldTypes } from '../../../components/XForm';
10
+import  { FieldTypes, createForm } from '../../../components/XForm';
11
 import Wangedit from '../../../components/Wangedit/Wangedit'
11
 import Wangedit from '../../../components/Wangedit/Wangedit'
12
 import request from '../../../utils/request'
12
 import request from '../../../utils/request'
13
 import ImageUploader from '../../../components/XForm/ImageUpload';
13
 import ImageUploader from '../../../components/XForm/ImageUpload';
20
 
20
 
21
 const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
21
 const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
22
 const { TextArea } = Input;
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
   const newsId = props.location.query.newsId
46
   const newsId = props.location.query.newsId
32
   const [ dynamicData, setDynamicData ] = useState({})
47
   const [ dynamicData, setDynamicData ] = useState({})
33
 
48
 
34
-  const [detailVisible, setDetailVisible] = useState(false)
35
-  const [urlVisible, setUrlVisible] = useState(false)
36
-
37
     useEffect(() => {
49
     useEffect(() => {
38
       if(newsId){
50
       if(newsId){
39
         getDynamicData(newsId);
51
         getDynamicData(newsId);
44
   const getDynamicData = (newsId) => {
56
   const getDynamicData = (newsId) => {
45
     request({ ...apis.news.get, urlData: { id: newsId },}).then((data) => {
57
     request({ ...apis.news.get, urlData: { id: newsId },}).then((data) => {
46
       setDynamicData(data)
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
     }).catch((err) => {
61
     }).catch((err) => {
55
       console.log(err)
62
       console.log(err)
56
       message.info(err.msg || err.message)
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
   const cancelPage = () =>{
79
   const cancelPage = () =>{
72
     router.push({
80
     router.push({
122
       {
130
       {
123
         label: '资讯详情',
131
         label: '资讯详情',
124
         name: 'newsDetailType',
132
         name: 'newsDetailType',
125
-        render: <Radio.Group onChange={changeRadio} defaultValue={dynamicData.newsDetailType}> 
133
+        render: <Radio.Group> 
126
                 <Radio value={1}>自定义</Radio>
134
                 <Radio value={1}>自定义</Radio>
127
                 <Radio value={0}>公众号链接</Radio>
135
                 <Radio value={0}>公众号链接</Radio>
128
                 </Radio.Group>,
136
                 </Radio.Group>,
135
         label: '详情内容',
143
         label: '详情内容',
136
         name: 'newsDetail',
144
         name: 'newsDetail',
137
         render: <Wangedit />,
145
         render: <Wangedit />,
138
-        hidden: () => detailVisible,
146
+        hidden: () => !detailVisible,
139
         value: dynamicData.newsDetail,
147
         value: dynamicData.newsDetail,
140
         rules: [
148
         rules: [
141
           {required: true, message: '请输入详情内容'},
149
           {required: true, message: '请输入详情内容'},
145
         label: '公众号链接',
153
         label: '公众号链接',
146
         name: 'newsDetail',
154
         name: 'newsDetail',
147
         type: FieldTypes.Text,
155
         type: FieldTypes.Text,
148
-        hidden: () => urlVisible,
156
+        hidden: () => !urlVisible,
149
         value: dynamicData.newsDetail,
157
         value: dynamicData.newsDetail,
150
         rules: [
158
         rules: [
151
           {required: true, message: '请输入公众号链接'},
159
           {required: true, message: '请输入公众号链接'},
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
   const Poster = (props) => {
196
   const Poster = (props) => {