react_hsbc_teller 2.0.2 → 2.0.4-6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/lib/hsbc.js +1 -1
  2. package/lib/hsbc.js.LICENSE.txt +11 -0
  3. package/package.json +2 -1
  4. package/packages/api/api.js +267 -2
  5. package/packages/assets/img/icon_asr.png +0 -0
  6. package/packages/assets/img/icon_env.png +0 -0
  7. package/packages/assets/img/icon_fail.jpg +0 -0
  8. package/packages/assets/img/icon_paper.png +0 -0
  9. package/packages/assets/img/icon_success.jpg +0 -0
  10. package/packages/assets/mp3/ipad_join_meeting.mp3 +0 -0
  11. package/packages/assets/mp3/ipad_leave_error.mp3 +0 -0
  12. package/packages/assets/mp3/ipad_leave_meeting.mp3 +0 -0
  13. package/packages/assets/mp3/ipad_low_power.mp3 +0 -0
  14. package/packages/assets/mp3/networkweak.mp3 +0 -0
  15. package/packages/assets/mp3/pip_close.mp3 +0 -0
  16. package/packages/assets/mp3/record_error.mp3 +0 -0
  17. package/packages/demo/demo.js +52 -18
  18. package/packages/demo/pdf.js +16 -1
  19. package/packages/pages/foot/foot.jsx +29 -6
  20. package/packages/pages/foot/foot.less +1 -0
  21. package/packages/pages/header/header.jsx +1 -1
  22. package/packages/pages/multiModule/components/copy/agree.jsx +115 -0
  23. package/packages/pages/multiModule/components/copy/agree.less +105 -0
  24. package/packages/pages/multiModule/components/copy/copyTwo.jsx +666 -0
  25. package/packages/pages/multiModule/components/copy/copyTwo.less +180 -0
  26. package/packages/pages/multiModule/components/copy/copy_en.jsx +368 -0
  27. package/packages/pages/multiModule/components/copy/copy_en.less +145 -0
  28. package/packages/pages/multiModule/components/copy/copylist.jsx +291 -0
  29. package/packages/pages/multiModule/components/copy/copylist.less +83 -0
  30. package/packages/pages/multiModule/components/copy/risk.jsx +296 -0
  31. package/packages/pages/multiModule/components/copy/risk.less +123 -0
  32. package/packages/pages/multiModule/components/sign/signMy.jsx +308 -0
  33. package/packages/pages/multiModule/components/sign/signMy.less +128 -0
  34. package/packages/pages/multiModule/components/subscribe/subscribe.jsx +113 -0
  35. package/packages/pages/multiModule/components/subscribe/subscribe.less +82 -0
  36. package/packages/pages/multiModule/multiModule.jsx +26 -0
  37. package/packages/pages/multiModule/multiModule.less +20 -0
  38. package/packages/pages/sign/signMy.jsx +2 -0
  39. package/packages/pages/video/video.jsx +2431 -717
  40. package/packages/pages/video/video.less +92 -2
  41. package/packages/utils/asrController.js +246 -0
  42. package/packages/utils/utils.js +122 -0
  43. package/packages/common/JKL.js +0 -61
  44. package/packages/common/XML.js +0 -271
  45. package/packages/common/websocket.js +0 -267
  46. package/packages/utils/cell.js +0 -64
@@ -4,6 +4,17 @@
4
4
  http://jedwatson.github.io/classnames
5
5
  */
6
6
 
