react_hsbc_teller 2.0.27 → 2.0.29

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": "2.0.27",
3
+ "version": "2.0.29",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -213,14 +213,14 @@ export default class foot extends Component {
213
213
  </div>
214
214
  </div>
215
215
  </div>
216
- <div className='footHover' onClick={this.toggleAsr.bind(this)}>
216
+ {/* <div className='footHover' onClick={this.toggleAsr.bind(this)}>
217
217
  <div className="one">
218
218
  <img className="imgClass" src={require("../../assets/img/icon_asr.png").default} alt="" />
219
219
  <div className="text">
220
220
  ASR检测
221
221
  </div>
222
222
  </div>
223
- </div>
223
+ </div> */}
224
224
  </div>
225
225
  {defaultList}
226
226
 
@@ -376,6 +376,7 @@ class Copy extends Component {
376
376
  }
377
377
  }
378
378
  mouseUp=(ev)=> {
379
+ if (!this.state.isDown) return;
379
380
  ev.preventDefault();
380
381
  let { ctx, stageInfo } = this.state
381
382
  let canvas = this.refs.canvas1;
@@ -611,6 +612,7 @@ class Copy extends Component {
611
612
  onMouseDown={this.mouseDown}
612
613
  onMouseMove={this.mouseMove}
613
614
  onMouseUp={this.mouseUp}
615
+ onMouseLeave={() => { this.state.isDown = false }}
614
616
  ></canvas>
615
617
 
616
618
  </div>
@@ -624,6 +626,7 @@ class Copy extends Component {
624
626
  onMouseDown={this.mouseDown}
625
627
  onMouseMove={this.mouseMove}
626
628
  onMouseUp={this.mouseUp}
629
+ onMouseLeave={() => { this.state.isDown = false }}
627
630
  ></canvas>
628
631
  </div>
629
632
  </div>
@@ -151,6 +151,7 @@ class Copy extends Component {
151
151
  }
152
152
  }
153
153
  mouseUp=(ev)=> {
154
+ if (!this.state.isDown) return;
154
155
  ev.preventDefault();
155
156
  const obj = {
156
157
  x: ev.pageX,
@@ -322,6 +323,7 @@ class Copy extends Component {
322
323
  onMouseDown={this.mouseDown}
323
324
  onMouseMove={this.mouseMove}
324
325
  onMouseUp={this.mouseUp}
326
+ onMouseLeave={() => { this.state.isDown = false }}
325
327
  ></canvas>
326
328
  </div>
327
329
  <div className="btnsEN footEN">
@@ -171,6 +171,7 @@ class Risk extends Component {
171
171
  }
172
172
  }
173
173
  mouseUp=(ev)=> {
174
+ if (!this.state.isDown) return;
174
175
  ev.preventDefault();
175
176
  const obj = {
176
177
  x: ev.pageX,
@@ -241,6 +242,7 @@ class Risk extends Component {
241
242
  onMouseDown={this.mouseDown}
242
243
  onMouseMove={this.mouseMove}
243
244
  onMouseUp={this.mouseUp}
245
+ onMouseLeave={() => { this.state.isDown = false }}
244
246
  ></canvas>
245
247
  {
246
248
  // !this.state.isSignOk && <div className="signHere"><FormattedMessage id="spaceAccording" /></div>
@@ -65,7 +65,7 @@
65
65
  // left: 50%;
66
66
  // top: 35%;
67
67
  // transform: translate(-50%,-50%);
68
- // flex:1;
68
+ flex: none;
69
69
  }
70
70
  .signHere{
71
71
  font-size: 30px;
@@ -184,6 +184,7 @@ class Sign extends Component {
184
184
  }
185
185
  }
186
186
  mouseUp=(ev)=> {
187
+ if (!this.state.isDown) return;
187
188
  ev.preventDefault();
188
189
  const obj = {
189
190
  x: ev.pageX,
@@ -253,6 +254,7 @@ class Sign extends Component {
253
254
  onMouseDown={this.mouseDown}
254
255
  onMouseMove={this.mouseMove}
255
256
  onMouseUp={this.mouseUp}
257
+ onMouseLeave={() => { this.state.isDown = false }}
256
258
  ></canvas>
257
259
  {
258
260
  !this.state.isSignOk && <div className="signHere"><FormattedMessage id="plzSign" /></div>
@@ -60,7 +60,7 @@
60
60
  border:1.5px dashed #646464;
61
61
  margin: auto;
62
62
  position: relative;
63
- // flex:1;
63
+ flex: none;
64
64
 
65
65
  .canvasF{
66
66
  z-index: 10;
@@ -163,6 +163,7 @@ class Sign extends Component {
163
163
  }
164
164
  }
165
165
  mouseUp=(ev)=> {
166
+ if (!this.state.isDown) return;
166
167
  ev.preventDefault();
167
168
  const obj = {
168
169
  x: ev.pageX,
@@ -195,6 +196,7 @@ class Sign extends Component {
195
196
  onMouseDown={this.mouseDown}
196
197
  onMouseMove={this.mouseMove}
197
198
  onMouseUp={this.mouseUp}
199
+ onMouseLeave={() => { this.state.isDown = false }}
198
200
  ></canvas>
199
201
  <div className='signButton'>
200
202
  {
@@ -58,7 +58,7 @@ import MultiModule from '../multiModule/multiModule'//签字、抄录
58
58
  import axios from 'axios';
59
59
  import CryptoJS from "crypto-js";
60
60
 
61
- const SDK_VERISON = '2.0.27'
61
+ const SDK_VERISON = '2.0.29'
62
62
  const IDtypeFront = '请客户在其设备后置摄像头下展示证件正面(如:身份证照片页面)'
63
63
  const IDtypeBack = '请在后置摄像头下展示证件反面(如:身份证国徽页)'
64
64
  const { Option } = Select;
@@ -1654,7 +1654,11 @@ class Video extends Component {
1654
1654
  else if (Mival.typeId == 5001) { // 客户端离框
1655
1655
  let TITLE = '客户'
1656
1656
  if (Mival.data && Mival.data.userId) {
1657
- TITLE = this.getUserTitle(Mival.data.userId)
1657
+ if (Mival.data.userId.includes(IPAD_SUFFIX)) {
1658
+ TITLE = ''
1659
+ } else {
1660
+ TITLE = this.getUserTitle(Mival.data.userId)
1661
+ }
1658
1662
  }
1659
1663
  this.messageClick(TITLE+'人脸已离框', 'error', Mival.data.userId)
1660
1664
  // this.saveVideoPoint('ffd', '客户人脸离框');
@@ -1662,7 +1666,11 @@ class Video extends Component {
1662
1666
  else if (Mival.typeId == 5002) { // 客户端背光
1663
1667
  let TITLE = '客户'
1664
1668
  if (Mival.data && Mival.data.userId) {
1665
- TITLE = this.getUserTitle(Mival.data.userId)
1669
+ if (Mival.data.userId.includes(IPAD_SUFFIX)) {
1670
+ TITLE = ''
1671
+ } else {
1672
+ TITLE = this.getUserTitle(Mival.data.userId)
1673
+ }
1666
1674
  }
1667
1675
  this.messageClick(TITLE+'背光、曝光过度', 'error', Mival.data.userId)
1668
1676
  // this.saveVideoPoint('env', '客户端背光、曝光过度');
@@ -1670,13 +1678,17 @@ class Video extends Component {
1670
1678
  else if (Mival.typeId == 5003) { // 客户端弱网
1671
1679
  let TITLE = '客户'
1672
1680
  if (Mival.data && Mival.data.userId) {
1673
- TITLE = this.getUserTitle(Mival.data.userId)
1681
+ if (Mival.data.userId.includes(IPAD_SUFFIX)) {
1682
+ TITLE = 'iPad'
1683
+ } else {
1684
+ TITLE = this.getUserTitle(Mival.data.userId)
1685
+ }
1674
1686
  }
1675
1687
  this.messageClick(TITLE+'当前网络较弱', 'error', Mival.data.userId)
1676
1688
  // this.saveVideoPoint('wnd', '客户端弱网');
1677
1689
  }
1678
1690
  else if (Mival.typeId == 5004) { // ipad低电量
1679
- this.messageClick('IPAD电量过低', 'error', Mival.data.userId)
1691
+ this.messageClick('iPad电量过低', 'error', Mival.data.userId)
1680
1692
 
1681
1693
  this.setState({
1682
1694
  ipadLowPowerErrorModalVisible: true,
@@ -1699,6 +1711,9 @@ class Video extends Component {
1699
1711
  }
1700
1712
  this.messageClick(TITLE+'人脸数量发生变化', 'error', Mival.data.userId)
1701
1713
  }
1714
+ else if (Mival.typeId == 5006) { // 内网pib检测到敏感词
1715
+ this.messageClick(Mival.content, 'error', Mival.data.userId)
1716
+ }
1702
1717
  else if (Mival.typeId == 1220) {
1703
1718
  // 一炒多的图片 1214
1704
1719
  if (Mival.sessionId == this.state.sessionId) {
@@ -2581,6 +2596,10 @@ class Video extends Component {
2581
2596
  console.log('过滤订阅的tag:', itemOne.tag)
2582
2597
  return
2583
2598
  }
2599
+ if (itemOne.mediaSource == 'VIDEO_SOURCE_CAMERA' && item.uid.includes(IPAD_SUFFIX)) {
2600
+ this.state.ipadTag = itemOne.tag;
2601
+ console.log('ipadTag:', itemOne.tag)
2602
+ }
2584
2603
  let array = this.state.roomCustomerList;
2585
2604
  let newArray = [...array];
2586
2605
  newArray.push({
@@ -2872,7 +2891,7 @@ class Video extends Component {
2872
2891
 
2873
2892
  if (participant.includes(IPAD_SUFFIX) && this.state.businessId){
2874
2893
  // ipad单独处理,不需要加入和退出的提示。但双录过程中ipad如果离开,要提示+循环播报直到ipad重新入会
2875
- console.log('ipad退出房间', participant)
2894
+ console.log('iPad退出房间', participant)
2876
2895
 
2877
2896
  this.setState({
2878
2897
  IpadLeaveErrorModalVisible: true,
@@ -2889,6 +2908,10 @@ class Video extends Component {
2889
2908
  }
2890
2909
  setTimeout(this.ipadLeavePlay, 0);
2891
2910
  return
2911
+ } else if (participant.includes(IPAD_SUFFIX)) {
2912
+ this.setState({
2913
+ ipadTag: '',
2914
+ })
2892
2915
  }
2893
2916
 
2894
2917
 
@@ -3119,6 +3142,7 @@ class Video extends Component {
3119
3142
  isRecordingeErrorModalVisible: true,
3120
3143
  businessRecordId: '',
3121
3144
  })
3145
+ this.saveLog(`dual recording crash, recordId=${recordId}`);
3122
3146
  // 循环播放录制中断语音
3123
3147
  clearTimeout(this.recordLoopPlay)
3124
3148
  this.recordLoopPlay = () => {
@@ -4292,7 +4316,7 @@ class Video extends Component {
4292
4316
  handleOkIpadLeaveConfirm = () => {
4293
4317
  // 检测ipad是否入会
4294
4318
  if (!this.state.ipadTag) {
4295
- this.messageClick('未检测到IPAD,请重新加入后再试', 'error')
4319
+ this.messageClick('未检测到iPad,请重新加入后再试', 'error')
4296
4320
  } else {
4297
4321
  clearTimeout(this.ipadLeavePlay)
4298
4322
  this.setState({IpadLeaveErrorModalVisible: false})
@@ -6316,7 +6340,8 @@ class Video extends Component {
6316
6340
  this.state.envInfo.batteryResult=='合格' &&
6317
6341
  (this.state.envInfo.cameraResult=='合格' || this.props.recordMode == 2) &&
6318
6342
  this.state.envInfo.microResult=='合格' &&
6319
- (this.state.envInfo.lightResult=='合格' || this.props.recordMode == 2 )
6343
+ (this.state.envInfo.lightResult=='合格' || this.props.recordMode == 2 ) &&
6344
+ (this.state.ipadTag || this.props.recordMode != 2)
6320
6345
 
6321
6346
  const sectionStyle = this.state.tabTitles.length > 0 ? {
6322
6347
  zIndex: '-1',
@@ -6662,15 +6687,25 @@ class Video extends Component {
6662
6687
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkLowPowerConfirm}>确定</Button>
6663
6688
  </div>
6664
6689
  ]}>
6665
- <div className='endModal'>IPAD电量过低,请检查</div>
6690
+ <div className='endModal'>iPad电量过低,请检查</div>
6666
6691
  </Modal>
6667
6692
  {/* 双录中ipad退出确认 */}
6668
- <Modal closable={false} centered={true} visible={this.state.IpadLeaveErrorModalVisible} maskClosable={false} footer={[
6693
+ <Modal closable={false} centered={true} visible={this.state.IpadLeaveErrorModalVisible} maskClosable={false} width={320} footer={[
6669
6694
  <div key='end'>
6670
6695
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkIpadLeaveConfirm}>确定</Button>
6671
6696
  </div>
6672
6697
  ]}>
6673
- <div className='endModal'>IPAD异常退出,请重新加入</div>
6698
+ <div className='ipadModal'>iPad 摄像头异常退出,请扫码重新加入会议</div>
6699
+ <QRCode
6700
+ value={JSON.stringify({
6701
+ sessionId:this.state.sessionId,
6702
+ staffId: this.props.tellerAccount,
6703
+ staffName: this.props.staffName
6704
+ })} //value参数为生成二维码的链接
6705
+ className="ipadCode"
6706
+ size={120} //二维码的宽高尺寸
6707
+ fgColor="#000000" //二维码的颜色
6708
+ />
6674
6709
  </Modal>
6675
6710
  {/* 是否退出会议*/}
6676
6711
  <Modal closable={false} centered={true} visible={this.state.isModalVisibleEnd} maskClosable={false} footer={[
@@ -7065,6 +7100,22 @@ class Video extends Component {
7065
7100
  {this.state.cameraList.length == 0 ? <p className="envClass">获取不到设备,请检查电脑“设置”中的麦克风权限是否开启,并重启浏览器再试</p> : null}
7066
7101
  </div>
7067
7102
  </Panel>
7103
+ {
7104
+ this.props.recordMode == 2 &&
7105
+ <Panel header={<span>iPad设备 - {this.state.ipadTag? '合格':'不合格'} {this.state.ipadTag? <img src={IconSuccess} />: <img src={IconFail} />}</span>} key="6" className={this.state.ipadTag? '':'panel-error'}>
7106
+ <p className="envClass">{this.state.ipadTag? 'iPad设备已加入':'未检测到iPad设备,请扫码加入会议'}</p>
7107
+ <QRCode
7108
+ value={JSON.stringify({
7109
+ sessionId: this.state.sessionId,
7110
+ staffId: this.props.tellerAccount,
7111
+ staffName: this.props.staffName
7112
+ })}
7113
+ style={{marginTop: '8px', marginLeft: '20px', display: this.state.ipadTag? 'none':'block'}}
7114
+ size={100}
7115
+ fgColor="#000000"
7116
+ />
7117
+ </Panel>
7118
+ }
7068
7119
  {
7069
7120
  this.props.recordMode != 2 &&
7070
7121
  <Panel header={<span>背光、曝光 - {this.state.envInfo.lightResult} {this.state.envInfo.lightResult=='合格'? <img src={IconSuccess} />: <img src={IconFail} />}</span>} key="6" className={this.state.envInfo.lightResult=='合格'? '':'panel-error'}>
@@ -454,6 +454,23 @@
454
454
  padding: 56px 30px 0px 30px;
455
455
  color: #333333;
456
456
  }
457
+ .ipadModal{
458
+ font-size: 16px;
459
+ padding: 36px 30px 0px 30px;
460
+ color: #333333;
461
+ }
462
+ .ipadModal .ant-modal-body{
463
+ display: flex;
464
+ align-items: center;
465
+ flex-direction: column;
466
+ }
467
+ .ipadCode{
468
+ margin-top: 16px;
469
+ margin-bottom: 20px;
470
+ transform: translateX(-50%);
471
+ left: 50%;
472
+ position: relative;
473
+ }
457
474
  .inspection{
458
475
  font-size: 16px;
459
476
  margin: 20px 50px;