react_hsbc_teller 2.0.6 → 2.0.8-5.1

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.
Files changed (74) hide show
  1. package/.babelrc +39 -39
  2. package/README.en.md +36 -36
  3. package/README.md +404 -52
  4. package/config/webpack.config.js +119 -119
  5. package/config/webpack.dev.js +108 -108
  6. package/config/webpack.prod.js +104 -104
  7. package/lib/hsbc.js +1 -1
  8. package/lib/hsbc.js.LICENSE.txt +24 -16
  9. package/package.json +110 -109
  10. package/packages/api/api.js +818 -570
  11. package/packages/api/server.js +50 -50
  12. package/packages/assets/img/icon_fail.jpg +0 -0
  13. package/packages/assets/img/icon_success.jpg +0 -0
  14. package/packages/assets/mp3/connect_error.mp3 +0 -0
  15. package/packages/assets/mp3/ipad_join_meeting.mp3 +0 -0
  16. package/packages/assets/mp3/ipad_leave_error.mp3 +0 -0
  17. package/packages/assets/mp3/ipad_leave_meeting.mp3 +0 -0
  18. package/packages/assets/mp3/ipad_low_power.mp3 +0 -0
  19. package/packages/assets/mp3/ipad_media_close.mp3 +0 -0
  20. package/packages/assets/mp3/media_error.mp3 +0 -0
  21. package/packages/assets/mp3/networkweak.mp3 +0 -0
  22. package/packages/assets/mp3/pip_close.mp3 +0 -0
  23. package/packages/assets/mp3/record_error.mp3 +0 -0
  24. package/packages/assets/mp3/share_stop_audio.mp3 +0 -0
  25. package/packages/assets/mp3/startMedia_error.mp3 +0 -0
  26. package/packages/assets/mp3/volume_error.mp3 +0 -0
  27. package/packages/common/index.esm.js +374 -374
  28. package/packages/demo/demo.js +325 -279
  29. package/packages/demo/index.js +3 -3
  30. package/packages/demo/pdf.js +94 -79
  31. package/packages/envconfig/envconfig.js +12 -12
  32. package/packages/index.js +2 -2
  33. package/packages/pages/components/step/step.jsx +25 -31
  34. package/packages/pages/foot/foot.jsx +235 -246
  35. package/packages/pages/foot/foot.less +85 -85
  36. package/packages/pages/header/header.jsx +15 -15
  37. package/packages/pages/header/header.less +51 -51
  38. package/packages/pages/index.jsx +52 -52
  39. package/packages/pages/multiModule/components/copy/agree.jsx +115 -0
  40. package/packages/pages/multiModule/components/copy/agree.less +105 -0
  41. package/packages/pages/multiModule/components/copy/copyTwo.jsx +682 -0
  42. package/packages/pages/multiModule/components/copy/copyTwo.less +180 -0
  43. package/packages/pages/multiModule/components/copy/copy_en.jsx +368 -0
  44. package/packages/pages/multiModule/components/copy/copy_en.less +145 -0
  45. package/packages/pages/multiModule/components/copy/copylist.jsx +291 -0
  46. package/packages/pages/multiModule/components/copy/copylist.less +83 -0
  47. package/packages/pages/multiModule/components/copy/risk.jsx +296 -0
  48. package/packages/pages/multiModule/components/copy/risk.less +123 -0
  49. package/packages/pages/multiModule/components/sign/signMy.jsx +308 -0
  50. package/packages/pages/multiModule/components/sign/signMy.less +128 -0
  51. package/packages/pages/multiModule/components/subscribe/subscribe.jsx +113 -0
  52. package/packages/pages/multiModule/components/subscribe/subscribe.less +82 -0
  53. package/packages/pages/multiModule/multiModule.jsx +26 -0
  54. package/packages/pages/multiModule/multiModule.less +20 -0
  55. package/packages/pages/sign/signMy.jsx +223 -221
  56. package/packages/pages/sign/signMy.less +129 -129
  57. package/packages/pages/video/video.css +667 -0
  58. package/packages/pages/video/video.jsx +8352 -6178
  59. package/packages/pages/video/video.less +724 -634
  60. package/packages/style/index.less +1 -1
  61. package/packages/style/reset.less +345 -345
  62. package/packages/utils/asrController.js +259 -0
  63. package/packages/utils/asyncComponent.jsx +26 -26
  64. package/packages/utils/mixin.js +27 -27
  65. package/packages/utils/setRem.js +10 -10
  66. package/packages/utils/utils.js +210 -0
  67. package/public/index.html +77 -77
  68. package/src/index.js +11 -11
  69. package/src/index.less +5 -5
  70. package/tsconfig.json +11 -11
  71. package/packages/common/JKL.js +0 -61
  72. package/packages/common/XML.js +0 -271
  73. package/packages/common/websocket.js +0 -267
  74. package/packages/utils/cell.js +0 -64
