react_hsbc_teller 1.7.5 → 1.7.8

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.7.5",
3
+ "version": "1.7.8",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
Binary file
@@ -15,16 +15,16 @@ roomId: "656467744508298",
15
15
  // sessionId: '',
16
16
  isVideo: false,
17
17
  tellerAccount: '00000000',
18
- callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
19
- // callbackUrl: 'https://aag.wealth-platform.uat.ali.cloud.cn.hsbc/nosaml/api/appointment/wealth/api/v1/appointment/ali/createMeetingRoom',
18
+ // callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
19
+ callbackUrl: 'https://aag.wealth-platform.uat.ali.cloud.cn.hsbc/nosaml/api/appointment/wealth/api/v1/appointment/ali/createMeetingRoom',
20
20
  businessNumber: '',
21
21
  lang: 'zh',
22
- roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
23
- baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
24
- resourcePath: 'https://counter-web.leimondata.cn:7199',
25
- // roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
26
- // baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
27
- // resourcePath:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/js/',
22
+ // roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
23
+ // baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
24
+ // resourcePath: 'https://counter-web.leimondata.cn:7199',
25
+ roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
26
+ baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
27
+ resourcePath:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/js/',
28
28
  prohibitPrompt: '无客户',
29
29
  titleBackground: '#40a9ff',
30
30
  titleColor: '#faad14',
