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/lib/hsbc.js +1 -1
- package/package.json +1 -1
- package/packages/pages/foot/foot.jsx +2 -2
- package/packages/pages/multiModule/components/copy/copyTwo.jsx +3 -0
- package/packages/pages/multiModule/components/copy/copy_en.jsx +2 -0
- package/packages/pages/multiModule/components/copy/risk.jsx +2 -0
- package/packages/pages/multiModule/components/copy/risk.less +1 -1
- package/packages/pages/multiModule/components/sign/signMy.jsx +2 -0
- package/packages/pages/multiModule/components/sign/signMy.less +1 -1
- package/packages/pages/sign/signMy.jsx +2 -0
- package/packages/pages/video/video.jsx +62 -11
- package/packages/pages/video/video.less +17 -0
package/package.json
CHANGED
|
@@ -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>
|
|
@@ -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>
|
|
@@ -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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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('
|
|
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('
|
|
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('未检测到
|
|
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'>
|
|
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='
|
|
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;
|