Blame view

src/main/resources/templates/vehicle/vehicleReceipt/add.html 15.6 KB
1
2
3
4
5
6
<!DOCTYPE HTML>
<html  lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8">
<head>
    <th:block th:include="include :: header" />
    <th:block th:include="include :: select2-css" />
7
8
	<style type="text/css">
	</style>
9
10
11
</head>
<body class="white-bg">
    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
12
        <form class="form-horizontal m" id="form-receiptHeader-add" enctype="multipart/form-data">
lihailong authored
13
14
15
16
17
18
19
20
<!--			<div class="form-group">-->
<!--				<label class="col-sm-3 control-label">入库类型:</label>-->
<!--				<div class="col-sm-8">-->
<!--					<select id="receiptType" name="receiptType" class="form-control">-->
<!--						<option th:text="CLXXRK" th:value="CLXXRK"></option>-->
<!--					</select>-->
<!--				</div>-->
<!--			</div>-->
21
			<div class="form-group">
易文鹏 authored
22
				<label class="col-sm-3 control-label">出库类型:</label>
23
				<div class="col-sm-8">
lihailong authored
24
					<input id="receiptType" name="receiptType" class="form-control" type="text" th:value="CLXXRK" readonly>
25
26
				</div>
			</div>
易文鹏 authored
27
28
29
30
31
32
33
34
			<div class="form-group">
				<label class="col-sm-3 control-label">车辆单据类型:</label>
				<div class="col-sm-8">
					<select id="vehicleDocumentType" name="vehicleDocumentType" class="form-control" th:with="vehicleDocumentType=${@dict.getType('vehicleDocumentType')}">
						<option th:each="dict : ${vehicleDocumentType}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option>
					</select>
				</div>
			</div>
lihailong authored
35
36
37
38
39
40
<!--			<div class="form-group">-->
<!--				<label class="col-sm-3 control-label">原料批号:</label>-->
<!--				<div class="col-sm-8">-->
<!--					<input id="materialBatch" name="materialBatch" class="form-control" type="text">-->
<!--				</div>-->
<!--			</div>-->
41
42
43
			<div class="form-group">
				<label class="col-sm-3 control-label">供应商:</label>
				<div class="col-sm-8">
44
					<select id="supplier" name="supplier" class="form-control" type="text"></select>
45
46
47
48
49
50
51
52
53
54
				</div>
			</div>
			<div class="form-group">
				<label class="col-sm-3 control-label">司机姓名:</label>
				<div class="col-sm-8">
					<input id="vehicleName" name="vehicleName" class="form-control" type="text">
				</div>
			</div>
			<div class="form-group">
				<label class="col-sm-3 control-label">身份证号:</label>
55
				<div class="col-sm-6">
56
57
					<input id="cardNumber" name="cardNumber" class="form-control" type="text">
				</div>
tongzhonghao authored
58
				<button onclick="ReadIDCard()" class="btn btn-primary" type="button">识别</button>
59
				<button class="btn btn-info" type="button" onclick="paiZhao()">拍照</button>
60
			</div>
tongzhonghao authored
61
tongzhonghao authored
62
63
64
65
66
67
68
69
<!--			<div class="form-group" style="width:600px;margin: 0 auto;white-space: nowrap">-->
<!--				<div class="col-sm-6">-->
<!--					<img id="cameraPlc" name="cameraPlc" src="" width="300px" height="200px"/>-->
<!--				</div>-->
<!--				<div class="col-sm-6">-->
<!--					<img id="view1" src="" width="300px" height="200px" alt="主摄像头画面">-->
<!--				</div>-->
<!--			</div>-->
70
			<div class="form-group">
71
				<label class="col-sm-3 control-label">车辆毛重:</label>
72
				<div class="col-sm-6">
73
					<input id="grossWeight" name="grossWeight" class="form-control" type="text">
74
				</div>
tongzhonghao authored
75
				<button type="button" class="btn btn-primary"  onclick="getWeight(0)" >取重</button>
76
77
			</div>
			<div class="form-group">
78
				<label class="col-sm-3 control-label">车辆皮重:</label>
79
				<div class="col-sm-6">
80
					<input id="tareWeight" name="tareWeight" class="form-control" type="text">
81
				</div>
tongzhonghao authored
82
				<button type="button" class="btn btn-primary"  onclick="getWeight(1)" >取重</button>
83
84
			</div>
			<div class="form-group">
85
				<label class="col-sm-3 control-label">车辆净重:</label>
tongzhonghao authored
86
87
				<div class="col-sm-6">
					<input id="netWeight" name="netWeight" class="form-control" type="number">
lihailong authored
88
89
				</div>
			</div>
90
易文鹏 authored
91
92
			<div class="form-group">
