react_hsbc_teller 2.0.54 → 2.0.55

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 (54) hide show
  1. package/.babelrc +39 -39
  2. package/README.en.md +36 -36
  3. package/README.md +323 -323
  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 +13 -16
  9. package/package.json +110 -110
  10. package/packages/api/api.js +818 -818
  11. package/packages/api/server.js +50 -50
  12. package/packages/common/index.esm.js +374 -374
  13. package/packages/demo/demo.js +306 -306
  14. package/packages/demo/index.js +3 -3
  15. package/packages/demo/pdf.js +94 -94
  16. package/packages/envconfig/envconfig.js +12 -12
  17. package/packages/index.js +2 -2
  18. package/packages/pages/components/step/step.jsx +32 -31
  19. package/packages/pages/foot/foot.jsx +235 -235
  20. package/packages/pages/foot/foot.less +85 -85
  21. package/packages/pages/header/header.jsx +15 -15
  22. package/packages/pages/header/header.less +51 -51
  23. package/packages/pages/index.jsx +52 -52
  24. package/packages/pages/multiModule/components/copy/agree.jsx +115 -115
  25. package/packages/pages/multiModule/components/copy/agree.less +105 -105
  26. package/packages/pages/multiModule/components/copy/copyTwo.jsx +682 -682
  27. package/packages/pages/multiModule/components/copy/copyTwo.less +180 -180
  28. package/packages/pages/multiModule/components/copy/copy_en.jsx +368 -368
  29. package/packages/pages/multiModule/components/copy/copy_en.less +145 -145
  30. package/packages/pages/multiModule/components/copy/copylist.jsx +291 -291
  31. package/packages/pages/multiModule/components/copy/copylist.less +83 -83
  32. package/packages/pages/multiModule/components/copy/risk.jsx +296 -296
  33. package/packages/pages/multiModule/components/copy/risk.less +123 -123
  34. package/packages/pages/multiModule/components/sign/signMy.jsx +308 -308
  35. package/packages/pages/multiModule/components/sign/signMy.less +127 -127
  36. package/packages/pages/multiModule/components/subscribe/subscribe.jsx +113 -113
  37. package/packages/pages/multiModule/components/subscribe/subscribe.less +82 -82
  38. package/packages/pages/multiModule/multiModule.jsx +26 -26
  39. package/packages/pages/multiModule/multiModule.less +19 -19
  40. package/packages/pages/sign/signMy.jsx +223 -223
  41. package/packages/pages/sign/signMy.less +129 -129
  42. package/packages/pages/video/video.jsx +7746 -7745
  43. package/packages/pages/video/video.less +715 -715
  44. package/packages/style/index.less +1 -1
  45. package/packages/style/reset.less +345 -345
  46. package/packages/utils/asrController.js +259 -259
  47. package/packages/utils/asyncComponent.jsx +26 -26
  48. package/packages/utils/mixin.js +27 -27
  49. package/packages/utils/setRem.js +10 -10
  50. package/packages/utils/utils.js +199 -199
  51. package/public/index.html +77 -77
  52. package/src/index.js +11 -11
  53. package/src/index.less +5 -5
  54. package/tsconfig.json +11 -11
