Quellcode durchsuchen

Merge branch 'v3.5' of http://git.ycjcjy.com/zhiyuxing/estateagents-admin-manager into v3.5

魏超 vor 5 Jahren
Ursprung
Commit
ea359a2388

+ 1
- 0
src/components/Wangedit/Wangedit.jsx Datei anzeigen

@@ -33,6 +33,7 @@ class Wangedit extends React.Component {
33 33
       }
34 34
     }
35 35
     this.editor.customConfig.zIndex = 100
36
+    this.editor.customConfig.uploadImgShowBase64 = true   
36 37
     this.editor.create()
37 38
     this.editor.customConfig.uploadImgShowBase64 = true
38 39
     this.editor.txt.html(this.props.value)

+ 196
- 24
src/pages/activity/editActivity.jsx Datei anzeigen

@@ -20,29 +20,193 @@ import xiaochengxu from '../../assets/xiaochengxu.png'
20 20
 const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
21 21
 const { TextArea } = Input;
22 22
 
23
+const formItemLayout = {
24
+  labelCol: { span: 6 },
25
+  wrapperCol: { span: 14 },
26
+};
27
+
28
+const BasicForm = props => {
29
+  const [isEnlist, setIsEnlist] = useState(1)
30
+
31
+  const radioOnChange = e => {
32
+    // console.log(e.target.value)
33
+    setIsEnlist(e.target.value)
34
+  }
35
+
36
+  const { dynamicId } = props
37
+
38
+  // 查询详情
39
+  const getDynamicData = dynamicId => {
40
+    request({ ...apis.activity.details, params: { dynamicId } }).then((data) => {
41
+      console.log(data)
42
+      data.activityTime = [moment(data.startDate), moment(data.endDate)]
43
+      data.signupTime = [moment(data.enlistStart), moment(data.enlistEnd)]
44
+
45
+      setIsEnlist(data.isEnlist)
46
+      props.form.setFieldsValue(data)
47
+    })
48
+  }
49
+
50
+    // eslint-disable-next-line react-hooks/rules-of-hooks
51
+    useEffect(() => {
52
+      props.form.setFieldsValue({ isEnlist })
53
+      if (dynamicId) {
54
+        getDynamicData(dynamicId);
55
+      }
56
+    }, [])
57
+ 
58
+  const handleSubmit = e => {
59
+    e.preventDefault();
60
+    props.form.validateFields((err, values) => {
61
+      if (!err) {
62
+        console.log('Received values of form: ', values);
63
+        const { activityTime, signupTime } = values
64
+        const [startDate, endDate] = activityTime
65
+        values.startDate = moment(startDate).format('YYYY-MM-DD HH:mm');
66
+        values.endDate = moment(endDate).format('YYYY-MM-DD HH:mm');
67
+        if (signupTime) {
68
+          const [enlistStart, enlistEnd] = signupTime
69
+          values.enlistStart = moment(enlistStart).format('YYYY-MM-DD HH:mm');
70
+          values.enlistEnd = moment(enlistEnd).format('YYYY-MM-DD HH:mm');
71
+        }
72
+        
73
+        console.log('submit data --->', values)
74
+        if (dynamicId) {
75
+          values.dynamicId = dynamicId
76
+          request({ ...apis.activity.update, data: values }).then(data => {
77
+            message.info('保存成功')
78
+            router.go(-1)
79
+          }).catch((err) => {
80
+            message.info(err.msg || err.message)
81
+          })
82
+        } else {
83
+          request({ ...apis.activity.add, data: { ...values } }).then((data) => {
84
+            message.info('保存成功')
85
+            router.go(-1)
86
+          }).catch((err) => {
87
+            message.info(err.msg || err.message)
88
+          })
89
+        }
90
+      }
91
+    });
92
+  }
93
+
94
+  const { getFieldDecorator } = props.form;
95
+  return (
96
+    <>
97
+      <Form {...formItemLayout} onSubmit={handleSubmit}>
98
+        <Form.Item label="所属项目">
99
+        {getFieldDecorator('buildingId', {
100
+          rules: [
101
+            {
102
+              required: true,
103
+              message: '请选择所属项目',
104
+            },
105
+          ],
106
+        })(<BuildSelect />)}
107
+        </Form.Item>
108
+        <Form.Item label="主图">
109
+          {getFieldDecorator('imgUrl')(<ImageUploader />)}
110
+          <span>建议图片尺寸:750px*560px</span>
111
+        </Form.Item>
112
+        <Form.Item label="活动标题">
113
+        {getFieldDecorator('title', {
114
+          rules: [
115
+            {
116
+              required: true,
117
+              message: '请输入活动标题',
118
+            },
119
+          ],
120
+        })(<Input />)}
121
+        </Form.Item>
122
+        <Form.Item label="活动时间">
123
+        {getFieldDecorator('activityTime', {
124
+          rules: [
125
+            {
126
+              required: true,
127
+              message: '请选择活动时间',
128
+            },
129
+          ],
130
+        })(<RangePicker format="YYYY-MM-DD HH:mm" />)}
131
+        </Form.Item>
132
+        <Form.Item label="活动地点">
133
+        {getFieldDecorator('address', {
134
+          rules: [
135
+            {
136
+              required: true,
137
+              message: '请输入活动地点',
138
+            },
139
+          ],
140
+        })(<Input />)}
141
+        </Form.Item>
142
+        <Form.Item label="活动人数">
143
+        {getFieldDecorator('personNum', {
144
+          rules: [
145
+            {
146
+              required: true,
147
+              message: '请输入活动人数',
148
+            },
149
+          ],
150
+        })(<Input type="number" />)}
151
+        </Form.Item>
152
+        <Form.Item label="最大报名人数">
153
+        {getFieldDecorator('maxEnlistByPerson', {
154
+          rules: [
155
+            {
156
+              required: true,
157
+              message: '请输入最大报名人数',
158
+            },
159
+          ],
160
+        })(<Input type="number" />)}
161
+        </Form.Item>
162
+        <Form.Item label="活动详情">
163
+        {getFieldDecorator('desc')(<Wangedit />)}
164
+        </Form.Item>
165
+        <Form.Item label="是否需要报名">
166
+        {getFieldDecorator('isEnlist')(
167
+          <Radio.Group onChange={(e) => radioOnChange(e)}>
168
+            <Radio value={1}>是</Radio>
169
+            <Radio value={0}>否</Radio>
170
+          </Radio.Group>,
171
+        )}
172
+        </Form.Item>
173
+        {
174
+          isEnlist === 1 && (<Form.Item label="报名时间">
175
+          {getFieldDecorator('signupTime', {
176
+            rules: [
177
+              {
178
+                required: true,
179
+                message: '请选择报名时间',
180
+              },
181
+            ],
182
+          })(<RangePicker format="YYYY-MM-DD HH:mm" />)}
183
+          </Form.Item>)
184
+        }
185
+        <Form.Item wrapperCol={{ span: 12, offset: 8 }}>
186
+          <Button type="primary" htmlType="submit">
187
+            确认
188
+          </Button>
189
+          &nbsp;&nbsp;&nbsp;&nbsp;
190
+          <Button onClick={() => router.go(-1)}>
191
+            取消
192
+          </Button>
193
+        </Form.Item>
194
+      </Form>
195
+    </>
196
+  )
197
+}
198
+
199
+const Basic = Form.create({ name: 'BasicForm' })(BasicForm);
200
+
23 201
 /**
24 202
  *
25 203
  *
26 204
  * @param {*} props
27 205
  * @returns
28 206
  */