93
				<label class="col-sm-3 control-label">物料:</label>
94
				<div class="col-sm-8">
易文鹏 authored
95
					<select id="materialCode" name="materialCode" class="form-control"></select>
96
					</select>
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
				</div>
			</div>
			<div class="form-group">
				<label class="col-sm-3 control-label">车牌号:</label>
				<div class="col-sm-8">
					<input id="carNumber" name="carNumber" class="form-control" type="text">
				</div>
			</div>
			<div class="form-group">
				<label class="col-sm-3 control-label">驾驶证:</label>
				<div class="col-sm-8">
					<input id="driverNumber" name="driverNumber" class="form-control" type="text">
				</div>
			</div>
			<div class="form-group">
112
113
				<label class="col-sm-3 control-label">同行人数:</label>
				<div class="col-sm-8">
tongzhonghao authored
114
115
116
117
118
119
					<input id="userDef1" name="userDef1" class="form-control" type="text" >
				</div>
			</div>
			<div class="form-group">
				<label class="col-sm-3 control-label">身份证图片上传:</label>
				<div class="col-sm-8">
tongzhonghao authored
120
					<input class="fileUpload" type="file" id="userDef2" name="userDef2" multiple>
tongzhonghao authored
121
122
				</div>
			</div>
tongzhonghao authored
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!--			<div class="form-group">-->
<!--				<label class="col-sm-3 control-label">驾驶证图片上传:</label>-->
<!--				<div class="col-sm-8">-->
<!--					<input class="fileUpload" type="file" id="userDef3" name="userDef3">-->
<!--				</div>-->
<!--			</div>-->
<!--			<div class="form-group">-->
<!--				<label class="col-sm-3 control-label">行驶证图片上传:</label>-->
<!--				<div class="col-sm-8">-->
<!--					<input class="fileUpload" type="file" id="userDef4" name="userDef4">-->
<!--				</div>-->
<!--			</div>-->
<!--			<div class="form-group">-->
<!--				<label class="col-sm-3 control-label">车辆入厂图片上传:</label>-->
<!--				<div class="col-sm-8">-->
<!--					<input class="fileUpload" type="file" id="userDef5" name="userDef5">-->
<!--				</div>-->
<!--			</div>-->
141
			<input id="userDef7" name="userDef7" hidden>
142
			<div class="form-group">
tongzhonghao authored
143
144
145
				<input type="hidden" id="url" >
				<input type="hidden" id="baudrate" >
				<input type="hidden" id="comm" >
146
147
148
149
150
151
152
153
				<div class="form-control-static col-sm-offset-9">
					<button type="submit" class="btn btn-primary" >提交</button>
					<button onclick="$.modal.close()" class="btn btn-danger" type="button" >关闭</button>
				</div>
			</div>
		</form>
	</div>
    <th:block th:include="include :: footer" />
tongzhonghao authored
154
	<th:block th:include="include :: select2-js" />
155
	<th:block th:include="include :: thumbnail_customized-js" />
156
157
158
	<th:block th:include="include :: bootstrap-fileinput-css"/>
	<th:block th:include="include :: bootstrap-fileinput-js"/>
	<th:block th:include="include :: piexif-js"/>
159
    <script type="text/javascript">
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
		//初始化fileinput
		var FileInput = function () {
			var oFile = new Object();
			//初始化fileinput控件(第一次初始化)
			oFile.Init = function(ctrlName, uploadUrl) {
				var control = $('#' + ctrlName);
				//初始化上传控件的样式
				control.fileinput({
					language: 'zh', //设置语言
					uploadUrl: uploadUrl, //上传的地址
					allowedFileExtensions: ['jpg', 'gif', 'png', 'pdf'], //接收的文件后缀
					showUpload: true, //是否显示上传按钮
					showCaption: false, //是否显示标题
					browseClass: "btn btn-primary", //按钮样式
					maxFileCount: 10, //表示允许同时上传的最大文件个数
					enctype: 'multipart/form-data',
					validateInitialCount:true,
					previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
					msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
					uploadExtraData:function (previewId, index) { //传参
						var data = {

						};
						return data;
					}
				});
				//导入文件上传完成之后的事件
				control.on("fileuploaded", function (event, data, previewId, index) {
					let plugin = $('#userDef2').data('fileinput');
					console.log(plugin.initialPreview);
				});
			}
			return oFile;
		};
		//初始化fileinput
		var oFileInput = new FileInput();
		//参数1:控件id、参数2:上传地址
		oFileInput.Init("userDef2", ctx + 'vehicle/vehicleReceipt/uploadReport');
