react_hsbc_teller 2.0.26 → 2.0.28
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/demo/demo.js +5 -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 +81 -51
- package/packages/pages/video/video.less +17 -0
- package/packages/utils/asrController.js +7 -2
package/package.json
CHANGED
package/packages/demo/demo.js
CHANGED
|
@@ -33,7 +33,7 @@ roomId
|
|
|
33
33
|
// resourcePath: 'https://counter-web.leimondata.cn:7199',
|
|
34
34
|
// resourcePath:'http://121.196.19.70:8027/',
|
|
35
35
|
roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
|
|
36
|
-
baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/
|
|
36
|
+
baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
|
|
37
37
|
resourcePath:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/js/',
|
|
38
38
|
prohibitPrompt: '无客户',
|
|
39
39
|
titleBackground: '#40a9ff',
|
|
@@ -192,6 +192,10 @@ userExit =(val)=>{
|
|
|
192
192
|
|
|
193
193
|
})
|
|
194
194
|
}
|
|
195
|
+
componentDidCatch(error, info) {
|
|
196
|
+
console.log('componentDidCatch')
|
|
197
|
+
console.error(error, info)
|
|
198
|
+
}
|
|
195
199
|
render() {
|
|
196
200
|
return (
|
|
197
201
|
<div className="test">
|
|
@@ -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.28'
|
|
62
62
|
const IDtypeFront = '请客户在其设备后置摄像头下展示证件正面(如:身份证照片页面)'
|
|
63
63
|
const IDtypeBack = '请在后置摄像头下展示证件反面(如:身份证国徽页)'
|
|
64
64
|
const { Option } = Select;
|
|
@@ -139,6 +139,7 @@ function clearStreamRemain() {
|
|
|
139
139
|
beautyDiv.beauty_canvas = null;
|
|
140
140
|
}
|
|
141
141
|
if (!(beautyDiv.beauty_player == null || beautyDiv.beauty_player == undefined)) {
|
|
142
|
+
console.log('beautyDiv destroy')
|
|
142
143
|
beautyDiv.beauty_player.destroy();
|
|
143
144
|
beautyDiv.beauty_player = null;
|
|
144
145
|
}
|
|
@@ -612,15 +613,16 @@ class Video extends Component {
|
|
|
612
613
|
// 开启录制
|
|
613
614
|
enableServerRecording = (record_business_id) => {
|
|
614
615
|
const that = this
|
|
616
|
+
const SCALE = 1.5
|
|
615
617
|
this.rateAll().then((res) => {
|
|
616
618
|
console.log('退出房间者', res)
|
|
617
619
|
let list = [
|
|
618
620
|
{
|
|
619
621
|
tag: 'projectionWhiteboard',
|
|
620
622
|
xPosition: 0,
|
|
621
|
-
yPosition: 175,
|
|
622
|
-
width:
|
|
623
|
-
height:
|
|
623
|
+
yPosition: 175 * SCALE,
|
|
624
|
+
width: 1280,
|
|
625
|
+
height: 720
|
|
624
626
|
},
|
|
625
627
|
// {
|
|
626
628
|
// tag: 'VIDEO_SOURCE_SCREEN_ONE',
|
|
@@ -640,50 +642,50 @@ class Video extends Component {
|
|
|
640
642
|
tag: 'tag1',
|
|
641
643
|
xPosition: 0,
|
|
642
644
|
yPosition: 0,
|
|
643
|
-
width: 213,
|
|
644
|
-
height: 175
|
|
645
|
+
width: 213 * SCALE,
|
|
646
|
+
height: 175 * SCALE
|
|
645
647
|
},
|
|
646
648
|
{
|
|
647
649
|
tag: 'customer1',
|
|
648
|
-
xPosition: 213,
|
|
650
|
+
xPosition: 213 * SCALE,
|
|
649
651
|
yPosition: 0,
|
|
650
|
-
width: 213,
|
|
651
|
-
height: 175
|
|
652
|
+
width: 213 * SCALE,
|
|
653
|
+
height: 175 * SCALE
|
|
652
654
|
},
|
|
653
655
|
{
|
|
654
656
|
tag: 'customer2',
|
|
655
|
-
xPosition: 426,
|
|
657
|
+
xPosition: 426 * SCALE,
|
|
656
658
|
yPosition: 0,
|
|
657
|
-
width: 213,
|
|
658
|
-
height: 175
|
|
659
|
+
width: 213 * SCALE,
|
|
660
|
+
height: 175 * SCALE
|
|
659
661
|
},
|
|
660
662
|
{
|
|
661
663
|
tag: 'customer3',
|
|
662
|
-
xPosition: 639,
|
|
664
|
+
xPosition: 639 * SCALE,
|
|
663
665
|
yPosition: 0,
|
|
664
|
-
width: 213,
|
|
665
|
-
height: 175
|
|
666
|
+
width: 213 * SCALE,
|
|
667
|
+
height: 175 * SCALE
|
|
666
668
|
},
|
|
667
669
|
{
|
|
668
670
|
tag: 'customer4',
|
|
669
|
-
xPosition: 852,
|
|
671
|
+
xPosition: 852 * SCALE,
|
|
670
672
|
yPosition: 0,
|
|
671
|
-
width: 213,
|
|
672
|
-
height: 175
|
|
673
|
+
width: 213 * SCALE,
|
|
674
|
+
height: 175 * SCALE
|
|
673
675
|
},
|
|
674
676
|
{
|
|
675
677
|
tag: 'customer5',
|
|
676
|
-
xPosition: 1065,
|
|
678
|
+
xPosition: 1065 * SCALE,
|
|
677
679
|
yPosition: 0,
|
|
678
|
-
width: 213,
|
|
679
|
-
height: 175
|
|
680
|
+
width: 213 * SCALE,
|
|
681
|
+
height: 175 * SCALE
|
|
680
682
|
},
|
|
681
683
|
{
|
|
682
684
|
tag: 'customer6',
|
|
683
|
-
xPosition: 1278,
|
|
685
|
+
xPosition: 1278 * SCALE,
|
|
684
686
|
yPosition: 0,
|
|
685
|
-
width: 213,
|
|
686
|
-
height: 175
|
|
687
|
+
width: 213 * SCALE,
|
|
688
|
+
height: 175 * SCALE
|
|
687
689
|
},
|
|
688
690
|
// {
|
|
689
691
|
// tag: 'sharedScreen', // 一期暂时不需要录制
|
|
@@ -697,18 +699,18 @@ class Video extends Component {
|
|
|
697
699
|
res.map((item) => {
|
|
698
700
|
list.push({
|
|
699
701
|
tag: item.tag,
|
|
700
|
-
xPosition: item.xaxis,
|
|
701
|
-
yPosition: item.yaxis,
|
|
702
|
-
width: item.width,
|
|
703
|
-
height: item.height
|
|
702
|
+
xPosition: (item.xaxis * SCALE),
|
|
703
|
+
yPosition: (item.yaxis * SCALE),
|
|
704
|
+
width: (item.width * SCALE),
|
|
705
|
+
height: (item.height * SCALE)
|
|
704
706
|
})
|
|
705
707
|
}) :
|
|
706
708
|
list.push({
|
|
707
709
|
tag: 'VIDEO_SOURCE_SCREEN',
|
|
708
|
-
xPosition: 960,
|
|
709
|
-
yPosition: 535,
|
|
710
|
-
width: 320,
|
|
711
|
-
height: 180
|
|
710
|
+
xPosition: 960 * SCALE,
|
|
711
|
+
yPosition: 535 * SCALE,
|
|
712
|
+
width: 320 * SCALE,
|
|
713
|
+
height: 180 * SCALE
|
|
712
714
|
})
|
|
713
715
|
// list.push({
|
|
714
716
|
// tag: 'VIDEO_SOURCE_SCREEN_19_9',
|
|
@@ -719,8 +721,8 @@ class Video extends Component {
|
|
|
719
721
|
// })
|
|
720
722
|
const filePath = 'recordId_' + new Date().valueOf();
|
|
721
723
|
const recordParam = {};
|
|
722
|
-
recordParam.width = 1280;
|
|
723
|
-
recordParam.height = 720;
|
|
724
|
+
recordParam.width = 1280 * SCALE;
|
|
725
|
+
recordParam.height = 720 * SCALE;
|
|
724
726
|
recordParam.recordTotalStream = 0;
|
|
725
727
|
recordParam.startTimeout = 10;
|
|
726
728
|
recordParam.splitType = 0;
|
|
@@ -732,10 +734,10 @@ class Video extends Component {
|
|
|
732
734
|
type: 2, // 1 为时间戳⽔印;2 为⽂字⽔印;3 为图⽚⽔印
|
|
733
735
|
id: 2, // ⽔印 ID
|
|
734
736
|
enable: true,
|
|
735
|
-
xPosition: 640, // x 轴位置
|
|
736
|
-
yPosition: 10, // y 轴位置
|
|
737
|
+
xPosition: 640 * SCALE, // x 轴位置
|
|
738
|
+
yPosition: 10 * SCALE, // y 轴位置
|
|
737
739
|
text: `${this.props.recordMode ==1 ?'远程录制' :'网点录制'} ${this.props.salesBranchCode || ''} ${this.state.branchName || ''} ${this.props.financialOffice || ''}`,
|
|
738
|
-
fontSize: 16, // 字体⼤⼩
|
|
740
|
+
fontSize: 16 * SCALE, // 字体⼤⼩
|
|
739
741
|
url: '' // ⽔印图⽚ HTTP 地址
|
|
740
742
|
},
|
|
741
743
|
{
|
|
@@ -743,10 +745,10 @@ class Video extends Component {
|
|
|
743
745
|
type: 1, // 1 为时间戳⽔印;2 为⽂字⽔印;3 为图⽚⽔印
|
|
744
746
|
id: 1, // ⽔印 ID
|
|
745
747
|
enable: true,
|
|
746
|
-
xPosition: 1080, // x 轴位置
|
|
747
|
-
yPosition: 10, // y 轴位置
|
|
748
|
+
xPosition: 1080 * SCALE, // x 轴位置
|
|
749
|
+
yPosition: 10 * SCALE, // y 轴位置
|
|
748
750
|
text: '', // ⽔印⽂字
|
|
749
|
-
fontSize: 16, // 字体⼤⼩
|
|
751
|
+
fontSize: 16 * SCALE, // 字体⼤⼩
|
|
750
752
|
url: '' // ⽔印图⽚ HTTP 地址
|
|
751
753
|
},
|
|
752
754
|
];
|
|
@@ -1652,7 +1654,11 @@ class Video extends Component {
|
|
|
1652
1654
|
else if (Mival.typeId == 5001) { // 客户端离框
|
|
1653
1655
|
let TITLE = '客户'
|
|
1654
1656
|
if (Mival.data && Mival.data.userId) {
|
|
1655
|
-
|
|
1657
|
+
if (Mival.data.userId.includes(IPAD_SUFFIX)) {
|
|
1658
|
+
TITLE = ''
|
|
1659
|
+
} else {
|
|
1660
|
+
TITLE = this.getUserTitle(Mival.data.userId)
|
|
1661
|
+
}
|
|
1656
1662
|
}
|
|
1657
1663
|
this.messageClick(TITLE+'人脸已离框', 'error', Mival.data.userId)
|
|
1658
1664
|
// this.saveVideoPoint('ffd', '客户人脸离框');
|
|
@@ -1660,7 +1666,11 @@ class Video extends Component {
|
|
|
1660
1666
|
else if (Mival.typeId == 5002) { // 客户端背光
|
|
1661
1667
|
let TITLE = '客户'
|
|
1662
1668
|
if (Mival.data && Mival.data.userId) {
|
|
1663
|
-
|
|
1669
|
+
if (Mival.data.userId.includes(IPAD_SUFFIX)) {
|
|
1670
|
+
TITLE = ''
|
|
1671
|
+
} else {
|
|
1672
|
+
TITLE = this.getUserTitle(Mival.data.userId)
|
|
1673
|
+
}
|
|
1664
1674
|
}
|
|
1665
1675
|
this.messageClick(TITLE+'背光、曝光过度', 'error', Mival.data.userId)
|
|
1666
1676
|
// this.saveVideoPoint('env', '客户端背光、曝光过度');
|
|
@@ -1668,13 +1678,17 @@ class Video extends Component {
|
|
|
1668
1678
|
else if (Mival.typeId == 5003) { // 客户端弱网
|
|
1669
1679
|
let TITLE = '客户'
|
|
1670
1680
|
if (Mival.data && Mival.data.userId) {
|
|
1671
|
-
|
|
1681
|
+
if (Mival.data.userId.includes(IPAD_SUFFIX)) {
|
|
1682
|
+
TITLE = 'iPad'
|
|
1683
|
+
} else {
|
|
1684
|
+
TITLE = this.getUserTitle(Mival.data.userId)
|
|
1685
|
+
}
|
|
1672
1686
|
}
|
|
1673
1687
|
this.messageClick(TITLE+'当前网络较弱', 'error', Mival.data.userId)
|
|
1674
1688
|
// this.saveVideoPoint('wnd', '客户端弱网');
|
|
1675
1689
|
}
|
|
1676
1690
|
else if (Mival.typeId == 5004) { // ipad低电量
|
|
1677
|
-
this.messageClick('
|
|
1691
|
+
this.messageClick('iPad电量过低', 'error', Mival.data.userId)
|
|
1678
1692
|
|
|
1679
1693
|
this.setState({
|
|
1680
1694
|
ipadLowPowerErrorModalVisible: true,
|
|
@@ -2870,7 +2884,7 @@ class Video extends Component {
|
|
|
2870
2884
|
|
|
2871
2885
|
if (participant.includes(IPAD_SUFFIX) && this.state.businessId){
|
|
2872
2886
|
// ipad单独处理,不需要加入和退出的提示。但双录过程中ipad如果离开,要提示+循环播报直到ipad重新入会
|
|
2873
|
-
console.log('
|
|
2887
|
+
console.log('iPad退出房间', participant)
|
|
2874
2888
|
|
|
2875
2889
|
this.setState({
|
|
2876
2890
|
IpadLeaveErrorModalVisible: true,
|
|
@@ -3117,6 +3131,7 @@ class Video extends Component {
|
|
|
3117
3131
|
isRecordingeErrorModalVisible: true,
|
|
3118
3132
|
businessRecordId: '',
|
|
3119
3133
|
})
|
|
3134
|
+
this.saveLog(`dual recording crash, recordId=${recordId}`);
|
|
3120
3135
|
// 循环播放录制中断语音
|
|
3121
3136
|
clearTimeout(this.recordLoopPlay)
|
|
3122
3137
|
this.recordLoopPlay = () => {
|
|
@@ -3566,6 +3581,11 @@ class Video extends Component {
|
|
|
3566
3581
|
}
|
|
3567
3582
|
}
|
|
3568
3583
|
}
|
|
3584
|
+
componentDidCatch(error, info) {
|
|
3585
|
+
console.log('componentDidCatch')
|
|
3586
|
+
console.error(error, info)
|
|
3587
|
+
}
|
|
3588
|
+
|
|
3569
3589
|
componentWillUnmount() {
|
|
3570
3590
|
this.saveLog('Exit meeting')
|
|
3571
3591
|
if (this.test_controller && this.state.sessionType) {
|
|
@@ -3868,7 +3888,7 @@ class Video extends Component {
|
|
|
3868
3888
|
})
|
|
3869
3889
|
this.asr_controller = new MyAsrController({
|
|
3870
3890
|
token: this.state.asrToken,
|
|
3871
|
-
|
|
3891
|
+
appKey: this.state.asrAppKey,
|
|
3872
3892
|
url: this.state.asrServerUrl,
|
|
3873
3893
|
recorder: this.state.recorder
|
|
3874
3894
|
})
|
|
@@ -4285,7 +4305,7 @@ class Video extends Component {
|
|
|
4285
4305
|
handleOkIpadLeaveConfirm = () => {
|
|
4286
4306
|
// 检测ipad是否入会
|
|
4287
4307
|
if (!this.state.ipadTag) {
|
|
4288
|
-
this.messageClick('未检测到
|
|
4308
|
+
this.messageClick('未检测到iPad,请重新加入后再试', 'error')
|
|
4289
4309
|
} else {
|
|
4290
4310
|
clearTimeout(this.ipadLeavePlay)
|
|
4291
4311
|
this.setState({IpadLeaveErrorModalVisible: false})
|
|
@@ -5697,7 +5717,7 @@ class Video extends Component {
|
|
|
5697
5717
|
this.setState({
|
|
5698
5718
|
isModalVisibleEnvironment: false,
|
|
5699
5719
|
})
|
|
5700
|
-
if (!this.state.isPictureInPicture
|
|
5720
|
+
if (!this.state.isPictureInPicture) {
|
|
5701
5721
|
this.pictureInPicture()
|
|
5702
5722
|
}
|
|
5703
5723
|
}
|
|
@@ -6655,15 +6675,25 @@ class Video extends Component {
|
|
|
6655
6675
|
<Button className="modelButtonOk" type="primary" danger onClick={this.handleOkLowPowerConfirm}>确定</Button>
|
|
6656
6676
|
</div>
|
|
6657
6677
|
]}>
|
|
6658
|
-
<div className='endModal'>
|
|
6678
|
+
<div className='endModal'>iPad电量过低,请检查</div>
|
|
6659
6679
|
</Modal>
|
|
6660
6680
|
{/* 双录中ipad退出确认 */}
|
|
6661
|
-
<Modal closable={false} centered={true} visible={this.state.IpadLeaveErrorModalVisible} maskClosable={false} footer={[
|
|
6681
|
+
<Modal closable={false} centered={true} visible={this.state.IpadLeaveErrorModalVisible} maskClosable={false} width={320} footer={[
|
|
6662
6682
|
<div key='end'>
|
|
6663
6683
|
<Button className="modelButtonOk" type="primary" danger onClick={this.handleOkIpadLeaveConfirm}>确定</Button>
|
|
6664
6684
|
</div>
|
|
6665
6685
|
]}>
|
|
6666
|
-
<div className='
|
|
6686
|
+
<div className='ipadModal'>iPad 摄像头异常退出,请扫码重新加入会议</div>
|
|
6687
|
+
<QRCode
|
|
6688
|
+
value={JSON.stringify({
|
|
6689
|
+
sessionId:this.state.sessionId,
|
|
6690
|
+
staffId: this.props.tellerAccount,
|
|
6691
|
+
staffName: this.props.staffName
|
|
6692
|
+
})} //value参数为生成二维码的链接
|
|
6693
|
+
className="ipadCode"
|
|
6694
|
+
size={120} //二维码的宽高尺寸
|
|
6695
|
+
fgColor="#000000" //二维码的颜色
|
|
6696
|
+
/>
|
|
6667
6697
|
</Modal>
|
|
6668
6698
|
{/* 是否退出会议*/}
|
|
6669
6699
|
<Modal closable={false} centered={true} visible={this.state.isModalVisibleEnd} maskClosable={false} footer={[
|
|
@@ -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;
|
|
@@ -37,8 +37,9 @@ let websocket_audio2txt_complete_time_end = 100; //websocket 语音转文本
|
|
|
37
37
|
|
|
38
38
|
export default class MyAsrController {
|
|
39
39
|
constructor(headers) {
|
|
40
|
+
console.log('MyAsrController', headers, headers.appKey)
|
|
40
41
|
this.token = headers.token || 'default';
|
|
41
|
-
this.appKey = headers.appKey
|
|
42
|
+
this.appKey = headers.appKey;
|
|
42
43
|
this.url = headers.url;
|
|
43
44
|
|
|
44
45
|
//初始化录音实例
|
|
@@ -97,7 +98,11 @@ export default class MyAsrController {
|
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
Disconnect() {
|
|
100
|
-
|
|
101
|
+
try {
|
|
102
|
+
this.recorderInstance.stop();
|
|
103
|
+
} catch(err){
|
|
104
|
+
console.log(err)
|
|
105
|
+
}
|
|
101
106
|
clearInterval(this.interval);
|
|
102
107
|
this.websocketStopTranscription()
|
|
103
108
|
}
|