zhoulisen 5 年 前
コミット
185024b07a

+ 5
- 2
src/pages/customer/customerlist/customerDetail.jsx ファイルの表示

8
 import BuildSelect from '../../../components/SelectButton/BuildSelect'
8
 import BuildSelect from '../../../components/SelectButton/BuildSelect'
9
 
9
 
10
 import router from 'umi/router';
10
 import router from 'umi/router';
11
-
11
+import Prompt from 'umi/prompt';
12
 
12
 
13
 function header(props) {
13
 function header(props) {
14
   /**
14
   /**
202
         <Table dataSource={tableData.records} columns={columns} style={{marginTop: '15px'}} pagination={{ pageSize: 10, total: tableData.total, onChange }} />
202
         <Table dataSource={tableData.records} columns={columns} style={{marginTop: '15px'}} pagination={{ pageSize: 10, total: tableData.total, onChange }} />
203
         {/* <Pagination showQuickJumper defaultCurrent={1} total={data.records} onChange={e => changePageNum(e)} current={data.visitRecords.total}/> */}
203
         {/* <Pagination showQuickJumper defaultCurrent={1} total={data.records} onChange={e => changePageNum(e)} current={data.visitRecords.total}/> */}
204
       </div>
204
       </div>
205
-
205
+      <Prompt message={location =>
206
+        location.pathname.startsWith("/customer/customerlist")
207
+          ? true
208
+          : (localStorage.removeItem("priPageParams"), localStorage.removeItem("pubPageParams"), localStorage.removeItem("state"))} />
206
     </>
209
     </>
207
   )
210
   )
208
 }
211
 }

+ 25
- 9
src/pages/customer/customerlist/index.jsx ファイルの表示

71
 
71
 
72
   // eslint-disable-next-line react-hooks/rules-of-hooks
72
   // eslint-disable-next-line react-hooks/rules-of-hooks