199
tongzhonghao authored
200
		function paiZhao(){
tongzhonghao authored
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
			if($("#vehicleName").val()==''){
				$.modal.msgWarning("请先录入 司机姓名 在进行拍照!!");
				$("#vehicleName").focus();
				return;
			}
			if($("#cardNumber").val()==''){
				$.modal.msgWarning("请先录入 身份证号 在进行拍照!!");
				$("#cardNumber").focus();
				return;
			}
			if($("#carNumber").val()==''){
				$.modal.msgWarning("请先录入 车牌号 在进行拍照!!");
				$("#carNumber").focus();
				return;
			}
			if($("#driverNumber").val()==''){
				$.modal.msgWarning("请先录入 驾驶证 在进行拍照!!");
				$("#driverNumber").focus();
				return;
			}
			let vehicleName = $("#vehicleName").val();
			let cardNumber = $("#cardNumber").val();
			let carNumber = $("#carNumber").val();
			let driverNumber = $("#driverNumber").val();
			let url = ctx+ "vehicle/vehicleReceipt/pictures/"+vehicleName+"/"+cardNumber+"/"+carNumber+"/"+driverNumber;
			$.modal.open("车辆拍照" ,url);
tongzhonghao authored
227
		}
228
229
230
231
232
233
234
235
236
237
238

		function drawCanvasImage() {
			const canvas = document.getElementById('canvas');
			canvas.width = width;
			canvas.height = height;
			const context = canvas.getContext('2d');
			context.drawImage(video, 0, 0, width, height, 0, 0, width, height);
			// //获取图片,数据格式为base64
			// const imageData = canvas.toDataURL("image/png");
		}
239
240
241
242
243
244
245
246
247
248
		var prefix = ctx + "vehicle/vehicleReceipt";

		$("#form-receiptHeader-add").validate({
            rules:{
				receiptType:{
					required:true,
				},
                companyCode:{
                    required:true,
                },
易文鹏 authored
249
250
251
				materialCode:{
					required:true
				},
252
253
            },
			submitHandler: function(form) {
254
255
256
257
258
259
260
261
262
				let imglist=$(".file-preview-success .file-preview-image");
				let userDef7='';
				for(let a=0;a<imglist.length;a++){
					userDef7+=imglist[parseInt(a)].title+",";
				}
				if(userDef7!=''){
					userDef7=userDef7.substring(0,userDef7.length-1);
				}
				$("#userDef7").val(userDef7);
263
264
265
                $.ajax({
                    cache : true,
                    type : "POST",
tongzhonghao authored
266
267
					dataType:"json",
					// contentType:"multipart/form-data",
268
                    url : prefix + "/add",
269
					data : $("#form-receiptHeader-add").serializeArray(),
270
271
272
273
                    async : false,
                    error : function(request) {
                        $.modal.alertError("请求失败!");
                    },
274
275
                    success : function(res) {
                        $.operate.saveSuccess(res);
276
277
278
279
280
281
282
283
                    }
                });
			}
		});

		$(function () {
            layui.use('laydate', function() {
                var laydate = layui.laydate;
284
                laydate.render({ elem: '#incomingTime',min: 0, theme: 'molv', format: 'yyyy-MM-dd HH:mm:ss'});
285
            });
286
            $('#supplier').select2({
287
288
289
290
291
292
293
294
295
296
297
298
                ajax: {
                    url: ctx+'config/supplier/getData',
                    dataType: 'json',
                    type: 'post',
                    data: function (params) {
                        let query = {
                            supplierName: params.term,
                        }
                        return query;
                    }
                }
            });
299
300
301
302
303
304
305
306
307
308
309
310
311
			$('#materialCode').select2({
				ajax: {
					url: ctx+'config/material/getData',
					dataType: 'json',
					type: 'post',
					data: function (params) {
						let query = {
							materialName: params.term,
						}
						return query;
					}
				}
			});
tongzhonghao authored
312
			initData();
313
        })
tongzhonghao authored
314
tongzhonghao authored
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
		function initData(){
			let weightData = {"useArea":"carFlag"}
			let config2 = {
				url:  ctx+'config/serialPorts/getInfo',
				type: "POST",
				dataType: "json",
				data: weightData,
				success: function (result) {
					if(result.code==web_status.SUCCESS){
						$("#url").val(result.data.url);
						$("#baudrate").val(result.data.baudrate);
						$("#comm").val(result.data.currCom);
					}
				}
			};
			$.ajax(config2)
		}