29
-const Edit = (props) => {
207
+const Edit = props => {
30 208
   const [tab, changeTab] = useState('basic')
31
-  const dynamicId = props.location.query.dynamicId
32
-  const [dynamicData, setDynamicData] = useState({ isEnlist: 1 })
33
-  if (dynamicId) {
34
-    useEffect(() => {
35
-      getDynamicData(dynamicId);
36
-    }, [])
37
-
38
-    // 查询列表
39
-    const getDynamicData = (dynamicId) => {
40
-      request({ ...apis.activity.details, params: { dynamicId } }).then((data) => {
41
-        console.log(data)
42
-        setDynamicData(data)
43
-      })
44
-    }
45
-  }
209
+  const { dynamicId } = props.location.query
46 210
 
47 211
   const cancelPage = () => {
48 212
     router.push({
@@ -178,6 +342,7 @@ const Edit = (props) => {
178 342
     return <XForm onSubmit={handleSubmit} onCancel={cancelPage} fields={fields}></XForm>
179 343
   }
180 344
 
345
+
181 346
   const Poster = (props) => {
182 347
     const [inputValue, changeInput] = useState('')
183 348
     const [textAreaValue, changeTextArea] = useState('')
@@ -245,8 +410,13 @@ const Edit = (props) => {
245 410
               <span style={{ color: '#999', margin: '25px 0 0 60px', fontSize: '17px' }}>2019.09.21</span>
246 411
             </div>
247 412
             <p style={{
248
-              margin: '10px 20px', fontSize: '20px', color: '#222', fontWeight: '600',
249
-              display: '-webkit-box', lineClamp: '3', height: '60px',
413
+              margin: '10px 20px',
414
+fontSize: '20px',
415
+color: '#222',
416
+fontWeight: '600',
417
+              display: '-webkit-box',
418
+lineClamp: '3',
419
+height: '60px',
250 420
               WebkitLineClamp: '2',
251 421
               WebkitBoxOrient: 'vertical',
252 422
               overflow: 'hidden',
@@ -255,8 +425,12 @@ const Edit = (props) => {
255 425
 
256 426
             <img src={yinhao} style={{ width: '30px', marginLeft: '20px' }} alt="" />
257 427
             <p style={{
258
-              margin: '16px 20px 28px 20px', fontSize: '17px', color: '#999',
259
-              display: '-webkit-box', lineClamp: '3', height: '72px',
428
+              margin: '16px 20px 28px 20px',
429
+fontSize: '17px',
430
+color: '#999',
431
+              display: '-webkit-box',
432
+lineClamp: '3',
433
+height: '72px',
260 434
               WebkitLineClamp: '3',
261 435
               WebkitBoxOrient: 'vertical',
262 436
               overflow: 'hidden',
@@ -327,7 +501,7 @@ const Edit = (props) => {
327 501
           request({ ...apis.activity.addShareContent, data: { targetId: dynamicId, shareContentType: 'activity', shareContentImg: imgValue, shareContentTitle: inputValue }, }).then((data) => {
328 502
             setShareContentId(data.shareContentId)
329 503
             message.info("保存成功")
330
-          }).catch((err) => {
504
+          }).catch(err => {
331 505
             message.info(err.msg || err.message)
332 506
           })
333 507
         }
@@ -368,7 +542,7 @@ const Edit = (props) => {
368 542
         </Radio.Group>
369 543
       </div>
370 544
       <div>
371
-        {tab === 'basic' && <Basic />}
545
+        {tab === 'basic' && <Basic dynamicId={dynamicId} />}
372 546
         {tab === 'poster' && <Poster />}
373 547
         {tab === 'share' && <Share />}
374 548
       </div>
@@ -376,6 +550,4 @@ const Edit = (props) => {
376 550
   );
377 551
 }
378 552
 
379
-
380
-
381 553
 export default Edit

+ 221
- 38
src/pages/activity/helpActivity/helpRecord.jsx Datei anzeigen

@@ -13,12 +13,206 @@ const { Option } = Select;
13 13
 const { Meta } = Card;
14 14
 
15 15
 /**
16
- *
16
+ * 助力者弹框
17
+ */
18
+class InviteTable extends React.Component {
19
+  constructor(props) {
20
+    super(props);
21
+    this.state = {
22
+      dataSource: { records: [] },
23
+      visibleData: { visible: false, customerId: '', realtyConsultant: '' },
24
+    }
25
+  }
26
+
27
+  // 挂载之后
28
+  componentDidMount () {
29
+    const { customerId } = this.state.visibleData
30
+    this.getList({ helpRecordInitiateId: customerId, pageNumber: 1, pageSize: 5 })
31
+  }
32
+
33
+  componentDidUpdate (preProps, preState) {
34
+    const { customerId } = this.state.visibleData
35
+    if (this.props.visibleData.customerId !== preState.visibleData.customerId) {
36
+      this.getList({ helpRecordInitiateId: customerId, pageNumber: 1, pageSize: 5 })
37
+      this.setState({ visibleData: this.props.visibleData });
38
+    }
39
+  }
40
+
41
+  // 弹框确定按钮
42
+  // eslint-disable-next-line react/sort-comp
43
+  handleOk () {
44
+    this.setState({ visibleData: { visible: false, customerId: '', realtyConsultant: '' } })
45
+  }
46
+
47
+  // 弹框取消按钮
48
+  handleCancel () {
49
+    this.setState({ visibleData: { visible: false, customerId: '', realtyConsultant: '' } })
50
+  }
51
+
52
+  getList (params) {
53
+    request({ ...apis.helpActivity.helpPeopleDetails, params: { ...params } }).then(res => {
54
+      this.setState({ dataSource: res })
55
+    }).catch(err => {
56
+      // eslint-disable-next-line no-unused-expressions
57
+      <Alert
58
+        style={{
59
+          marginBottom: 24,
60
+        }}
61
+        message={err}
62
+        type="error"
63
+        showIcon
64
+      />
65
+    })
66
+  }
67
+
68
+  // 分页
69
+  onChange (pageNum) {
70
+    this.getList({ pageNumber: pageNum, pageSize: 5 })
71
+  }
72
+
73
+  render () {
74
+    const columns = [
75
+      {
76
+        title: '用户姓名',
77
+        dataIndex: 'name',
78
+        key: 'name',
79
+        align: 'center',
80
+      },
81
+      {
82
+        title: '手机号',
83
+        dataIndex: 'phone',
84
+        key: 'phone',
85
+        align: 'center',
86
+        render: text => <a>{text}</a>,
87
+      },
88
+      {
89
+        title: '助力时间',
90
+        dataIndex: 'createDate',
91
+        key: 'createDate',
92
+        align: 'center',
93
+      },
94
+    ]
95
+    return (
96
+      <>
97
+        <Modal
98
+          title="助力者"
99
+          destroyOnClose="true"
100
+          width={900}
101
+          footer={null}
102
+          visible={this.state.visibleData.visible}
103
+          // onOk={() => this.handleOk()}
104
+          onCancel={(e) => this.handleCancel(e)}
105
+        >
106
+          <Table rowKey="independent" dataSource={this.state.dataSource.records} columns={columns} pagination={{ total: this.state.dataSource.total, onChange: e => this.onChange(e) }} />
107
+        </Modal>
108
+      </>
109
+    );
110
+  }
111
+}
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+/**
120
+ * 助力者弹框
121
+ */
122
+class Verifier extends React.Component {
123
+  constructor(props) {
124
+    super(props);
125
+    this.state = {
126
+      helpRecordInitiateId: { id: '' },
127
+      visibleData: { visible: false, customerId: '', realtyConsultant: '', helpRecordInitiateId: '' },
128
+    }
129
+  }
130
+
131
+  // 挂载之后
132
+  componentDidMount () {
133
+    const { customerId } = this.state.visibleData
134
+    this.getList({ helpRecordInitiateId: customerId, pageNumber: 1, pageSize: 5 })
135
+  }
136
+
137
+  componentDidUpdate (preProps, preState) {
138
+    const { customerId } = this.state.visibleData
139
+    console.log('this.state.visibleData', this.state.visibleData)
140
+    if (this.props.visibleData.customerId !== preState.visibleData.customerId) {
141
+      this.getList({ helpRecordInitiateId: customerId, pageNumber: 1, pageSize: 5 })
142
+      this.setState({ visibleData: this.props.visibleData });
143
+    }
144
+  }
145
+
146
+  // 弹框确定按钮
147
+  // eslint-disable-next-line react/sort-comp
148
+  handleOk () {
149
+    this.setState({ visibleData: { visible: false, customerId: '', realtyConsultant: '' } })
150
+  }
151
+
152
+  // 弹框取消按钮
153
+  handleCancel () {
154
+    this.setState({ visibleData: { visible: false, customerId: '', realtyConsultant: '' } })
155
+  }
156
+
157
+  getList (params) {
158
+    request({ ...apis.helpActivity.helpPeopleDetails, params: { ...params } }).then(res => {
159
+      this.setState({ dataSource: res })
160
+    }).catch(err => {
161
+      // eslint-disable-next-line no-unused-expressions
162
+      <Alert
163
+        style={{
164
+          marginBottom: 24,
165
+        }}
166
+        message={err}
167
+        type="error"
168
+        showIcon
169
+      />
170
+    })
171
+  }
172
+
173
+  // eslint-disable-next-line class-methods-use-this
174
+  verify(e) {
175
+    console.log('111', e.target.value)
176
+  }
177
+
178
+  // eslint-disable-next-line class-methods-use-this
179
+  verification(e) {
180
+    console.log('this.state.visibleData', this.state.visibleData)
181
+      alert(1)
182
+  }
183
+
184
+  render () {
185
+    return (
186
+      <>
187
+        <Modal
188
+          title="核销"
189
+          destroyOnClose="true"
190
+          width={300}
191
+          footer={null}
192
+          visible={this.state.visibleData.visible}
193
+          // onOk={() => this.handleOk()}
194
+          onCancel={(e) => this.handleCancel(e)}
195
+        >
196
+          <div><span>核销码:<input onChange={this.verify.bind(this)}/></span>
197
+           <Button onClick={(e) => this.verification(e)}>立即核销</Button>
198
+          </div>
199
+        </Modal>
200
+      </>
201
+    );
202
+  }
203
+}
204
+
205
+/**
206
+ *主体列表
17 207
  *
18 208
  * @param {*} props
19 209
  * @returns
20 210
  */
21 211
 function body(props) {
212
+  const [gInviteData, setGInviteData] = useState({ visible: false, customerId: '', realtyConsultant: '' })
213
+
214
+  const [gVerifierData, setVerifierData] = useState({ visible: false, customerId: '', realtyConsultant: '', helpRecordInitiateId: '' })
215
+
22 216
   const { getFieldDecorator, getFieldsValue } = props.form
23 217
 
24 218
   // eslint-disable-next-line react-hooks/rules-of-hooks
@@ -26,23 +220,15 @@ function body(props) {
26 220
   // eslint-disable-next-line react-hooks/rules-of-hooks
27 221
   // const [columns, setColumns] = useState(privateColumns)
28 222
 
29
-  // 默认私客
223
+  // 默认成功
30 224
   // eslint-disable-next-line react-hooks/rules-of-hooks
31 225
   const [customerType, setCustomerType] = useState('helpSucceed')
32 226
 
33 227
   // 调整归属 ============  start
34 228
   // eslint-disable-next-line react-hooks/rules-of-hooks
35 229
   const [gVisibleData, setGVisibleData] = useState({ visible: false, customerId: '', realtyConsultant: '' })
36
-  // 调整归属 ============= end
37 230
 
38
-  // 积分记录 ============  start
39
-  // eslint-disable-next-line react-hooks/rules-of-hooks
40
-  const [recordVisibleData, setRecordVisibleData] = useState({ visible: false, customerId: '' })
41
-  // 积分记录 ============= end
42 231
 
43
-  // 变更状态 ============  start
44
-  // eslint-disable-next-line react-hooks/rules-of-hooks
45
-  const [statusVisibleData, setStatusVisibleData] = useState({ visible: false, customerId: '', status: '' })
46 232
   // 变更状态 ============= end
47 233
 
48 234
   // eslint-disable-next-line react-hooks/rules-of-hooks
@@ -70,9 +256,7 @@ function body(props) {
70 256
   }
71 257
 
72 258
   function displayNone() {
73
-    setRecordVisibleData({ visible: false, customerId: '' })
74 259
     setGVisibleData({ visible: false, customerId: '', realtyConsultant: '' })
75
-    setStatusVisibleData({ visible: false, customerId: '', status: '' })
76 260
   }
77 261
 
78 262
   // 提交事件
@@ -100,8 +284,9 @@ function body(props) {
100 284
     getList({ pageNumber: pageNum, pageSize: 10, customerType })
101 285
   }
102 286
 
103
-  // 私客/公客切换
287
+  // 助力成功/进行中/助力失败
104 288
   function radioButtonHandleSizeChange(e) {
289
+    setGInviteData({ visible: true, customerId: '', realtyConsultant: '' })
105 290
     displayNone()
106 291
 
107 292
     const { value } = e.target
@@ -115,27 +300,6 @@ function body(props) {
115 300
     getList({ pageNumber: 1, pageSize: 10, customerType })
116 301
   }
117 302
 
118
-
119
-  // 这里有个 Bug, 就是 Modal 弹框,会联动出现, 比如 我点击 调整归属的Model弹框, 那么 积分记录的Model弹框莫名其妙的也显示了
120
-  // 所有这里临时解决方法是,弹出一个Modal对话框的时候,把其他的对话框给隐藏
121
-
122
-  function showGM(record) {
123
-    setGVisibleData({ visible: true, customerId: record.customerId, realtyConsultant: record.realtyConsultant })
124
-    setRecordVisibleData({ visible: false, customerId: '' })
125
-    setStatusVisibleData({ visible: false, customerId: '' })
126
-  }
127
-
128
-  function showRecord(record) {
129
-    setRecordVisibleData({ visible: true, customerId: record.customerId })
130
-    setGVisibleData({ visible: false, customerId: '', realtyConsultant: '' })
131
-    setStatusVisibleData({ visible: false, customerId: '' })
132
-  }
133
-
134
-  function showStatus(record) {
135
-    setRecordVisibleData({ visible: false, customerId: '' })
136
-    setGVisibleData({ visible: false, customerId: '', realtyConsultant: '' })
137
-    setStatusVisibleData({ visible: true, customerId: record.customerId, status: record.status })
138
-  }
139 303
   function toCustomerDateil(record) {
140 304
     router.push({
141 305
       pathname: '/customer/customerlist/customerDetail',
@@ -168,6 +332,23 @@ function body(props) {
168 332
     link.click()
169 333
   }
170 334
 
335
+// 助力记录弹框
336
+function helpRecord(row) {
337
+// 关闭核销
338
+// eslint-disable-next-line max-len
339
+setVerifierData({ visible: false, customerId: row.helpRecordInitiateId, realtyConsultant: row.realtyConsultant })
340
+  // eslint-disable-next-line max-len
341
+  setGInviteData({ visible: true, customerId: row.helpRecordInitiateId, realtyConsultant: row.realtyConsultant })
342
+}
343
+ // 核销
344
+ function helpInitiateRecordVerify(row) {
345
+// 关闭助力记录弹框
346
+// eslint-disable-next-line max-len
347
+  setVerifierData({ visible: true, customerId: row.helpRecordInitiateId, realtyConsultant: row.realtyConsultant })
348
+  // eslint-disable-next-line max-len
349
+  setGInviteData({ visible: false, customerId: row.helpRecordInitiateId, realtyConsultant: row.realtyConsultant })
350
+ }
351
+
171 352
   const publicColumns = [
172 353
     {
173 354
       title: '发起者',
@@ -196,7 +377,7 @@ function body(props) {
196 377
       key: 'helpCount',
197 378
       align: 'center',
198 379
       width: '15%',
199
-      render: (text, record) => <a style={ { color: '#66B3FF' } } >{record.helpCount}/{record.persionNumCount}</a>,
380
+      render: (text, record) => <a style={ { color: '#66B3FF' } } onClick={() => helpRecord(record)}>{record.helpCount}/{record.persionNumCount}</a>,
200 381
     },
201 382
   ]
202 383
 
@@ -232,7 +413,7 @@ function body(props) {
232 413
       key: 'helpCount',
233 414
       align: 'center',
234 415
       width: '15%',
235
-      render: (text, record) => <a style={ { color: '#66B3FF' } } >{record.helpCount}人</a>,
416
+      render: (text, record) => <a style={ { color: '#66B3FF' } } onClick={() => helpRecord(record)}>{record.helpCount}人</a>,
236 417
     },
237 418
     {
238 419
       title: '核销状态',
@@ -256,7 +437,7 @@ function body(props) {
256 437
         <>
257 438
           {row.verificationStatus === 0 &&
258 439
           <AuthButton name="admin.SignList.get" noRight={null}>
259
-           <span style={{ color: '#1990FF', cursor: 'pointer' }}>核销</span>
440
+           <span style={{ color: '#1990FF', cursor: 'pointer' }} onClick={() => helpInitiateRecordVerify(row)}>核销</span>
260 441
           </AuthButton>
261 442
         }
262 443
         </>
@@ -297,7 +478,7 @@ function body(props) {
297 478
           <Radio.Group value={customerType} onChange={radioButtonHandleSizeChange} buttonStyle="solid">
298 479
             <Radio.Button value="helpSucceed">助力成功</Radio.Button>
299 480
             <Radio.Button value="helpUnderway">进行中</Radio.Button>
300
-            <Radio.Button value="helpUnfinished ">助力失败</Radio.Button>
481
+            <Radio.Button value="helpUnfinished">助力失败</Radio.Button>
301 482
           </Radio.Group>
302 483
         </AuthButton>
303 484
       </div>
@@ -305,6 +486,8 @@ function body(props) {
305 486
         <Table dataSource={dataSource.list} columns={privateColumns} pagination={{ total: dataSource.total, onChange }} rowKey="customerList" /> :
306 487
         <Table dataSource={dataSource.list} columns={publicColumns} pagination={{ total: dataSource.total, onChange }} rowKey="customerList" /> 
307 488
       }
489
+       <InviteTable visibleData={gInviteData} />
490
+       <Verifier visibleData={gVerifierData} />
308 491
     </>
309 492
   );
310 493
 }

+ 42
- 0
src/services/apis.js Datei anzeigen

@@ -709,6 +709,48 @@ export default {
709 709
     method: 'get',
710 710
     action: 'admin.taRole.get',
711 711
   },
712
+  helpPeopleDetails: {
713
+    url: `${prefix}/taHelpRecord/details`,
714
+    method: 'get',
715
+    action: 'admin.taRole.get',
716
+  },
717
+ },
718
+ groupActivity: {
719
+  list: {
720
+    url: `${prefix}/taShareActivity/list`,
721
+    method: 'get',
722
+    action: 'admin.taShareActivity.get',
723
+  },
724
+  add: {
725
+    url: `${prefix}/helpActivity/add`,
726
+    method: 'post',
727
+    action: 'admin.taRole.get',
728
+  },
729
+  details: {
730
+    url: `${prefix}/helpActivity/details`,
731
+    method: 'get',
732
+    action: 'admin.taRole.get',
733
+  },
734
+  update: {
735
+    url: `${prefix}/helpActivity/update`,
736
+    method: 'put',
737
+    action: 'admin.taRole.get',
738
+  },
739
+  finish: {
740
+    url: `${prefix}/taShareActivity/finish/:id`,
741
+    method: 'put',
742
+    action: 'admin.taShareActivity.finish',
743
+  },
744
+  top: {
745
+    url: `${prefix}/taShareActivity/weight`,
746
+    method: 'put',
747
+    action: 'admin.taShareActivity.weight',
748
+  },
749
+  record: {
750
+    url: `${prefix}/helpRecord`,
751
+    method: 'get',
752
+    action: 'admin.taRole.get',
753
+  },
712 754
  },
713 755
  groupActivity: {
714 756
   list: {