浏览代码

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

魏熙美 5 年前
父节点
当前提交
c28a99036c

+ 17
- 2
config/config.js 查看文件

@@ -144,6 +144,11 @@ export default {
144 144
                   name: '商品列表',
145 145
                   component: './integralMall/GoodsList',
146 146
                 },
147
+                {
148
+                  path: '/integralMall/achieve',
149
+                  name: '积分获取',
150
+                  component: './integralMall/achieve',
151
+                },
147 152
                 {
148 153
                   path: '/integralMall/editGoods',
149 154
                   name: '',
@@ -154,6 +159,11 @@ export default {
154 159
                   name: '兑换记录',
155 160
                   component: './integralMall/exchangeRecords',
156 161
                 },
162
+                {
163
+                  path: '/integralMall/writeOff',
164
+                  name: '商品核销',
165
+                  component: './integralMall/writeOff',
166
+                },
157 167
               ],
158 168
             },
159 169
             {
@@ -220,6 +230,11 @@ export default {
220 230
                   name: '',
221 231
                   component: './activity/editActivity',
222 232
                 },
233
+                {
234
+                  path: '/activity/SignList',
235
+                  name: '报名列表',
236
+                  component: './activity/SignList',
237
+                },
223 238
               ],
224 239
             },
225 240
             {
@@ -278,7 +293,7 @@ export default {
278 293
     basePath: '/',
279 294
   },
280 295
   chainWebpack: webpackPlugin,
281
-  
296
+
282 297
   proxy: {
283 298
     '/api/': {
284 299
       target: 'http://localhost:8080/',
@@ -286,5 +301,5 @@ export default {
286 301
       // pathRewrite: { '^/server': '' },
287 302
     },
288 303
   },
289
-  
304
+
290 305
 };

二进制
src/assets/erweima.png 查看文件


二进制
src/assets/list.png 查看文件


二进制
src/assets/saoma.png 查看文件


+ 40
- 0
src/components/SelectButton/CitySelect.jsx 查看文件

@@ -0,0 +1,40 @@
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 CitySelect = (props) => {
15
+  const [ data, setData ] = useState([])
16
+
17
+  useEffect(() => {
18
+    getCityList();
19
+  },[])
20
+
21
+  const getCityList = (e) => {
22
+    request({
23
+        url: '/api/admin/buildinglist/select',
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(city => (
34
+            <Option key={city.buildingId}>{city.buildingName}</Option>
35
+          ))}
36
+      </Select>
37
+  )
38
+}
39
+export default CitySelect
40
+

+ 6
- 0
src/global.less 查看文件

@@ -99,4 +99,10 @@ ol {
99 99
 }
100 100
 .ant-pro-sider-menu-logo img{
101 101
   height: 41px;
102
+}
103
+.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active {
104
+  color: #FF7E48;
105
+}
106
+.ant-table{
107
+  line-height: 3;
102 108
 }

+ 116
- 50
src/pages/activity/ActivityList.jsx 查看文件

@@ -3,6 +3,8 @@ import { Form, Input, Button, Icon, Select, message, Table, Divider, Tag, Pagina
3 3
 import { FormattedMessage } from 'umi-plugin-react/locale';
4 4
 import styles from '../style/GoodsList.less';
5 5
 import router from 'umi/router';
6
+import moment from 'moment';
7
+import SelectCity from '../../components/SelectButton/CitySelect'
6 8
 
7 9
 import request from '../../utils/request'
8 10
 
@@ -52,84 +54,155 @@ const columns = [
52 54
   },
53 55
   {
54 56
     title: '活动时间',
55
-    dataIndex: 'name',
56
-    key: 'name',
57
+    dataIndex: 'startDate',
58
+    key: 'startDate',
57 59
     align: 'center',
60
+    render: (x, row) => <><span>{`${moment(row.startDate).format('YYYY-MM-DD')} —— ${moment(row.endDate).format('YYYY-MM-DD')}`}</span></>
58 61
   },
59 62
   {
60 63
     title: '已参加人数',
61
-    dataIndex: 'integral',
62
-    key: 'integral',
64
+    dataIndex: 'count',
65
+    key: 'count',
63 66
     align: 'center',
64 67
   },
65 68
   {
66 69
     title: '阅读量',
67
-    dataIndex: 'total',
68
-    key: 'total',
70
+    dataIndex: 'pvNum',
71
+    key: 'pvNum',
69 72
     align: 'center',
70 73
   },
71 74
   {
72 75
     title: '转发量',
73
-    dataIndex: 'exchanged',
74
-    key: 'exchanged',
76
+    dataIndex: 'shareNum',
77
+    key: 'shareNum',
75 78
     align: 'center',
76 79
   },
77 80
   {
78 81
     title: '收藏数',
79
-    dataIndex: 'rest',
80
-    key: 'rest',
82
+    dataIndex: 'saveNum',
83
+    key: 'saveNum',
81 84
     align: 'center',
82 85
   },
83 86
   {
84 87
     title: '状态',
85
-    dataIndex: 'state',
86
-    key: 'state',
88
+    dataIndex: 'isEnlist',
89
+    key: 'isEnlist',
87 90
     align: 'center',
91
+    render: (isEnlist)=> <><span>{isEnlist == 0 ?"未开始" : isEnlist==1 ? "进行中" : "已结束"}</span></>
88 92
   },
89 93
   {
90 94
     title: '操作',
91 95
     dataIndex: 'handle',
92 96
     key: 'handle',
93 97
     align: 'center',
94
-    render: () => <><span style={{ color: '#1990FF', marginRight: '20px' }} onClick={confirm}>下架<Icon type="shopping-cart" className={styles.shoppingCart} /></span><span style={{ color: '#FF925C' }}>编辑<Icon type="form" className={styles.edit} /></span></>,
98
+    render: (x,row) => <><span style={{ color: '#1990FF'}} onClick={getSignList.bind(this, row.dynamicId)}>{row.isEnlist == '1' || row.isEnlist == '2' ? "报名记录" : ""}<Icon type="snippets" className={styles.shoppingCart} /></span>
99
+                         <span style={{ color: '#1990FF' }} onClick={sendOrPublicDynamic.bind(this,row)}>{ row.status === 1 ? '取消发布' : '发布' }<Icon type="close-circle" className={styles.edit} /></span>
100
+                         <span style={{ color: '#1990FF' }} onClick={finishDynamic.bind(this,row)}>结束活动<Icon type="poweroff" className={styles.edit} /></span>
101
+                         <span style={{ color: '#1990FF', marginRight: '20px' }} onClick={topDynamic.bind(this,row)}>{ row.weight === 1 ? '取消置顶' : '置顶' }<Icon type="vertical-align-top" className={styles.edit} /></span>
102
+                         <span style={{ color: '#FF925C' }}>编辑<Icon type="form" className={styles.edit} /></span>
103
+                       </>
95 104
   },
96 105
 ];
97
-const confirm = () => {
98
-  Modal.confirm({
99
-    title: '确认下架该商品?',
100
-    okText: '确认',
101
-    cancelText: '取消',
102
-    onOk() {
103
-      console.log('OK');
104
-    },
105
-    onCancel() {
106
-      console.log('Cancel');
107
-    },
108
-  });
109 106
 
107
+const getSignList = (dynamicId) => {
108
+    router.push({
109
+        pathname: '/activity/SignList',
110
+        query: {
111
+            dynamicId
112
+        },
113
+      });
110 114
 }
111 115
 
112
-const header = (props) => {
113
-  const [ data, setData ] = useState({})
114
-//   const [page, changePage] = useState({})
116
+const finishDynamic = (row) => {
117
+    Modal.confirm({
118
+        title: '结束以后将无法编辑, 是否继续?',
119
+        okText: '确定',
120
+        cancelText: '取消',
121
+        onOk() {
122
+            request({
123
+                url: '/api/admin/buildingDynamic/finish',
124
+                method: 'PUT',
125
+                data: {dynamicId: row.dynamicId, top: ""},
126
+            }).then((data) => {
127
+                console.log(data)
128
+                message.info('操作成功!')
129
+                // getList()
130
+            }).catch((err) => {
131
+                console.log(err)
132
+                message.info(err.msg || err.message)
133
+            })
134
+        },
135
+      });
136
+}
115 137
 
116
-  useEffect(() => {
138
+const topDynamic = (row) => {
139
+    const weight = Math.abs(row.weight - 1)
117 140
     request({
118
-        url: '/api/admin/iBuildingDynamicList',
119
-        method: 'GET',
120
-        params: {pageNum: 1,pageSize: 10},
141
+        url: '/api/admin/buildingDynamic/weight',
142
+        method: 'PUT',
143
+        params: {dynamicId: row.dynamicId, weight},
121 144
     }).then((data) => {
122 145
         console.log(data)
123
-        setData(data)
146
+        message.info('操作成功!')
147
+        // getList()
148
+    }).catch((err) => {
149
+        console.log(err)
150
+        message.info(err.msg || err.message)
151
+    })
152
+}
153
+
154
+const sendOrPublicDynamic = (row) => {
155
+    if (row.status === 1) {
156
+        cancelDynamic(row)
157
+    } else {
158
+        sendDynamic(row)
159
+    }
160
+}
161
+
162
+// 取消活动
163
+const cancelDynamic = (row) => {
164
+    request({
165
+        url: '/api/admin/buildingDynamic/cancel/'+row.dynamicId,
166
+        method: 'PUT',
167
+    }).then((data) => {
168
+        message.info('操作成功!')
169
+        // getList()
170
+    }).catch((err) => {
171
+        console.log(err)
172
+        message.info(err.msg || err.message)
173
+    })
174
+}
175
+
176
+//发布活动
177
+const sendDynamic = (row) => {
178
+    request({
179
+        url: '/api/admin/buildingDynamic/send/'+row.dynamicId,
180
+        method: 'PUT',
181
+    }).then((data) => {
182
+        message.info('操作成功!')
183
+        // getList()
184
+    }).catch((err) => {
185
+        console.log(err)
186
+        message.info(err.msg || err.message)
124 187
     })
188
+}
189
+
190
+const header = (props) => {
191
+  const [ data, setData ] = useState({})
192
+//   const [page, changePage] = useState({})
193
+
194
+  useEffect(() => {
195
+    getList();
125 196
   },[])
126 197
 
198
+  // 查询列表
127 199
   const getList = (e) => {
128 200
     request({
129
-        url: '/api/xxx',
201
+        url: '/api/admin/iBuildingDynamicList',
130 202
         method: 'GET',
131
-        params: {},
203
+        params: {pageNum: 1,pageSize: 10},
132 204
     }).then((data) => {
205
+        console.log(data)
133 206
         setData(data)
134 207
     })
135 208
   }
@@ -141,10 +214,7 @@ const header = (props) => {
141 214
       <Form layout="inline" onSubmit={e => handleSubmit(e, props)}>
142 215
         <Form.Item>
143 216
           {getFieldDecorator('goodState')(
144
-            <Select style={{ width: '180px' }} placeholder="请选择城市" onChange={handleSelectChange}>
145
-              <Option value="1">上架</Option>
146
-              <Option value="0">下架</Option>
147
-            </Select>,
217
+            <SelectCity />,
148 218
           )}
149 219
         </Form.Item>
150 220
         <Form.Item>
@@ -164,16 +234,16 @@ const header = (props) => {
164 234
           )}
165 235
         </Form.Item>
166 236
         <Form.Item>
167
-          {getFieldDecorator('goodState')(
168
-            <Select style={{ width: '180px' }} placeholder="是否报名" onChange={handleSelectChange}>
169
-              <Option value="1">上架</Option>
170
-              <Option value="0">下架</Option>
171
-            </Select>,
237
+          {getFieldDecorator('min')(
238
+            <DatePicker />
172 239
           )}
173 240
         </Form.Item>
174 241
         <Form.Item>
175
-          {getFieldDecorator('min')(
176
-            <DatePicker />
242
+          {getFieldDecorator('goodState')(
243
+            <Select style={{ width: '180px' }} placeholder="是否报名" onChange={handleSelectChange}>
244
+              <Option value="1">已报名</Option>
245
+              <Option value="0">未报名</Option>
246
+            </Select>,
177 247
           )}
178 248
         </Form.Item>
179 249
         <Form.Item>
@@ -184,10 +254,6 @@ const header = (props) => {
184 254
       </Form>
185 255
       <Button type="primary" className={styles.addBtn} onClick={toEditGoods}>新增</Button>
186 256
       <Table dataSource={data.list} columns={columns} />
187
-      {/* 分页 */
188
-      /* <div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: '30px' }}>
189
-        <Pagination showQuickJumper defaultCurrent={1} total={500} onChange={onChange} />
190
-      </div> */}
191 257
     </>
192 258
   )
193 259
 }

+ 80
- 0
src/pages/activity/SignList.jsx 查看文件

@@ -0,0 +1,80 @@
1
+import React, { useState, useEffect } from 'react';
2
+import { Form, Input, Button, Icon, Select, message, Table, Divider, Tag, Pagination, Modal, DatePicker } from 'antd';
3
+import { FormattedMessage } from 'umi-plugin-react/locale';
4
+import styles from '../style/GoodsList.less';
5
+import router from 'umi/router';
6
+import moment from 'moment';
7
+
8
+import request from '../../utils/request'
9
+
10
+const { Option } = Select;
11
+const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
12
+
13
+
14
+
15
+// 分页
16
+function onChange(pageNumber) {
17
+  console.log('Page: ', pageNumber);
18
+}
19
+
20
+
21
+/**
22
+ *
23
+ *
24
+ * @param {*} props
25
+ * @returns
26
+ */
27
+
28
+const columns = [
29
+  {
30
+    title: '活动标题',
31
+    dataIndex: 'title',
32
+    key: 'title',
33
+    align: 'center',
34
+  },
35
+  {
36
+    title: '活动时间',
37
+    dataIndex: 'startDate',
38
+    key: 'startDate',
39
+    align: 'center',
40
+    render: (x, row) => <><span>{`${moment(row.startDate).format('YYYY-MM-DD')} —— ${moment(row.endDate).format('YYYY-MM-DD')}`}</span></>
41
+  },
42
+  {
43
+    title: '已参加人数',
44
+    dataIndex: 'count',
45
+    key: 'count',
46
+    align: 'center',
47
+  }
48
+];
49
+
50
+
51
+
52
+const header = (props) => {
53
+  const [ data, setData ] = useState({})
54
+//   const [page, changePage] = useState({})
55
+  useEffect(() => {
56
+    getSignList();
57
+  },[])
58
+
59
+  // 查询列表
60
+  const getSignList = (e) => {
61
+    request({
62
+        url: '/api/admin/SignList',
63
+        method: 'GET',
64
+        params: {pageNum: 1,pageSize: 10, dynamicId: props.location.query.dynamicId },
65
+    }).then((data) => {
66
+        console.log(data)
67
+        setData(data)
68
+    })
69
+  }
70
+
71
+  return (
72
+    <>
73
+      <Button type="primary" className={styles.addBtn}>返回</Button>
74
+      <Table dataSource={data} columns={columns} />
75
+    </>
76
+  )
77
+}
78
+const WrappedHeader = Form.create({ name: 'header' })(header);
79
+
80
+export default WrappedHeader

+ 91
- 0
src/pages/integralMall/achieve.jsx 查看文件

@@ -0,0 +1,91 @@
1
+import React from 'react';
2
+import { Form, Input, Button, Icon, Tabs, Row, Col, Table } from 'antd';
3
+import { FormattedMessage } from 'umi-plugin-react/locale';
4
+import styles from '../style/GoodsList.less';
5
+import router from 'umi/router';
6
+
7
+
8
+const { TabPane } = Tabs;
9
+function callback(key) {
10
+  console.log(key);
11
+}
12
+
13
+/**
14
+ *
15
+ *
16
+ * @param {*} props
17
+ * @returns
18
+ */
19
+const dataSource = [
20
+  {
21
+    key: '1',
22
+    img: 'http://img0.imgtn.bdimg.com/it/u=4246326797,2657995307&fm=26&gp=0.jpg',
23
+    name: '华为P30 Pro',
24
+  },
25
+  {
26
+    key: '2',
27
+    img: '',
28
+    name: '大米',
29
+  },
30
+];
31
+
32
+const columns = [
33
+  {
34
+    title: '类型',
35
+    dataIndex: 'type',
36
+    key: 'type',
37
+    align: 'center',
38
+  },
39
+  {
40
+    title: '获取积分',
41
+    dataIndex: 'intergral',
42
+    key: 'intergral',
43
+    align: 'center',
44
+  },
45
+  {
46
+    title: '状态',
47
+    dataIndex: 'state',
48
+    key: 'state',
49
+    align: 'center',
50
+  },
51
+  {
52
+    title: '说明',
53
+    dataIndex: 'desc',
54
+    key: 'desc',
55
+    align: 'center',
56
+  },
57
+  {
58
+    title: '操作时间',
59
+    dataIndex: 'time',
60
+    key: 'time',
61
+    align: 'center',
62
+  },
63
+  {
64
+    title: '操作',
65
+    dataIndex: 'handle',
66
+    key: 'handle',
67
+    align: 'center',
68
+    render: () => <><span style={{ color: '#EF273A', marginRight: '20px' }} >停用<Icon type="stop" className={styles.shoppingCart} /></span><span style={{ color: '#EF273A', marginRight: '20px' }} >启用<Icon type="check-circle" className={styles.shoppingCart} /></span><span style={{ color: '#FF925C' }}>编辑<Icon type="form" className={styles.edit} /></span></>,
69
+  },
70
+
71
+];
72
+
73
+
74
+function header(props) {
75
+  const { getFieldDecorator } = props.form
76
+  return (
77
+    <>
78
+      <Tabs onChange={callback} type="card">
79
+        <TabPane tab="平台积分" key="1">
80
+          <Table style={{ marginTop: '40px' }} dataSource={dataSource} columns={columns} />
81
+        </TabPane>
82
+        <TabPane tab="项目积分" key="2">
83
+          <Table style={{ marginTop: '40px' }} dataSource={dataSource} columns={columns} />
84
+        </TabPane>
85
+      </Tabs>,
86
+    </>
87
+  )
88
+}
89
+const WrappedHeader = Form.create({ name: 'header' })(header);
90
+
91
+export default WrappedHeader

+ 68
- 2
src/pages/integralMall/exchangeRecords.jsx 查看文件

@@ -1,5 +1,5 @@
1 1
 import React from 'react';
2
-import { Form, Input, Button, Icon, Select, DatePicker } from 'antd';
2
+import { Form, Input, Button, Icon, Select, DatePicker, Table } from 'antd';
3 3
 import { FormattedMessage } from 'umi-plugin-react/locale';
4 4
 import styles from '../style/GoodsList.less';
5 5
 
@@ -172,6 +172,72 @@ class DateRange2 extends React.Component {
172 172
   }
173 173
 }
174 174
 // 领取时间 组件  end
175
+const dataSource = [
176
+  {
177
+    key: '1',
178
+    img: 'http://img0.imgtn.bdimg.com/it/u=4246326797,2657995307&fm=26&gp=0.jpg',
179
+    name: '华为P30 Pro',
180
+  },
181
+  {
182
+    key: '2',
183
+    img: '',
184
+    name: '大米',
185
+  },
186
+];
187
+
188
+const columns = [
189
+
190
+  {
191
+    title: '用户姓名',
192
+    dataIndex: 'name',
193
+    key: 'name',
194
+    align: 'center',
195
+
196
+  },
197
+  {
198
+    title: '用户类型',
199
+    dataIndex: 'type',
200
+    key: 'type',
201
+    align: 'center',
202
+  },
203
+  {
204
+    title: '手机号',
205
+    dataIndex: 'phone',
206
+    key: 'phone',
207
+    align: 'center',
208
+  },
209
+  {
210
+    title: '商品图片',
211
+    dataIndex: 'img',
212
+    key: 'img',
213
+    align: 'center',
214
+    render: (text, record) => <img src={record.img} className={styles.touxiang} />,
215
+  },
216
+  {
217
+    title: '商品名称',
218
+    dataIndex: 'goodName',
219
+    key: 'goodName',
220
+    align: 'center',
221
+  },
222
+  {
223
+    title: '兑换时间',
224
+    dataIndex: 'time',
225
+    key: 'time',
226
+    align: 'center',
227
+  },
228
+  {
229
+    title: '领取时间',
230
+    dataIndex: 'time2',
231
+    key: 'time2',
232
+    align: 'center',
233
+  },
234
+  {
235
+    title: '状态',
236
+    dataIndex: 'state',
237
+    key: 'state',
238
+    align: 'center',
239
+  },
240
+];
175 241
 
176 242
 function record(props) {
177 243
   const { getFieldDecorator } = props.form
@@ -221,7 +287,6 @@ function record(props) {
221 287
             </Select>,
222 288
           )}
223 289
         </Form.Item>
224
-
225 290
         <Form.Item>
226 291
           <Button type="primary" htmlType="submit" className={styles.searchBtn}>
227 292
             搜索
@@ -234,6 +299,7 @@ function record(props) {
234 299
           <DateRange2 />
235 300
         </Form.Item>
236 301
       </Form>
302
+      <Table style={{ marginTop: '40px' }} dataSource={dataSource} columns={columns} />
237 303
     </>
238 304
   )
239 305
 }

+ 73
- 0
src/pages/integralMall/writeOff.jsx 查看文件

@@ -0,0 +1,73 @@
1
+import React from 'react';
2
+import { Form, Input, Button, Icon, Tabs, Row, Col } from 'antd';
3
+import { FormattedMessage } from 'umi-plugin-react/locale';
4
+import styles from '../style/GoodsList.less';
5
+import router from 'umi/router';
6
+import erweima from '../../assets/erweima.png';
7
+import saoma from '../../assets/saoma.png';
8
+import list from '../../assets/list.png';
9
+
10
+const { TabPane } = Tabs;
11
+function callback(key) {
12
+  console.log(key);
13
+}
14
+
15
+/**
16
+ *
17
+ *
18
+ * @param {*} props
19
+ * @returns
20
+ */
21
+
22
+function header(props) {
23
+  const { getFieldDecorator } = props.form
24
+  return (
25
+    <>
26
+      <Tabs onChange={callback} type="card">
27
+        <TabPane tab="扫码核销" key="1">
28
+          <Row>
29
+            <Col span={8} style={{ textAlign: 'center' }}>
30
+              <img src={erweima} style={{ width: '50px', height: '50px', margin: '30px auto' }} />
31
+              <p>1</p>
32
+              <p>请用户出示核销的二维码</p>
33
+              <p>请将网页输入法切换成英文</p>
34
+            </Col>
35
+            <Col span={8} style={{ textAlign: 'center' }}>
36
+              <img src={saoma} style={{ width: '50px', height: '50px', margin: '30px auto' }} />
37
+              <p>2</p>
38
+              <p>点击“立即核销”按钮</p>
39
+              <p>使用扫码枪扫描客户二维码</p>
40
+            </Col>
41
+            <Col span={8} style={{ textAlign: 'center' }}>
42
+              <img src={list} style={{ width: '50px', height: '50px', margin: '30px auto' }} />
43
+              <p>3</p>
44
+              <p style={{ margin: '44px auto' }}>根据提示进行核销操作</p>
45
+            </Col>
46
+          </Row>
47
+          <Button type="primary" style={{ margin: '80px auto', display: 'block', padding: '6px 46px', backgroundColor: '#EA2323', border: 'none' }}>立即核销</Button>
48
+        </TabPane>
49
+        <TabPane tab="手机号核销" key="2">
50
+          <Row>
51
+            <Col span={12} style={{ textAlign: 'center' }}>
52
+              <img src={erweima} style={{ width: '50px', height: '50px', margin: '30px auto' }} />
53
+              <p>1</p>
54
+              <p>请输入用户的手机号</p>
55
+            </Col>
56
+            <Col span={12} style={{ textAlign: 'center' }}>
57
+              <img src={list} style={{ width: '50px', height: '50px', margin: '30px auto' }} />
58
+              <p>2</p>
59
+              <p>点击“立即核销”按钮</p>
60
+            </Col>
61
+          </Row>
62
+          <div style={{ margin: '110px auto', display: 'block',textAlign:'center' }}>
63
+            <Input placeholder="请输入手机号" style={{width:'200px'}} />
64
+            <Button type="primary" style={{marginLeft:'10px', padding: '6px 46px', backgroundColor: '#EA2323', border: 'none' }}>立即核销</Button>
65
+          </div>
66
+        </TabPane>
67
+      </Tabs>,
68
+    </>
69
+  )
70
+}
71
+const WrappedHeader = Form.create({ name: 'header' })(header);
72
+
73
+export default WrappedHeader

+ 1
- 1
src/pages/style/GoodsList.less 查看文件

@@ -36,4 +36,4 @@
36 36
   color: #dcdcdc;
37 37
   margin-left: 6px;
38 38
   font-size: 15px;
39
-}
39
+}

+ 1
- 1
src/utils/request.js 查看文件

@@ -78,7 +78,7 @@ request.interceptors.response.use(async (response, options) => {
78 78
         throw new Error(message);
79 79
       }
80 80
 
81
-      if (data.token) {
81
+      if (data && data.token) {
82 82
         window.localStorage.setItem('x-token', data.token)
83 83
       }
84 84