tongzhonghao authored
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
		$("#grossWeight").blur(function(){
			if($("#tareWeight").val()!=''){
				let total = numAdd($("#grossWeight").val(),$("#tareWeight").val())
				$("#netWeight").val(total)
			}
		})

		$("#tareWeight").blur(function(){
			if($("#grossWeight")!=''){
				let total = numAdd($("#grossWeight").val(),$("#tareWeight").val())
				$("#netWeight").val(total)
			}
		})

		function numAdd(num1, num2) {
			var baseNum, baseNum1, baseNum2;
			try {
				baseNum1 = num1.toString().split(".")[1].length;
			} catch (e) {
				baseNum1 = 0;
			}
			try {
				baseNum2 = num2.toString().split(".")[1].length;
			} catch (e) {
				baseNum2 = 0;
			}
			baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
tongzhonghao authored
360
			return (num1 * baseNum - num2 * baseNum) / baseNum;
tongzhonghao authored
361
362
		};
tongzhonghao authored
363
		function getWeight(num){
tongzhonghao authored
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
			let weightUrl = $("#url").val();
			let currCom = $("#comm").val();
			let baudrate = $("#baudrate").val();
			if(weightUrl==''){
				$.modal.msgError("车辆称重地磅地址为空,请先配置地磅地址!")
				return;
			}
			if(currCom==''){
				$.modal.msgError("车辆称重地磅串口为空,请先指定串口!")
				return;
			}
			if(baudrate==''){
				$.modal.msgError("车辆称重地磅波特率为空,请先指定波特率!")
				return;
			}
			// let url='http://10.34.101.77:8888/wms/API/WMS/v2/getWeightForSerial';
tongzhonghao authored
380
381
			let type = "POST";
			let dataType = "json";
tongzhonghao authored
382
			let data = {"comm":currCom,"baudrate":baudrate};
tongzhonghao authored
383
			let config = {
tongzhonghao authored
384
				url: weightUrl,
tongzhonghao authored
385
386
387
388
				type: type,
				dataType: dataType,
				data: data,
				success: function (result) {
tongzhonghao authored
389
					if(result.code==web_status.SUCCESS){
tongzhonghao authored
390
						console.log(result.data)
391
392
393
394
395
396
397
398
399
400
401
402
						var str=result.data;
						/*var str_conver=str.match(/[\u0000-\u00ff]/g);
						console.log(str_conver);//半角
						var res=str_conver.toString();
						str=res.replaceAll(",","");
						console.log(str);
						str=str.replace(/(^\s*)|(\s*$)/g, "");
						console.log(str);*/


						//console.log(str.match(/[\u4e00-\u9fa5]/g)); //中文
						//console.log(str.match(/[\uff00-\uffff]/g));//全角
tongzhonghao authored
403
						if(num == '0'){
404
							$("#grossWeight").val(str)
tongzhonghao authored
405
						}else if(num == '1'){
406
							$("#tareWeight").val(str)
tongzhonghao authored
407
408
						}
					}
tongzhonghao authored
409
410
411
				}
			};
			$.ajax(config)
412
		}
413
tongzhonghao authored
414
415
416
		function ReadIDCard(){
			$.post("http://127.0.0.1:38088/card=idcard", function(res){
				if(res.code == '0'){
tongzhonghao authored
417
418
					$("#cardNumber").val(res.IDCardInfo.cardID)
					$("#vehicleName").val(res.IDCardInfo.name)
tongzhonghao authored
419
420
				}else{
					alert("请将证件放对位置!!!")
421
				}
tongzhonghao authored
422
			})
423
424
		}
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476


		// 主头纠偏拍照
		function scan1cutpage(){
			debugger;
			var data = {
				"filepath": "base64",
				"rotate": "0",
				"cutpage": "1",
				"camidx": "0"
			};
			$.post("http://127.0.0.1:38088/video=grabimage", JSON.stringify(data),
					function(res){
						$('#res_img').attr('src', "data:image/jpg;base64," + res.photoBase64);
						// 调用方式
						// 参数一: 选择器,代表img标签
						// 参数二: 图片名称,可选
						downloadIamge('#res_img', res.photoBase64)
					}
			)
		}



		function downloadIamge(selector, name) {
			var image = new Image()
			// 解决跨域 Canvas 污染问题
			image.setAttribute('crossOrigin', 'anonymous')
			image.onload = function () {
				var canvas = document.createElement('canvas')
				canvas.width = image.width
				canvas.height = image.height

				var context = canvas.getContext('2d')
				context.drawImage(image, 0, 0, image.width, image.height)
				var url = canvas.toDataURL('image/png')

				// 生成一个a元素
				var a = document.createElement('a')
				// 创建一个单击事件
				var event = new MouseEvent('click')

				// 将a的download属性设置为我们想要下载的图片名称,若name不存在则使用‘下载图片名称’作为默认名称
				a.download = name || '下载图片名称'
				// 将生成的URL设置为a.href属性
				a.href = url

				// 触发a的单击事件
				a.dispatchEvent(event)
			}

			image.src = document.querySelector(selector).src
477
		}
478
479

	</script>
480
481
</body>
</html>