react_hsbc_teller 1.4.5 → 1.4.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.4.5",
3
+ "version": "1.4.8",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -1,6 +1,26 @@
1
1
  import Server from './server';
2
2
 
3
3
  class API extends Server{
4
+
5
+ async rateAll(params = {}){
6
+ // return this.axios('get', '/lang/select/2', params);
7
+ try{
8
+ let result = await this.axios('get', '/hsbc/rate/all', params);
9
+ if(result && (result.data instanceof Object) && result.code === 200){
10
+ return result||[];
11
+ }else{
12
+ let err = {
13
+ tip: '服务异常',
14
+ response: result,
15
+ data: params,
16
+ // url: 'https://api.cangdu.org/shopro/data/products',
17
+ }
18
+ throw err;
19
+ }
20
+ }catch(err){
21
+ throw err;
22
+ }
23
+ }
4
24
  async getBase64Image(params = {}){
5
25
  // return this.axios('get', '/lang/select/2', params);
6
26
  try{
@@ -4,17 +4,22 @@ import Pdf from './pdf.js'
4
4
 
5
5
  class Demo extends Component {
6
6
  state = {
7
- // imRoomId: "9K9ea1vOM@conference.ls-im-xmpp.chinawp.dev.ali.cloud.cn.hsbc",
8
- // sessionId: "9K9ea1vOM",
9
- // mtoken: "d4e648858b03",
10
- // roomId: "645110140224386",
11
- roomId: '',
12
- mtoken: '',
13
- imRoomId: '',
14
- sessionId: '',
7
+ shareMask: false,
8
+ mtoken: "84d0410ab406",
9
+
10
+ roomId: "651114052525526",
11
+
12
+ imRoomId: "VPP0Ejwae@conference.openfire2.leimondata.cn",
13
+
14
+ sessionId: "VPP0Ejwae",
15
+ // roomId: '',
16
+ // mtoken: '',
17
+ // imRoomId: '',
18
+ // sessionId: '',
15
19
  isVideo: false,
16
20
  tellerAccount: '00000000',
17
21
  callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
22
+ // callbackUrl: 'https://aag.wealth-platform.uat.ali.cloud.cn.hsbc/nosaml/api/appointment/wealth/api/v1/appointment/ali/createMeetingRoom',
18
23
  businessNumber: '',
19
24
  lang: 'zh',
20
25
  roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
@@ -29,7 +34,7 @@ class Demo extends Component {
29
34
  microphoneSize: 50,
30
35
  fontSize: 14,
31
36
  fontFamily: 'auto',
32
- isTranscribing: false
37
+ isTranscribing: true
33
38
  }
34
39
  componentWillMount() {
35
40
  // if(window.localStorage.getItem('roomId')) {
@@ -111,7 +116,25 @@ handleResourcePath = (event) => {
111
116
  })
112
117
  }
113
118
  imgCallback=(file)=>{
114
- console.log(file)
119
+ console.log('errorType',file)
120
+ }
121
+ shareMaskClick=()=>{
122
+ console.log(this.state.shareMask)
123
+
124
+ if(this.state.shareMask) {
125
+ this.setState({
126
+ shareMask: false
127
+ }, ()=>{
128
+ console.log(this.state.shareMask)
129
+ })
130
+ } else {
131
+ this.setState({
132
+ shareMask: true
133
+ }, ()=>{
134
+ console.log(this.state.shareMask)
135
+ })
136
+ }
137
+
115
138
  }
116
139
  createRoomCallback=(data)=>{
117
140
  console.log('createRoomCallback', data)
@@ -143,7 +166,9 @@ joinRoomCallback=(data)=>{
143
166
  <div className="test">
144
167
  {
145
168
  this.state.isVideo ?
169
+ <div>
146
170
  <HSBC
171
+ shareMask={this.state.shareMask}
147
172
  roomId={this.state.roomId}
148
173
  mtoken={this.state.mtoken}
149
174
  sessionId={this.state.sessionId}
@@ -171,6 +196,8 @@ joinRoomCallback=(data)=>{
171
196
 
172
197
  <Pdf></Pdf>
173
198
  </HSBC>
199
+ <button onClick={this.shareMaskClick.bind(this)}>遮罩层</button>
200
+ </div>
174
201
  :
175
202
  <div>
176
203
  坐席账号:<input placeholder="请输入坐席账号" value={this.state.tellerAccount} onChange={e => this.handleChangeTeller(e)}></input>
@@ -38,6 +38,7 @@ let streamShare
38
38
  let muteJson = new Map()
39
39
  let dateTime = 0
40
40
  let messageValue = ''
41
+ let rateList = []
41
42
  var os = function() {
42
43
  var ua = navigator.userAgent,
43
44
  isWindowsPhone = /(?:Windows Phone)/.test(ua),
@@ -205,11 +206,11 @@ class Video extends Component {
205
206
  {
206
207
  type: false
207
208
  }
208
- ]
209
+ ],
210
+ shareMaskState: false,
209
211
  };
210
212
  // eslint-disable-next-line no-undef
211
213
  test_controller = '';
212
-
213
214
  /**
214
215
  * 创建房间成功后回调后台
215
216
  * @param {JSON} data 数据类型
@@ -282,7 +283,8 @@ class Video extends Component {
282
283
  this.tabTitlesClick('customerScreen', 'delect')
283
284
  this.props.imgCallback({
284
285
  type: result.data.type + '',
285
- file: result.data.base64Image}
286
+ file: result.data.base64Image,
287
+ errorType: 0}
286
288
  )
287
289
  } catch (err) {
288
290
  console.error(err);
@@ -399,132 +401,168 @@ class Video extends Component {
399
401
  ];
400
402
  this.test_controller.InitRoomConfig(config_param)
401
403
  };
404
+ rateAll = async() =>{
405
+ let data = ''
406
+ try {
407
+ let result = await API.rateAll();
408
+ console.log(result)
409
+
410
+ if (result.code == 200) {
411
+ data = result.data ? result.data : ''
412
+ }
413
+ return data
414
+ }catch (err) {
415
+ return data
416
+ }
417
+ }
402
418
  // 开启录制
403
419
  enableServerRecording = () => {
404
- const filePath = 'recordId_' + new Date().valueOf();
405
- const recordParam = {};
406
- recordParam.width = 1920;
407
- recordParam.height = 1080;
408
- recordParam.recordTotalStream = 0;
409
- recordParam.startTimeout = 10;
410
- recordParam.splitType = 0;
411
- recordParam.endType = 1;
412
- recordParam.crf = 26
413
- recordParam.overlaps = [
414
- {
415
- tag: '', // 流 tag,如果不设置或为空,则为全局⽔印
416
- type: 1, // 1 为时间戳⽔印;2 为⽂字⽔印;3 为图⽚⽔印
417
- id: 1, // ⽔印 ID
418
- enable: true,
419
- xPosition: 10, // x 轴位置
420
- yPosition: 10, // y 轴位置
421
- text: '', // ⽔印⽂字
422
- fontSize: 16, // 字体⼤⼩
423
- url: '' // ⽔印图⽚ HTTP 地址
424
- },
425
- ];
426
- recordParam.tagPositions = [
427
- {
428
- tag: 'projectionWhiteboard',
429
- xPosition: 0,
430
- yPosition: 270,
431
- width: 1280,
432
- height: 720
433
- },
434
- {
435
- tag: 'VIDEO_SOURCE_SCREEN',
436
- xPosition: 1290,
437
- yPosition: 640,
438
- width: 630,
439
- height: 350
440
- },
441
- {
442
- tag: 'tag1',
443
- xPosition: 0,
444
- yPosition: 0,
445
- width: 310,
446
- height: 180
447
- },
448
- {
449
- tag: 'customer1',
450
- xPosition: 320,
451
- yPosition: 0,
452
- width: 310,
453
- height: 180
454
- },
455
- {
456
- tag: 'customer2',
457
- xPosition: 640,
458
- yPosition: 0,
459
- width: 310,
460
- height: 180
461
- },
462
- {
463
- tag: 'customer3',
464
- xPosition: 960,
465
- yPosition: 0,
466
- width: 310,
467
- height: 180
468
- },
469
- {
470
- tag: 'customer4',
471
- xPosition: 1280,
472
- yPosition: 0,
473
- width: 310,
474
- height: 180
475
- },
476
- {
477
- tag: 'customer5',
478
- xPosition: 1600,
479
- yPosition: 0,
480
- width: 310,
481
- height: 180
482
- },
483
- // {
484
- // tag: 'customer6',
485
- // xPosition: 1440,
486
- // yPosition: 0,
487
- // width: 240,
488
- // height: 180
489
- // },
490
- // {
491
- // tag: 'customer7',
492
- // xPosition: 1680,
493
- // yPosition: 0,
494
- // width: 240,
495
- // height: 180
496
- // },
497
- // {
498
- // tag: 'customer8',
499
- // xPosition: 1680,
500
- // yPosition: 180,
501
- // width: 240,
502
- // height: 180
503
- // },
504
- // {
505
- // tag: 'customer9',
506
- // xPosition: 1680,
507
- // yPosition: 360,
508
- // width: 240,
509
- // height: 180
510
- // },
511
- // {
512
- // tag: 'customer10',
513
- // xPosition: 1680,
514
- // yPosition: 540,
515
- // width: 240,
516
- // height: 180
517
- // },
518
- // {
519
- // tag: 'customer11',
520
- // xPosition: 1680,
521
- // yPosition: 720,
522
- // width: 240,
523
- // height: 180
524
- // }
525
- ]
526
- console.log('recordParam', recordParam);
527
- this.test_controller.StartRemoteRecord(filePath, recordParam, '')
420
+ const that = this
421
+ this.rateAll().then((res)=>{
422
+ console.log('退出房间者',res)
423
+ let list = [
424
+ {
425
+ tag: 'projectionWhiteboard',
426
+ xPosition: 0,
427
+ yPosition: 270,
428
+ width: 1280,
429
+ height: 720
430
+ },
431
+ // {
432
+ // tag: 'VIDEO_SOURCE_SCREEN_ONE',
433
+ // xPosition: 1290,
434
+ // yPosition: 724,
435
+ // width: 570,
436
+ // height: 270
437
+ // },
438
+ // {
439
+ // tag: 'VIDEO_SOURCE_SCREEN',
440
+ // xPosition: 1290,
441
+ // yPosition: 640,
442
+ // width: 630,
443
+ // height: 350
444
+ // },
445
+ {
446
+ tag: 'tag1',
447
+ xPosition: 0,
448
+ yPosition: 0,
449
+ width: 310,
450
+ height: 180
451
+ },
452
+ {
453
+ tag: 'customer1',
454
+ xPosition: 320,
455
+ yPosition: 0,
456
+ width: 310,
457
+ height: 180
458
+ },
459
+ {
460
+ tag: 'customer2',
461
+ xPosition: 640,
462
+ yPosition: 0,
463
+ width: 310,
464
+ height: 180
465
+ },
466
+ {
467
+ tag: 'customer3',
468
+ xPosition: 960,
469
+ yPosition: 0,
470
+ width: 310,
471
+ height: 180
472
+ },
473
+ {
474
+ tag: 'customer4',
475
+ xPosition: 1280,
476
+ yPosition: 0,
477
+ width: 310,
478
+ height: 180
479
+ },
480
+ {
481
+ tag: 'customer5',
482
+ xPosition: 1600,
483
+ yPosition: 0,
484
+ width: 310,
485
+ height: 180
486
+ },
487
+ // {
488
+ // tag: 'customer6',
489
+ // xPosition: 1440,
490
+ // yPosition: 0,
491
+ // width: 240,
492
+ // height: 180
493
+ // },
494
+ // {
495
+ // tag: 'customer7',
496
+ // xPosition: 1680,
497
+ // yPosition: 0,
498
+ // width: 240,
499
+ // height: 180
500
+ // },
501
+ // {
502
+ // tag: 'customer8',
503
+ // xPosition: 1680,
504
+ // yPosition: 180,
505
+ // width: 240,
506
+ // height: 180
507
+ // },
508
+ // {
509
+ // tag: 'customer9',
510
+ // xPosition: 1680,
511
+ // yPosition: 360,
512
+ // width: 240,
513
+ // height: 180
514
+ // },
515
+ // {
516
+ // tag: 'customer10',
517
+ // xPosition: 1680,
518
+ // yPosition: 540,
519
+ // width: 240,
520
+ // height: 180
521
+ // },
522
+ // {
523
+ // tag: 'customer11',
524
+ // xPosition: 1680,
525
+ // yPosition: 720,
526
+ // width: 240,
527
+ // height: 180
528
+ // }
529
+ ]
530
+ res.map((item)=>{
531
+ list.push({
532
+ tag: item.tag,
533
+ xPosition: item.xaxis,
534
+ yPosition: item.yaxis,
535
+ width: item.width,
536
+ height: item.height
537
+ })
538
+ })
539
+ const filePath = 'recordId_' + new Date().valueOf();
540
+ const recordParam = {};
541
+ recordParam.width = 1920;
542
+ recordParam.height = 1080;
543
+ recordParam.recordTotalStream = 0;
544
+ recordParam.startTimeout = 10;
545
+ recordParam.splitType = 0;
546
+ recordParam.endType = 1;
547
+ recordParam.crf = 26
548
+ recordParam.overlaps = [
549
+ {
550
+ tag: '', // 流 tag,如果不设置或为空,则为全局⽔印
551
+ type: 1, // 1 为时间戳⽔印;2 为⽂字⽔印;3 为图⽚⽔印
552
+ id: 1, // ⽔印 ID
553
+ enable: true,
554
+ xPosition: 10, // x 轴位置
555
+ yPosition: 10, // y 轴位置
556
+ text: '', // ⽔印⽂字
557
+ fontSize: 16, // 字体⼤⼩
558
+ url: '' // ⽔印图⽚ HTTP 地址
559
+ },
560
+ ];
561
+ recordParam.tagPositions = list
562
+ console.log('recordParam', recordParam);
563
+ that.test_controller.StartRemoteRecord(filePath, recordParam, '')
564
+
565
+ })
528
566
 
529
567
  };
530
568
  // 结束会话
@@ -1453,21 +1491,24 @@ class Video extends Component {
1453
1491
  }
1454
1492
  }
1455
1493
  else if (Mival.typeId == 1220) {
1456
- // 一炒多的图片
1494
+ // 一炒多的图片 1214
1457
1495
  if (Mival.sessionId == this.state.sessionId) {
1458
1496
  this.tabTitlesClick('customerScreen', 'delect')
1459
1497
  this.props.imgCallback({
1460
1498
  type: Mival.data.type + '',
1461
- file: Mival.data.file}
1499
+ file: Mival.data.file,
1500
+ errorType: 0}
1462
1501
  ) // 文字抄录和风险抄录,3--风险,,2--文字
1463
1502
  }
1464
1503
  } else if (Mival.typeId == 1321) {
1465
1504
  this.getBase64Image(Mival.fileName)
1466
1505
  } else if (Mival.typeId == 1216) {
1467
- // 签字回调
1506
+ // 签字回调 1213
1468
1507
  if (Mival.sessionId == this.state.sessionId) {
1469
1508
  this.tabTitlesClick('customerScreen', 'delect')
1470
- this.props.signatureCallback()
1509
+ this.props.signatureCallback({
1510
+ errorType: 0
1511
+ })
1471
1512
  }
1472
1513
  } else if (Mival.typeId == 1218) {
1473
1514
  if (Mival.sessionId == this.state.sessionId) {
@@ -1657,6 +1698,21 @@ class Video extends Component {
1657
1698
 
1658
1699
  }
1659
1700
  }
1701
+ } else if (Mival.typeId == 121305) {
1702
+ if (Mival.sessionId == this.state.sessionId) {
1703
+ this.props.signatureCallback({
1704
+ errorType: -1
1705
+ })
1706
+ }
1707
+ } else if (Mival.typeId == 121405) {
1708
+ if (Mival.sessionId == this.state.sessionId) {
1709
+ console.log('imgCallback')
1710
+ this.props.imgCallback({
1711
+ type: '',
1712
+ file: '',
1713
+ errorType: -1
1714
+ })
1715
+ }
1660
1716
  }
1661
1717
  };
1662
1718
  window.IMOpenfire = msg =>{
@@ -1691,6 +1747,13 @@ class Video extends Component {
1691
1747
  sigType: 1
1692
1748
  };
1693
1749
  this.workerClick()
1750
+ rateList = []
1751
+ this.rateAll().then((res)=>{
1752
+ res.map((item)=>{
1753
+ rateList.push(item.tag)
1754
+ })
1755
+ console.log('rateList',rateList)
1756
+ })
1694
1757
  this.test_controller.GetDevices();
1695
1758
  // 获取设备成功
1696
1759
  this.test_controller.OnGetDevicesSuccess = (devicesInfo) => {
@@ -2386,6 +2449,7 @@ class Video extends Component {
2386
2449
  }, function (code, message, data) {
2387
2450
  console.log(data)
2388
2451
  })
2452
+ this.sendNotification()
2389
2453
  let array = this.state.roomCustomerList;
2390
2454
  let newArray = [...array];
2391
2455
  newArray.push({
@@ -2397,7 +2461,8 @@ class Video extends Component {
2397
2461
  this.state.roomCustomerList = newArray
2398
2462
  let config_param
2399
2463
  if (feed.uid != this.state.tellerAccount) {
2400
- if (feed.tag == 'VIDEO_SOURCE_SCREEN') {
2464
+ if (rateList.indexOf(feed.tag) > -1) {
2465
+ // if (feed.tag == 'VIDEO_SOURCE_SCREEN') {
2401
2466
  config_param = {
2402
2467
  subscribe_video_id: 'video21',
2403
2468
  subscribe_audio_id: 'audio21',
@@ -3651,7 +3716,7 @@ class Video extends Component {
3651
3716
  activityId: this.props.businessNumber,
3652
3717
  appAccount: this.state.faceCustomerUid,
3653
3718
  fileBase64: this.state.facialImg.replace(/^data:image\/\w+;base64,/,""),
3654
- type: this.state.defaultValue
3719
+ type: 1
3655
3720
  });
3656
3721
  if (result.code == 200) {
3657
3722
  this.messageClick('识别成功','success')
@@ -3802,7 +3867,7 @@ class Video extends Component {
3802
3867
  handleChangeOcr =(val)=> {
3803
3868
  console.log(val)
3804
3869
  this.setState({
3805
- defaultValue: val,
3870
+ defaultValue: 1,
3806
3871
  facialImg: this.test_controller.TakePicture(1, undefined, undefined, this.state.customOcrSid, 'png')
3807
3872
  })
3808
3873
  }
@@ -4366,6 +4431,43 @@ class Video extends Component {
4366
4431
  }
4367
4432
 
4368
4433
  }
4434
+ sendNotification = () =>{
4435
+ console.log(this.props.shareMask,this.state.shareMaskState)
4436
+ this.state.shareMaskState = this.props.shareMask
4437
+ callNimIM('sendCustomCmdMsg', {
4438
+ customId: this.state.imRoomId,
4439
+ content: JSON.stringify({
4440
+ 'typeId': 1230,
4441
+ 'sessionId': this.state.sessionId,
4442
+ 'type': this.state.shareMaskState ? 1 : 2
4443
+ })
4444
+ });
4445
+ }
4446
+ componentDidUpdate(prevProps){
4447
+ console.log('componentDidUpdate',prevProps,prevProps.shareMask,this.props.shareMask)
4448
+ if(this.props.shareMask != prevProps.shareMask) {
4449
+ this.sendNotification()
4450
+ }
4451
+ }
4452
+ // shouldComponentUpdate(nextProps,nextState){
4453
+ // console.log('componentDidUpdate',nextProps,nextState)
4454
+ // if(nextProps.shareMask != nextState.shareMaskState){
4455
+ // this.state.shareMaskState = nextProps.shareMask
4456
+ // this.sendNotification()
4457
+ // }
4458
+ // }
4459
+ // static getDerivedStateFromProps(props, state) {
4460
+ // console.log('getDerivedStateFromProps',props,state,props.shareMask)
4461
+ // if(props.shareMask!==state.shareMaskState){
4462
+ // // this.sendNotification()
4463
+ // return {
4464
+
4465
+ // shareMaskState:shareMask,
4466
+
4467
+ // }
4468
+ // }
4469
+ // return null
4470
+ // }
4369
4471
  render() {
4370
4472
  const { meetingInfo,isTranscribing } = this.props
4371
4473
  var pdfChildren
@@ -5003,12 +5105,12 @@ class Video extends Component {
5003
5105
  </div>
5004
5106
  ]}>
5005
5107
  <div className="faceBody">
5006
- {this.state.faceCustomerType == 2 &&
5108
+ {/* {this.state.faceCustomerType == 2 &&
5007
5109
  <Select defaultValue={this.state.defaultValue} style={{ width: 120,marginBottom: '20px' }} onChange={this.handleChangeOcr}>
5008
5110
  <Option value="1">正面</Option>
5009
5111
  <Option value="2">反面</Option>
5010
5112
  </Select>
5011
- }
5113
+ } */}
5012
5114
  <div>
5013
5115
  <img className="faceImg" src={this.state.facialImg} alt=""></img>
5014
5116
  </div>
@@ -5060,12 +5162,17 @@ class Video extends Component {
5060
5162
  <Modal title="签字白板" width={600} destroyOnClose={true} centered={true} visible={isTranscribing} onCancel={this.onCancelSign} footer={
5061
5163
  [
5062
5164
  <div key='okSign'>
5063
- <Button className="modelButtonCancel" onClick={this.handleCancelSign}>清除</Button>
5165
+ {
5166
+ !this.state.signNoClick && <Button className="modelButtonCancelNo">清除</Button>
5167
+ }
5168
+ {
5169
+ this.state.signNoClick && <Button className="modelButtonCancel" onClick={this.handleCancelSign}>清除</Button>
5170
+ }
5064
5171
  {
5065
5172
  this.state.signNoClick && <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkSign}>确定</Button>
5066
5173
  }
5067
5174
  {
5068
- !this.state.signNoClick && <Button className="modelButtonCancel" type="primary" danger >确定</Button>
5175
+ !this.state.signNoClick && <Button className="modelButtonCancelNo" type="primary" danger >确定</Button>
5069
5176
  }
5070
5177
  </div>
5071
5178
  ]
@@ -5142,6 +5249,7 @@ sessionId: "",
5142
5249
  otherAttendees: undefined
5143
5250
  },
5144
5251
  isTranscribing: false,
5252
+ shareMask: false,
5145
5253
  internalUrl: 'https://wp-staff-gateway.wealth-platform.uat.ali.cloud.cn.hsbc/meeting-ui/OHB/CN/HSBC?chnlID=OHB&locale=zh_CN&chnlCC=CN&chnlGMC=HSBC&targetFunc=supervisorMeeting&sourceFunc=rmMeeting'
5146
5254
  }
5147
5255
  export default Video
@@ -320,7 +320,7 @@
320
320
  margin-top: 50px!important;
321
321
  padding: 20px 30px 30px!important;
322
322
  }
323
- .modelButtonCancel{
323
+ .modelButtonCancelNo{
324
324
  width: 100px!important;
325
325
  height: 40px!important;
326
326
  font-size: 16px!important;
@@ -329,6 +329,15 @@
329
329
  background: #d9d9d9!important;
330
330
  border-spacing: 20px!important;
331
331
  }
332
+ .modelButtonCancel{
333
+ width: 100px!important;
334
+ height: 40px!important;
335
+ font-size: 16px!important;
336
+ color: #333!important;
337
+ border: 1px #333 solid!important;
338
+ background: #fff!important;
339
+ border-spacing: 20px!important;
340
+ }
332
341
  .modelButtonCancelOne{
333
342
  width: 170px!important;
334
343
  height: 40px!important;