@@ -1,308 +1,308 @@
1
- import React, { Component } from 'react';
2
- import { message } from 'antd';
3
- import { FormattedMessage, injectIntl } from 'react-intl';
4
- import './signMy.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 Sign extends Component {
10
- signCanvas = React.createRef();
11
- state = {
12
- canvasCtx: null,
13
- heightOne: '0px',
14
- widthOne: '0px',
15
- isModalVisibleEnd: false,
16
- isModalVisibleSubmit: false,
17
- isSignOk: false
18
- };
19
-
20
- componentDidMount() {
21
- setTimeout(() => {
22
- // console.log(document.getElementById('multiModule').offsetWidth)
23
- let canvasWidth = document.getElementById('multiModule').offsetWidth - 40
24
- let canvasHeight = canvasWidth * (Number(this.props.height)) / (Number(this.props.length))
25
-
26
- // 适应竖长图
27
- if(canvasHeight > document.getElementById('multiModule').offsetHeight - 120){
28
- canvasHeight = document.getElementById('multiModule').offsetHeight - 120
29
- canvasWidth = canvasHeight * (Number(this.props.length)) / (Number(this.props.height))
30
- }
31
-
32
- const canvas = this.refs.canvasF;
33
- canvas.height =canvasHeight || this.refs.canvasHW.offsetHeight;
34
- canvas.width = canvasWidth || this.refs.canvasHW.offsetWidth;
35
- this.setState({
36
- heightOne: canvas.height + 'px',
37
- widthOne: canvas.width + 'px'
38
- })
39
- this.state.canvasCtx = canvas.getContext('2d');
40
- this.state.stageInfo = canvas.getBoundingClientRect();
41
- this.state.canvasCtx.lineWidth = 7;
42
- this.state.canvasCtx.lineCap = "round";
43
- // this.state.isSignOk = false
44
- this.setState({
45
- isSignOk: false
46
- })
47
-
48
- canvas.addEventListener('touchstart', this.touchStart, { passive: false });
49
- canvas.addEventListener('touchmove', this.touchMove, { passive: false });
50
- canvas.addEventListener('touchend', this.touchEnd, { passive: false });
51
- }, 10);
52
-
53
-
54
- }
55
- componentWillUnmount () {
56
- const canvas = this.refs.canvasF;
57
- canvas.removeEventListener('touchstart', this.touchStart);
58
- canvas.removeEventListener('touchmove', this.touchMove);
59
- canvas.removeEventListener('touchend', this.touchEnd);
60
- }
61
-
62
- // 清空画布
63
- clearSign = async () => {
64
- this.setState({
65
- isSignOk: false
66
- })
67
- // this.state.isSignOk = false
68
- const canvas = this.refs.canvasF;
69
- // 清除画布
70
- this.state.canvasCtx.clearRect(
71
- 0,
72
- 0,
73
- canvas.width,
74
- canvas.height,
75
- );
76
- };
77
- touchStart=(ev)=> {
78
- this.setState({
79
- isSignOk: true
80
- })
81
- // this.state.isSignOk = true
82
- ev = ev || event
83
- ev.preventDefault()
84
- if (ev.touches.length == 1) {
85
- let obj = {
86
- x: ev.targetTouches[0].clientX,
87
- y: ev.targetTouches[0].clientY,
88
- }
89
- this.state.startX = obj.x
90
- this.state.startY = obj.y
91
- this.state.canvasCtx.beginPath()
92
- const canvas = this.refs.canvasF;
93
- this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
94
- this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
95
- this.state.canvasCtx.stroke()
96
- this.state.canvasCtx.closePath()
97
- // this.points.push(obj)
98
-
99
- }
100
- }
101
- touchMove=(ev)=>{
102
- ev = ev || event
103
- ev.preventDefault()
104
- if (ev.touches.length == 1) {
105
- let obj = {
106
- x: ev.targetTouches[0].clientX,
107
- y: ev.targetTouches[0].clientY
108
- }
109
- this.state.moveY = obj.y
110
- this.state.moveX = obj.x
111
- this.state.canvasCtx.beginPath()
112
- // strokeStyle = 'blue';
113
- const canvas = this.refs.canvasF;
114
- this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
115
- this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
116
- this.state.canvasCtx.stroke()
117
- this.state.canvasCtx.closePath()
118
- this.state.startY = obj.y
119
- this.state.startX = obj.x
120
- // this.points.push(obj)
121
- }
122
- }
123
- touchEnd=(ev)=> {
124
- ev = ev || event
125
- ev.preventDefault()
126
-
127
- if (ev.touches.length == 1) {
128
- let obj = {
129
- x: ev.targetTouches[0].clientX ,
130
- y: ev.targetTouches[0].clientY
131
- }
132
- this.state.canvasCtx.beginPath()
133
- const canvas = this.refs.canvasF;
134
- this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
135
- this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
136
- this.state.canvasCtx.stroke()
137
- this.state.canvasCtx.closePath()
138
- // this.points.push(obj)
139
- }
140
- }
141
- // pc
142
- mouseDown=(ev) =>{
143
- this.setState({
144
- isSignOk: true
145
- })
146
- // this.state.isSignOk = true
147
- ev.preventDefault();
148
- const obj = {
149
- x: ev.pageX,
150
- y: ev.pageY,
151
- };
152
- const canvas = this.refs.canvasF;
153
- this.state.startX = obj.x;
154
- this.state.startY = obj.y;
155
- this.state.canvasCtx.beginPath();
156
- this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
157
- this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
158
- this.state.canvasCtx.stroke();
159
- this.state.canvasCtx.closePath();
160
- this.state.isDown = true;
161
-
162
- }
163
- mouseMove=(ev)=> {
164
- ev.preventDefault();
165
- if (this.state.isDown) {
166
- const obj = {
167
- x: ev.pageX,
168
- y: ev.pageY,
169
- };
170
- const canvas = this.refs.canvasF;
171
- if(obj.x - canvas.getBoundingClientRect().left<0 || obj.x - canvas.getBoundingClientRect().left> canvas.width || obj.y - canvas.getBoundingClientRect().top< 0 || obj.y - canvas.getBoundingClientRect().top> canvas.height) {
172
- this.state.isDown = false;
173
- }
174
- this.state.moveY = obj.y;
175
- this.state.moveX = obj.x;
176
- this.state.canvasCtx.beginPath();
177
-
178
- this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
179
- this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
180
- this.state.canvasCtx.stroke();
181
- this.state.canvasCtx.closePath();
182
- this.state.startY = obj.y;
183
- this.state.startX = obj.x;
184
- }
185
- }
186
- mouseUp=(ev)=> {
187
- if (!this.state.isDown) return;
188
- ev.preventDefault();
189
- const obj = {
190
- x: ev.pageX,
191
- y: ev.pageY,
192
- };
193
- const canvas = this.refs.canvasF;
194
- this.state.canvasCtx.beginPath();
195
- this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
196
- this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
197
- this.state.canvasCtx.stroke();
198
- this.state.canvasCtx.closePath();
199
- this.state.isDown = false;
200
-
201
- }
202
- commit = async () => {
203
- if(this.state.isSignOk) {
204
- console.log(this.refs.canvasF.toDataURL())
205
-
206
- this.props.finish(this.refs.canvasF.toDataURL())
207
-
208
- } else {
209
- this.setState({
210
- isModalVisibleSubmit: true
211
- }) }
212
- }
213
- exit = () => {
214
- this.setState({
215
- isModalVisibleEnd: true
216
- })
217
- }
218
- handleCancelEnd = () => {
219
- this.setState({
220
- isModalVisibleEnd: false
221
- })
222
- }
223
- handleOkEnd = () => {
224
- this.setState({
225
- isModalVisibleEnd: false
226
- })
227
- this.props.exit()
228
- }
229
- handleSubmit=()=>{
230
- this.setState({
231
- isModalVisibleSubmit: false
232
- })
233
- }
234
- render() {
235
- return (
236
- <div className="sign">
237
- <div className="thehead">
238
- <div className="title">
239
- <div className="title-color"></div>
240
- <div className="title-text">{this.props.title}</div>
241
- </div>
242
- <div className='btns'>
243
- <div className="reset" onClick={this.exit}><FormattedMessage id="exit" /></div>
244
- </div>
245
- </div>
246
- <div className="content" ref="canvasHW" style={{height: this.state.heightOne,width: this.state.widthOne}}>
247
- <canvas
248
- id="canvasF"
249
- className='canvasF'
250
- ref="canvasF"
251
- // onTouchStart={this.touchStart}
252
- // onTouchMove={this.touchMove}
253
- // onTouchEnd={this.touchEnd}
254
- onMouseDown={this.mouseDown}
255
- onMouseMove={this.mouseMove}
256
- onMouseUp={this.mouseUp}
257
- onMouseLeave={() => { this.state.isDown = false }}
258
- ></canvas>
259
- {
260
- !this.state.isSignOk && <div className="signHere"><FormattedMessage id="plzSign" /></div>
261
-
262
- }
263
- </div>
264
- <div className='footRisk'>
265
- <div className='btns'>
266
- <div className="reset" onClick={this.clearSign}><FormattedMessage id="clearScreen" /></div>
267
- <div className="qianshu" onClick={this.commit}><FormattedMessage id="commit" /></div>
268
-
269
- </div>
270
- </div>
271
- <Modal transitionName="" maskTransitionName="" getContainer={document.getElementById('multiModule')} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleSubmit} footer={[<div key='end'>
272
- <Button className="modelButtonOk" type="primary" danger onClick={this.handleSubmit}><FormattedMessage id="ok" /></Button>
273
- </div>
274
- ]}>
275
- <div className='endModal'>
276
- <div className='modalEndTitle'>
277
- <FormattedMessage id="message" />
278
- </div>
279
- <div className='modalEnd'>
280
- <FormattedMessage id="signatureNot" />
281
- </div>
282
- </div>
283
- </Modal>
284
- <Modal transitionName="" maskTransitionName="" getContainer={document.getElementById('multiModule')} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleEnd} footer={[<div key='end'>
285
- <Button className="modelButtonCancel" onClick={this.handleCancelEnd}><FormattedMessage id="cancel" /></Button>
286
- <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkEnd}><FormattedMessage id="ok" /></Button>
287
- </div>
288
- ]}>
289
- <div className='endModal'>
290
- <div className='modalEndTitle'>
291
- <FormattedMessage id="whether" />
292
- </div>
293
- <div className='modalEnd'>
294
- <FormattedMessage id="progress" />
295
- </div>
296
- </div>
297
- </Modal>
298
- </div>
299
- );
300
- }
301
-
302
- }
303
- Sign.defaultProps = {
304
- length: '100%',
305
- height: '100%'
306
- }
307
-
308
- export default Sign;
1
+ import React, { Component } from 'react';
2
+ import { message } from 'antd';
3
+ import { FormattedMessage, injectIntl } from 'react-intl';
4
+ import './signMy.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 Sign extends Component {
10
+ signCanvas = React.createRef();
11
+ state = {
12
+ canvasCtx: null,
13
+ heightOne: '0px',
14
+ widthOne: '0px',
15
+ isModalVisibleEnd: false,
16
+ isModalVisibleSubmit: false,
17
+ isSignOk: false
18
+ };
19
+
20
+ componentDidMount() {
21
+ setTimeout(() => {
22
+ // console.log(document.getElementById('multiModule').offsetWidth)
23
+ let canvasWidth = document.getElementById('multiModule').offsetWidth - 40
24
+ let canvasHeight = canvasWidth * (Number(this.props.height)) / (Number(this.props.length))
25
+
26
+ // 适应竖长图
27
+ if(canvasHeight > document.getElementById('multiModule').offsetHeight - 120){
28
+ canvasHeight = document.getElementById('multiModule').offsetHeight - 120
29
+ canvasWidth = canvasHeight * (Number(this.props.length)) / (Number(this.props.height))
30
+ }
31
+
32
+ const canvas = this.refs.canvasF;
33
+ canvas.height =canvasHeight || this.refs.canvasHW.offsetHeight;
34
+ canvas.width = canvasWidth || this.refs.canvasHW.offsetWidth;
35
+ this.setState({
36
+ heightOne: canvas.height + 'px',
37
+ widthOne: canvas.width + 'px'
38
+ })
39
+ this.state.canvasCtx = canvas.getContext('2d');
40
+ this.state.stageInfo = canvas.getBoundingClientRect();
41
+ this.state.canvasCtx.lineWidth = 7;
42
+ this.state.canvasCtx.lineCap = "round";
43
+ // this.state.isSignOk = false
44
+ this.setState({
45
+ isSignOk: false
46
+ })
47
+
48
+ canvas.addEventListener('touchstart', this.touchStart, { passive: false });
49
+ canvas.addEventListener('touchmove', this.touchMove, { passive: false });
50
+ canvas.addEventListener('touchend', this.touchEnd, { passive: false });
51
+ }, 10);
52
+
53
+
54
+ }
55
+ componentWillUnmount () {
56
+ const canvas = this.refs.canvasF;
57
+ canvas.removeEventListener('touchstart', this.touchStart);
58
+ canvas.removeEventListener('touchmove', this.touchMove);
59
+ canvas.removeEventListener('touchend', this.touchEnd);
60
+ }
61
+
62
+ // 清空画布
63
+ clearSign = async () => {
64
+ this.setState({
65
+ isSignOk: false
66
+ })
67
+ // this.state.isSignOk = false
68
+ const canvas = this.refs.canvasF;
69
+ // 清除画布
70
+ this.state.canvasCtx.clearRect(
71
+ 0,
72
+ 0,
73
+ canvas.width,
74
+ canvas.height,
75
+ );
76
+ };
77
+ touchStart=(ev)=> {
78
+ this.setState({
79
+ isSignOk: true
80
+ })
81
+ // this.state.isSignOk = true
82
+ ev = ev || event
83
+ ev.preventDefault()
84
+ if (ev.touches.length == 1) {
85
+ let obj = {
86
+ x: ev.targetTouches[0].clientX,
87
+ y: ev.targetTouches[0].clientY,
88
+ }
89
+ this.state.startX = obj.x
90
+ this.state.startY = obj.y
91
+ this.state.canvasCtx.beginPath()
92
+ const canvas = this.refs.canvasF;
93
+ this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
94
+ this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
95
+ this.state.canvasCtx.stroke()
96
+ this.state.canvasCtx.closePath()
97
+ // this.points.push(obj)
98
+
99
+ }
100
+ }
101
+ touchMove=(ev)=>{
102
+ ev = ev || event
103
+ ev.preventDefault()
104
+ if (ev.touches.length == 1) {
105
+ let obj = {
106
+ x: ev.targetTouches[0].clientX,
107
+ y: ev.targetTouches[0].clientY
108
+ }
109
+ this.state.moveY = obj.y
110
+ this.state.moveX = obj.x
111
+ this.state.canvasCtx.beginPath()
112
+ // strokeStyle = 'blue';
113
+ const canvas = this.refs.canvasF;
114
+ this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
115
+ this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
116
+ this.state.canvasCtx.stroke()
117
+ this.state.canvasCtx.closePath()
118
+ this.state.startY = obj.y
119
+ this.state.startX = obj.x
120
+ // this.points.push(obj)
121
+ }
122
+ }
123
+ touchEnd=(ev)=> {
124
+ ev = ev || event
125
+ ev.preventDefault()
126
+
127
+ if (ev.touches.length == 1) {
128
+ let obj = {
129
+ x: ev.targetTouches[0].clientX ,
130
+ y: ev.targetTouches[0].clientY
131
+ }
132
+ this.state.canvasCtx.beginPath()
133
+ const canvas = this.refs.canvasF;
134
+ this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
135
+ this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
136
+ this.state.canvasCtx.stroke()
137
+ this.state.canvasCtx.closePath()
138
+ // this.points.push(obj)
139
+ }
140
+ }
141
+ // pc
142
+ mouseDown=(ev) =>{
143
+ this.setState({
144
+ isSignOk: true
145
+ })
146
+ // this.state.isSignOk = true
147
+ ev.preventDefault();
148
+ const obj = {
149
+ x: ev.pageX,
150
+ y: ev.pageY,
151
+ };
152
+ const canvas = this.refs.canvasF;
153
+ this.state.startX = obj.x;
154
+ this.state.startY = obj.y;
155
+ this.state.canvasCtx.beginPath();
156
+ this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
157
+ this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
158
+ this.state.canvasCtx.stroke();
159
+ this.state.canvasCtx.closePath();
160
+ this.state.isDown = true;
161
+
162
+ }
163
+ mouseMove=(ev)=> {
164
+ ev.preventDefault();
165
+ if (this.state.isDown) {
166
+ const obj = {
167
+ x: ev.pageX,
168
+ y: ev.pageY,
169
+ };
170
+ const canvas = this.refs.canvasF;
171
+ if(obj.x - canvas.getBoundingClientRect().left<0 || obj.x - canvas.getBoundingClientRect().left> canvas.width || obj.y - canvas.getBoundingClientRect().top< 0 || obj.y - canvas.getBoundingClientRect().top> canvas.height) {
172
+ this.state.isDown = false;
173
+ }
174
+ this.state.moveY = obj.y;
175
+ this.state.moveX = obj.x;
176
+ this.state.canvasCtx.beginPath();
177
+
178
+ this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
179
+ this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
180
+ this.state.canvasCtx.stroke();
181
+ this.state.canvasCtx.closePath();
182
+ this.state.startY = obj.y;
183
+ this.state.startX = obj.x;
184
+ }
185
+ }
186
+ mouseUp=(ev)=> {
187
+ if (!this.state.isDown) return;
188
+ ev.preventDefault();
189
+ const obj = {
190
+ x: ev.pageX,
191
+ y: ev.pageY,
192
+ };
193
+ const canvas = this.refs.canvasF;
194
+ this.state.canvasCtx.beginPath();
195
+ this.state.canvasCtx.moveTo(this.state.startX - canvas.getBoundingClientRect().left, this.state.startY - canvas.getBoundingClientRect().top);
196
+ this.state.canvasCtx.lineTo(obj.x - canvas.getBoundingClientRect().left, obj.y - canvas.getBoundingClientRect().top);
197
+ this.state.canvasCtx.stroke();
198
+ this.state.canvasCtx.closePath();
199
+ this.state.isDown = false;
200
+
201
+ }
202
+ commit = async () => {
203
+ if(this.state.isSignOk) {
204
+ console.log(this.refs.canvasF.toDataURL())
205
+
206
+ this.props.finish(this.refs.canvasF.toDataURL())
207
+
208
+ } else {
209
+ this.setState({
210
+ isModalVisibleSubmit: true
211
+ }) }
212
+ }
213
+ exit = () => {
214
+ this.setState({
215
+ isModalVisibleEnd: true
216
+ })
217
+ }
218
+ handleCancelEnd = () => {
219
+ this.setState({
220
+ isModalVisibleEnd: false
221
+ })
222
+ }
223
+ handleOkEnd = () => {
224
+ this.setState({
225
+ isModalVisibleEnd: false
226
+ })
227
+ this.props.exit()
228
+ }
229
+ handleSubmit=()=>{
230
+ this.setState({
231
+ isModalVisibleSubmit: false
232
+ })
233
+ }
234
+ render() {
235
+ return (
236
+ <div className="sign">
237
+ <div className="thehead">
238
+ <div className="title">
239
+ <div className="title-color"></div>
240
+ <div className="title-text">{this.props.title}</div>
241
+ </div>
242
+ <div className='btns'>
243
+ <div className="reset" onClick={this.exit}><FormattedMessage id="exit" /></div>
244
+ </div>
245
+ </div>
246
+ <div className="content" ref="canvasHW" style={{height: this.state.heightOne,width: this.state.widthOne}}>
247
+ <canvas
248
+ id="canvasF"
249
+ className='canvasF'
250
+ ref="canvasF"
251
+ // onTouchStart={this.touchStart}
252
+ // onTouchMove={this.touchMove}
253
+ // onTouchEnd={this.touchEnd}
254
+ onMouseDown={this.mouseDown}
255
+ onMouseMove={this.mouseMove}
256
+ onMouseUp={this.mouseUp}
257
+ onMouseLeave={() => { this.state.isDown = false }}
258
+ ></canvas>
259
+ {
260
+ !this.state.isSignOk && <div className="signHere"><FormattedMessage id="plzSign" /></div>
261
+
262
+ }
263
+ </div>
264
+ <div className='footRisk'>
265
+ <div className='btns'>
266
+ <div className="reset" onClick={this.clearSign}><FormattedMessage id="clearScreen" /></div>
267
+ <div className="qianshu" onClick={this.commit}><FormattedMessage id="commit" /></div>
268
+
269
+ </div>
270
+ </div>
271
+ <Modal transitionName="" maskTransitionName="" getContainer={document.getElementById('multiModule')} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleSubmit} footer={[<div key='end'>
272
+ <Button className="modelButtonOk" type="primary" danger onClick={this.handleSubmit}><FormattedMessage id="ok" /></Button>
273
+ </div>
274
+ ]}>
275
+ <div className='endModal'>
276
+ <div className='modalEndTitle'>
277
+ <FormattedMessage id="message" />
278
+ </div>
279
+ <div className='modalEnd'>
280
+ <FormattedMessage id="signatureNot" />
281
+ </div>
282
+ </div>
283
+ </Modal>
284
+ <Modal transitionName="" maskTransitionName="" getContainer={document.getElementById('multiModule')} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleEnd} footer={[<div key='end'>
285
+ <Button className="modelButtonCancel" onClick={this.handleCancelEnd}><FormattedMessage id="cancel" /></Button>
286
+ <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkEnd}><FormattedMessage id="ok" /></Button>
287
+ </div>
288
+ ]}>
289
+ <div className='endModal'>
290
+ <div className='modalEndTitle'>
291
+ <FormattedMessage id="whether" />
292
+ </div>
293
+ <div className='modalEnd'>
294
+ <FormattedMessage id="progress" />
295
+ </div>
296
+ </div>
297
+ </Modal>
298
+ </div>
299
+ );
300
+ }
301
+
302
+ }
303
+ Sign.defaultProps = {
304
+ length: '100%',
305
+ height: '100%'
306
+ }
307
+
308
+ export default Sign;