react_hsbc_teller 1.0.2 → 1.0.5

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.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -1,27 +1,212 @@
1
1
  import React, { Component } from "react";
2
- import PropTypes from "prop-types";
2
+ import HSBC from "../pages/index";
3
3
 
4
4
  class Demo extends Component {
5
- constructor(props) {
6
- super(props);
5
+ state = {
6
+ // imRoomId: "9K9ea1vOM@conference.ls-im-xmpp.chinawp.dev.ali.cloud.cn.hsbc",
7
+ // sessionId: "9K9ea1vOM",
8
+ // mtoken: "d4e648858b03",
9
+ // roomId: "645110140224386",
10
+ roomId: '',
11
+ mtoken: '',
12
+ imRoomId: '',
13
+ sessionId: '',
14
+ isVideo: false,
15
+ tellerAccount: '00000000',
16
+ callbackUrl: 'http://47.102.126.132:8720/hsbc/callback',
17
+ businessNumber: '',
18
+ lang: 'zh',
19
+ roomServerUrl: 'wss://mrtc.mpaas.cn-hangzhou.aliyuncs.com/ws',
20
+ baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api',
21
+ resourcePath: 'https://counter-web.leimondata.cn:7199',
22
+ // roomServerUrl: 'wss://app.uat.dsp.hsbcfts.com.cn/mpaas/mrtc/ws',
23
+ // baseURL:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
24
+ // resourcePath:'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/js/',
25
+ prohibitPrompt: '无客户',
26
+ voiceColor: '#333',
27
+ titleBackground: '#40a9ff',
28
+ titleColor: '#faad14',
29
+ microphoneSize: 50,
30
+ fontSize: 14,
31
+ fontFamily: 'auto',
32
+ isTranscribing: false
33
+ }
34
+ componentWillMount() {
35
+ // if(window.localStorage.getItem('roomId')) {
36
+ // this.setState({roomId: window.localStorage.getItem('roomId')});
37
+ // }
38
+ // if(window.localStorage.getItem('mtoken')) {
39
+ // this.setState({mtoken: window.localStorage.getItem('mtoken')});
40
+ // }
41
+ // if(window.localStorage.getItem('sessionId')) {
42
+ // this.setState({sessionId: window.localStorage.getItem('sessionId')});
43
+ // }
44
+ // if(window.localStorage.getItem('imRoomId')) {
45
+ // this.setState({imRoomId: window.localStorage.getItem('imRoomId')});
46
+ // this.startVideo()
47
+ // }
48
+
49
+ }
50
+ handleChangeRoomId = (event) => {
51
+ this.setState({roomId: event.target.value});
52
+ window.localStorage.setItem('roomId', event.target.value)
53
+ }
54
+ handleChangeRToken = (event) => {
55
+ this.setState({mtoken: event.target.value});
56
+ window.localStorage.setItem('mtoken', event.target.value)
7
57
  }
58
+ handleChangeSessionId = (event) => {
59
+ this.setState({sessionId: event.target.value});
60
+ window.localStorage.setItem('sessionId', event.target.value)
61
+ }
62
+ handleChangeImRoomId = (event) => {
63
+ this.setState({imRoomId: event.target.value});
64
+ window.localStorage.setItem('imRoomId', event.target.value)
65
+ }
66
+ startVideo = () => {
67
+ this.setState({
68
+ isVideo: true
69
+ })
70
+ }
71
+ onLeaveRoom = (val) => {
72
+ console.log(val)
73
+ this.setState({
74
+ isVideo: false
75
+ })
76
+ }
77
+ handleChangeTeller = (event) => {
78
+ this.setState({
79
+ tellerAccount: event.target.value
80
+ })
81
+ }
82
+ handleChangeCall = (event) => {
83
+ this.setState({
84
+ callbackUrl: event.target.value
85
+ })
86
+ }
87
+ handleChangeBysiness = (event) => {
88
+ this.setState({
89
+ businessNumber: event.target.value
90
+ })
91
+ }
92
+
93
+ handleRoomServerUrl = (event) => {
94
+ this.setState({
95
+ roomServerUrl: event.target.value
96
+ })
97
+ }
98
+ handleBaseURL = (event) => {
99
+ this.setState({
100
+ baseURL: event.target.value
101
+ })
102
+ }
103
+ handleChangeisTranscribing = (event) => {
104
+ this.setState({
105
+ isTranscribing: event.target.value
106
+ })
107
+ }
108
+ handleResourcePath = (event) => {
109
+ this.setState({
110
+ resourcePath: event.target.value
111
+ })
112
+ }
113
+ imgCallback=(file)=>{
114
+ console.log(file)
115
+ }
116
+ createRoomCallback=(data)=>{
117
+ console.log('createRoomCallback', data)
118
+ this.setState({roomId: data.data.roomId});
119
+ window.localStorage.setItem('roomId', data.data.roomId)
120
+ this.setState({mtoken: data.data.mtoken});
121
+ window.localStorage.setItem('mtoken', data.data.mtoken)
122
+ this.setState({sessionId:data.data.sessionId});
123
+ window.localStorage.setItem('sessionId',data.data.sessionId)
124
+ this.setState({imRoomId: data.data.imRoomId});
125
+ window.localStorage.setItem('imRoomId', data.data.imRoomId)
126
+
127
+ }
128
+ joinRoomCallback=(data)=>{
129
+ console.log('joinRoomCallback', data)
130
+ }
8
131
  render() {
9
132
  return (
10
- <div>
11
- 演示文件1
12
- </div>
133
+ <div className="test">
134
+ {
135
+ this.state.isVideo ?
136
+ <HSBC
137
+ roomId={this.state.roomId}
138
+ mtoken={this.state.mtoken}
139
+ sessionId={this.state.sessionId}
140
+ imRoomId={this.state.imRoomId}
141
+ prohibitPrompt={this.state.prohibitPrompt}
142
+ voiceColor={this.state.voiceColor}
143
+ titleBackground={this.state.titleBackground}
144
+ titleColor={this.state.titleColor}
145
+ microphoneSize={this.state.microphoneSize}
146
+ fontSize={this.state.fontSize}
147
+ fontFamily={this.state.fontFamily}
148
+ tellerAccount={this.state.tellerAccount}
149
+ callbackUrl={this.state.callbackUrl}
150
+ businessNumber={this.state.businessNumber}
151
+ lang={this.state.lang}
152
+ roomServerUrl={this.state.roomServerUrl}
153
+ baseURL={this.state.baseURL}
154
+ resourcePath={this.state.resourcePath}
155
+ isTranscribing={this.state.isTranscribing}
156
+ onLeaveRoom={this.onLeaveRoom}
157
+ createRoomCallback={this.createRoomCallback}
158
+ joinRoomCallback={this.joinRoomCallback}
159
+ imgCallback={this.imgCallback}
160
+ >
161
+
162
+ {/* <Pdf></Pdf> */}
163
+ </HSBC>
164
+ :
165
+ <div>
166
+ 坐席账号:<input placeholder="请输入坐席账号" value={this.state.tellerAccount} onChange={e => this.handleChangeTeller(e)}></input>
167
+ 回调地址:<input placeholder="请输入回调地址" value={this.state.callbackUrl} onChange={e => this.handleChangeCall(e)}></input>
168
+ 全局流水号:<input placeholder="请输入全局流水号" value={this.state.businessNumber} onChange={e => this.handleChangeBysiness(e)}></input>
169
+ 阿里服务器地址:<input placeholder="请输入阿里服务器地址" value={this.state.roomServerUrl} onChange={e => this.handleRoomServerUrl(e)}></input>
170
+ 接口地址:<input placeholder="请输入接口地址" value={this.state.baseURL} onChange={e => this.handleBaseURL(e)}></input>
171
+ 阿里资源服务地址:<input placeholder="请输入阿里资源服务地址" value={this.state.resourcePath} onChange={e => this.handleResourcePath(e)}></input>
172
+
173
+
174
+ <div>roomId: <input type="text" value={this.state.roomId} onChange={this.handleChangeRoomId} /></div>
175
+ <div>rtoken: <input type="text" value={this.state.mtoken} onChange={this.handleChangeRToken} /></div>
176
+ <div>sessionId: <input type="text" value={this.state.sessionId} onChange={this.handleChangeSessionId} /></div>
177
+ <div>imRoomId: <input type="text" value={this.state.imRoomId} onChange={this.handleChangeImRoomId} /></div>
178
+ <div>isTranscribing: <input type="text" value={this.state.isTranscribing} onChange={this.handleChangeisTranscribing} /></div>
179
+
180
+ <button className="button" onClick={this.startVideo.bind(this)}>开启视频</button>
181
+ </div>
182
+ }
183
+ </div>
184
+ // <div>
185
+ // { this.state.isPlay?
186
+ // <HSBC
187
+ // tellerAccount={this.state.tellerAccount}
188
+ // roomId={this.state.roomId}
189
+ // mtoken={this.state.mtoken}
190
+ // sessionId={this.state.sessionId}
191
+ // imRoomId={this.state.imRoomId}
192
+ // name={this.state.name}
193
+ // lang={this.state.lang}
194
+ // onLeaveRoom={this.exitRoom}
195
+ // />
196
+ // :
197
+ // <div style={{padding: '20px'}}>
198
+ // <div>账号: <input type="text" value={this.state.tellerAccount} onChange={this.handleChangeAccount} /></div>
199
+ // <div>roomId: <input type="text" value={this.state.roomId} onChange={this.handleChangeRoomId} /></div>
200
+ // <div>rtoken: <input type="text" value={this.state.mtoken} onChange={this.handleChangeRToken} /></div>
201
+ // <div>sessionId: <input type="text" value={this.state.sessionId} onChange={this.handleChangeSessionId} /></div>
202
+ // <div>imRoomId: <input type="text" value={this.state.imRoomId} onChange={this.handleChangeImRoomId} /></div>
203
+ // <div>姓名(非必填): <input type="text" value={this.state.name} onChange={this.handleChangeName} /></div>
204
+ // <div>系统语言: <input type="text" value={this.state.lang} onChange={this.handleChangeLang} /></div>
205
+ // <div><button onClick={this.joinRoom} >加入房间</button></div>
206
+ // </div>}
207
+ // </div>
13
208
  );
14
209
  }
15
210
  }
16
211
 
17
- // 指定 props 的默认值:
18
- Demo.defaultProps = {
19
- type: "default",
20
- };
21
-
22
- Demo.propTypes = {
23
- type: PropTypes.string,
24
- onClick: PropTypes.func,
25
- };
26
-
27
212
  export default Demo;
package/packages/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  import "./style/index.less";
2
2
  export { default as HSBC } from "./pages/index";
3
+ // export { default as HSBC } from "./demo/demo";
@@ -50,8 +50,11 @@ export default class foot extends Component {
50
50
  inspection = ()=>{
51
51
  this.props.inspection()
52
52
  }
53
+ screenSwitching =()=>{
54
+ this.props.screenSwitching()
55
+ }
53
56
  render() {
54
- const {clickedOcr,clickedFacial,isTranscribing,img,cameraImg,screenName,suspendName,customerList,menus,voiceName} = this.props
57
+ const {clickedOcr,clickedFacial,img,cameraImg,isTranscribing ,screenName,suspendName,customerList,menus,voiceName} = this.props
55
58
  const content = (
56
59
  <div>
57
60
  {customerList.map((item,index)=>{
@@ -69,7 +72,7 @@ export default class foot extends Component {
69
72
  {
70
73
  menus.map((item,index)=>{
71
74
  return <div key={index}className='footHover'>
72
- {
75
+ {/* {
73
76
  isTranscribing &&
74
77
  <div className="one" onClick={this.transcribingClick.bind(this)}>
75
78
  <img className="imgClass"src={require("../../assets/img/icon_copy.png").default} alt="" />
@@ -77,7 +80,7 @@ export default class foot extends Component {
77
80
  签字
78
81
  </div>
79
82
  </div>
80
- }
83
+ } */}
81
84
  {
82
85
  item == 'SHARE' && <div className="one" onClick={this.sharedScreen.bind(this)}>
83
86
  <img className="imgClass" src={require("../../assets/img/Projection_screen.png").default} alt="" />
@@ -150,6 +153,14 @@ export default class foot extends Component {
150
153
  </div>
151
154
  </div>
152
155
  </div>
156
+ {/* <div className='footHover' onClick={this.screenSwitching.bind(this)}>
157
+ <div className="one">
158
+ <img className="imgClass" src={require("../../assets/img/inspection.png").default} alt="" />
159
+ <div className="text">
160
+ 切换投屏
161
+ </div>
162
+ </div>
163
+ </div> */}
153
164
  </div>
154
165
  {defaultList}
155
166
 
@@ -41,6 +41,7 @@ class Video extends Component {
41
41
  cancel = axios.CancelToken.source()
42
42
  signCanvas = React.createRef();
43
43
  state = {
44
+ isScreenSwitching: false,
44
45
  whiteboardWidth: '',
45
46
  whiteboardHeight: '',
46
47
  laveRoomSharedScreen: false,
@@ -49,7 +50,8 @@ class Video extends Component {
49
50
  isWhiteboard: false,
50
51
  isSelect: '',
51
52
  loading: false,
52
- isModalVisibleSign: false,
53
+ // isModalVisibleSign: '',
54
+ isModalVisibleSign: this.props.isTranscribing,
53
55
  titleModal: '人脸识别',
54
56
  faceCustomerType: 1, // 1无感人脸,2ocr
55
57
  faceCustomerUid: '',
@@ -321,8 +323,8 @@ class Video extends Component {
321
323
  enableServerRecording = () => {
322
324
  const filePath = 'recordId_' + new Date().valueOf();
323
325
  const recordParam = {};
324
- recordParam.width = 640;
325
- recordParam.height = 480;
326
+ recordParam.width = 1280;
327
+ recordParam.height = 720;
326
328
  recordParam.recordTotalStream = 0;
327
329
  recordParam.startTimeout = 10;
328
330
  recordParam.splitType = 0;
@@ -1322,12 +1324,14 @@ class Video extends Component {
1322
1324
  this.state.sessionType = false
1323
1325
  this.roomCallBack(2, 'im建立连接失败',5)
1324
1326
  } else {
1325
- this.state.imStatus = msg
1326
- if(this.state.imRoomId && !this.state.imJoinRoom) {
1327
- joinRoom((this.props.tellerAccount + '@' + JSON.parse(window.sessionStorage.getItem('sigData')).hostname), this.state.imRoomId)
1328
- this.state.imJoinRoom =true
1329
- console.log('加入im房间')
1330
- }
1327
+ this.state.imStatus = msg
1328
+ setTimeout(() => {
1329
+ if(this.state.imRoomId && !this.state.imJoinRoom) {
1330
+ joinRoom((this.props.tellerAccount + '@' + JSON.parse(window.sessionStorage.getItem('sigData')).hostname), this.state.imRoomId)
1331
+ this.state.imJoinRoom =true
1332
+ console.log('IMOpenfire 加入im房间')
1333
+ }
1334
+ }, 200);
1331
1335
  }
1332
1336
 
1333
1337
  }
@@ -2284,10 +2288,13 @@ class Video extends Component {
2284
2288
  // 切流成功通知
2285
2289
  this.test_controller.OnChangeMediaStreamSuccess = (sid) => {
2286
2290
  console.log('切流成功通知', sid);
2287
- this.messageClick('切换摄像头或麦克风成功','success')
2288
- this.setState({
2289
- isModalVisibleInspection: false
2290
- })
2291
+ if(this.state.isModalVisibleInspection) {
2292
+ this.messageClick('切换摄像头或麦克风成功','success')
2293
+ this.setState({
2294
+ isModalVisibleInspection: false
2295
+ })
2296
+ }
2297
+
2291
2298
  };
2292
2299
  // 切流失败通知
2293
2300
  this.test_controller.OnChangeMediaStreamFailed = (
@@ -2409,9 +2416,14 @@ class Video extends Component {
2409
2416
  // 停止共享
2410
2417
  this.test_controller.OnDesktopDisplayClosed = () => {
2411
2418
  console.log('OnDesktopDisplayClosed', this.state.isSharedScreen ,this.state.laveRoomSharedScreen)
2419
+ if(this.state.isScreenSwitching) {
2420
+ this.state.isScreenSwitching = false
2421
+ } else {
2412
2422
  if (!this.state.laveRoomSharedScreen && this.state.isSharedScreen) {
2413
2423
  this.sharedScreen()
2414
2424
  }
2425
+ }
2426
+
2415
2427
 
2416
2428
  }
2417
2429
  }
@@ -2468,6 +2480,7 @@ class Video extends Component {
2468
2480
  this.test_controller.Disconnect()
2469
2481
  }
2470
2482
  if(this.state.imStatus) {
2483
+ console.log('disconnect断开连接')
2471
2484
  disconnect();
2472
2485
  }
2473
2486
 
@@ -2583,7 +2596,7 @@ class Video extends Component {
2583
2596
  this.props.resourcePath + "/beauty/backgroundBlur.js",
2584
2597
  this.props.resourcePath + "/adapter.js",
2585
2598
  this.props.resourcePath + "/getMediaInfo.js",
2586
- this.props.resourcePath + "/pdf.js",
2599
+ // this.props.resourcePath + "/pdf.js",
2587
2600
  this.props.resourcePath + "/EBML.js",
2588
2601
  this.props.resourcePath + "/mcu.js",
2589
2602
  this.props.resourcePath + "/meeting_desk_stream.js",
@@ -2763,6 +2776,20 @@ class Video extends Component {
2763
2776
  }
2764
2777
  }
2765
2778
  };
2779
+ screenSwitching=()=>{
2780
+ if (this.isFileSuccuse()) {
2781
+ const publish_config = {};
2782
+ if (this.state.isSharedScreen) {
2783
+ const publish_config = {}
2784
+ publish_config.media_type = 1
2785
+ publish_config.publish_device = 2
2786
+ publish_config.video_profile_type = 1
2787
+ publish_config.sid = document.getElementById('video20').name
2788
+ this.test_controller.ChangeMediaStream(publish_config)
2789
+ this.state.isScreenSwitching = true
2790
+ }
2791
+ }
2792
+ }
2766
2793
  sharedScreen = () => {
2767
2794
  console.log('投屏')
2768
2795
  if (this.isFileSuccuse()) {
@@ -2782,6 +2809,7 @@ class Video extends Component {
2782
2809
  this.test_controller.UnPublish(document.getElementById('video20').name)
2783
2810
  }
2784
2811
  this.state.isSharedScreen = false
2812
+ this.state.isScreenSwitching = false
2785
2813
  this.setState({
2786
2814
  screenName: '投屏'
2787
2815
  });
@@ -2794,20 +2822,21 @@ class Video extends Component {
2794
2822
  if (document.getElementById('video20').name) {
2795
2823
  publish_config.media_type = 1;
2796
2824
  publish_config.publish_device = 2;
2797
- publish_config.video_profile_type = 5;
2825
+ publish_config.video_profile_type = 1;
2798
2826
  publish_config.sid = document.getElementById('video20').name;
2799
2827
  this.test_controller.ChangeMediaStream(publish_config);
2800
2828
  } else {
2801
2829
  publish_config.media_type = 1
2802
2830
  publish_config.publish_device = 2
2803
2831
  publish_config.need_volume_analyser = true
2804
- publish_config.video_profile_type = 5
2832
+ publish_config.video_profile_type = 1
2805
2833
  publish_config.publish_video_id = 'video20'
2806
2834
  publish_config.publish_streamId_id = 'subscribe_streamId20'
2807
2835
  publish_config.publish_tag = 'projectionWhiteboard'
2808
2836
  this.test_controller.Publish(publish_config)
2809
2837
  }
2810
2838
  this.state.isSharedScreen = true
2839
+ this.state.isScreenSwitching = false
2811
2840
  this.setState({
2812
2841
  screenName: '取消共享',
2813
2842
  isPDF: false
@@ -3215,9 +3244,16 @@ class Video extends Component {
3215
3244
  }
3216
3245
  }
3217
3246
  handleOkSign = () => {
3218
- this.counterSign({
3219
- file: this.signCanvas.current.canvas.drawing.toDataURL('image/png')
3247
+ this.setState({
3248
+ isModalVisibleSign: false,
3220
3249
  })
3250
+ console.log(this.signCanvas.current.canvas.drawing.toDataURL('image/png'))
3251
+ this.props.imgRMCallback(
3252
+ this.signCanvas.current.canvas.drawing.toDataURL('image/png').replace(/data.+?;base64,/, "")
3253
+ )
3254
+ // this.counterSign({
3255
+ // file: this.signCanvas.current.canvas.drawing.toDataURL('image/png')
3256
+ // })
3221
3257
  }
3222
3258
  switchExternal = () => {
3223
3259
  if (!this.state.isWhiteboard) {
@@ -3866,6 +3902,7 @@ class Video extends Component {
3866
3902
  ocrClick={this.ocrClick}
3867
3903
  switchExternal={this.switchExternal}
3868
3904
  inspection={this.inspection}
3905
+ screenSwitching={this.screenSwitching}
3869
3906
  ></Foot>
3870
3907
  <Modal cancelText="取消" okText="确定" visible={this.state.isModalVisible} onOk={this.handleOk}
3871
3908
  onCancel={this.handleCancel}>
@@ -3936,7 +3973,7 @@ class Video extends Component {
3936
3973
  }
3937
3974
 
3938
3975
  </Modal>
3939
- <Modal title="签字白板" closable={false} centered={true} visible={this.state.isModalVisibleSign} footer={
3976
+ <Modal title="签字白板" width={600} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleSign} footer={
3940
3977
  [
3941
3978
  <div key='okSign'>
3942
3979
  <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkSign}>确定</Button>
@@ -4007,6 +4044,7 @@ sessionId: "Fwua8kGB6",
4007
4044
  title: '--',
4008
4045
  host: '--',
4009
4046
  customers: ['--']
4010
- }
4047
+ },
4048
+ isTranscribing: false,
4011
4049
  }
4012
4050
  export default Video
@@ -152,7 +152,7 @@
152
152
  text-align: center;
153
153
  }
154
154
  .content{
155
- height: 654px;
155
+ height: 200px;
156
156
  border-radius: 4px;
157
157
  border:1px dashed #DDDDDD;
158
158
  margin: 24px;