73
   useEffect(() => {
73
   useEffect(() => {
74
+    // localStorage.setItem("state", JSON.stringify({ value }))
75
+    if (localStorage.getItem("state")) {
76
+      console.log(localStorage.getItem("state"), 'state')
77
+      if (JSON.parse(localStorage.getItem("state")) == 'private') {
78
+        props.form.setFieldsValue(JSON.parse(localStorage.getItem("priPageParams")));
79
+        getList({ ...JSON.parse(localStorage.getItem("priPageParams")) })
80
+      } else {
81
+        setCustomerType('public')
82
+        props.form.setFieldsValue(JSON.parse(localStorage.getItem("pubPageParams")));
83
+        getList({ ...JSON.parse(localStorage.getItem("pubPageParams")) })
84
+      }
74
 
85
 
75
-    if (localStorage.getItem("priPageParams")) {
76
-      props.form.setFieldsValue(JSON.parse(localStorage.getItem("priPageParams")));
77
-      // const { getFieldDecorator } = JSON.parse(localStorage.getItem("pageParams"))
78
-      getList({ customerType, ...JSON.parse(localStorage.getItem("priPageParams")) })
79
     } else {
86
     } else {
80
       localStorage.setItem("priPageParams", JSON.stringify({ pageNumber: 1, pageSize: 10, customerType }))
87
       localStorage.setItem("priPageParams", JSON.stringify({ pageNumber: 1, pageSize: 10, customerType }))
81
       getList({ pageNumber: 1, pageSize: 10, customerType })
88
       getList({ pageNumber: 1, pageSize: 10, customerType })
145
     // eslint-disable-next-line react-hooks/rules-of-hooks
152
     // eslint-disable-next-line react-hooks/rules-of-hooks
146
     props.form.validateFields((err, values) => {
153
     props.form.validateFields((err, values) => {
147
       if (!err) {
154
       if (!err) {
155
+        localStorage.setItem("state", JSON.stringify(customerType))
148
         if (customerType === 'private') {
156
         if (customerType === 'private') {
149
           localStorage.setItem("priPageParams", JSON.stringify({ pageNumber: pageNum, pageSize: 10, customerType: 'private', ...props.form.getFieldsValue() }))
157
           localStorage.setItem("priPageParams", JSON.stringify({ pageNumber: pageNum, pageSize: 10, customerType: 'private', ...props.form.getFieldsValue() }))
150
           getList(JSON.parse(localStorage.getItem("priPageParams")))
158
           getList(JSON.parse(localStorage.getItem("priPageParams")))
164
     props.form.resetFields();
172
     props.form.resetFields();
165
     const { value } = e.target
173
     const { value } = e.target
166
     setCustomerType(value)
174
     setCustomerType(value)
175
+    localStorage.setItem("state", JSON.stringify(value))
167
     if (value === 'private') {
176
     if (value === 'private') {
168
-      props.form.setFieldsValue(JSON.parse(localStorage.getItem("priPageParams")));
177
+      if (localStorage.getItem("priPageParams")) {
178
+        props.form.setFieldsValue(JSON.parse(localStorage.getItem("priPageParams")));
179
+
180
+        getList(JSON.parse(localStorage.getItem("priPageParams")))
181
+      }else{
182
+        localStorage.setItem("priPageParams", JSON.stringify({ pageNumber: 1, pageSize: 10, customerType: value }))
183
+      getList({ pageNumber: 1, pageSize: 10, customerType: value })
184
+      }
169
 
185
 
170
-      getList(JSON.parse(localStorage.getItem("priPageParams")))
171
     } else {
186
     } else {
172
 
187
 
173
       if (localStorage.getItem("pubPageParams")) {
188
       if (localStorage.getItem("pubPageParams")) {
175
         // const { getFieldDecorator } = JSON.parse(localStorage.getItem("pageParams"))
190
         // const { getFieldDecorator } = JSON.parse(localStorage.getItem("pageParams"))
176
         getList({ customerType, ...JSON.parse(localStorage.getItem("pubPageParams")) })
191
         getList({ customerType, ...JSON.parse(localStorage.getItem("pubPageParams")) })
177
       } else {
192
       } else {
178
-        getList({ pageNumber: 1, pageSize: 10, customerType:value })
193
+        localStorage.setItem("pubPageParams", JSON.stringify({ pageNumber: 1, pageSize: 10, customerType: value }))
194
+        getList({ pageNumber: 1, pageSize: 10, customerType: value })
179
       }
195
       }
180
     }
196
     }
181
 
197
 
641
       <BatchAssistConsultant visibleData={batchAssistVisibleData} onCancel={() => closeAll()} />
657
       <BatchAssistConsultant visibleData={batchAssistVisibleData} onCancel={() => closeAll()} />
642
 
658
 
643
       <Prompt message={location =>
659
       <Prompt message={location =>
644
-        location.pathname.startsWith("/customer/customerlist/list")
660
+        location.pathname.startsWith("/customer/customerlist")
645
           ? true
661
           ? true
646
-          : (localStorage.removeItem("priPageParams"), localStorage.removeItem("pubPageParams"))} />
662
+          : (localStorage.removeItem("priPageParams"), localStorage.removeItem("pubPageParams"), localStorage.removeItem("state"))} />
647
     </>
663
     </>
648
   );
664
   );
649
 }
665
 }

+ 5
- 1
src/pages/customer/customerlist/publicCustomerDetail.jsx ファイルの表示

8
 import BuildSelect from '../../../components/SelectButton/BuildSelect'
8
 import BuildSelect from '../../../components/SelectButton/BuildSelect'
9
 
9
 
10
 import router from 'umi/router';
10
 import router from 'umi/router';
11
-
11
+import Prompt from 'umi/prompt';
12
 
12
 
13
 function header(props) {
13
 function header(props) {
14
   /**
14
   /**
169
         <BuildSelect onChange={changBuilding} value={buildingIdValue} />
169
         <BuildSelect onChange={changBuilding} value={buildingIdValue} />
170
         <Table dataSource={tableData.records} columns={columns} style={{marginTop: '15px'}} pagination={{ pageSize: 10, total: tableData.total, onChange }} />
170
         <Table dataSource={tableData.records} columns={columns} style={{marginTop: '15px'}} pagination={{ pageSize: 10, total: tableData.total, onChange }} />
171
       </div>
171
       </div>
172
+      <Prompt message={location =>
173
+        location.pathname.startsWith("/customer/customerlist")
174
+          ? true
175
+          : (localStorage.removeItem("priPageParams"), localStorage.removeItem("pubPageParams"), localStorage.removeItem("state"))} />
172
     </>
176
     </>
173
   )
177
   )
174
 }
178
 }

+ 16
- 14
src/pages/indexEcharts/components/UserBehaviorIndex.jsx ファイルの表示

27
     width: '18%',
27
     width: '18%',
28
     render: (x, row) => (
28
     render: (x, row) => (
29
       <>
29
       <>
30
-        <span>{ moment(row.visitTime).format('YYYY-MM-DD hh:mm:ss') }</span>
30
+        <span>{moment(row.visitTime).format('YYYY-MM-DD hh:mm:ss')}</span>
31
       </>
31
       </>
32
     ),
32
     ),
33
   },
33
   },
39
     width: '18%',
39
     width: '18%',
40
     render: (x, row) => (
40
     render: (x, row) => (
41
       <>
41
       <>
42
-        <span>{ row.leaveTime && moment(row.leaveTime).format('YYYY-MM-DD hh:mm:ss') }</span>
42
+        <span>{row.leaveTime && moment(row.leaveTime).format('YYYY-MM-DD hh:mm:ss')}</span>
43
       </>
43
       </>
44
     ),
44
     ),
45
   },
45
   },
69
       ...apis.indexEcharts.userBehavior.profile,
69
       ...apis.indexEcharts.userBehavior.profile,
70
       params: { event: row.event, personId: row.personId },
70
       params: { event: row.event, personId: row.personId },
71
     }).then(data => {
71
     }).then(data => {
72
-        this.setState({ eventList: data })
72
+      this.setState({ eventList: data })
73
     })
73
     })
74
   }
74
   }
75
 
75
 
91
           onCancel={() => this.handleCancel()}
91
           onCancel={() => this.handleCancel()}
92
           footer={null}
92
           footer={null}
93
         >
93
         >
94
-         <Table rowKey="UserBehavior" dataSource={this.state.eventList} columns={eventcolumns} pagination={false} rowKey="eventall" scroll={{ y: 400 }} />
94
+          <Table rowKey="UserBehavior" dataSource={this.state.eventList} columns={eventcolumns} pagination={false} rowKey="eventall" scroll={{ y: 400 }} />
95
         </Modal>
95
         </Modal>
96
       </>
96
       </>
97
     )
97
     )
176
     yAxis: {},
176
     yAxis: {},
177
     dataZoom,
177
     dataZoom,
178
     series: Object.keys(seriesMaker).map(x => ({
178
     series: Object.keys(seriesMaker).map(x => ({
179
-        type: 'line',
180
-        smooth: true,
181
-        name: x,
182
-        data: seriesMaker[x],
183
-      })),
179
+      type: 'line',
180
+      smooth: true,
181
+      name: x,
182
+      data: seriesMaker[x],
183
+    })),
184
   }
184
   }
185
   function handleBuildingChange(e) {
185
   function handleBuildingChange(e) {
186
     const date = formatDate(props.startDate, props.endDate)
186
     const date = formatDate(props.startDate, props.endDate)
247
       width: '18%',
247
       width: '18%',
248
       render: (x, row) => (
248
       render: (x, row) => (
249
         <>
249
         <>
250
-          <span>{ row.visitTime && moment(row.visitTime).format('YYYY-MM-DD hh:mm:ss') }</span>
250
+          <span>{row.visitTime && moment(row.visitTime).format('YYYY-MM-DD hh:mm:ss')}</span>
251
         </>
251
         </>
252
       ),
252
       ),
253
     },
253
     },
259
       align: 'center',
259
       align: 'center',
260
       render: (x, row) => (
260
       render: (x, row) => (
261
         <>
261
         <>
262
-          <span>{ row.leaveTime && moment(row.leaveTime).format('YYYY-MM-DD hh:mm:ss') }</span>
262
+          <span>{row.leaveTime && moment(row.leaveTime).format('YYYY-MM-DD hh:mm:ss')}</span>
263
         </>
263
         </>
264
       ),
264
       ),
265
     },
265
     },
270
     <>
270
     <>
271
       <div>
271
       <div>
272
         {/* <p onClick={() => router.push('/statistical/userBehavior')} style={{cursor: 'pointer'}}> */}
272
         {/* <p onClick={() => router.push('/statistical/userBehavior')} style={{cursor: 'pointer'}}> */}
273
+        <div style={{marginBottom:'40px'}}>
273
           <span style={{ borderBottom: '1px solid #f02d40', color: '#333', fontSize: '0.12rem', fontWeight: '600' }}>用户行为</span>
274
           <span style={{ borderBottom: '1px solid #f02d40', color: '#333', fontSize: '0.12rem', fontWeight: '600' }}>用户行为</span>
274
           {!props.BuildSelectHide && <span style={{ fontSize: '0.09rem', color: '#888', marginLeft: '0.06rem' }}>最近七天</span>}
275
           {!props.BuildSelectHide && <span style={{ fontSize: '0.09rem', color: '#888', marginLeft: '0.06rem' }}>最近七天</span>}
275
-        {/* </p> */}
276
-        <div style={{ float: 'right', marginTop: '-40px', marginBottom: '20px' }}>
277
-          {!props.BuildSelectHide && <BuildSelect slot="action" onChange={(e => handleBuildingChange(e))} value={buildingId}></BuildSelect>}
276
+          {/* </p> */}
277
+          <div style={{ float: 'right' }}>
278
+            {!props.BuildSelectHide && <BuildSelect slot="action" onChange={(e => handleBuildingChange(e))} value={buildingId}></BuildSelect>}
279
+          </div>
278
         </div>
280
         </div>
279
         <EChart options={options} style={style} />
281
         <EChart options={options} style={style} />
280
         {false &&
282
         {false &&

+ 1
- 1
src/pages/statistical/activity/compenents/NewUsers.jsx ファイルの表示

109
   return (
109
   return (
110
     <>
110
     <>
111
       <div ><p><span style={{fontSize:'0.12rem',fontWeight:'600'}}>活动趋势图</span></p></div>
111
       <div ><p><span style={{fontSize:'0.12rem',fontWeight:'600'}}>活动趋势图</span></p></div>
112
-      <div>
112
+      <div style={{marginTop:'30px'}}>
113
         <EChart options={options} style={piestyles}  />
113
         <EChart options={options} style={piestyles}  />
114
       </div>
114
       </div>
115
     </>
115
     </>

+ 1
- 0
src/pages/statistical/activity/compenents/style.less ファイルの表示

6
     box-shadow: 0px 0px 16px 2px rgba(0, 0, 0, 0.12);
6
     box-shadow: 0px 0px 16px 2px rgba(0, 0, 0, 0.12);
7
     border-radius: 12px;
7
     border-radius: 12px;
8
     margin-right: 30px;
8
     margin-right: 30px;
9
+    padding: 40px;
9
   }
10
   }
10
   
11
   
11
   .pie {
12
   .pie {