sale-client 3.6.142 → 3.6.143

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.
@@ -1,5 +1,5 @@
1
1
  var path = require('path')
2
- const [serverRul, localUrl ] = ['http://192.168.50.4:8400/', 'http://192.168.50.4:8400/']
2
+ const [ serverRul, localUrl ] = ['http://192.168.50.4:8400/', 'http://127.0.0.1:8080/']
3
3
  var merge = require('webpack-merge')
4
4
  var baseConfig = require('./webpack.dev.conf')
5
5
  var devConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.142",
3
+ "version": "3.6.143",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -24,14 +24,21 @@
24
24
 
25
25
  <div class="col-sm-4 form-group" v-if="row.f_meter_type =='机表'" >
26
26
  <label class="font_normal_body">当前余额</label>
27
- <input class="input_search" style="width:60%" type="text" placeholder='目标用户气表类型'
27
+ <input class="input_search" style="width:60%" type="text" placeholder='当前余额'
28
28
  v-model="row.f_balance" readonly >
29
29
  </div>
30
30
  <div class="col-sm-4 form-group" v-if="row.f_meter_type =='物联网表'" >
31
31
  <label class="font_normal_body">当前余额</label>
32
- <input class="input_search" style="width:60%" type="text" placeholder='目标用户气表类型'
32
+ <input class="input_search" style="width:60%" type="text" placeholder='当前余额'
33
33
  v-model="row.f_balance_amount" readonly >
34
34
  </div>
35
+ <div class="col-sm-4 form-group" v-if="row.f_meter_type == '气量卡表' || row.f_meter_type == '金额卡表'"
36
+ :class="[$v.f_meter_base.required || $v.f_meter_base.dctest ? 'has-error' : 'has-success']">
37
+ <label class="font_normal_body">当前底数</label>
38
+ <input class="input_search" style="width:60%" type="text" placeholder='当前表已用气量'
39
+ @blur="meterBaseChange()"
40
+ v-validate:f_meter_base='{required: true}' v-model="model.f_meter_base" >
41
+ </div>
35
42
  <div class="col-sm-4 form-group" v-if="model.f_meter_type!='' && model.f_meter_type!='气量卡表'"
36
43
  :class="[$v.f_move_fee.required || $v.f_move_fee.dctest ? 'has-error' : 'has-success']">
37
44
  <label class="font_normal_body">转气金额</label>
@@ -89,7 +96,7 @@
89
96
  }
90
97
  let pregasGen = async function (self) {
91
98
  self.model.f_move_gas = (self.model.f_move_gas - 0).toFixed(2)
92
-
99
+ self.model.f_reverse = self.model.f_move_gas
93
100
  let getAmount = await self.$CommonService.gasCalculate(self.model, self.model.f_move_gas)
94
101
  self.model.f_move_fee = getAmount.data.chargenum
95
102
  }
@@ -129,6 +136,25 @@
129
136
 
130
137
  },