@@ -1,86 +1,86 @@
1
- .foot{
2
- background: #fff;
3
- height: 4rem;
4
- display: inline-flex;
5
- width: 100%;
6
- // margin: 10px 0;
7
- // position: absolute;
8
- // bottom: 0;
9
- // left: 0;
10
- }
11
- .total{
12
- display: inline-flex;
13
- width: 25%;
14
- height: 100%;
15
- align-items: center;
16
- // margin: 10px 0;
17
- .one{
18
- // padding-top: 5px;
19
- padding: 5px 0;
20
- display: flex;
21
- line-height: 32px;
22
- flex-direction: column;
23
- align-items: center;
24
- flex-wrap: nowrap;
25
- }
26
- .footHover{
27
- margin: 0 5px;
28
- cursor: pointer;
29
- }
30
- .footHover :hover{
31
- background: #F3F3F3;
32
- border-radius: 8px;
33
- }
34
- .text{
35
- margin-top: 8px;
36
- padding-bottom: 10px;
37
- text-align: center;
38
- max-width: 110px;
39
- min-width: 80px;
40
- height: 11px;
41
- font-size: 14px;
42
- font-family: PingFangSC-Regular, PingFang SC;
43
- font-weight: 400;
44
- color: #333333;
45
- line-height: 11px;
46
- }
47
- }
48
- .totalTwo{
49
- justify-content: center;
50
- width: 50%;
51
- }
52
- .totalThree{
53
- // margin-top: 10px;
54
- width: 25%;
55
- padding-right: 20px;
56
- justify-content: flex-end;
57
- }
58
- .buttonClass{
59
- font-size: 16px;
60
- color: #ffffff;
61
- width: 90px;
62
- height: 32px;
63
- background: #B70000;
64
- border-radius: 6px;
65
- border: 1px #B70000 solid;
66
- }
67
- .spanClass{
68
- font-size: 16px;
69
- color: #FFFFFF;
70
- }
71
- .imgClassFoot{
72
- width: 25px;
73
- height: 25px;
74
- margin-bottom: 3px;
75
- }
76
- .imgClass{
77
- width: 25px;
78
- height: 25px;
79
- }
80
- .listLi{
81
- margin-top: 4px;
82
- }
83
- .customer:hover{
84
- background: #F3F3F3;
85
- border-radius: 8px;
1
+ .foot{
2
+ background: #fff;
3
+ height: 4rem;
4
+ display: inline-flex;
5
+ width: 100%;
6
+ // margin: 10px 0;
7
+ // position: absolute;
8
+ // bottom: 0;
9
+ // left: 0;
10
+ }
11
+ .total{
12
+ display: inline-flex;
13
+ width: 25%;
14
+ height: 100%;
15
+ align-items: center;
16
+ // margin: 10px 0;
17
+ .one{
18
+ // padding-top: 5px;
19
+ padding: 5px 0;
20
+ display: flex;
21
+ line-height: 32px;
22
+ flex-direction: column;
23
+ align-items: center;
24
+ flex-wrap: nowrap;
25
+ }
26
+ .footHover{
27
+ margin: 0 5px;
28
+ cursor: pointer;
29
+ }
30
+ .footHover :hover{
31
+ background: #F3F3F3;
32
+ border-radius: 8px;
33
+ }
34
+ .text{
35
+ margin-top: 8px;
36
+ padding-bottom: 10px;
37
+ text-align: center;
38
+ max-width: 110px;
39
+ min-width: 80px;
40
+ height: 11px;
41
+ font-size: 14px;
42
+ font-family: PingFangSC-Regular, PingFang SC;
43
+ font-weight: 400;
44
+ color: #333333;
45
+ line-height: 11px;
46
+ }
47
+ }
48
+ .totalTwo{
49
+ justify-content: center;
50
+ width: 50%;
51
+ }
52
+ .totalThree{
53
+ // margin-top: 10px;
54
+ width: 25%;
55
+ padding-right: 20px;
56
+ justify-content: flex-end;
57
+ }
58
+ .buttonClass{
59
+ font-size: 16px;
60
+ color: #ffffff;
61
+ width: 90px;
62
+ height: 32px;
63
+ background: #B70000;
64
+ border-radius: 6px;
65
+ border: 1px #B70000 solid;
66
+ }
67
+ .spanClass{
68
+ font-size: 16px;
69
+ color: #FFFFFF;
70
+ }
71
+ .imgClassFoot{
72
+ width: 25px;
73
+ height: 25px;
74
+ margin-bottom: 3px;
75
+ }
76
+ .imgClass{
77
+ width: 25px;
78
+ height: 25px;
79
+ }
80
+ .listLi{
81
+ margin-top: 4px;
82
+ }
83
+ .customer:hover{
84
+ background: #F3F3F3;
85
+ border-radius: 8px;
86
86
  }
@@ -1,16 +1,16 @@
1
- import React, { Component } from 'react';
2
- import './header.less'
3
- export default class header extends Component {
4
- goOut=()=>{
5
-
6
- }
7
- render(){
8
- return(
9
- <div className="Hamburger">
10
- <div className="left-header">
11
- <div className="title">汇丰银行远程会议</div>
12
- </div>
13
- </div>
14
- )
15
- }
1
+ import React, { Component } from 'react';
2
+ import './header.less'
3
+ export default class header extends Component {
4
+ goOut=()=>{
5
+
6
+ }
7
+ render(){
8
+ return(
9
+ <div className="Hamburger">
10
+ <div className="left-header">
11
+ <div className="title">汇丰银行{this.props.recordMode==2?'分行':'远程'}会议</div>
12
+ </div>
13
+ </div>
14
+ )
15
+ }
16
16
  }
@@ -1,52 +1,52 @@
1
- .Hamburger {
2
- width: 100%;
3
- height: 32px;
4
- background: #FFFFFF;
5
- box-shadow: 0px -1px 4px 0px #E6F0FF;
6
- border-radius: 0px 0px 4px 4px;
7
- display: flex;
8
- justify-content: space-between;
9
- align-items: center;
10
- color: #185e75;
11
- .left-header {
12
- width: 100%;
13
- display: inline-flex;
14
- .title{
15
- margin-left: 20px;
16
- font-size: 16px;
17
- font-family: PingFangSC-Regular, PingFang SC;
18
- font-weight: 400;
19
- color: #333333;
20
- }
21
- }
22
- .right-header {
23
- height: 32px;
24
- margin-right:3px;
25
- display: inline-flex;
26
- text-align: end;
27
- .one{
28
- display: flex;
29
- height: 32px;
30
- flex-direction: column;
31
- align-items: center;
32
- flex-wrap: nowrap;
33
- -webkit-app-region: no-drag;
34
- }
35
- .text{
36
- margin-top: 2px;
37
- text-align: center;
38
- width: 32px;
39
- height: 11px;
40
- font-size: 14px;
41
- font-family: PingFangSC-Regular, PingFang SC;
42
- font-weight: 400;
43
- color: #666666;
44
- line-height: 11px;
45
- }
46
- }
47
- }
48
- // img {
49
- // pointer-events: none;
50
- // width: 17px;
51
- // margin-top: 2px;
1
+ .Hamburger {
2
+ width: 100%;
3
+ height: 32px;
4
+ background: #FFFFFF;
5
+ box-shadow: 0px -1px 4px 0px #E6F0FF;
6
+ border-radius: 0px 0px 4px 4px;
7
+ display: flex;
8
+ justify-content: space-between;
9
+ align-items: center;
10
+ color: #185e75;
11
+ .left-header {
12
+ width: 100%;
13
+ display: inline-flex;
14
+ .title{
15
+ margin-left: 20px;
16
+ font-size: 16px;
17
+ font-family: PingFangSC-Regular, PingFang SC;
18
+ font-weight: 400;
19
+ color: #333333;
20
+ }
21
+ }
22
+ .right-header {
23
+ height: 32px;
24
+ margin-right:3px;
25
+ display: inline-flex;
26
+ text-align: end;
27
+ .one{
28
+ display: flex;
29
+ height: 32px;
30
+ flex-direction: column;
31
+ align-items: center;
32
+ flex-wrap: nowrap;
33
+ -webkit-app-region: no-drag;
34
+ }
35
+ .text{
36
+ margin-top: 2px;
37
+ text-align: center;
38
+ width: 32px;
39
+ height: 11px;
40
+ font-size: 14px;
41
+ font-family: PingFangSC-Regular, PingFang SC;
42
+ font-weight: 400;
43
+ color: #666666;
44
+ line-height: 11px;
45
+ }
46
+ }
47
+ }
48
+ // img {
49
+ // pointer-events: none;
50
+ // width: 17px;
51
+ // margin-top: 2px;
52
52
  // }
@@ -1,52 +1,52 @@
1
- import React, { Component } from 'react';
2
- import API from '@/api/api';
3
- import Video from "@/pages/video/video";
4
- import { IntlProvider } from 'react-intl';
5
-
6
- class Main extends Component {
7
- state = {
8
- langPackage: {
9
- en: {},
10
- zh: {},
11
- }
12
- };
13
-
14
- // 获取语言包
15
- updateLanguage = async () => {
16
- let res = await API.selectLang()
17
- this.setState({
18
- langPackage: {
19
- en: res.en,
20
- zh: res.cn,
21
- }
22
- });
23
- // console.log(res)
24
- window.localStorage.setItem("langData", JSON.stringify(Object.assign(res)));
25
- }
26
- componentWillMount() {
27
- window.sessionStorage.setItem('baseURL',this.props.baseURL)
28
- localStorage.setItem("a_lang", this.props.lang)
29
- if (localStorage.getItem("langData")){
30
- this.setState({langPackage: JSON.parse(localStorage.getItem("langData"))})
31
- }
32
- // console.log(JSON.parse(localStorage.getItem("langData")))
33
- this.updateLanguage()
34
- }
35
- render() {
36
- const lang = this.props.lang
37
-
38
- // console.log(this.state.langPackage[lang])
39
- return (
40
- <IntlProvider locale={lang} messages={this.state.langPackage[lang]}>
41
- <Video {...this.props}></Video>
42
- </IntlProvider>
43
- );
44
- }
45
- }
46
- Main.defaultProps = {
47
- lang: 'zh',
48
- // baseURL: 'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
49
- baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api/',
50
-
51
- }
52
- export default Main
1
+ import React, { Component } from 'react';
2
+ import API from '@/api/api';
3
+ import Video from "@/pages/video/video";
4
+ import { IntlProvider } from 'react-intl';
5
+
6
+ class Main extends Component {
7
+ state = {
8
+ langPackage: {
9
+ en: {},
10
+ zh: {},
11
+ }
12
+ };
13
+
14
+ // 获取语言包
15
+ updateLanguage = async () => {
16
+ let res = await API.selectLang()
17
+ this.setState({
18
+ langPackage: {
19
+ en: res.en,
20
+ zh: res.cn,
21
+ }
22
+ });
23
+ // console.log(res)
24
+ window.localStorage.setItem("langData", JSON.stringify(Object.assign(res)));
25
+ }
26
+ componentWillMount() {
27
+ window.sessionStorage.setItem('baseURL',this.props.baseURL)
28
+ localStorage.setItem("a_lang", this.props.lang)
29
+ if (localStorage.getItem("langData")){
30
+ this.setState({langPackage: JSON.parse(localStorage.getItem("langData"))})
31
+ }
32
+ // console.log(JSON.parse(localStorage.getItem("langData")))
33
+ this.updateLanguage()
34
+ }
35
+ render() {
36
+ const lang = this.props.lang
37
+
38
+ // console.log(this.state.langPackage[lang])
39
+ return (
40
+ <IntlProvider locale={lang} messages={this.state.langPackage[lang]}>
41
+ <Video {...this.props}></Video>
42
+ </IntlProvider>
43
+ );
44
+ }
45
+ }
46
+ Main.defaultProps = {
47
+ lang: 'zh',
48
+ // baseURL: 'https://zuul.uat.dsp.hsbcfts.com.cn/wealth/zuul/api/leimon-counter-api',
49
+ baseURL:'https://counter-web.leimondata.cn:18082/api/leimon-counter-api/',
50
+
51
+ }
52
+ export default Main
@@ -0,0 +1,115 @@
1
+ import React, { Component } from 'react';
2
+ import { Checkbox, message } from 'antd';
3
+ import { FormattedMessage, injectIntl } from 'react-intl';
4
+ import './agree.less'
5
+ import Modal from "antd/lib/modal";
6
+ import 'antd/lib/modal/style'
7
+ import { Button } from '../../../../../node_modules/antd/lib/index';
8
+ @injectIntl
9
+ class Agree extends Component {
10
+ state = {
11
+ isModalVisibleEnd: false,
12
+ // item: {
13
+ // "type":"1",
14
+ // "sequence":"2",
15
+ // "subContent":[
16
+ // {
17
+ // "desc":"描述1",
18
+ // "option":false
19
+ // },
20
+ // {
21
+ // "desc":"描述2",
22
+ // "option":false
23
+ // }
24
+ // ]
25
+ // },
26
+ list: []
27
+ };
28
+
29
+ componentDidMount() {
30
+ this.setState({
31
+ list: this.props.item.subContent
32
+ })
33
+ }
34
+
35
+ onChange = (e) => {
36
+ this.state.list[e.target.index].option = e.target.checked;
37
+ this.setState({
38
+ list: this.state.list
39
+ })
40
+ }
41
+
42
+ commit = () => {
43
+ if(!this.state.list.every((item)=> item.option)) {
44
+ message.warning(this.props.intl.formatMessage({id: 'plzCheckAgree'})); // 请先勾选同意
45
+ return;
46
+ }
47
+ this.props.next({
48
+ ...this.props.item,
49
+ subContent: this.state.list
50
+ })
51
+ }
52
+ exit = () => {
53
+ this.setState({
54
+ isModalVisibleEnd: true
55
+ })
56
+
57
+ }
58
+ handleCancelEnd = () => {
59
+ this.setState({
60
+ isModalVisibleEnd: false
61
+ })
62
+ }
63
+ handleOkEnd = () => {
64
+ this.setState({
65
+ isModalVisibleEnd: false
66
+ })
67
+ this.props.exit()
68
+ }
69
+ render() {
70
+ const { item } = this.props;
71
+ return (
72
+ <div className="agree">
73
+ <div className="thehead">
74
+ <div className="title">
75
+ <div className="title-color"></div>
76
+ <div className="title-text">{this.props.title}</div>
77
+ </div>
78
+ <div className='thehead'>
79
+ <div className="reset" onClick={this.exit}><FormattedMessage id="exit" /></div>
80
+ <div className="qianshu" onClick={this.commit}><FormattedMessage id="commit" /></div>
81
+ </div>
82
+ </div>
83
+ <div className="contents">
84
+ {
85
+ this.state.list.map((obj, index) => {
86
+ return (
87
+ <div key={index} className={`item-panel ${obj.option?'checked':''}`}>
88
+ <div>{obj.desc}</div>
89
+ <div><Checkbox index={index} checked={obj.option} onChange={this.onChange}> <FormattedMessage id="agree" /></Checkbox></div>
90
+ </div>
91
+ )
92
+ })
93
+ }
94
+ </div>
95
+ <Modal transitionName="" maskTransitionName="" getContainer={document.getElementById('multiModule')} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleEnd} footer={[<div key='end'>
96
+ <Button className="modelButtonCancel" onClick={this.handleCancelEnd}><FormattedMessage id="cancel" /></Button>
97
+ <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkEnd}><FormattedMessage id="ok" /></Button>
98
+ </div>
99
+ ]}>
100
+ <div className='endModal'>
101
+ <div className='modalEndTitle'>
102
+ <FormattedMessage id="whether" />
103
+ </div>
104
+ <div className='modalEnd'>
105
+ <FormattedMessage id="progress" />
106
+ </div>
107
+ </div>
108
+ </Modal>
109
+ </div>
110
+ );
111
+ }
112
+
113
+ }
114
+
115
+ export default Agree;
@@ -0,0 +1,105 @@
1
+ .agree{
2
+ height: 100%;
3
+ background: #fff;
4
+ padding: 14px 24px;
5
+ overflow: hidden;
6
+ .thehead{
7
+ display: flex;
8
+ justify-content: space-between;
9
+ .title{
10
+ display: flex;
11
+ .title-color{
12
+ width: 2px;
13
+ height: 1.5rem;
14
+ background: #00847F;
15
+ margin-top: 0.25rem;
16
+ }
17
+ .title-text{
18
+ font-size: 1.5rem;
19
+ color: #323232;
20
+ margin-left: 8px;
21
+ }
22
+
23
+ }
24
+ .qianshu{
25
+ width: 96px;
26
+ height: 2rem;
27
+ background: #F9F2F3;
28
+ border-radius: 2px;
29
+ border: 1px solid #E5B2B5;
30
+ font-size: 14px;
31
+ color: #DB0011;
32
+ line-height: 32px;
33
+ text-align: center;
34
+ }
35
+ .reset{
36
+ width: 96px;
37
+ height: 2rem;
38
+ background: white;
39
+ border-radius: 2px;
40
+ border: 1px solid #DCDCDC;
41
+ font-size: 14px;
42
+ color: #646464;
43
+ line-height: 32px;
44
+ text-align: center;
45
+ margin-right: 8px;
46
+ }
47
+ }
48
+
49
+ .contents{
50
+ display: flex;
51
+ flex-direction: column;
52
+ height: 100%;
53
+ overflow: overlay;
54
+ padding-bottom: 2.5rem;
55
+ .item-panel{
56
+ width: 100%;
57
+ display: flex;
58
+ flex-direction: row;
59
+ flex-wrap: nowrap;
60
+ align-items: center;
61
+ font-size: 16px;
62
+ font-family: PingFangSC-Regular, PingFang SC;
63
+ font-weight: 400;
64
+ color: #666;
65
+ line-height: 24px;
66
+ margin-top: 20px;
67
+ // height: 80px;
68
+
69
+ >div:first-child{
70
+ display: flex;
71
+ align-items: center;
72
+ background: #F8F8F8;
73
+ border-radius: 8px 0px 0px 8px;
74
+ padding: 20px;
75
+ margin-right: 2px;
76
+ flex: 1;
77
+ height: 100%;
78
+ }
79
+ >div:last-child{
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ background: #F8F8F8;
84
+ border-radius: 0px 8px 8px 0px;
85
+ color: #999 ;
86
+ padding: 14px;
87
+ width: 140px;
88
+ height: 100%;
89
+ }
90
+ &.checked{
91
+ >div:first-child{
92
+ color: #999;
93
+ }
94
+ >div:last-child{
95
+ color: #333;
96
+ }
97
+ }
98
+ .ant-checkbox-checked .ant-checkbox-inner {
99
+ background-color: #DE2228;
100
+ border-color: #DE2228;
101
+ }
102
+ }
103
+ }
104
+
105
+ }