react_hsbc_teller 1.0.6 → 1.0.9

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react_hsbc_teller",
3
- "version": "1.0.6",
3
+ "version": "1.0.9",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -1,5 +1,6 @@
1
1
  import React, { Component } from "react";
2
2
  import HSBC from "../pages/index";
3
+ import Pdf from './pdf.js'
3
4
 
4
5
  class Demo extends Component {
5
6
  state = {
@@ -123,7 +124,17 @@ createRoomCallback=(data)=>{
123
124
  window.localStorage.setItem('sessionId',data.data.sessionId)
124
125
  this.setState({imRoomId: data.data.imRoomId});
125
126
  window.localStorage.setItem('imRoomId', data.data.imRoomId)
126
-
127
+ // setInterval(
128
+ // () => {
129
+ // console.log('isTranscribing',this.state.isTranscribing)
130
+ // this.state.isTranscribing = !this.state.isTranscribing
131
+ // this.setState({
132
+ // isTranscribing: this.state.isTranscribing
133
+ // })
134
+ // console.log('isTranscribing',this.state.isTranscribing)
135
+ // },
136
+ // 5000
137
+ // );
127
138
  }
128
139
  joinRoomCallback=(data)=>{
129
140
  console.log('joinRoomCallback', data)
@@ -159,7 +170,7 @@ joinRoomCallback=(data)=>{
159
170
  imgCallback={this.imgCallback}
160
171
  >
161
172
 
162
- {/* <Pdf></Pdf> */}
173
+ <Pdf></Pdf>
163
174
  </HSBC>
164
175
  :
165
176
  <div>
@@ -0,0 +1,78 @@
1
+ import React, { Component } from "react";
2
+
3
+ class pdf extends Component {
4
+ state = {
5
+ isVideo: false,
6
+ tellerAccount: '',
7
+ callbackUrl: 'http://47.102.126.132:8720/hsbc/callback',
8
+ businessNumber: '',
9
+ lang: 'zh',
10
+ roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
11
+ baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
12
+ resourcePath:'https://counter-web.leimondata.cn:7199',
13
+ }
14
+ startVideo = () => {
15
+ this.setState({
16
+ isVideo: true
17
+ })
18
+ }
19
+ onLeaveRoom = (val) => {
20
+ console.log(val)
21
+ this.setState({
22
+ isVideo: false
23
+ })
24
+ }
25
+ handleChangeTeller = (event) => {
26
+ this.setState({
27
+ tellerAccount: event.target.value
28
+ })
29
+ }
30
+ handleChangeCall = (event) => {
31
+ this.setState({
32
+ callbackUrl: event.target.value
33
+ })
34
+ }
35
+ handleChangeBysiness = (event) => {
36
+ this.setState({
37
+ businessNumber: event.target.value
38
+ })
39
+ }
40
+
41
+ handleRoomServerUrl = (event) => {
42
+ this.setState({
43
+ roomServerUrl: event.target.value
44
+ })
45
+ }
46
+ handleBaseURL = (event) => {
47
+ this.setState({
48
+ baseURL: event.target.value
49
+ })
50
+ }
51
+ handleResourcePath = (event) => {
52
+ this.setState({
53
+ resourcePath: event.target.value
54
+ })
55
+ }
56
+
57
+ render() {
58
+ return (
59
+ <div className="test">
60
+ {
61
+ <div>
62
+ 坐席账号:<input placeholder="请输入坐席账号" value={this.state.tellerAccount} onChange={e => this.handleChangeTeller(e)}></input>
63
+ 回调地址:<input placeholder="请输入回调地址" value={this.state.callbackUrl} onChange={e => this.handleChangeCall(e)}></input>
64
+ 全局流水号:<input placeholder="请输入全局流水号" value={this.state.businessNumber} onChange={e => this.handleChangeBysiness(e)}></input>
65
+ 阿里服务器地址:<input placeholder="请输入阿里服务器地址" value={this.state.roomServerUrl} onChange={e => this.handleRoomServerUrl(e)}></input>
66
+ 接口地址:<input placeholder="请输入接口地址" value={this.state.baseURL} onChange={e => this.handleBaseURL(e)}></input>
67
+ 阿里资源服务地址:<input placeholder="请输入阿里资源服务地址" value={this.state.resourcePath} onChange={e => this.handleResourcePath(e)}></input>
68
+
69
+ <button className="button" onClick={this.startVideo.bind(this)}>开启视频</button>
70
+ </div>
71
+ }
72
+ </div>
73
+ );
74
+ }
75
+ }
76
+
77
+
78
+ export default pdf;
@@ -113,7 +113,7 @@ export default class foot extends Component {
113
113
  item == 'INVITE' && <div className="one" onClick={this.invitationClick.bind(this)}>
114
114
  <img className="imgClass" src={require("../../assets/img/icon_invitation.png").default} alt="" />
115
115
  <div className="text">
116
- 会议邀请
116
+ 邀请参会者
117
117
  </div>
118
118
  </div>
119
119
  }
@@ -123,7 +123,7 @@ export default class foot extends Component {
123
123
  item == 'PIP' && <div className="one" onClick={this.pictureInPicture.bind(this)}>
124
124
  <img className="imgClass" src={require("../../assets/img/huazhonghua.png").default} alt="" />
125
125
  <div className="text">
126
- 画中画
126
+ 开启视频画中画
127
127
  </div>
128
128
  </div>
129
129
  }
@@ -149,7 +149,7 @@ export default class foot extends Component {
149
149
  <div className="one">
150
150
  <img className="imgClass" src={require("../../assets/img/inspection.png").default} alt="" />
151
151
  <div className="text">
152
- 设备检测
152
+ 设置视频设备
153
153
  </div>
154
154
  </div>
155
155
  </div>
@@ -166,7 +166,7 @@ export default class foot extends Component {
166
166
 
167
167
  <div className="total totalThree">
168
168
  <button className="buttonClass" onClick={this.endSession.bind(this)}>
169
- <span className="spanClass">结束</span>
169
+ <span className="spanClass">结束会议</span>
170
170
  </button>
171
171
  </div>
172
172
  </div>
@@ -23,6 +23,9 @@ width: 100%;
23
23
  align-items: center;
24
24
  flex-wrap: nowrap;
25
25
  }
26
+ .footHover{
27
+ margin: 0 5px;
28
+ }
26
29
  .footHover :hover{
27
30
  background: #F3F3F3;
28
31
  border-radius: 8px;
@@ -31,7 +34,8 @@ width: 100%;
31
34
  margin-top: 8px;
32
35
  padding-bottom: 10px;
33
36
  text-align: center;
34
- width: 80px;
37
+ max-width: 110px;
38
+ min-width: 80px;
35
39
  height: 11px;
36
40
  font-size: 14px;
37
41
  font-family: PingFangSC-Regular, PingFang SC;
@@ -50,7 +54,7 @@ line-height: 11px;
50
54
  .buttonClass{
51
55
  font-size: 16px;
52
56
  color: #ffffff;
53
- width: 70px;
57
+ width: 90px;
54
58
  height: 32px;
55
59
  background: #B70000;
56
60
  border-radius: 6px;
@@ -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">汇丰银行远程会议</div>
12
12
  </div>
13
13
  </div>
14
14
  )
@@ -50,8 +50,6 @@ class Video extends Component {
50
50
  isWhiteboard: false,
51
51
  isSelect: '',
52
52
  loading: false,
53
- // isModalVisibleSign: '',
54
- isModalVisibleSign: this.props.isTranscribing,
55
53
  titleModal: '人脸识别',
56
54
  faceCustomerType: 1, // 1无感人脸,2ocr
57
55
  faceCustomerUid: '',
@@ -65,7 +63,7 @@ class Video extends Component {
65
63
  isModalVisibleFacial: false,
66
64
  isModalVisibleEnd: false,
67
65
  isModalVisible: false,
68
- screenName: '投屏',
66
+ screenName: '共享模式',
69
67
  suspendName: '暂停',
70
68
  cameraImg: cameraImgOpen,
71
69
  voiceStatue: false,
@@ -718,8 +716,24 @@ class Video extends Component {
718
716
  const cobj = canvas.getContext('2d'); // 获取绘图环境
719
717
  canvas.width = width;
720
718
  canvas.height = height;
721
-
722
- interval = setInterval(() => {
719
+ let blob = new Blob([
720
+ `
721
+ let timer;
722
+ onmessage = ({data:flag})=>{
723
+ if(!flag){
724
+ clearInterval(timer);
725
+ }else{
726
+ timer = setInterval(function() { postMessage(''); }, 100);
727
+ }
728
+ }
729
+ `,
730
+ ]);
731
+ let url = window.URL.createObjectURL(blob);
732
+ var worker = new Worker(url);
733
+ window.URL.revokeObjectURL(blob);
734
+ let flag1 = true;
735
+
736
+ worker.onmessage =() => {
723
737
  cobj.clearRect(0, 0, width, height);
724
738
  for (let i = 0; i < list.length; i++) {
725
739
 
@@ -858,7 +872,8 @@ class Video extends Component {
858
872
  }
859
873
 
860
874
  }
861
- }, 100);
875
+ };
876
+ worker.postMessage(flag1);
862
877
  const captureStream = canvas.captureStream();
863
878
  const mix_stream = new MediaStream(captureStream);
864
879
  pictureInPictureVideo = document.getElementById('mixedvideo');
@@ -877,7 +892,7 @@ class Video extends Component {
877
892
  pictureInPictureVideo.addEventListener('leavepictureinpicture', (event) => {
878
893
  pictureInPictureVideo.srcObject = null;
879
894
  pictureInPictureVideo.style.display = "none";
880
- clearInterval(interval);
895
+ worker.postMessage(false);
881
896
  this.state.isPictureInPicture = false
882
897
  });
883
898
  }
@@ -1507,6 +1522,9 @@ class Video extends Component {
1507
1522
  // 音视频关闭通知
1508
1523
  this.test_controller.OnMediaClose = (code, sid) => {
1509
1524
  console.log(code, sid)
1525
+ if((code == 5004 || code == 5007) && document.getElementById('publish_video1').name == sid) {
1526
+ this.roomCallBack(2, '媒体链路连接异常/超时',8)
1527
+ }
1510
1528
  };
1511
1529
  // 加入房间成功
1512
1530
  this.test_controller.OnJoinRoomSucc = () => {
@@ -1783,7 +1801,8 @@ class Video extends Component {
1783
1801
  'meetingInfo': {
1784
1802
  'title': this.props.meetingInfo.title,
1785
1803
  'host': this.props.meetingInfo.host,
1786
- 'customers': this.props.meetingInfo.customers
1804
+ 'customers': this.props.meetingInfo.customers,
1805
+ 'otherAttendees': this.props.meetingInfo.otherAttendees
1787
1806
  }
1788
1807
 
1789
1808
  })
@@ -1998,11 +2017,10 @@ class Video extends Component {
1998
2017
  'tellerId': this.props.tellerAccount
1999
2018
  })
2000
2019
  })
2001
- this.state.sessionType = false
2002
2020
  this.state.isSharedScreen = false
2003
2021
  this.setState({
2004
2022
 
2005
- screenName: '投屏'
2023
+ screenName: '共享模式'
2006
2024
  });
2007
2025
  this.tabTitlesClick('RMScreen', 'delect')
2008
2026
  if (this.state.isPictureInPicture) {
@@ -2288,10 +2306,10 @@ class Video extends Component {
2288
2306
  // 切流成功通知
2289
2307
  this.test_controller.OnChangeMediaStreamSuccess = (sid) => {
2290
2308
  console.log('切流成功通知', sid);
2291
- if(this.state.isModalVisibleInspection) {
2292
- this.messageClick('切换摄像头或麦克风成功','success')
2309
+ if(this.state.loading) {
2310
+ this.messageClick('摄像头或麦克风切换成功','success')
2293
2311
  this.setState({
2294
- isModalVisibleInspection: false
2312
+ loading: false
2295
2313
  })
2296
2314
  }
2297
2315
 
@@ -2303,7 +2321,12 @@ class Video extends Component {
2303
2321
  msg
2304
2322
  ) => {
2305
2323
  console.log('切流失败通知', sid, code, msg)
2324
+ if(this.state.loading) {
2325
+ this.setState({
2326
+ loading: false
2327
+ })
2306
2328
  this.messageClick('切换摄像头或麦克风失败,请先检查设备','error')
2329
+ }
2307
2330
  };
2308
2331
  // 服务端录制初始化成功
2309
2332
  this.test_controller.OnInitRemoteRecordSucc = (
@@ -2504,7 +2527,7 @@ class Video extends Component {
2504
2527
  this.timer && clearInterval(this.timer);
2505
2528
  if(this.state.isSharedScreen) {
2506
2529
  this.setState({
2507
- screenName: '投屏',
2530
+ screenName: '共享模式',
2508
2531
  })
2509
2532
  this.state.isSharedScreen = false
2510
2533
  this.state.laveRoomSharedScreen = true
@@ -2519,7 +2542,7 @@ class Video extends Component {
2519
2542
  })
2520
2543
  } else {
2521
2544
  this.setState({
2522
- screenName: '投屏',
2545
+ screenName: '共享模式',
2523
2546
  });
2524
2547
  this.state.isSharedScreen = false
2525
2548
  this.state.laveRoomSharedScreen = true
@@ -2811,7 +2834,7 @@ class Video extends Component {
2811
2834
  this.state.isSharedScreen = false
2812
2835
  this.state.isScreenSwitching = false
2813
2836
  this.setState({
2814
- screenName: '投屏'
2837
+ screenName: '共享模式'
2815
2838
  });
2816
2839
  console.log(pictureInPictureVideo)
2817
2840
  this.tabTitlesClick('RMScreen', 'delect')
@@ -2844,7 +2867,7 @@ class Video extends Component {
2844
2867
  this.tabTitlesClick(
2845
2868
  {
2846
2869
  value: 'RMScreen',
2847
- name: '坐席投屏'
2870
+ name: '共享内容'
2848
2871
  }, 'add'
2849
2872
  )
2850
2873
  if (!this.state.isPictureInPicture) {
@@ -2977,9 +3000,6 @@ class Video extends Component {
2977
3000
  };
2978
3001
  // 坐席签字
2979
3002
  transcribingClick = () => {
2980
- this.setState({
2981
- isModalVisibleSign: true,
2982
- })
2983
3003
  };
2984
3004
  invitationClick = () => {
2985
3005
  this.state.linkData = ''
@@ -3065,7 +3085,6 @@ class Video extends Component {
3065
3085
  })
3066
3086
  }
3067
3087
  componentWillReceiveProps(props) {
3068
- console.log('componentWillReceiveProps',props)
3069
3088
  this.state.channelId = props.roomId,
3070
3089
  this.state.rtoken = props.mtoken,
3071
3090
  this.state.sessionId = props.sessionId,
@@ -3222,38 +3241,10 @@ class Video extends Component {
3222
3241
  })
3223
3242
  }
3224
3243
  }
3225
- counterSign = async data => {
3226
- try {
3227
- let result = await API.counterSign({
3228
- sessionId: this.state.sessionId,
3229
- file: data.file
3230
- });
3231
- console.log(result)
3232
- if (result.code == 200) {
3233
- this.messageClick('签字成功','success')
3234
- this.setState({
3235
- isModalVisibleSign: false,
3236
- })
3237
- } else {
3238
- this.messageClick('签字失败','error')
3239
- }
3240
- } catch (err) {
3241
- if(err.status == 502 || err.status== 404) {
3242
- this.roomCallBack(2, '连接服务器失败','SYS-02')
3243
- }
3244
- }
3245
- }
3246
3244
  handleOkSign = () => {
3247
- this.setState({
3248
- isModalVisibleSign: false,
3249
- })
3250
- console.log(this.signCanvas.current.canvas.drawing.toDataURL('image/png'))
3251
3245
  this.props.imgRMCallback(
3252
3246
  this.signCanvas.current.canvas.drawing.toDataURL('image/png').replace(/data.+?;base64,/, "")
3253
3247
  )
3254
- // this.counterSign({
3255
- // file: this.signCanvas.current.canvas.drawing.toDataURL('image/png')
3256
- // })
3257
3248
  }
3258
3249
  switchExternal = () => {
3259
3250
  if (!this.state.isWhiteboard) {
@@ -3263,26 +3254,75 @@ class Video extends Component {
3263
3254
  value: 'RMWhiteboard',
3264
3255
  name: 'RM白板'
3265
3256
  }, 'add')
3266
- if (document.getElementById('video20').name) {
3267
- // 代表已经有了进行切流
3268
- publish_config.publish_device = 4
3269
- publish_config.media_type = 1
3270
- publish_config.sid = document.getElementById('video20').name
3271
- publish_config.part_of_screen_id = 'touBoxItem'
3272
- publish_config.video_profile_type = 5
3273
- this.test_controller.ChangeMediaStream(publish_config);
3274
- } else {
3275
-
3276
- publish_config.media_type = 1
3277
- publish_config.publish_device = 4
3278
- publish_config.need_volume_analyser = true
3279
- publish_config.video_profile_type = 5
3280
- publish_config.part_of_screen_id = 'touBoxItem';
3281
- publish_config.publish_video_id = 'video20'
3282
- publish_config.publish_streamId_id = 'subscribe_streamId10'
3283
- publish_config.publish_tag = 'projectionWhiteboard'
3284
- this.test_controller.Publish(publish_config)
3285
- }
3257
+ const width = this.state.whiteboardWidth;
3258
+ const height = this.state.whiteboardHeight;
3259
+ const canvas = document.createElement('canvas');
3260
+ const videoMedia = document.getElementById('manedvideo');
3261
+ const cobj = canvas.getContext('2d'); // 获取绘图环境
3262
+ const w = window.screen.width;
3263
+ const h = window.screen.height;
3264
+ canvas.width = width;
3265
+ canvas.height = height;
3266
+ videoMedia.addEventListener('play', (event) =>{
3267
+ var $this = this; //cache
3268
+ console.log('333111',!$this.paused,!$this.ended)
3269
+ loop()
3270
+ function loop() {
3271
+ if (!$this.paused && !$this.ended) {
3272
+ cobj.drawImage(videoMedia, 0, 0, width, height, 0, 0,width, height,);
3273
+ setTimeout(loop, 1000 / 10); // drawing at 30fps
3274
+ }
3275
+ }
3276
+
3277
+ if (document.getElementById('video20').name) {
3278
+ // 代表已经有了进行切流
3279
+ publish_config.publish_device = 5
3280
+ publish_config.media_type = 1
3281
+ publish_config.sid = document.getElementById('video20').name
3282
+ publish_config.stream = canvas.captureStream(10)
3283
+ publish_config.video_profile_type = 5
3284
+ this.test_controller.ChangeMediaStream(publish_config);
3285
+ } else {
3286
+
3287
+ publish_config.media_type = 1
3288
+ publish_config.publish_device = 5
3289
+ publish_config.need_volume_analyser = true
3290
+ publish_config.video_profile_type = 5
3291
+ publish_config.stream = canvas.captureStream(10)
3292
+ publish_config.publish_video_id = 'video20'
3293
+ publish_config.publish_streamId_id = 'subscribe_streamId10'
3294
+ publish_config.publish_tag = 'projectionWhiteboard'
3295
+ this.test_controller.Publish(publish_config)
3296
+ }
3297
+ }, 0);
3298
+ navigator.mediaDevices.getDisplayMedia({
3299
+ video: true
3300
+ })
3301
+ .then((stream) => {
3302
+ videoMedia.srcObject = stream;
3303
+ }, error => {
3304
+ console.log("Unable to acquire screen capture", error);
3305
+ });
3306
+ // if (document.getElementById('video20').name) {
3307
+ // // 代表已经有了进行切流
3308
+ // publish_config.publish_device = 4
3309
+ // publish_config.media_type = 1
3310
+ // publish_config.sid = document.getElementById('video20').name
3311
+ // publish_config.part_of_screen_id = 'touBoxItem'
3312
+ // publish_config.video_profile_type = 5
3313
+ // this.test_controller.ChangeMediaStream(publish_config);
3314
+ // } else {
3315
+
3316
+ // publish_config.media_type = 1
3317
+ // publish_config.publish_device = 4
3318
+ // publish_config.need_volume_analyser = true
3319
+ // publish_config.video_profile_type = 5
3320
+ // publish_config.part_of_screen_id = 'touBoxItem';
3321
+ // publish_config.publish_video_id = 'video20'
3322
+ // publish_config.publish_streamId_id = 'subscribe_streamId10'
3323
+ // publish_config.publish_tag = 'projectionWhiteboard'
3324
+ // this.test_controller.Publish(publish_config)
3325
+ // }
3286
3326
  } else {
3287
3327
  this.messageClick('当前已经切换RM白板','success')
3288
3328
 
@@ -3313,11 +3353,16 @@ class Video extends Component {
3313
3353
  this.test_controller.GetDevices()
3314
3354
  }
3315
3355
  handleOkInspection = () => {
3356
+ this.setState({
3357
+ isModalVisibleInspection: false,
3358
+ loading: true
3359
+ })
3316
3360
  const config = {}
3317
3361
  config.sid = document.getElementById('publish_video1').name
3318
3362
  config.videoSource = this.state.cameraValue
3319
3363
  config.audioSource = this.state.microphoneValue
3320
3364
  this.test_controller.ChangeProfile(config)
3365
+
3321
3366
  }
3322
3367
  handleCancelInspection = () => {
3323
3368
  this.setState({
@@ -3345,11 +3390,26 @@ class Video extends Component {
3345
3390
  }
3346
3391
  }
3347
3392
  render() {
3348
- const { meetingInfo } = this.props
3393
+ const { meetingInfo,isTranscribing } = this.props
3349
3394
  var pdfChildren
3350
3395
  if (this.props.children) {
3351
3396
  pdfChildren = React.cloneElement(this.props.children, { width: this.state.whiteboardWidth, height: this.state.whiteboardHeight, show: this.state.isSelect == 'RMWhiteboard'})
3352
3397
  }
3398
+ const otherAttendeesList = (
3399
+ <span className='labelClass'>
3400
+ {(meetingInfo.otherAttendees ? meetingInfo.otherAttendees.length>0 ? true : false : false) &&
3401
+ meetingInfo.otherAttendees.map((item, index) => {
3402
+ return <label key={index}>
3403
+ {item}
3404
+ {
3405
+ meetingInfo.otherAttendees.length > 0 && index != meetingInfo.otherAttendees.length - 1 && <label>,</label>
3406
+ }
3407
+
3408
+ </label>
3409
+ })
3410
+ }
3411
+ </span>
3412
+ )
3353
3413
  const customerNameList = (
3354
3414
  <span className='labelClass'>
3355
3415
  {
@@ -3447,9 +3507,9 @@ class Video extends Component {
3447
3507
  <Header></Header>
3448
3508
  <div className="health">
3449
3509
  <div className="healthVideo">
3450
- <div className="projection">
3510
+ <div className="projection" style={{background: this.state.tabTitles.length > 0 ? '#f0f0f0' : '#ffffff'}}>
3451
3511
  {tabTitleList}
3452
- <img style={sectionStyle} src={require("../../assets/img/placeholder_bg.png").default} alt="" />
3512
+ {/* <img style={sectionStyle} src={require("../../assets/img/placeholder_bg.png").default} alt="" /> */}
3453
3513
  <div id="whiteboardDIV" style={{height: this.state.tabTitles.length > 0 ? 'calc(100% - 33px)' : '100%'}}>
3454
3514
 
3455
3515
  <div className="videoDiv" style={{ display: (this.state.isSelect == 'RMScreen') ? '' : 'none', }}>
@@ -3466,6 +3526,7 @@ class Video extends Component {
3466
3526
 
3467
3527
  </div>
3468
3528
  <div className="videoDiv" style={{ display: (this.state.isSelect == 'RMWhiteboard') ? '' : 'none', }}>
3529
+ {/* <div className="videoDiv"> */}
3469
3530
  <div id="touBoxItem">
3470
3531
  {pdfChildren}
3471
3532
  </div>
@@ -3497,9 +3558,17 @@ class Video extends Component {
3497
3558
  <label className='labelClass'>{meetingInfo.host}</label>
3498
3559
  </li>
3499
3560
  <li>
3500
- <span>参会者:</span>
3561
+ <span>客户:</span>
3501
3562
  {customerNameList}
3502
3563
  </li>
3564
+ {
3565
+ (meetingInfo.otherAttendees ? meetingInfo.otherAttendees.length>0 ? true : false : false) && <li>
3566
+ <span>其他参会者:</span>
3567
+ {otherAttendeesList}
3568
+ </li>
3569
+ }
3570
+
3571
+
3503
3572
  </ul>
3504
3573
  </div>
3505
3574
  </div>
@@ -3919,7 +3988,7 @@ class Video extends Component {
3919
3988
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkEnd}>确定</Button>
3920
3989
  </div>
3921
3990
  ]}>
3922
- <div className='endModal'>确定是否结束会话?</div>
3991
+ <div className='endModal'>是否要结束并退出会议?</div>
3923
3992
  </Modal>
3924
3993
  <Modal title={this.state.titleModal} closable={false} centered={true} visible={this.state.isModalVisibleFacial} footer={[
3925
3994
  <div key='facial'>
@@ -3938,7 +4007,7 @@ class Video extends Component {
3938
4007
  </div>
3939
4008
 
3940
4009
  </Modal> */}
3941
- <Modal className="modelClass" title="新增预约" closable={false} centered={true} visible={this.state.isModalVisibleInvitation} footer={[
4010
+ <Modal className="modelClass" title="邀请参会人员" closable={false} centered={true} visible={this.state.isModalVisibleInvitation} footer={[
3942
4011
  <div key='invitation'>
3943
4012
  <Button className="modelButtonCancel" onClick={this.handleCancelInvitation}>取消</Button>
3944
4013
  {
@@ -3973,7 +4042,7 @@ class Video extends Component {
3973
4042
  }
3974
4043
 
3975
4044
  </Modal>
3976
- <Modal title="签字白板" width={600} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleSign} footer={
4045
+ <Modal title="签字白板" width={600} destroyOnClose={true} closable={false} centered={true} visible={isTranscribing} footer={
3977
4046
  [
3978
4047
  <div key='okSign'>
3979
4048
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkSign}>确定</Button>
@@ -3992,21 +4061,21 @@ class Video extends Component {
3992
4061
  ></CanvasDraw>
3993
4062
  </div>
3994
4063
  </Modal>
3995
- <Modal title="设备检测" closable={false} centered={true} visible={this.state.isModalVisibleInspection} footer={[
4064
+ <Modal title="设置视频设备" closable={false} centered={true} visible={this.state.isModalVisibleInspection} footer={[
3996
4065
  <div key='inspection'>
3997
4066
  <Button className="modelButtonCancel" onClick={this.handleCancelInspection}>取消</Button>
3998
4067
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkInspection}>确定</Button>
3999
4068
  </div>
4000
4069
  ]}>
4001
4070
  <div className="inspection">
4002
- <div>摄像头设备:</div>
4071
+ <div>摄像头:</div>
4003
4072
  {camera}
4004
- <div>麦克风设备:</div>
4073
+ <div>麦克风:</div>
4005
4074
  {microphone}
4006
4075
  {
4007
4076
  this.state.speakerList.length > 0 &&
4008
4077
  <span>
4009
- <div>扬声器设备:</div>
4078
+ <div>扬声器:</div>
4010
4079
  {speaker}
4011
4080
  </span>
4012
4081
  }
@@ -4014,6 +4083,8 @@ class Video extends Component {
4014
4083
  </div>
4015
4084
  </Modal>
4016
4085
  <video className="mixedvideo" id="mixedvideo" autoPlay muted={true} width="0" height="0"></video>
4086
+ <video className="mixedvideo" id="manedvideo" autoPlay width="0" height="0"></video>
4087
+
4017
4088
  </Spin>
4018
4089
  </div>);
4019
4090
  }
@@ -4025,7 +4096,7 @@ imRoomId: "Fwua8kGB6@conference.openfire2.leimondata.cn",
4025
4096
  sessionId: "Fwua8kGB6",
4026
4097
  tellerAccount: 't001',
4027
4098
  businessNumber: '123',
4028
- callbackUrl: 'http://47.102.126.132:8720/hsbc/callback',
4099
+ callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
4029
4100
  // roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
4030
4101
  roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
4031
4102
 
@@ -4043,7 +4114,8 @@ sessionId: "Fwua8kGB6",
4043
4114
  meetingInfo: {
4044
4115
  title: '--',
4045
4116
  host: '--',
4046
- customers: ['--']
4117
+ customers: ['--'],
4118
+ otherAttendees: undefined
4047
4119
  },
4048
4120
  isTranscribing: false,
4049
4121
  }
@@ -164,7 +164,7 @@
164
164
  .projection{
165
165
  width: 80%;
166
166
  position: relative;
167
- background: #f3f3f3;
167
+ // background: #fff;
168
168
  color: #333;
169
169
  border-radius: 0 4px 4px 4px;
170
170
  text-align: left;