131
138
  methods: {
139
+ meterBaseChange () {
140
+ if (this.model.f_meter_base && this.model.f_meter_base > 0 && this.model.f_meter_base <= this.row.f_total_gas) {
141
+ this.model.f_move_gas = (this.row.f_total_gas - this.model.f_meter_base).toFixed(2)
142
+ }
143
+ if (this.model.f_meter_base > this.row.f_total_gas) {
144
+ this.$showAlert('转气底数不能大于总购气量', 'warning', 1500)
145
+ this.model.f_meter_base = ''
146
+ return
147
+ }
148
+ if (this.model.f_move_gas && this.model.f_move_gas > 0) {
149
+ try {
150
+ pregasGen(this)
151
+ } catch (error) {
152
+ this.$showAlert(`划价错误,错误类型:${error}`, 'danger', 0)
153
+ }
154
+ } else {
155
+ this.model.f_move_gas = 0
156
+ }
157
+ },
132
158
  preamount () {
133
159
  try {
134
160
  preamountGen(this)
@@ -139,7 +165,6 @@
139
165
  pregas () {
140
166
  if (this.model.f_move_gas && this.model.f_move_gas > 0) {
141
167
  try {
142
- // 对气量进行验证
143
168
  pregasGen(this)
144
169
  } catch (error) {
145
170
  this.$showAlert(`划价错误,错误类型:${error}`, 'danger', 0)
@@ -188,6 +213,7 @@
188
213
  userfilesid: this.model.f_userfiles_id,
189
214
  version: this.row.version,
190
215
  f_move_fee: this.model.f_move_fee,
216
+ f_meter_base: this.model.f_meter_base,
191
217
  f_move_gas: this.model.f_move_gas,
192
218
  f_comments: this.model.f_comments,
193
219
  f_billing: this.row.f_billing,
@@ -0,0 +1,1068 @@
1
+ <template>
2
+ <modal :show.sync="show" v-ref:modal backdrop="false" width="1439px" style="height:auto">
3
+ <header slot="modal-header">
4
+ <div class="header">
5
+ <span class="glyphicon glyphicon-remove-circle close" style="margin-top: 35px;margin-right: 30px" @click="close"></span>
6
+ <h4 class="title">高拍仪(哲林)</h4>
7
+ </div>
8
+ </header>
9
+ <article slot="modal-body" class="form-control" style="padding: 0px">
10
+ <div class="form-group">
11
+ <div class="operation-group">
12
+ <strong class="operation" style="margin-top: 2px">视频操作:</strong>
13
+ <button class="btn btn-info photo" @click="bb()">拍照</button>
14
+ <button class="btn btn-info" @click="cam_switch(1)">打开视频1</button>
15
+ <button class="btn btn-info" @click="cam_switch(2)">打开视频2</button>
16
+ <button class="btn btn-info" @click="CloseVideo()">关闭视频</button>
17
+ <button class="btn btn-info" @click="openApp()">开启程序</button>
18
+ <div style="display: inline-block;margin-left: 570px">
19
+ <strong class="operation">读取身份证:</strong>
20
+ <button class="btn btn-info readIDCard" @click=Begin()>读身份证</button>
21
+ <button class="btn btn-default stop" @click=Stop()>停止读卡</button>
22
+ </div>
23
+ </div>
24
+ <div class="showInfo">
25
+ <IMG ID="Base64IMG" src="" class="img"></IMG>
26
+ <!-- <button style="position: absolute;buttom:-10px;left:0px;" @click="splitsimg">旋转</button>-->
27
+ <textarea id="Console" disabled="disabled"></textarea>
28
+ <IMG id="cam" :src="cameraurl" width="640" height="640">
29
+ </IMG>
30
+ </div>
31
+ <div class="IdCard">
32
+ <div class="auto IdInputDiv" style="margin-top: 20px"><strong class="IdHint">姓&emsp;&emsp;名</strong><input size=49 id="Name" class="IdInput"></div>
33
+ <div class="auto IdInputDiv" ><strong class="IdHint">性&emsp;&emsp;别</strong><input type="text" size=49 id="Sex" class="IdInput"></div>
34
+ <div class="auto IdInputDiv" ><strong class="IdHint">民&emsp;&emsp;族</strong><input type="text" size=49 id="Nation" class="IdInput"></div>
35
+ <div class="auto IdInputDiv"><strong class="IdHint">出&emsp;&emsp;生</strong><input type="text" size=49 id="Born" class="IdInput"></div>
36
+ <div class="auto IdInputDiv"><strong class="IdHint">地&emsp;&emsp;址</strong><input type="text" size=49 id="Address" class="IdInput"></div>
37
+ <div class="auto IdInputDiv"><strong class="IdHint">身份证号</strong><input type="text" size=49 id="CardNo" class="IdInput"></div>
38
+ <div class="auto IdInputDiv"><strong class="IdHint">签发机关</strong><input type="text" size=49 id="Police" class="IdInput"></div>
39
+ <div class="auto IdInputDiv"><strong class="IdHint">期限起始</strong><input type="text" size=49 id="ActivityLFrom" class="IdInput"></div>
40
+ <div class="auto IdInputDiv"><strong class="IdHint">期限失效</strong><input type="text" size=49 id="ActivityLTo" class="IdInput"></div>
41
+ <!-- <div class="auto IdInputDiv"><strong class="IdHint">设&emsp;备ID</strong><input type="text" size=49 id="DeviceNo" class="IdInput"></div>-->
42
+ <div class="auto IdInputDiv" style="float: left"><strong class="IdHint">照片编码</strong><TEXTAREA id="PhotoBuffer"style="width: 400px;height: 92px"></TEXTAREA>
43
+ </div>
44
+ <div class="auto IdInputDiv" style="float: left"><strong class="IdHint">照&emsp;&emsp;片</strong><IMG style="width: 130px; height:169px" id=PhotoDisplay />
45
+ </div>
46
+ <div class="auto IdInputDiv" style="padding-top:45%;padding-left:35%">
47
+ <button class="btn btn-info" style="width: max-content" @click="confirmIdCard">确定</button>
48
+ </div>
49
+ </div>
50
+ <!--<div style="display: inline-block;margin-top: 5px;margin-left: 5px;height: 640px;float: left;">-->
51
+ <!--<IMG id="IMG3" src="" style="width:300px;height:160px;display: block">-->
52
+ <!--<button class="btn btn-success" @click="DelPDF3()">删除图片</button>-->
53
+ <!--<IMG id="IMG2" src="" style="width:300px;height:160px;display: block">-->
54
+ <!--<button class="btn btn-success" @click="DelPDF2()">删除图片</button>-->
55
+ <!--<IMG id="IMG1" src="" style="width:300px;height:160px;display: block">-->
56
+ <!--<button class="btn btn-success" @click="DelPDF1()">删除图片</button>-->
57
+ <!--</div>-->
58
+ </div>
59
+ </article>
60
+ <footer slot="modal-footer" class="modal-footer">
61
+ <!--<button type="button" class="btn btn-default" @click='close'>取消</button>-->
62
+ <!--<button type="button" class="btn btn-success" @click='confirm(filename)'>确认</button>-->
63
+ </footer>
64
+ </modal>
65
+ </template>
66
+
67
+ <script>
68
+ let ws
69
+ let server_addr = 'ws://127.0.0.1:38088'// 本机端口地址
70
+ export default {
71
+ title: '高拍仪',
72
+ data () {
73
+ return {
74
+ cameraurl: '',
75
+ jd: 'transform:rotate(0deg)',
76
+ degs: 0
77
+ }
78
+ },
79
+ props: ['show'],
80
+ methods: {
81
+ splitsimg () {
82
+ this.degs += 90
83
+ this.jd = `transform:rotate(${this.degs}deg)`
84
+ },
85
+ // 页面load消息
86
+ onLoad () {
87
+ return new Promise((resolve, reject) => {
88
+ if (ws) {
89
+ resolve()
90
+ }
91
+ // output("正在连接:" + server_addr);
92
+ ws = new WebSocket(server_addr)
93
+ ws.onopen = (evt) => {
94
+ if (this.connected) {
95
+ resolve()
96
+ }
97
+ this.connected = true
98
+ console.log('已连接服务器')
99
+ this.output('已经连接到服务器')
100
+ // 打开视频
101
+ console.log('打开摄像头1')
102
+ this.cam_switch(1)
103
+ // 打开自动裁边
104
+ resolve()
105
+ }
106
+ ws.onclose = (evt) => {
107
+ if (!this.connected) {
108
+ window.location.href = 'FLShell://'
109
+ setTimeout('this.onLoad()', 3)
110
+ } else {
111
+ this.output('已断开服务器连接')
112
+ this.connected = false
113
+ }
114
+ ws = null
115
+ reject(new Error('连接失败'))
116
+ }
117
+ ws.onmessage = (evt) => {
118
+ if (evt.data.length === 0) {
119
+ return
120
+ }
121
+ if (typeof evt.data === 'string') {
122
+ let msg = JSON.parse(evt.data)
123
+ if (msg.err && msg.err !== 0) {
124
+ this.output('错误 - ' + msg.err + ', ' + msg.msg)
125
+ reject('错误 - ' + msg.err + ', ' + msg.msg)
126
+ } else if (msg.msg) {
127
+ this.output(msg.msg)
128
+ }
129
+
130
+ if (msg.user_data) {
131
+ this.callback[msg.user_data](msg)
132
+ if (typeof msg.user_data === 'number') {
133
+ this.callback[msg.user_data] = undefined
134
+ }
135
+ }
136
+ } else {
137
+ let file = new FileReader()
138
+ file.onload = (evt) => {
139
+ if (evt.target.readyState == FileReader.DONE) {
140
+ let data = new Uint8Array(evt.target.result)
141
+ if (data[0] == this.SVR_BIN_MSG.CAP_FRAME) {
142
+ return this.drawImage(data)
143
+ }
144
+ }
145
+ }
146
+
147
+ file.readAsArrayBuffer(evt.data)
148
+ }
149
+ }
150
+ let canvas = document.getElementById('cam')
151
+ canvas.onmousedown = (e) => {
152
+ canvas.style.cursor = 'crosshair'
153
+
154
+ this.clicked = true
155
+
156
+ this.sendMsg(this.CLT_MSG.PRESET_MOUSEDOWN, {origX: e.layerX, origY: e.layerY}, function (msg) {
157
+ if (msg.err !== 0) { }
158
+ })
159
+ }
160
+
161
+ canvas.onmousemove = (e) => {
162
+ if (!this.clicked) {
163
+ canvas.style.cursor = 'default'
164
+ return
165
+ }
166
+ canvas.style.cursor = 'crosshair'
167
+
168
+ this.sendMsg(this.CLT_MSG.PRESET_MOUSEMOVE, {offx: e.layerX, offy: e.layerY}, (msg) => {
169
+ if (msg.err !== 0) { }
170
+ })
171
+ }
172
+
173
+ onmouseout = canvas.onmouseup = (e) => {
174
+ canvas.style.cursor = 'default'
175
+ if (!this.clicked) { return }
176
+
177
+ this.sendMsg(this.CLT_MSG.PRESET_MOUSEUP, {offx: e.layerX, offy: e.layerY}, (msg) => {
178
+ if (msg.err !== 0) {
179
+
180
+ }
181
+ })
182
+ this.clicked = false
183
+ }
184
+ })
185
+ },
186
+ // 打开视频
187
+ cam_switch (capID) {
188
+ if (capID == 1) {
189
+
190
+ this.cameraurl = 'http://127.0.0.1:38088/video=stream&camidx=0'
191
+ }
192
+ if (capID == 2) {
193
+ this.cameraurl = 'http://127.0.0.1:38088/video=stream&camidx=1'
194
+ }
195
+ },
196
+ // 关闭视频
197
+ CloseVideo () {
198
+ this.cameraurl = ''
199
+ },
200
+ openApp () {
201
+ window.location.href = 'cameraServicetis:0' // 启动 CameraService 服务程序
202
+ },
203
+ // //获取初始化结果
204
+ // GetInitRet(){
205
+ // if(this.iswaiting) return
206
+ // this.iswaiting = true
207
+ // this.sendMsg(this.CLT_MSG.GET_EVENT,(msg)=> {
208
+ // if(msg.err !== 0){
209
+ // this.iswaiting = false
210
+ // return
211
+ // }
212
+ // let event = msg.event
213
+ // switch(event){
214
+ // case 2:
215
+ // this.output("设备连接中断,请重新连接后再次打开视频。");
216
+ // break
217
+ //
218
+ // case 1:
219
+ // this.output("初始化成功");
220
+ // break;
221
+ //
222
+ // case 0:
223
+ // this.output("设备非法");
224
+ // break
225
+ // }
226
+ // this.iswaiting = false
227
+ // })
228
+ // },
229
+ // //获取PID
230
+ // GetPid(){
231
+ // if(this.iswaiting) return
232
+ // this.iswaiting = true
233
+ // this.sendMsg(this.CLT_MSG.GET_PID, (msg) => {
234
+ // if(msg.err !== 0) {
235
+ // this.iswaiting = false
236
+ // return
237
+ // }
238
+ //
239
+ // this.output("pid : " + msg.pid)
240
+ // this.iswaiting = false
241
+ // })
242
+ // },
243
+ // //获取分辨率
244
+ // GetFbl(){
245
+ // if(this.iswaiting) return
246
+ // this.iswaiting = true;
247
+ // this.sendMsg(this.CLT_MSG.GET_FBL, (msg) => {
248
+ // if(msg.err !== 0) {
249
+ // this.iswaiting = false;
250
+ // return;
251
+ // }
252
+ //
253
+ // this.output("分辨率 : " + msg.fbl);
254
+ // this.iswaiting = false
255
+ // });
256
+ // },
257
+ // //设置分辨率
258
+ // SetResolution(){
259
+ // if(this.iswaiting) return
260
+ // this.iswaiting = true
261
+ // let first = false
262
+ // let second = false
263
+ // this.sendMsg(this.CLT_MSG.SET_MJPG, {isMJPG:1},(msg) => { //设置MJPG格式
264
+ // if(msg.err !== 0) {
265
+ // first = true
266
+ // if(first == true && second == true){
267
+ // this.iswaiting = false
268
+ // return
269
+ // }
270
+ // }
271
+ // this.output("MJPG : " + 1)
272
+ // first = true
273
+ // if(first == true && second == true){
274
+ // this.iswaiting = false
275
+ // }
276
+ // })
277
+ // this.sendMsg(this.CLT_MSG.SET_FBL, {width:800,height:600},(msg) => { //设置分辨率
278
+ // if(msg.err !== 0) {
279
+ // second = true
280
+ // if(first == true && second == true){
281
+ // this.iswaiting = false
282
+ // }
283
+ // return
284
+ // }
285
+ // this.output("设置分辨率 : width=" + 800 + ",height=" + 600)
286
+ // second = true
287
+ // if(first == true && second == true){
288
+ // this.iswaiting = false
289
+ // }
290
+ // })
291
+ // },
292
+ // //设置视频旋转方向
293
+ // SetOrientation(){
294
+ // let oriT = 0
295
+ // // 设置转动 0 正常 1 上下转 2 左转 3 右转
296
+ // if(this.iswaiting){
297
+ // return
298
+ // }
299
+ // this.iswaiting = true
300
+ // oriT = 2
301
+ // if(oriT == 1){
302
+ // this.rotanumber = 2
303
+ // }else if(oriT == 2){
304
+ // this.rotanumber = 3
305
+ // }else if(oriT == 3){
306
+ // this.rotanumber = 1
307
+ // }
308
+ // this.sendMsg(this.CLT_MSG.SET_TURN, {turn:oriT},(msg) => {
309
+ // if(msg.err !== 0) {
310
+ // this.iswaiting = false
311
+ // return
312
+ // }
313
+ //
314
+ // this.output("设置旋转 : turn=" + oriT)
315
+ // this.iswaiting = false
316
+ // });
317
+ // },
318
+ // //设置视频旋转方向
319
+ // SetLeft(){
320
+ // // 设置转动 0 正常 1 上下转 2 左转 3 右转
321
+ // if(this.iswaiting) return
322
+ // this.iswaiting = true
323
+ // this.rotanumber--;
324
+ // let T = 0;
325
+ // if(this.rotanumber%4 == 0){
326
+ // T = 0;
327
+ // }else if(this.rotanumber%4 == -1 || this.rotanumber%4 == 3){
328
+ // T = 2;
329
+ // }else if(this.rotanumber%4 == -2 || this.rotanumber%4 == 2){
330
+ // T = 1;
331
+ // }else if(this.rotanumber%4 == -3 || this.rotanumber%4 == 1){
332
+ // T = 3
333
+ // }
334
+ // this.sendMsg(this.CLT_MSG.SET_TURN, {turn:T},(msg) => {
335
+ // if(msg.err !== 0) {
336
+ // this.iswaiting = false
337
+ // return
338
+ // }
339
+ // this.output("设置旋转 : turn=" + T)
340
+ // this.iswaiting = false
341
+ // })
342
+ // },
343
+ // //设置视频旋转方向
344
+ // SetRight(){
345
+ // // 设置转动 0 正常 1 上下转 2 左转 3 右转
346
+ // if(this.iswaiting) return
347
+ // this.iswaiting = true
348
+ // this.rotanumber++;
349
+ // var T = 0;
350
+ // if(this.rotanumber%4 == 0){
351
+ // T = 0
352
+ // }else if(this.rotanumber%4 == 1 || this.rotanumber%4 == -3){
353
+ // T = 3
354
+ // }else if(this.rotanumber%4 == 2 || this.rotanumber%4 == -2){
355
+ // T = 1
356
+ // }else if(this.rotanumber%4 == 3 || this.rotanumber%4 == -1){
357
+ // T = 2
358
+ // }
359
+ // this.sendMsg(this.CLT_MSG.SET_TURN, {turn:T},(msg) => {
360
+ // if(msg.err !== 0) {
361
+ // this.iswaiting = false
362
+ // return
363
+ // }
364
+ //
365
+ // this.output("设置旋转 : turn=" + T)
366
+ // this.iswaiting = false
367
+ // })
368
+ // },
369
+ // 设置截图保存的jpg格式压缩质量
370
+ SetQuality () {
371
+ if (this.iswaiting) return
372
+ this.iswaiting = true
373
+ this.sendMsg(this.CLT_MSG.SET_QUALITY, {quality: 50}, (msg) => {
374
+ if (msg.err !== 0) {
375
+ this.iswaiting = false
376
+ return
377
+ }
378
+ this.output('设置拍照图片质量 : quality=' + 50)
379
+ this.iswaiting = false
380
+ })
381
+ },
382
+ // 设置自动裁边开启
383
+ SetAutoCutOn () {
384
+ console.log('设置自动采编')
385
+ if (this.iswaiting) return
386
+ this.iswaiting = true
387
+ this.sendMsg(this.CLT_MSG.SET_AUTOCROP, {open: 1}, (msg) => {
388
+ if (msg.err !== 0) {
389
+ this.iswaiting = false
390
+ return
391
+ }
392
+ this.output('设置自动裁边 : open=' + 1)
393
+ this.iswaiting = false
394
+ })
395
+ },
396
+ // 设置自动裁边关闭
397
+ SetAutoCutOff () {
398
+ if (this.iswaiting) return
399
+ this.iswaiting = true
400
+ this.sendMsg(this.CLT_MSG.SET_AUTOCROP, {open: 0}, (msg) => {
401
+ if (msg.err !== 0) {
402
+ this.iswaiting = false
403
+ return
404
+ }
405
+ this.output('设置自动裁边 : open=' + 0)
406
+ this.iswaiting = false
407
+ })
408
+ },
409
+ // //设置预设框选
410
+ // SetBox(){
411
+ // if(this.iswaiting) return
412
+ // this.iswaiting = true
413
+ // this.resetx = 20
414
+ // this.resety = 20
415
+ // this.resetwidth = 300
416
+ // this.resetheight = 400
417
+ // this.sendMsg(this.CLT_MSG.SET_PREST, {left:this.resetx, top:this.resety, width:this.resetwidth, height:this.resetheight},(msg) =>{
418
+ // if(msg.err !== 0) {
419
+ // this.iswaiting = false
420
+ // return
421
+ // }
422
+ // this.output("设置预设框选 : left=" + this.resetx + ",top=" + this.resety + ",width=" + this.resetwidth + ",height=" + this.resetheight);
423
+ // this.iswaiting = false;
424
+ // })
425
+ // },
426
+ // //获取当前预设框选参数
427
+ // ShowResetInfo(){
428
+ // if(this.iswaiting) return
429
+ // this.iswaiting = true
430
+ // this.sendMsg(this.CLT_MSG.GET_PREST_INFO, (msg) => {
431
+ // if(msg.err !== 0) {
432
+ // this.iswaiting = false
433
+ // return
434
+ // }
435
+ // this.output("当前预设 : " + msg.prest_info)
436
+ // this.iswaiting = false
437
+ // })
438
+ // },
439
+ // 取消预设框选
440
+ ResetBox () {
441
+ if (this.iswaiting) return
442
+ this.iswaiting = true
443
+ this.sendMsg(this.CLT_MSG.SET_PREST, {left: 0, top: 0, width: 0, height: 0}, (msg) => {
444
+ if (msg.err !== 0) {
445
+ this.iswaiting = false
446
+ return
447
+ }
448
+ this.resetx = 0
449
+ this.resety = 0
450
+ this.resetwidth = 0
451
+ this.resetheight = 0
452
+ this.output('取消预设框选')
453
+ this.iswaiting = false
454
+ })
455
+ },
456
+ // //视频格式弹窗
457
+ // FormatDlg(){
458
+ // if(this.iswaiting) return
459
+ // this.iswaiting = true
460
+ // this.sendMsg(this.CLT_MSG.FORMAT_DLG,(msg) => {
461
+ // if(msg.err !== 0) {
462
+ // this.iswaiting = false;
463
+ // return
464
+ // }
465
+ // this.iswaiting = false;
466
+ // })
467
+ // },
468
+ // //视频属性弹窗
469
+ // PropertyDlg(){
470
+ // if(this.iswaiting) return
471
+ // this.iswaiting = true
472
+ // this.sendMsg(this.CLT_MSG.PROPERTY_DLG,(msg) => {
473
+ // if(msg.err !== 0) {
474
+ // this.iswaiting = false;
475
+ // return
476
+ // }
477
+ // this.iswaiting = false;
478
+ // })
479
+ // },
480
+ // //设置颜色模式 只针对截图
481
+ bb () {
482
+ let camidx = 0
483
+ if (this.cameraurl === 'http://127.0.0.1:38088/video=stream&camidx=0') {
484
+ camidx = 0
485
+ } else if (this.cameraurl === 'http://127.0.0.1:38088/video=stream&camidx=1') {
486
+ camidx = 1
487
+ } else {
488
+ this.$showAlert('请先打开视频', 'warning', 2000)
489
+ return
490
+ }
491
+ let param = {
492
+ camidx: camidx
493
+ }
494
+ this.$resetpost('http://127.0.0.1:38088/video=grabimage', param).then((msg) => { // 截图
495
+ console.log(msg)
496
+
497
+ if (msg.data.code != '0') {
498
+ this.$showAlert(msg.data.message, 'warning', 2000)
499
+ return
500
+ }
501
+ let s = 'data:image/jpg;base64,' + msg.data.photoBase64
502
+ document.getElementById('Base64IMG').src = s// 网页预览图片
503
+
504
+ this.output('base64 长度 : ' + s.length)
505
+ console.log(msg.data.photoBase64)
506
+ this.$emit('photo-finish', msg.data.photoBase64)
507
+ // document.getElementById("Base64IMG").src= "D:\\1234.jpg?" + Math.random();//网页预览图片
508
+ })
509
+ },
510
+ // 内存截图
511
+ bbase64 () {
512
+ if (this.iswaiting) return
513
+ this.iswaiting = true
514
+ this.sendMsg(this.CLT_MSG.GET_PICTURE_MEM, {turn: 0}, (msg) => {
515
+ if (msg.err !== 0) {
516
+ this.iswaiting = false
517
+ return
518
+ }
519
+ let s = 'data:image/jpg;base64,' + msg.base64str
520
+ document.getElementById('Base64IMG').src = s// 网页预览图片
521
+ alert(s)
522
+ this.output('base64 长度 : ' + s.length)
523
+ this.iswaiting = false
524
+ })
525
+ },
526
+ // base64编码测试
527
+ TestBase64 () {
528
+ if (this.iswaiting) return
529
+ this.iswaiting = true
530
+ this.sendMsg(this.CLT_MSG.TEST_BASE64, {code: '123456789'}, (msg) => {
531
+ if (msg.err !== 0) {
532
+ this.iswaiting = false
533
+ return
534
+ }
535
+ this.output('base64 内容 : ' + msg.base64str)
536
+ this.iswaiting = false
537
+ })
538
+ },
539
+ // //开启去底色
540
+ // bbStartClean(){
541
+ // if(this.iswaiting) return;
542
+ // this.iswaiting = true;
543
+ // this.sendMsg(this.CLT_MSG.SET_CLEAN_PARAM,{param1:280,param2:1.15,param3:8},(msg) => {
544
+ // if(msg.err !== 0){
545
+ // this.iswaiting = false
546
+ // return
547
+ // }
548
+ // this.output("去底色: " + 280 + "," + 1.15 + "," + 8)
549
+ // this.iswaiting = false
550
+ // })
551
+ // },
552
+ // //关闭去底色
553
+ // bbCloseClean(){
554
+ // if(this.iswaiting) return
555
+ // this.iswaiting = true
556
+ // this.sendMsg(this.CLT_MSG.SET_CLEAN_PARAM,{param1:-1},(msg) => {
557
+ // if(msg.err !== 0){
558
+ // this.iswaiting = false;
559
+ // return
560
+ // }
561
+ // this.output("去底色: " + -1);
562
+ // this.iswaiting = false;
563
+ // });
564
+ // },
565
+ // //设置制作PDF临时目录
566
+ // SetPDFPath(){
567
+ // if(this.iswaiting) return
568
+ // this.iswaiting = true
569
+ // this.sendMsg(this.CLT_MSG.SET_TEMPDIR,{path:"d:\\tp\\temp"},(msg) => {
570
+ // if(msg.err !== 0){
571
+ // this.iswaiting = false
572
+ // return
573
+ // }
574
+ // this.output("设置PDF路径: " + "d:\\tp\\temp")
575
+ // this.iswaiting = false
576
+ // })
577
+ // },
578
+ // //开始制作PDF
579
+ // BeginPDF(){
580
+ // if(this.iswaiting) return
581
+ // this.iswaiting = true
582
+ // this.sendMsg(this.CLT_MSG.BEGIN_PDF,(msg) => {
583
+ // if(msg.err !== 0){
584
+ // this.iswaiting = false
585
+ // return
586
+ // }
587
+ // this.output("开始制作PDF")
588
+ // this.iswaiting = false
589
+ // })
590
+ // },
591
+ // //PDF截图 保存到PDF临时目录
592
+ // GetPDF(){
593
+ // if(this.iswaiting) return
594
+ // this.iswaiting = true
595
+ // this.sendMsg(this.CLT_MSG.GET_PDF_PICTURES,{turn:0},(msg) => {
596
+ // if(msg.err !== 0){
597
+ // this.iswaiting = false
598
+ // return
599
+ // }
600
+ // // let s = "file://" + msg.path
601
+ // let s = "data:image/jpg;base64," + msg.base64str;
602
+ // document.getElementById("IMG1").src= null;
603
+ // document.getElementById("IMG1").src= document.getElementById("IMG2").src;
604
+ //
605
+ // document.getElementById("IMG2").src= null;
606
+ // document.getElementById("IMG2").src= document.getElementById("IMG3").src;
607
+ //
608
+ // document.getElementById("IMG3").src= null;
609
+ // document.getElementById("IMG3").src= s;
610
+ // this.output("PDF 文件 : " + msg.path + ",PDF文件 BASE64码长度:" + msg.base64str.length);
611
+ // this.iswaiting = false;
612
+ // })
613
+ // },
614
+ // // 结束制作PDF
615
+ // EndPDF(){
616
+ // if(this.iswaiting) return
617
+ // this.iswaiting = true
618
+ // this.sendMsg(this.CLT_MSG.END_PDF_PICTURES,{path:"D:\\tp\\1234.pdf"},(msg) => {
619
+ // if(msg.err !== 0){
620
+ // this.iswaiting = false
621
+ // return
622
+ // }
623
+ // this.output("结束PDF PDF文件:" + "D:\\tp\\1234.pdf");
624
+ // this.iswaiting = false;
625
+ // })
626
+ // },
627
+ // //PDF文件转码成BASE64文件 适合所有格式文件 非PDF也可使用
628
+ // PDFtoBASE64(){
629
+ // if(this.iswaiting) return
630
+ // this.iswaiting = true
631
+ // this.sendMsg(this.CLT_MSG.PDF_TO_BASE64,{src:"D:\\tp\\1234.pdf",des:"D:\\tp\\temp\\1234.txt"},(msg) => {
632
+ // if(msg.err !== 0){
633
+ // this.iswaiting = false
634
+ // if(msg.err == 108){return this.output("读文件错误")}
635
+ // if(msg.err == 109){return this.output("写文件错误")}
636
+ // }
637
+ // this.output("文件 :" + "D:\\tp\\1234.pdf" + "转成base64 :" + "D:\\tp\\temp\\1234.txt");
638
+ // this.iswaiting = false
639
+ // })
640
+ // },
641
+ // //base64文件转成PDF文件 适合所有文件 非PDF文件也可使用
642
+ // BASE64toPDF(){
643
+ // if(this.iswaiting) return
644
+ // this.iswaiting = true
645
+ // this.sendMsg(this.CLT_MSG.BASE64_TO_PDF,{src:"D:\\tp\\temp\\1234.txt",des:"D:\\tp\\pdfpdf.pdf"},(msg) => {
646
+ // if(msg.err !== 0){
647
+ // this.iswaiting = false;
648
+ // if(msg.err == 108){return this.output("读文件错误")}
649
+ // if(msg.err == 109){return this.output("写文件错误")}
650
+ // }
651
+ // this.output("base64文件: " + "D:\\tp\\temp\\1234.txt" + "转成:" + "D:\\tp\\pdfpdf.pdf")
652
+ // this.iswaiting = false
653
+ // })
654
+ // },
655
+ // //PDF文件转成BASE64码字符串 适合所有文件 非PDF文件也可使用
656
+ // PDFtoBASE64Str(){
657
+ // if(this.iswaiting) return
658
+ // this.iswaiting = true
659
+ // this.sendMsg(this.CLT_MSG.PDF_TO_BASE64_STR,{file:"D:\\tp\\pdfpdf.pdf"},(msg) => {
660
+ // if(msg.err !== 0){
661
+ // this.iswaiting = false
662
+ // if(msg.err == 108){return this.output("读文件错误")}
663
+ // }
664
+ // alert(msg.base64str)
665
+ // this.output("文件 BASE64 长度: " + msg.base64str.length)
666
+ // this.iswaiting = false
667
+ // })
668
+ // },
669
+ // //打印图片
670
+ // printimage(){
671
+ // if(this.iswaiting) return
672
+ // this.iswaiting = true
673
+ // this.sendMsg(this.CLT_MSG.PRINT_IMAGE,{file:"D:\\tp\\1234.jpg"},(msg) => {
674
+ // if(msg.err !== 0){ //错误消息可以不用处理 在config.js中已经有了统一的打印处理 在output函数中设置打印位置
675
+ // this.iswaiting = false;
676
+ // if(msg.err == 112){return this.output("开启打印机错误");}
677
+ // if(msg.err == 111){return this.output("请检查打印机纸张");}
678
+ // if(msg.err == 110){return this.output("没有默认打印机");}
679
+ // }
680
+ // this.output("打印作业号: " + msg.print_no);
681
+ // this.iswaiting = false;
682
+ // })
683
+ // },
684
+ // //显示错误弹窗
685
+ // ShowErrorInfo(){
686
+ // if(this.iswaiting) return
687
+ // this.iswaiting = true
688
+ // this.sendMsg(this.CLT_MSG.SHOW_ERROR_BOX,{on:1},(msg) => {
689
+ // if(msg.err !== 0){
690
+ // this.iswaiting = false
691
+ // return
692
+ // }
693
+ // this.output("错误提示开关:" + 1)
694
+ // this.iswaiting = false;
695
+ // })
696
+ // },
697
+ // //删除制作PDF的图片文件
698
+ // DelPDF3(){
699
+ // if(this.iswaiting) return
700
+ // this.iswaiting = true
701
+ // this.sendMsg(this.CLT_MSG.DEL_PICTURE_PDF,{file:1},(msg) => {
702
+ // if(msg.err !== 0){
703
+ // this.iswaiting = false
704
+ // return
705
+ // }
706
+ // this.output("删除PDF图片文件成功")
707
+ // this.iswaiting = false
708
+ // })
709
+ // document.getElementById("IMG3").src= null;
710
+ // document.getElementById("IMG3").src= document.getElementById("IMG2").src;
711
+ //
712
+ // document.getElementById("IMG2").src= null;
713
+ // document.getElementById("IMG2").src= document.getElementById("IMG1").src;
714
+ //
715
+ // document.getElementById("IMG1").src= null;
716
+ // },
717
+ // //删除制作PDF的临时图片文件
718
+ // DelPDF2(){
719
+ // if(this.iswaiting) return
720
+ // this.iswaiting = true
721
+ // this.sendMsg(this.CLT_MSG.DEL_PICTURE_PDF,{file:2},(msg) => {
722
+ // if(msg.err !== 0){
723
+ // this.iswaiting = false
724
+ // return
725
+ // }
726
+ // this.output("删除PDF图片文件成功")
727
+ // this.iswaiting = false
728
+ // })
729
+ // document.getElementById("IMG2").src= null;
730
+ // document.getElementById("IMG2").src= document.getElementById("IMG1").src;
731
+ // document.getElementById("IMG1").src= null;
732
+ // },
733
+ // //删除制作PDF的临时图片文件
734
+ // DelPDF1(){
735
+ // if(this.iswaiting) return
736
+ // this.iswaiting = true
737
+ // this.sendMsg(this.CLT_MSG.DEL_PICTURE_PDF,{file:3},(msg) => {
738
+ // if(msg.err !== 0){
739
+ // this.iswaiting = false;
740
+ // return
741
+ // }
742
+ // this.output("删除PDF图片文件成功")
743
+ // this.iswaiting = false
744
+ // })
745
+ // document.getElementById("IMG1").src= null;
746
+ // },
747
+ // //人证对比
748
+ // IDCardCompare(){
749
+ // if(this.iswaiting) return
750
+ // this.iswaiting = true
751
+ // let send = {file1:"D:\\1.jpg",file2:"D:\\2.jpg"}
752
+ // this.sendMsg(this.CLT_MSG.IDCARD_COMPARE,send,(msg) => {
753
+ // if(msg.err !== 0){
754
+ // this.iswaiting = false
755
+ // return
756
+ // }
757
+ // this.output("对比完成:" + send.file1 + "与" + send.file2 + "相似度"+ msg.cmpresult)
758
+ // this.iswaiting = false
759
+ // })
760
+ // },
761
+ ReadIDCard () {
762
+ return this.sendMsg(this.CLT_MSG.READ_IDCARD, (msg) => {
763
+ if (msg.code !== 0) { return }
764
+ this.setText(msg.IDCardInfo)
765
+ this.output('单读卡')
766
+ })
767
+ },
768
+ // 读身份证
769
+ Begin () {
770
+ this.$resetpost('http://127.0.0.1:38088/card=idcard', {}).then((msg) => { // 截图
771
+ console.log(msg)
772
+
773
+ if (msg.data.code != '0') {
774
+ this.$showAlert(msg.data.message, 'warning', 2000)
775
+ return
776
+ }else{
777
+ this.setText(msg.data.IDCardInfo)
778
+ }
779
+
780
+ this.output('读取身份证')
781
+
782
+ // document.getElementById("Base64IMG").src= "D:\\1234.jpg?" + Math.random();//网页预览图片
783
+ })
784
+ this.output('开始读卡')
785
+ },
786
+ // 停止读身份证
787
+ Stop () {
788
+ this.sendMsg(this.CLT_MSG.STOP_READ_IDCARD, (msg) => {
789
+ if (msg.err !== 0) { return }
790
+ this.output('停止读卡')
791
+ })
792
+ },
793
+ // //横向复印
794
+ // HCopy(){
795
+ // this.sendMsg(this.CLT_MSG.HCOPY_IDCARD, {copy_path:"D:\\"},(msg) => {
796
+ // if(msg.err !== 0){return}
797
+ // document.getElementById("IDCardDisplay").src = "data:image/jpg;base64," + msg.hcopy
798
+ // this.sendMsg(this.CLT_MSG.PRINT_IMAGE,{file:msg.filename},(msg2) => {
799
+ // if(msg2.err !== 0){ return}
800
+ // his.output("打印作业号: " + msg2.print_no)
801
+ // })
802
+ // this.output("横向复印" + msg.filename)
803
+ // })
804
+ // },
805
+ // //竖向复印
806
+ // VCopy(){
807
+ // this.sendMsg(this.CLT_MSG.VCOPY_IDCARD, {copy_path:"D:\\"},(msg) => {
808
+ // if(msg.err !== 0){return}
809
+ // document.getElementById("IDCardDisplay").src = "data:image/jpg;base64," + msg.vcopy;
810
+ // this.sendMsg(this.CLT_MSG.PRINT_IMAGE,{file:msg.filename},(msg2) => {
811
+ // if(msg2.err !== 0){ return}
812
+ // this.output("打印作业号: " + msg2.print_no)
813
+ // })
814
+ // this.output("竖向复印" + msg.filename)
815
+ // })
816
+ // },
817
+ // //正面复印
818
+ // PCopy(){
819
+ // this.sendMsg(this.CLT_MSG.PCOPY_IDCARD, {copy_path:"D:\\"},(msg) => {
820
+ // if(msg.err !== 0){return}
821
+ // document.getElementById("IDCardDisplay").src = "data:image/jpg;base64," + msg.pcopy
822
+ // this.sendMsg(this.CLT_MSG.PRINT_IMAGE,{file:msg.filename},(msg2) => {
823
+ // if(msg2.err !== 0){ return}
824
+ // this.output("打印作业号: " + msg2.print_no)
825
+ // })
826
+ // this.output("正面复印" + msg.filename)
827
+ // })
828
+ // },
829
+ // //反面复印
830
+ // NCopy(){
831
+ // this.sendMsg(this.CLT_MSG.NCOPY_IDCARD, {copy_path:"D:\\"},(msg) => {
832
+ // if(msg.err !== 0){return}
833
+ // document.getElementById("IDCardDisplay").src = "data:image/jpg;base64," + msg.ncopy
834
+ // this.sendMsg(this.CLT_MSG.PRINT_IMAGE,{file:msg.filename},(msg2) => {
835
+ // if(msg2.err !== 0){ return}
836
+ // this.output("打印作业号: " + msg2.print_no)
837
+ // })
838
+ // this.output("反面复印" + msg.filename)
839
+ // })
840
+ // },
841
+ // 视频帧绘制函数
842
+ drawImage (data) {
843
+ // 校验视频是否在一定时间内的
844
+ if (!this.checkTimestamp(data[2] * 256 + data[1])) {
845
+ return
846
+ }
847
+ // 视频帧头有时间戳 注意偏移 和 大小端处理
848
+ let width = data[this.base_offset + 1] * 256 + data[this.base_offset]
849
+ let height = data[this.base_offset + 3] * 256 + data[this.base_offset + 2]
850
+
851
+ let cam = document.getElementById('cam')
852
+ let context = cam.getContext('2d')
853
+ if (this.orgdrawwidth != width || this.orgdrawheight != height) {
854
+ this.orgdrawwidth = width
855
+ this.orgdrawheight = height
856
+ cam.height = cam.height
857
+ }
858
+
859
+ let image = context.createImageData(width, height)
860
+ for (let n = 0; n != height; ++n) {
861
+ for (let m = 0; m != width; ++m) {
862
+ let image_offset = ((height - n - 1) * width + m) * 4
863
+ let data_offset = (n * width + m) * 3 + this.base_offset + 4
864
+ image.data[image_offset] = data[data_offset + 2]
865
+ image.data[image_offset + 1] = data[data_offset + 1]
866
+ image.data[image_offset + 2] = data[data_offset]
867
+ image.data[image_offset + 3] = 255
868
+ }
869
+ }
870
+ context.putImageData(image, 0, 0)
871
+ },
872
+ checkTimestamp (svr_time) {
873
+ let myDate = new Date()
874
+ let clt_time = myDate.getSeconds() * 1000 + myDate.getMilliseconds()
875
+ if (clt_time < svr_time) {
876
+ clt_time += 60 * 1000
877
+ }
878
+ return clt_time - svr_time < 3000
879
+ },
880
+ sendMsg (proto, msg, cb) {
881
+ if (!ws) {
882
+ return
883
+ }
884
+
885
+ if (typeof msg !== 'object') {
886
+ if (typeof msg === 'function') {
887
+ cb = msg
888
+ msg = {}
889
+ } else {
890
+ msg = {}
891
+ }
892
+ }
893
+
894
+ msg.proto = proto
895
+ if (typeof cb === 'function') {
896
+ this.callback[++this.context] = cb
897
+ msg.user_data = this.context
898
+ }
899
+
900
+ ws.send(JSON.stringify(msg))
901
+ },
902
+ output (content) {
903
+ if (content.length == 0) { return }
904
+ let console = document.getElementById('Console')
905
+ console.value += content
906
+ console.value += '\r'
907
+ console.scrollTop = console.scrollHeight
908
+ },
909
+ // 显示读到的身份证信息
910
+ setText (msg) {
911
+ document.getElementById('Name').value = msg.name
912
+ document.getElementById('Sex').value = msg.sex
913
+ document.getElementById('Nation').value = msg.nation
914
+ document.getElementById('Born').value = msg.birthday
915
+ document.getElementById('Address').value = msg.address
916
+ document.getElementById('CardNo').value = msg.cardID
917
+ document.getElementById('Police').value = msg.issueOrgan
918
+ document.getElementById('ActivityLFrom').value = msg.validStart
919
+ document.getElementById('ActivityLTo').value = msg.validEnd
920
+ // document.getElementById('DeviceNo').value = msg.validEnd
921
+ document.getElementById('PhotoBuffer').value = msg.fingerBase64
922
+ document.getElementById('PhotoDisplay').src = 'data:image/jpg;base64,' + msg.photoBase64
923
+ this.IdCardInfo = msg
924
+ },
925
+ close () {
926
+ this.show = !this.show
927
+ if (this.isopen) {
928
+ this.CloseVideo()
929
+ }
930
+ },
931
+ confirmIdCard () {
932
+ let param = this.IdCardInfo
933
+ param.strName=this.IdCardInfo.name
934
+ param.strID=this.IdCardInfo.cardID
935
+ this.$emit('confirminfo', param)
936
+ this.IdCardInfo = {}
937
+ }
938
+ },
939
+ ready () {
940
+ this.onLoad().then(() => {
941
+ this.$emit('ready')
942
+ }).catch((error) => {
943
+ this.$emit('error', error)
944
+ })
945
+ }
946
+ }
947
+ </script>
948
+
949
+ <style scoped>
950
+ .modal-bk{
951
+ border-radius:18px 0;
952
+ }
953
+ .header{
954
+ background-color: #d8e9f3;
955
+ height: 88px;
956
+ }
957
+ .title{
958
+ position: absolute;
959
+ font-family:PingFang-SC-Bold;
960
+ font-size:36px;
961
+ color: #666666;
962
+ margin-top: 32px;
963
+ margin-left: 665.5px;
964
+ margin-bottom: 0px;
965
+ }
966
+ .operation{
967
+ font-family:PingFang-SC-Medium;
968
+ font-size: 22px;
969
+ color:#666666;
970
+ line-height: 5px;
971
+ }
972
+ .operation-group{
973
+ margin-left: 36px;
974
+ margin-top: 20px;
975
+ }
976
+ .photo{
977
+ font-family: PingFang-SC-Medium;
978
+ font-size: 20px;
979
+ color: #ffffff;
980
+ margin-left: 20px;
981
+ border-radius: 4px;
982
+ background-color: #2fadf5;
983
+ height: 32px;
984
+ width: 92px;
985
+ line-height:12px;
986
+ }
987
+ .readIDCard{
988
+ font-family: PingFang-SC-Medium;
989
+ font-size: 20px;
990
+ color: #ffffff;
991
+ border-radius: 4px;
992
+ background-color: #2fadf5;
993
+ margin-left: 20px;
994
+ width: 120px;
995
+ height: 32px;
996
+ line-height: 12px;
997
+ }
998
+ .stop{
999
+ border-radius: 4px;
1000
+ border: 1px solid #2fadf5;
1001
+ font-family: PingFang-SC-Medium;
1002
+ font-size: 20px;
1003
+ color: #2fadf5;
1004
+ width: 120px;
1005
+ height: 32px;
1006
+ line-height: 12px;
1007
+ }
1008
+ .showInfo{
1009
+ float: left;
1010
+ width: 640px;
1011
+ display: inline-block;
1012
+ margin-top: 20px;
1013
+ margin-left: 36px;
1014
+ }
1015
+ #Console{
1016
+ margin-left: 18px;
1017
+ border-radius: 4px;
1018
+ border: 1px solid #b5b5b5;
1019
+ height:300px;
1020
+ width:322px;
1021
+ resize:none;
1022
+ background-color: #f6f6f6;
1023
+ }
1024
+ .img{
1025
+ height:300px;
1026
+ width:300px;
1027
+ float: left;
1028
+ border-radius: 4px;
1029
+ border: 1px solid #b5b5b5;
1030
+ }
1031
+ #cam{
1032
+ border-radius: 4px;
1033
+ border:1px solid #b5b5b5;
1034
+ display: inline-block
1035
+ }
1036
+ .IdCard{
1037
+ height: 950px;
1038
+ width: 692px;
1039
+ display: inline-block;
1040
+ border-radius: 20px;
1041
+ background-color: #fafafa;
1042
+ border: 1px solid #d8f1ff;
1043
+ margin-left: 40px;
1044
+ margin-top: 20px;
1045
+ }
1046
+ .IdInput{
1047
+ border-radius: 4px;
1048
+ border: 1px solid #939393;
1049
+ width: 400px;
1050
+ height: 38px;
1051
+ margin-left: 20px;
1052
+ }
1053
+ .IdInputDiv{
1054
+ margin-top: 20px;
1055
+ margin-left: 100px;
1056
+ }
1057
+ .IdHint{
1058
+ font-family: PingFang-SC-Medium;
1059
+ font-size: 18px;
1060
+ color: #7e7c81;
1061
+ }
1062
+ #PhotoBuffer,#PhotoDisplay{
1063
+ border-radius: 4px;
1064
+ background-color: #ffffff;
1065
+ border: 1px solid #939393;
1066
+ margin-left: 20px;
1067
+ }
1068
+ </style>
@@ -65,7 +65,7 @@
65
65
 
66
66
  <script>
67
67
  let ws
68
- let server_addr = 'ws://127.0.0.1:18888'// 本机端口地址
68
+ let server_addr = 'ws://127.0.0.1:38088'// 本机端口地址
69
69
  export default {
70
70
  title: '高拍仪',
71
71
  data () {
@@ -4,6 +4,6 @@ import Vue from 'vue'
4
4
  export default function () {
5
5
  // 高拍仪
6
6
  Vue.component('high-meter', (resolve) => {
7
- require(['./HighMeterIdCard'], resolve)
7
+ require(['./HighMeterCard'], resolve)
8
8
  })
9
9
  }