7
+ /*!
8
+ *
9
+ * js-audio-recorder - js audio recorder plugin
10
+ *
11
+ * @version v0.5.7
12
+ * @homepage https://github.com/2fps/recorder
13
+ * @author 2fps <echoweb@126.com> (https://www.zhuyuntao.cn)
14
+ * @license MIT
15
+ *
16
+ */
17
+
7
18
  /*!
8
19
  * Determine if an object is a Buffer
9
20
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react_hsbc_teller",
3
- "version": "2.0.2",
3
+ "version": "2.0.46.1",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -89,6 +89,7 @@
89
89
  "axios": "0.19.0",
90
90
  "crypto-js": "^4.1.1",
91
91
  "html2canvas": "^1.4.0",
92
+ "js-audio-recorder": "^0.5.7",
92
93
  "qrcode.react": "^3.1.0",
93
94
  "react": "^17.0.1",
94
95
  "react-canvas-draw": "^1.1.1",
@@ -57,6 +57,143 @@ class API extends Server{
57
57
  throw err;
58
58
  }
59
59
  }
60
+ /**
61
+ * 用途:获取录制状态
62
+ * @url https://api.cangdu.org/shopro/data/products
63
+ * 返回http_code为200表示成功
64
+ * @method post
65
+ * @return {promise}
66
+ */
67
+ async getRecordStatus(params = {}){
68
+ try{
69
+ let result = await this.axios('get', '/hsbc/record/status?roomId=' + params.roomId, params);
70
+ if(result && result.code === 200){
71
+ return result.data||[];
72
+ }else{
73
+ let err = {
74
+ tip: '录制状态获取失败',
75
+ response: result,
76
+ data: params,
77
+ }
78
+ throw err;
79
+ }
80
+ }catch(err){
81
+ throw err;
82
+ }
83
+ }
84
+ /**
85
+ * 用途:保存共享状态
86
+ * 返回http_code为200表示成功
87
+ * @method post
88
+ * @return {promise}
89
+ */
90
+ async editRmScreenStatus(params = {}){
91
+ try{
92
+ let result = await this.axios('post', '/hsbc/editRmScreenStatus', params);
93
+ if(result && result.code === 200){
94
+ return result.data||[];
95
+ }else{
96
+ let err = {
97
+ tip: '共享状态保存失败',
98
+ response: result,
99
+ data: params,
100
+ }
101
+ throw err;
102
+ }
103
+ }catch(err){
104
+ throw err;
105
+ }
106
+ }
107
+ /**
108
+ * 用途:敏感词检测
109
+ * @url https://api.cangdu.org/shopro/data/products
110
+ * 返回http_code为200表示成功
111
+ * @method post
112
+ * @return {promise}
113
+ */
114
+ async keywordMatch(params = {}){
115
+ try{
116
+ let result = await this.axios('post', '/hsbc/keywordMatch', params);
117
+ if(result && result.code === 200){
118
+ return result.data||[];
119
+ }else{
120
+ let err = {
121
+ tip: '敏感词检测服务错误',
122
+ response: result,
123
+ data: params,
124
+ }
125
+ throw err;
126
+ }
127
+ }catch(err){
128
+ throw err;
129
+ }
130
+ }
131
+ /**
132
+ * 用途:开启业务录制
133
+ * @url https://api.cangdu.org/shopro/data/products
134
+ * 返回http_code为200表示成功
135
+ * @method post
136
+ * @return {promise}
137
+ */
138
+ async startBusinessRecord(params = {}){
139
+ // return this.axios('get', '/lang/select/2', params);
140
+ try{
141
+ let result = await this.axios('post', '/hsbc/business/record', params);
142
+ return result
143
+ }catch(err){
144
+ throw err;
145
+ }
146
+ }
147
+ /**
148
+ * 用途:人脸检测
149
+ * @url https://api.cangdu.org/shopro/data/products
150
+ * 返回http_code为200表示成功
151
+ * @method post
152
+ * @return {promise}
153
+ */
154
+ async faceDetection(params = {}){
155
+ try{
156
+ let result = await this.axios('post', '/hsbc/faceDetection', params);
157
+ if(result && result.code === 200){
158
+ return result.data||[];
159
+ }else{
160
+ let err = {
161
+ tip: '人脸检测失败',
162
+ response: result,
163
+ data: params,
164
+ // url: 'https://api.cangdu.org/shopro/data/products',
165
+ }
166
+ throw err;
167
+ }
168
+ }catch(err){
169
+ throw err;
170
+ }
171
+ }
172
+ /**
173
+ * 用途:录制过程打点
174
+ * @url https://api.cangdu.org/shopro/data/products
175
+ * 返回http_code为200表示成功
176
+ * @method post
177
+ * @return {promise}
178
+ */
179
+ async saveVideoPoint(params = {}){
180
+ try{
181
+ let result = await this.axios('post', '/hsbc/business/point', params);
182
+ if(result && result.code === 200){
183
+ return result.data||[];
184
+ }else{
185
+ let err = {
186
+ tip: '打点失败',
187
+ response: result,
188
+ data: params,
189
+ // url: 'https://api.cangdu.org/shopro/data/products',
190
+ }
191
+ throw err;
192
+ }
193
+ }catch(err){
194
+ throw err;
195
+ }
196
+ }
60
197
  async confirmCallback(params = {}){
61
198
  // return this.axios('get', '/lang/select/2', params);
62
199
  try{
@@ -154,6 +291,78 @@ class API extends Server{
154
291
  throw err;
155
292
  }
156
293
  }
294
+ async uploadLogCallback(params = {}){
295
+ // return this.axios('get', '/lang/select/2', params);
296
+ try{
297
+ let result = await this.axios('post', '/sessionLog/saveOrUpdate', params);
298
+ // console.log(result)
299
+ if(result && (result.data instanceof Object) && result.code === 200){
300
+ return result||[];
301
+ }else{
302
+ let err = {
303
+ tip: '服务异常',
304
+ response: result,
305
+ data: params,
306
+ // url: 'https://api.cangdu.org/shopro/data/products',
307
+ }
308
+ throw err;
309
+ }
310
+ }catch(err){
311
+ throw err;
312
+ }
313
+ }
314
+ /**
315
+ * 用途:抄录结果回调后台
316
+ * @url https://api.cangdu.org/shopro/data/products
317
+ * 返回http_code为200表示成功
318
+ * @method post
319
+ * @return {promise}
320
+ */
321
+ async previewCopyCallback(params = {}){
322
+ try{
323
+ let result = await this.axios('post', '/hsbc/previewCopy/callback', params);
324
+ return result
325
+ // if(result && (result.data instanceof Object) && result.code === 200){
326
+ // return result.data||[];
327
+ // }else{
328
+ // let err = {
329
+ // tip: '服务异常',
330
+ // response: result,
331
+ // data: params,
332
+ // // url: 'https://api.cangdu.org/shopro/data/products',
333
+ // }
334
+ // throw err;
335
+ // }
336
+ }catch(err){
337
+ throw err;
338
+ }
339
+ }
340
+ /**
341
+ * 用途:签署结果回调后台
342
+ * @url https://api.cangdu.org/shopro/data/products
343
+ * 返回http_code为200表示成功
344
+ * @method post
345
+ * @return {promise}
346
+ */
347
+ async signFileCallback(params = {}){
348
+ try{
349
+ let result = await this.axios('post', '/hsbc/signFile/callback', params);
350
+ return result
351
+ // if(result && (result.data instanceof Object) && result.code === 200){
352
+ // return result.data||[];
353
+ // }else{
354
+ // let err = {
355
+ // tip: '服务异常',
356
+ // response: result,
357
+ // data: params,
358
+ // // url: 'https://api.cangdu.org/shopro/data/products',
359
+ // }
360
+ // throw err;
361
+ // }
362
+ }catch(err){
363
+ throw err;
364
+ }
365
+ }
157
366
  async retrieveCustomerInfoByActivityId(params = {}){
158
367
  // return this.axios('get', '/lang/select/2', params);
159
368
  try{
@@ -422,7 +631,31 @@ class API extends Server{
422
631
  throw err;
423
632
  }
424
633
  }
425
-
634
+ /**
635
+ * 用途:查询分行名称
636
+ * @url https://api.cangdu.org/shopro/data/products
637
+ * 返回http_code为200表示成功
638
+ * @method post
639
+ * @return {promise}
640
+ */
641
+ async getBranchName(params = {}){
642
+ try{
643
+ let result = await this.axios('get', '/hsbc/getBranchName?branchCode=' + params.branchCode, params);
644
+ if(result && (result.data instanceof Object) && result.code === 200){
645
+ return result.data||[];
646
+ }else{
647
+ let err = {
648
+ tip: '分行名称获取失败',
649
+ response: result,
650
+ data: params,
651
+ // url: 'https://api.cangdu.org/shopro/data/products',
652
+ }
653
+ throw err;
654
+ }
655
+ }catch(err){
656
+ throw err;
657
+ }
658
+ }
426
659
  /**
427
660
  * 用途:人脸识别
428
661
  * @url https://elm.cangdu.org/v1/addimg/shop
@@ -471,7 +704,39 @@ class API extends Server{
471
704
  throw err;
472
705
  }
473
706
  }
474
-
707
+ /**
708
+ * 用途:上传oss
709
+ * @url https://elm.cangdu.org/v1/addimg/shop
710
+ * 返回status为200表示成功
711
+ * @method post
712
+ * @return {promise}
713
+ */
714
+ async uploadOss(params = {}){
715
+ try{
716
+ let result = await this.axios('post', '/hsbc/imageUpload', params);
717
+ return result
718
+ }catch(err){
719
+ throw err;
720
+ }
721
+ }
722
+ async addSensitiveRecord(params = {}){
723
+ try{
724
+ let result = await this.axios('post', '/sensitive/add', params);
725
+ if (result && (result.data instanceof Object) && result.code === 200){
726
+ return result.data||[];
727
+ } else{
728
+ let err = {
729
+ tip: '服务异常',
730
+ response: result,
731
+ data: params,
732
+ // url: 'https://api.cangdu.org/shopro/data/products',
733
+ }
734
+ throw err;
735
+ }
736
+ }catch(err){
737
+ throw err;
738
+ }
739
+ }
475
740
  // /**
476
741
  // * 用途:获取记录数据
477
742
  // * @url https://api.cangdu.org/shopro/data/record
Binary file
Binary file
@@ -21,6 +21,7 @@ roomId
21
21
  // mtoken: '',
22
22
  // imRoomId: '',
23
23
  // sessionId: '',
24
+ pdfRendering: false,
24
25
  isVideo: false,
25
26
  tellerAccount: 'wmzTeller',
26
27
  // callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
@@ -30,6 +31,7 @@ roomId
30
31
  // roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
31
32
  // baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
32
33
  // resourcePath: 'https://counter-web.leimondata.cn:7199',
34
+ // resourcePath:'http://121.196.19.70:8027/',
33
35
  roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
34
36
  baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
35
37
  resourcePath:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/js/',
@@ -40,23 +42,15 @@ roomId
40
42
  fontSize: 14,
41
43
  fontFamily: 'auto',
42
44
  isTranscribing: false,
43
- userSide: 2
45
+ userSide: 2,
46
+ meetingDuration: 1, // 会议时长,单位小时
47
+ recordMode: 1, // 录制模式 1远程录制 2网点录制
48
+ defaultBranchCode: "BranchCode",// 员工网点缩写
49
+ customerId: "testCustomerId", //客户号
50
+ salesBranchCode: 'salesBranchCode', //网点编号(分行号)
51
+ financialOffice: "defaultOfficeId", // 理财室
44
52
  }
45
53
  componentWillMount() {
46
- // if(window.localStorage.getItem('roomId')) {
47
- // this.setState({roomId: window.localStorage.getItem('roomId')});
48
- // }
49
- // if(window.localStorage.getItem('mtoken')) {
50
- // this.setState({mtoken: window.localStorage.getItem('mtoken')});
51
- // }
52
- // if(window.localStorage.getItem('sessionId')) {
53
- // this.setState({sessionId: window.localStorage.getItem('sessionId')});
54
- // }
55
- // if(window.localStorage.getItem('imRoomId')) {
56
- // this.setState({imRoomId: window.localStorage.getItem('imRoomId')});
57
- // this.startVideo()
58
- // }
59
-
60
54
  }
61
55
  handleChangeRoomId = (event) => {
62
56
  this.setState({roomId: event.target.value});
@@ -81,9 +75,11 @@ startVideo = () => {
81
75
  }
82
76
  onLeaveRoom = (val) => {
83
77
  console.log(val)
84
- this.setState({
85
- isVideo: false
86
- })
78
+ if (val.code == 1) {
79
+ this.setState({
80
+ isVideo: false
81
+ })
82
+ }
87
83
  }
88
84
  handleChangeTeller = (event) => {
89
85
  this.setState({
@@ -142,6 +138,17 @@ shareMaskClick=()=>{
142
138
  }
143
139
 
144
140
  }
141
+ pdfRenderingClick=()=>{
142
+ if(this.state.pdfRendering) {
143
+ this.setState({
144
+ pdfRendering: false
145
+ })
146
+ } else {
147
+ this.setState({
148
+ pdfRendering: true
149
+ })
150
+ }
151
+ }
145
152
  createRoomCallback=(data)=>{
146
153
  console.log('createRoomCallback', data)
147
154
  this.setState({roomId: data.data.roomId});
@@ -187,6 +194,10 @@ userExit =(val)=>{
187
194
 
188
195
  })
189
196
  }
197
+ componentDidCatch(error, info) {
198
+ console.log('componentDidCatch')
199
+ console.error(error, info)
200
+ }
190
201
  render() {
191
202
  return (
192
203
  <div className="test">
@@ -194,12 +205,17 @@ userExit =(val)=>{
194
205
  this.state.isVideo ?
195
206
  <div>
196
207
  <HSBC
208
+ isOpenSound={true}
197
209
  shareMask={this.state.shareMask}
210
+ pdfRendering={this.state.pdfRendering}
198
211
  roomId={this.state.roomId}
199
212
  mtoken={this.state.mtoken}
200
213
  sessionId={this.state.sessionId}
201
214
  imRoomId={this.state.imRoomId}
202
215
  userSide={this.state.userSide}
216
+ whetherDetectFace={true}
217
+ whetherDetectLight={true}
218
+ whetherNeedAsr={true}
203
219
  prohibitPrompt={this.state.prohibitPrompt}
204
220
  voiceColor={this.state.voiceColor}
205
221
  titleBackground={this.state.titleBackground}
@@ -211,14 +227,25 @@ userExit =(val)=>{
211
227
  callbackUrl={this.state.callbackUrl}
212
228
  businessNumber={this.state.businessNumber}
213
229
  lang={this.state.lang}
230
+ isWeakSound={true}
214
231
  roomServerUrl={this.state.roomServerUrl}
215
232
  baseURL={this.state.baseURL}
216
233
  resourcePath={this.state.resourcePath}
217
234
  isTranscribing={this.state.isTranscribing}
235
+ meetingDuration={this.state.meetingDuration}
236
+ recordMode={this.state.recordMode}
237
+ defaultBranchCode={this.state.defaultBranchCode}
238
+ customerId={this.state.customerId}
239
+ salesBranchCode={this.state.salesBranchCode}
240
+ financialOffice={this.state.financialOffice}
218
241
  onLeaveRoom={this.onLeaveRoom}
242
+ getBusinessData={() => { return { businessList: [], businessType: 'REC' } }}
219
243
  createRoomCallback={this.createRoomCallback}
220
244
  joinRoomCallback={this.joinRoomCallback}
221
245
  imgCallback={this.imgCallback}
246
+ sfpCallback={()=>{console.log('sfpCallback success')}}
247
+ signatureCallback={(msg)=>{console.log('signatureCallback', msg)}}
248
+ OnNetworkWeak={(a, b, c)=>{console.log('OnNetworkWeak', a,b,c)}}
222
249
  userExit={this.userExit}
223
250
  staffPermission={this.staffPermission}
224
251
  >
@@ -226,6 +253,7 @@ userExit =(val)=>{
226
253
  <Pdf></Pdf>
227
254
  </HSBC>
228
255
  <button onClick={this.shareMaskClick.bind(this)}>遮罩层</button>
256
+ <button onClick={this.pdfRenderingClick.bind(this)}>{this.state.pdfRendering?'继续':'暂停'}渲染</button>
229
257
  </div>
230
258
  :
231
259
  <div>
@@ -243,6 +271,12 @@ userExit =(val)=>{
243
271
  <div>imRoomId: <input type="text" value={this.state.imRoomId} onChange={this.handleChangeImRoomId} /></div>
244
272
  <div>isTranscribing: <input type="text" value={this.state.isTranscribing} onChange={this.handleChangeisTranscribing} /></div>
245
273
  <div>userSide: <input type="text" value={this.state.userSide} onChange={this.handleChangeUserSide} /></div>
274
+ <div>meetingDuration: <input type="text" value={this.state.meetingDuration} onChange={(e)=>{this.setState({ meetingDuration: e.target.value })}} /></div>
275
+ <div>recordMode: <input type="text" value={this.state.recordMode} onChange={(e)=>{this.setState({ recordMode: e.target.value })}} /></div>
276
+ <div>defaultBranchCode: <input type="text" value={this.state.defaultBranchCode} onChange={(e)=>{this.setState({ defaultBranchCode: e.target.value })}} /></div>
277
+ <div>customerId: <input type="text" value={this.state.customerId} onChange={(e)=>{this.setState({ customerId: e.target.value })}} /></div>
278
+ <div>salesBranchCode: <input type="text" value={this.state.salesBranchCode} onChange={(e)=>{this.setState({ salesBranchCode: e.target.value })}} /></div>
279
+ <div>financialOffice: <input type="text" value={this.state.financialOffice} onChange={(e)=>{this.setState({ financialOffice: e.target.value })}} /></div>
246
280
 
247
281
  <button className="button" onClick={this.startVideo.bind(this)}>开启视频</button>
248
282
  </div>
@@ -2,6 +2,7 @@ import React, { Component } from "react";
2
2
 
3
3
  class pdf extends Component {
4
4
  state = {
5
+ testTime: '',
5
6
  isVideo: false,
6
7
  tellerAccount: '',
7
8
  callbackUrl: 'http://47.102.126.132:8720/hsbc/callback',
@@ -11,6 +12,12 @@ class pdf extends Component {
11
12
  baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
12
13
  resourcePath:'https://counter-web.leimondata.cn:7199',
13
14
  }
15
+ componentDidMount () {
16
+ this.countTimer()
17
+ }
18
+ componentWillUnmount() {
19
+ clearInterval(this.state.timer)
20
+ }
14
21
  startVideo = () => {
15
22
  this.setState({
16
23
  isVideo: true
@@ -53,9 +60,16 @@ handleResourcePath = (event) => {
53
60
  resourcePath: event.target.value
54
61
  })
55
62
  }
63
+ countTimer = () => {
64
+ this.state.timer = setInterval(() => {
65
+ this.setState({
66
+ testTime: new Date().toString()
67
+ })
68
+ }, 1000);
69
+ }
56
70
 
57
71
  render() {
58
- console.log('22',this.props)
72
+ // console.log('22',this.props)
59
73
  return (
60
74
  <div className="test" style={{width: this.props.width,height:this.props.height}}>
61
75
  {
@@ -68,6 +82,7 @@ handleResourcePath = (event) => {
68
82
  阿里资源服务地址:<input placeholder="请输入阿里资源服务地址" value={this.state.resourcePath} onChange={e => this.handleResourcePath(e)}></input>
69
83
 
70
84
  <button className="button" onClick={this.startVideo.bind(this)}>开启视频</button>
85
+ <div>{this.state.testTime}</div>
71
86
  </div>
72
87
  }
73
88
  </div>
@@ -1,5 +1,6 @@
1
1
  import React, { Component } from 'react';
2
2
  import './foot.less'
3
+ import { debounce } from '../../utils/utils';
3
4
  import Popover from "antd/lib/popover";
4
5
  import 'antd/lib/popover/style'
5
6
  export default class foot extends Component {
@@ -47,6 +48,12 @@ export default class foot extends Component {
47
48
  inspection = ()=>{
48
49
  this.props.inspection()
49
50
  }
51
+ envDetection = () => {
52
+ this.props.envDetection()
53
+ }
54
+ toggleAsr = ()=>{
55
+ this.props.toggleAsr()
56
+ }
50
57
  switchExternal=()=>{
51
58
  this.props.switchExternal()
52
59
  }
@@ -109,17 +116,17 @@ export default class foot extends Component {
109
116
  </div>
110
117
  }
111
118
  {
112
- item == 'BOARD'&&<div className='footHover' onClick={this.switchExternal.bind(this)}>
119
+ item == 'BOARD'&&<div className='footHover' onClick={debounce(this.switchExternal.bind(this), 300)}>
113
120
  <div className="one">
114
121
  <img className="imgClass" src={require("../../assets/img/switchExternal.png").default} alt="" />
115
122
  <div className="text">
116
- 远程签署
123
+ {this.props.recordMode == 1?'远程':''}签署
117
124
  </div>
118
125
  </div>
119
126
  </div>
120
127
  }
121
128
  {
122
- item == 'SHARE' && <div className="one" onClick={this.sharedScreen.bind(this)}>
129
+ item == 'SHARE' && <div className="one" onClick={debounce(this.sharedScreen.bind(this), 300)}>
123
130
  <img className="imgClass" src={require("../../assets/img/Projection_screen.png").default} alt="" />
124
131
  <div className="text">
125
132
  {screenName}
@@ -161,7 +168,7 @@ export default class foot extends Component {
161
168
  item == 'PIP' && <div className="one" onClick={this.pictureInPicture.bind(this)}>
162
169
  <img className="imgClass" src={require("../../assets/img/huazhonghua.png").default} alt="" />
163
170
  <div className="text">
164
- 开启视频画中画
171
+ 开启视频浮窗
165
172
  </div>
166
173
  </div>
167
174
  }
@@ -182,7 +189,7 @@ export default class foot extends Component {
182
189
  return (
183
190
  <div className="foot">
184
191
  <div className="total">
185
- <div className='footHover' onClick={this.voice.bind(this)}>
192
+ <div className='footHover' style={{ display: (this.props.recordMode == 2) ? 'none' : ''}} onClick={this.voice.bind(this)}>
186
193
  <div className="one">
187
194
  <img className="imgClass" src={img} alt="" />
188
195
  <div className="text">
@@ -191,7 +198,7 @@ export default class foot extends Component {
191
198
  </div>
192
199
 
193
200
  </div>
194
- <div className='footHover' onClick={this.inspection.bind(this)}>
201
+ <div className='footHover' style={{ display: (this.props.recordMode == 2) ? 'none' : ''}} onClick={this.inspection.bind(this)}>
195
202
  <div className="one">
196
203
  <img className="imgClass" src={require("../../assets/img/inspection.png").default} alt="" />
197
204
  <div className="text">
@@ -199,6 +206,22 @@ export default class foot extends Component {
199
206
  </div>
200
207
  </div>
201
208
  </div>
209
+ <div className='footHover' onClick={this.envDetection.bind(this)}>
210
+ <div className="one">
211
+ <img className="imgClass" src={require("../../assets/img/icon_env.png").default} alt="" />
212
+ <div className="text">
213
+ 环境检测
214
+ </div>
215
+ </div>
216
+ </div>
217
+ {/* <div className='footHover' onClick={this.toggleAsr.bind(this)}>
218
+ <div className="one">
219
+ <img className="imgClass" src={require("../../assets/img/icon_asr.png").default} alt="" />
220
+ <div className="text">
221
+ ASR检测
222
+ </div>
223
+ </div>
224
+ </div> */}
202
225
  </div>
203
226
  {defaultList}
204
227
 
@@ -25,6 +25,7 @@ width: 100%;
25
25
  }
26
26
  .footHover{
27
27
  margin: 0 5px;
28
+ cursor: pointer;
28
29
  }
29
30
  .footHover :hover{
30
31
  background: #F3F3F3;
@@ -8,7 +8,7 @@ export default class header extends Component {
8
8
  return(
9
9
  <div className="Hamburger">
10
10
  <div className="left-header">
11
- <div className="title">汇丰银行远程会议</div>
11
+ <div className="title">汇丰银行{this.props.recordMode==2?'分行':'远程'}会议</div>
12
12
  </div>
13
13
  </div>
14
14
  )