@@ -56,6 +56,9 @@ export default class foot extends Component {
56
56
  graffiti=()=>{
57
57
  this.props.graffiti()
58
58
  }
59
+ virtualization=()=>{
60
+ this.props.virtualization()
61
+ }
59
62
  render() {
60
63
  const {clickedOcr,clickedFacial,img,isWhiteboard,cameraImg,isTranscribing ,screenName,suspendName,customerList,menus,voiceName,beautyName} = this.props
61
64
  const content = (
@@ -81,8 +84,7 @@ export default class foot extends Component {
81
84
  </div>
82
85
  </div>
83
86
  </div>
84
- } */}
85
-
87
+ } */}
86
88
  {
87
89
  menus.map((item,index)=>{
88
90
  return <div key={index}className='footHover'>
@@ -95,6 +97,16 @@ export default class foot extends Component {
95
97
  </div>
96
98
  </div>
97
99
  </div>
100
+ }
101
+ {
102
+ item == 'BACK'&&<div className='footHover' onClick={this.virtualization.bind(this)}>
103
+ <div className="one">
104
+ <img className="imgClass" src={require("../../assets/img/beijing.png").default} alt="" />
105
+ <div className="text">
106
+ 背景虚化
107
+ </div>
108
+ </div>
109
+ </div>
98
110
  }
99
111
  {
100
112
  item == 'BOARD'&&<div className='footHover' onClick={this.switchExternal.bind(this)}>
@@ -45,8 +45,9 @@ let messageValue = ''
45
45
  let beautyNum = 0 // 0-关闭 1--弱 2--中 5---高
46
46
  let rateList = []
47
47
  let beautyDiv = {};
48
- let isBackgroundBlur = false
48
+ let isBackgroundBlur = true
49
49
  let isSuccuseHs = false
50
+ let isGraffiti = false
50
51
  let CanvasHome = styled.div`
51
52
  position: fixed;
52
53
  z-index: ${props=>props.zIndexNum};
@@ -94,27 +95,47 @@ function startBeauty(stream) {
94
95
  beautyDiv = meetingBeautifyStream(newStream, beautyNum);
95
96
  newStream = beautyDiv.stream;
96
97
  return newStream
98
+ }
99
+ async function startMix(stream,onState) {
100
+ var drawCanvas = document.getElementById('canvas');
101
+ await mixInit(drawCanvas);
102
+ mixStart(stream,onState);
103
+
104
+
97
105
  }
98
106
  async function startHs(stream) {
99
107
  // var canvas = document.getElementById('publish_video_canvas');
100
- var video_src = document.getElementById("publish_video1");
101
- var mode = 'blur';
102
- video_src.srcObject = stream;
108
+ // var video_src = document.getElementById("publish_video1");
109
+ // video_src.srcObject = stream;
103
110
 
104
111
  await hsInit();
105
- isSuccuseHs = true;
106
- hsStart(stream, mode);
112
+
113
+ hsStart(stream, 'none');
107
114
 
108
115
  }
109
116
 
110
117
  async function stopHs() {
111
- var video_src = document.getElementById("publish_video1");
112
- if(video_src) {
113
- console.log('video_src',video_src)
114
- video_src.srcObject = null;
115
- isSuccuseHs = false
116
- hsStop();
118
+ var stop_stream = true;//控制是否内部来进行关闭流
119
+ var stream = hsStop(stop_stream);
120
+ if (stream != null && stream != undefined) {
121
+ stream.getTracks().forEach((track) => {
122
+ track.stop();
123
+ });
124
+ stream = null;
125
+ }
126
+ isSuccuseHs = false
127
+
117
128
  }
129
+ async function mixStopClick() {
130
+ var stop_stream = true;//控制是否内部来进行关闭流
131
+ var stream = mixStop(stop_stream);
132
+ if (stream != null && stream != undefined) {
133
+ stream.getTracks().forEach((track) => {
134
+ track.stop();
135
+ });
136
+ stream = null;
137
+ }
138
+ isGraffiti = false
118
139
 
119
140
  }
120
141
  message.config({
@@ -134,8 +155,10 @@ class Video extends Component {
134
155
  isScreenSwitching: false,
135
156
  whiteboardWidth: '',
136
157
  whiteboardHeight: '',
158
+ widthVideo: '',
137
159
  whiteboardTop: '',
138
160
  whiteboardLeft: '',
161
+ leftVideo: '',
139
162
  laveRoomSharedScreen: false,
140
163
  isJoinRoom: false,
141
164
  sessionType: false,
@@ -424,11 +447,11 @@ class Video extends Component {
424
447
  handleEdit = () => {
425
448
  console.log(JSON.parse(window.sessionStorage.getItem('sigData')));
426
449
  // eslint-disable-next-line no-undef
427
- initWebSocket('wss://im.uat.dsp.hsbcfts.com.cn:443/wealth/im/ws/')
450
+ // initWebSocket('wss://im.uat.dsp.hsbcfts.com.cn:443/wealth/im/ws/')
428
451
  // initWebSocket('wss://' + JSON.parse(window.sessionStorage.getItem('sigData')).hostname + ':' + '15603' + '/ws/');
429
452
  if(!this.state.imStatus){
430
453
  this.state.manualClose = false
431
- // initWebSocket('wss://' + JSON.parse(window.sessionStorage.getItem('sigData')).hostname + ':' + JSON.parse(window.sessionStorage.getItem('sigData')).webPort + '/ws/');
454
+ initWebSocket('wss://' + JSON.parse(window.sessionStorage.getItem('sigData')).hostname + ':' + JSON.parse(window.sessionStorage.getItem('sigData')).webPort + '/ws/');
432
455
 
433
456
  }
434
457
  const config_param = {};
@@ -2198,42 +2221,100 @@ class Video extends Component {
2198
2221
  this.test_controller.OnSendTextMsgFailed =(msgId, code, msg)=>{
2199
2222
  console.log('发送失败',msgId,code, msg)
2200
2223
  }
2201
- // this.test_controller.StreamFilterHandler = async function (publish_tag, stream, stream_type, publish_device, media_type) {
2202
- // console.log(`stream processed by client, publish_device=${publish_device}, media_type=${media_type}, publish_tag=${publish_tag},stream_type=${stream_type}`);
2203
- // if (stream_type == "subscribe") {
2204
- // return stream
2205
- // }
2206
- // if (media_type == 2 || media_type == 4) {
2207
- // return stream
2208
- // }
2209
- // if(publish_tag == 'tag1') {
2210
- // let newStream = stream;
2211
- // let beauty_strength = beautyNum;
2212
- // if (beauty_strength != 0 && stream.getVideoTracks()[0]) {
2213
- // newStream = new MediaStream([startBeauty(stream).getVideoTracks()[0]]);
2214
- // // 清理原始流
2215
- // newStream.oninactive = function () {
2216
- // clearOriginStream(stream);
2217
- // };
2218
- // newStream.getVideoTracks()[0].onended = function () {
2219
- // clearOriginStream(stream);
2220
- // };
2221
- // function clearOriginStream(stream) {
2222
- // stream.getTracks().forEach((track) => {
2223
- // track.stop();
2224
- // });
2225
- // stream = null;
2226
- // }
2227
- // };
2228
- // if (stream.getAudioTracks()[0] && newStream.addTrack) {
2229
- // newStream.addTrack(stream.getAudioTracks()[0])
2230
- // }
2231
- // return newStream
2232
- // } else {
2233
- // return stream
2234
- // }
2224
+ this.test_controller.StreamFilterHandler = async (publish_tag, stream, stream_type, publish_device, media_type) =>{
2225
+ console.log(`stream processed by client, publish_device=${publish_device}, media_type=${media_type}, publish_tag=${publish_tag},stream_type=${stream_type}`);
2226
+ if (stream_type == "subscribe") {
2227
+ return stream
2228
+ }
2229
+ if (media_type == 2 || media_type == 4) {
2230
+ return stream
2231
+ }
2232
+ // if (publish_device != 2) {
2233
+ // return stream
2234
+ // }
2235
+ if(publish_tag == 'tag1') {
2236
+ console.log('tag1',stream)
2237
+ let newStream = stream;
2238
+ let beauty_strength = beautyNum;
2239
+ if (beauty_strength != 0 && stream.getVideoTracks()[0]) {
2240
+ newStream = new MediaStream([startBeauty(stream).getVideoTracks()[0]]);
2241
+ // 清理原始流
2242
+ newStream.oninactive = function () {
2243
+ clearOriginStream(stream);
2244
+ };
2245
+ newStream.getVideoTracks()[0].onended = function () {
2246
+ clearOriginStream(stream);
2247
+ };
2248
+ function clearOriginStream(stream) {
2249
+ stream.getTracks().forEach((track) => {
2250
+ track.stop();
2251
+ });
2252
+ stream = null;
2253
+ }
2254
+ };
2255
+ if (stream.getVideoTracks()[0]) {
2256
+ await startHs(newStream);
2257
+ newStream = hsCaptureStream();
2258
+ // 清理原始流
2259
+ newStream.oninactive = function () {
2260
+ clearOriginStream(stream);
2261
+ };
2262
+ newStream.getVideoTracks()[0].onended = function () {
2263
+ clearOriginStream(stream);
2264
+ };
2265
+ function clearOriginStream(stream) {
2266
+ stream.getTracks().forEach((track) => {
2267
+ track.stop();
2268
+ });
2269
+ stream = null;
2270
+ }
2271
+ }
2272
+ if (stream.getAudioTracks()[0] && newStream.addTrack) {
2273
+ newStream.addTrack(stream.getAudioTracks()[0])
2274
+ }
2275
+ return newStream
2276
+ }
2277
+
2278
+ if(publish_tag == 'projectionWhiteboard' && publish_device == 2) {
2279
+ // this.graffiti()
2280
+ console.log('projectionWhiteboard',stream)
2281
+ let newStream1 = stream;
2282
+ if (stream.getVideoTracks()[0]) {
2283
+ if(this.state.operateShow) {
2284
+ await startMix(newStream1,'mix');
2285
+
2286
+ isGraffiti = true
2287
+ this.setState({
2288
+ zIndexNum: 999
2289
+ })
2290
+ const canvas = document.getElementById('canvas');
2291
+ canvas.width = this.state.widthVideo
2292
+ } else {
2293
+ await startMix(newStream1,'none');
2294
+ }
2295
+
2296
+ newStream1 = mixCaptureStream();
2297
+ console.log('projectionWhiteboard1',newStream1)
2298
+ // 清理原始流
2299
+ newStream1.oninactive = function () {
2300
+ clearOriginStream(stream);
2301
+ };
2302
+ newStream1.getVideoTracks()[0].onended = function () {
2303
+ clearOriginStream(stream);
2304
+ };
2305
+ function clearOriginStream(stream) {
2306
+ stream.getTracks().forEach((track) => {
2307
+ track.stop();
2308
+ });
2309
+ stream = null;
2310
+ }
2311
+ }
2312
+ return newStream1
2313
+ } else {
2314
+ return stream
2315
+ }
2235
2316
 
2236
- // }
2317
+ }
2237
2318
  // 发布媒体流成功
2238
2319
  this.test_controller.OnPublishSucc = (sid) => {
2239
2320
  console.log('发布媒体流成功', sid)
@@ -2258,7 +2339,8 @@ class Video extends Component {
2258
2339
  if(box){ //此处在加一层判断,更加严密,如果box存在的情况下获取
2259
2340
  this.setState({
2260
2341
  whiteboardTop: box.getBoundingClientRect().top * 1.08 - 40,
2261
- whiteboardLeft: box.getBoundingClientRect().left
2342
+ whiteboardLeft: box.getBoundingClientRect().left,
2343
+ leftVideo: (box.offsetWidth - this.state.widthVideo)/2 + box.getBoundingClientRect().left
2262
2344
  })
2263
2345
  console.log('whiteboardDIV',this.state.whiteboardTop,this.state.whiteboardLeft)
2264
2346
  }
@@ -3053,6 +3135,9 @@ class Video extends Component {
3053
3135
  if(isSuccuseHs) {
3054
3136
  stopHs();
3055
3137
  }
3138
+ if(isGraffiti) {
3139
+ mixStopClick()
3140
+ }
3056
3141
 
3057
3142
  console.log('退出房间回调', leaveType);
3058
3143
  };
@@ -3640,11 +3725,12 @@ userType:'1'
3640
3725
  this.props.resourcePath + "/html2canvas.js",
3641
3726
  this.props.resourcePath + "/dom-to-image.js",
3642
3727
 
3643
- // this.props.resourcePath + "/hs/hs_human_segmentation_wrapper.js",
3644
- // this.props.resourcePath + "/hs/hs_human_segmentation.js",
3645
- // this.props.resourcePath + "/hs/hs_human_segmentation.wasm",
3728
+ this.props.resourcePath + "/hs/hs_human_segmentation_wrapper.js",
3729
+ this.props.resourcePath + "/hs/hs_human_segmentation.js",
3730
+ this.props.resourcePath + "/hs/hs_human_segmentation.wasm",
3646
3731
 
3647
-
3732
+ this.props.resourcePath + "/mix/mix_frame.js",
3733
+ this.props.resourcePath + "/mix/pageBoard.js"
3648
3734
 
3649
3735
  ]
3650
3736
  const that = this
@@ -4239,9 +4325,9 @@ userType:'1'
4239
4325
  facialImg: ocrImage,
4240
4326
  },()=>{
4241
4327
  this.setState({
4242
- isModalVisibleFacial: true,
4243
- })
4328
+ isModalVisibleFacial: true,
4244
4329
  })
4330
+ })
4245
4331
  }
4246
4332
  }
4247
4333
  sgsinImage=()=>{
@@ -4521,6 +4607,14 @@ userType:'1'
4521
4607
 
4522
4608
  videoMedia.addEventListener('play', (event) =>{
4523
4609
  var $this = this; //cache
4610
+ if($this.state.operateShow) {
4611
+ isGraffiti = false
4612
+ this.setState({
4613
+ zIndexNum: 999
4614
+ })
4615
+ const canvas = document.getElementById('canvas');
4616
+ canvas.width = this.state.whiteboardWidth
4617
+ }
4524
4618
  console.log('addEventListener',!$this.paused,!$this.ended,x, y, width, height)
4525
4619
  loop()
4526
4620
  function loop() {
@@ -4562,6 +4656,7 @@ userType:'1'
4562
4656
  navigator.mediaDevices.getDisplayMedia({
4563
4657
  video: true,
4564
4658
  preferCurrentTab:true,
4659
+ audio: true
4565
4660
  // video: {
4566
4661
  // width: document.body.clientWidth,
4567
4662
  // height: document.body.clientHeight
@@ -4581,6 +4676,7 @@ userType:'1'
4581
4676
  })
4582
4677
 
4583
4678
  streamShare = stream
4679
+
4584
4680
  stream.getVideoTracks()[0].onended = async ()=>{
4585
4681
  //单击停止共享按钮后,触发这个事件
4586
4682
  streamShare = ''
@@ -4664,13 +4760,30 @@ userType:'1'
4664
4760
  img.src = base64;
4665
4761
  document.body.appendChild(img);
4666
4762
 
4763
+ }
4764
+ graffitiClick=async()=>{
4765
+ if(!isGraffiti) {
4766
+ if (this.state.tabTitles.find(el=>el.value == 'RMScreen')) {
4767
+ // await startMix(document.getElementById('video20').srcObject);
4768
+ // document.getElementById('video20').srcObject = mixCaptureStream();
4769
+
4770
+ mixSetMode('mix')
4771
+ isGraffiti = true
4772
+ console.log('isGraffiti',isGraffiti)
4773
+ const canvas = document.getElementById('canvas');
4774
+ canvas.width = this.state.widthVideo
4775
+ }
4776
+ }
4777
+
4667
4778
  }
4668
4779
  graffiti=()=>{
4780
+
4669
4781
  if(!this.state.operateShow) {
4670
4782
  this.setState({
4671
4783
  zIndexNum: 999
4672
4784
  })
4673
4785
  this.change(true)
4786
+
4674
4787
  }
4675
4788
 
4676
4789
  }
@@ -4679,6 +4792,13 @@ userType:'1'
4679
4792
  zIndexNum: -1
4680
4793
  })
4681
4794
  this.change(false)
4795
+ if(isGraffiti) {
4796
+ isGraffiti = false
4797
+ mixSetMode('none')
4798
+ console.log('isGraffiti',isGraffiti)
4799
+ // var stream = mixStop(false);
4800
+ // document.getElementById('video20').srcObject = stream
4801
+ }
4682
4802
  }
4683
4803
  change(val) {
4684
4804
  this.setState({ operateShow: val })
@@ -4690,6 +4810,7 @@ userType:'1'
4690
4810
  setTimeout(() => {
4691
4811
  this.openCanvas(canvas)
4692
4812
  }, 0);
4813
+ this.graffitiClick()
4693
4814
  } else {
4694
4815
  // this.downCanvas()
4695
4816
  this.closeCanvas();
@@ -4769,8 +4890,10 @@ userType:'1'
4769
4890
  if(box){ //此处在加一层判断,更加严密,如果box存在的情况下获取
4770
4891
  this.state.whiteboardWidth = box.offsetWidth,
4771
4892
  this.state.whiteboardHeight = box.offsetHeight * 0.92,
4893
+ this.state.widthVideo = this.state.whiteboardHeight * 1280 / 720
4772
4894
  this.state.whiteboardTop = box.getBoundingClientRect().top * 1.08 - 40
4773
4895
  this.state.whiteboardLeft = box.getBoundingClientRect().left
4896
+ this.state.leftVideo = (box.offsetWidth - this.state.widthVideo)/2 + box.getBoundingClientRect().left
4774
4897
  console.log('whiteboardDIV', this.state.whiteboardHeight,this.state.whiteboardWidth,this.state.whiteboardTop,this.state.whiteboardLeft)
4775
4898
  }
4776
4899
  }
@@ -4906,6 +5029,20 @@ userType:'1'
4906
5029
  });
4907
5030
  },100)
4908
5031
 
5032
+ }
5033
+ virtualizationClick=async()=>{
5034
+ if(!isSuccuseHs) {
5035
+
5036
+ hsSetMode('blur')
5037
+ isSuccuseHs = true
5038
+ } else {
5039
+ hsSetMode('none')
5040
+ isSuccuseHs = false
5041
+ }
5042
+ }
5043
+ virtualization=()=>{
5044
+ this.virtualizationClick()
5045
+
4909
5046
  }
4910
5047
  handleChangeIdCardName = (event) => {
4911
5048
  this.setState({idCardName: event.target.value});
@@ -5060,7 +5197,7 @@ userType:'1'
5060
5197
  {tabTitleList}
5061
5198
  {/* <img style={sectionStyle} src={require("../../assets/img/placeholder_bg.png").default} alt="" /> */}
5062
5199
  <div id="whiteboardDIV" style={{height: 'calc(100% - 33px)'}}>
5063
- <CanvasHome zIndexNum={this.state.zIndexNum} style={{width: this.state.whiteboardWidth + 'Px',height: this.state.whiteboardHeight + 'Px',top: this.state.whiteboardTop + 'Px',left:this.state.whiteboardLeft + 'Px'}}>
5200
+ <CanvasHome zIndexNum={this.state.zIndexNum} style={{width: isGraffiti ? this.state.widthVideo + 'px' : this.state.whiteboardWidth + 'Px',height: this.state.whiteboardHeight + 'Px',top: this.state.whiteboardTop + 'Px',left: isGraffiti ? this.state.leftVideo + 'px' :this.state.whiteboardLeft + 'Px'}}>
5064
5201
  {this.state.operateShow &&
5065
5202
  <OpreateDiv id="operate">
5066
5203
  <span style={{color: this.state.selectSpan == 'pen' ? '#1890ff' : '#333'}} onClick={() => this.setTool('pen')}>铅笔</span>
@@ -5074,11 +5211,12 @@ userType:'1'
5074
5211
  <canvas id="canvas" className="canvas"></canvas>
5075
5212
  </CanvasHome>
5076
5213
  <div className="videoDiv" style={{ display: (this.state.isSelect == 'RMScreen' || this.state.isSelect == 'staffScreen') ? '' : 'none', }}>
5077
- <div className="videoDiv">
5214
+ <div className="videoDiv" style={{'text-align': 'center'}}>
5078
5215
  <video
5079
5216
  id="video20"
5080
5217
  autoPlay
5081
5218
  muted={true}
5219
+ style={{ height: this.state.whiteboardHeight + 'px',width: this.state.widthVideo + 'px'}}
5082
5220
  className="videoTab"
5083
5221
  disablePictureInPicture
5084
5222
  />
@@ -5565,6 +5703,7 @@ userType:'1'
5565
5703
  inspection={this.inspection}
5566
5704
  beautyClick={this.beautyClick}
5567
5705
  graffiti={this.graffiti}
5706
+ virtualization={this.virtualization}
5568
5707
  ></Foot>
5569
5708
  <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} onOk={this.handleOk}
5570
5709
  onCancel={this.handleCancel}>
@@ -5737,7 +5876,7 @@ sessionId: "",
5737
5876
  microphoneSize: 25,
5738
5877
  fontSize: '14',
5739
5878
  fontFamily: 'auto',
5740
- menus: ['BOARD','SHARE', 'FRIES', 'OCR', 'INVITE', 'PIP', 'BEAUTY','GRAFFITI'],
5879
+ menus: ['BOARD','SHARE', 'FRIES', 'OCR', 'INVITE', 'PIP', 'BEAUTY','GRAFFITI','BACK'],
5741
5880
  customLeaveRoom: '客户离开房间',
5742
5881
  meetingInfo: {
5743
5882
  title: '--',