Commit 5b5a2925 by 张超军

1.新增人员活体采集。2.截屏(正/倒查)3.案件512图片比例尺。4.点击滤镜图片旋转。

parent eb4afb7d
......@@ -40,7 +40,7 @@
background-color: #ffffff;
border: none;
// border-bottom: 1px #f6f8fa solid;
border-top: 1px #f6f8fa solid;
border-top: 1px #EEEEEE solid;
}
// 去除table表格最底部边框
.el-table__row > td {
......
<!--
* @Author: your name
* @Date: 2021-09-09 09:28:46
* @LastEditTime: 2022-01-14 16:03:42
* @LastEditTime: 2022-01-16 17:19:03
* @Description: In User Settings Edit
* @FilePath: \指纹系统\founder_vue\src\views\cxyrd\LTz.vue
-->
......@@ -3337,7 +3337,7 @@ export default {
// 是否展示旋转的下拉框
this.isRotateOptions = false;
// 旋转的度数
this.inputRotationRange = 0;
// this.inputRotationRange = 0;
// 旋转的度数--target
// this.inputRotationRange2 = 0
// 是否是X轴翻转
......@@ -4804,7 +4804,7 @@ export default {
});
} else if (this.$route.name == "TL" || this.$route.name == 'rgTL') {
// 倒查页面
$(".top").css('opacity', '0')
$(".el-checkbox").css('opacity', '0')
$(".main-left").css('box-shadow', 'none')
$(".main-right").css('box-shadow', 'none')
$(".header").css("opacity", "0");
......@@ -4838,7 +4838,7 @@ export default {
a.click();
// 恢复界面
$(".top").css('opacity', '1')
$(".el-checkbox").css('opacity', '1')
$(".main-left").css('box-shadow', '0px 4px 10px 0px rgba(5, 95, 231, 0.3)')
$(".main-right").css('box-shadow', '0px 4px 10px 0px rgba(5, 95, 231, 0.3)')
$(".header").css("opacity", "1");
......@@ -6071,7 +6071,7 @@ export default {
// 是否展示旋转的下拉框
this.isRotateOptions = false;
// 旋转的度数
this.inputRotationRange = 0;
// this.inputRotationRange = 0;
// 旋转的度数--target
// this.inputRotationRange2 = 0
// 是否是X轴翻转
......@@ -6175,7 +6175,7 @@ export default {
// 是否展示旋转的下拉框
this.isRotateOptions = false;
// 旋转的度数
this.inputRotationRange = 0;
// this.inputRotationRange = 0;
// 旋转的度数--target
// this.inputRotationRange2 = 0
// 是否是X轴翻转
......@@ -6336,6 +6336,7 @@ export default {
if (!deg) deg = 0;
this.imageEditor2.rotate(deg);
this.startPlaceTarget = newValue;
console.log("newValue:", newValue);
this.historys2.unshift('旋转')
// this.imageEditor2.setAngle(newValue)['catch'](function () { });
}
......
/*
* @Author: your name
* @Date: 2021-09-07 09:58:13
* @LastEditTime: 2022-01-15 11:49:06
* @LastEditTime: 2022-01-15 14:58:21
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\router\modules\index.js
......@@ -55,7 +55,7 @@ export default [
parentId: 'zzwlr',
title: '修改人员',
},
component: () => import('@/views/zzwlr/xzry.vue')
component: () => import('@/views/zzwlr/xzryedit.vue')
},
{
path: '/zzwlr',
......
......@@ -1488,7 +1488,7 @@ export default {
background-color: #ffffff;
border: none;
// border-bottom: 1px #f6f8fa solid;
border-top: 1px #f6f8fa solid;
border-top: 1px #EEEEEE solid;
}
// 去除table表格最底部边框
.el-table__row > td {
......@@ -1605,7 +1605,7 @@ export default {
// 表格高度 -- 展示下面的border
.split-line {
height: 650px;
border-bottom: 1px solid #eee;
border-bottom: 1px solid #EEEEEE;
}
// 复选框
......
......@@ -1357,7 +1357,7 @@ const datas1 = [
background-color: #ffffff;
border: none;
// border-bottom: 1px #f6f8fa solid;
border-top: 1px #f6f8fa solid;
border-top: 1px #EEEEEE solid;
}
// 去除table表格最底部边框
.el-table__row > td {
......
<!--
* @Author: your name
* @Date: 2021-10-22 11:36:10
* @LastEditTime: 2022-01-15 11:29:07
* @LastEditTime: 2022-01-15 17:56:25
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \指纹系统\founder_vue\src\views\Editor\modules\imageEd.vue
......@@ -4343,6 +4343,25 @@ export default {
this.zoomImage(1);
this.imageEditor.rotate(-angle)
this.changeTzdDrawing(true)
// this.imageEditor.zoom({
// x: this.imageEditor._graphics.getCanvasImage().width / 2,
// y: this.imageEditor._graphics.getCanvasImage().height / 2,
// zoomLevel: 1.2,
// });
// this.changeTzdDrawing(true)
this.imageEditor._graphics.setImageProperties(
{
left: 0,
top: 0,
originX: "left",
originY: "top"
},
true
);
this.imageEditor._graphics.setImageProperties(
{
left: 0,
......@@ -4555,12 +4574,32 @@ export default {
const angle = canvasImage.angle
// console.log(angle);
this.imageEditor.zoom({
x: 0,
y: 0,
zoomLevel: 1
});
// this.imageEditor.zoom({
// x: 0,
// y: 0,
// zoomLevel: 1
// });
this.imageEditor.rotate(-angle)
// this.imageEditor._graphics.setImageProperties(
// {
// left: self.newHeight/2,
// top: 0,
// originX: "left",
// originY: "top"
// },
// true
// );
// 移到原点
// 将图片放到正中间
// this.imageEditor.zoom({
// x: this.imageEditor._graphics.getCanvasImage().width / 2,
// y: this.imageEditor._graphics.getCanvasImage().height / 2,
// zoomLevel: 1.2,
// });
this.zoomImage(1);
this.changeTzdDrawing(true)
this.imageEditor._graphics.setImageProperties(
{
left: 0,
......@@ -4570,10 +4609,16 @@ export default {
},
true
);
this.imageEditor.rotate(angle);
console.log((h * self.newHeight) / small_drawing_height);
console.log((h * self.maxNewHeightOrWidth) / small_drawing_height);
console.log("=================================");
console.log(small_pic_left * self.newWidth / small_drawing_img_width);
console.log(small_pic_top * self.newHeight / small_drawing_img_height);
console.log((h * self.maxNewHeightOrWidth) / small_drawing_height);
this.imageEditor
.crop({
left: small_pic_left * self.newWidth / small_drawing_img_width,
......@@ -5817,6 +5862,7 @@ export default {
this.isHandTZD = false;
this.issize = false;
this.ismoderate = true;
self.imageEditor.rotate(-parseInt(self.startPlace));
self.imageEditor.resetZoom();
this.imageEditor.zoom({
......
......@@ -1457,11 +1457,12 @@ export default {
},
watch: {
checked (newValue, oldValue) {
console.log(this.sourceTableData);
if (newValue) {
this.tableData = this.sourceTableData;
} else {
this.tableData = this.sourceTableData.filter((item) => {
return item.affirmstatus != 1 && item.affirmstatus != 3;
return item.affirmstatus != 2 && item.affirmstatus != 3;
});
//console.log(this.tableData);
}
......
......@@ -636,7 +636,7 @@ const datas = [
.lt_src {
width: 100%;
height: 100%;
background: #ffffff;
background: transparent;
div {
display: inline-block;
......@@ -659,6 +659,7 @@ const datas = [
width: 100%;
border-radius: 0px 20px 0px 0px;
background: linear-gradient(270deg, #3eb2ff 0%, #055fe7 100%);
// background-color: #000000;
display: flex;
align-items: center;
box-sizing: border-box;
......@@ -684,7 +685,8 @@ const datas = [
.lt_middle {
width: 100%;
// height: 100%;
background: #ffffff;
// background: #ffffff;
background: transparent;
border-radius: 8px;
}
......@@ -718,7 +720,8 @@ const datas = [
}
.lt_middle_finger_print {
background-color: #ffffff;
// background-color: #ffffff;
background-color: transparent;
width: 100%;
.btns-switch {
......
......@@ -355,7 +355,7 @@ export default {
this.tableData = this.sourceTableData;
} else {
this.tableData = this.sourceTableData.filter(item => {
return item.affirmstatus != 1 && item.affirmstatus != 3;
return item.affirmstatus != 2 && item.affirmstatus != 3;
});
}
this.total = this.tableData.length;
......
......@@ -1674,7 +1674,7 @@ label {
.main {
width: 100%;
height: 100%;
background: #ffffff;
// background: #ffffff;
border-radius: 8px;
.data {
......@@ -1741,18 +1741,19 @@ label {
}
.finger-print {
width: 352px;
width: 100%;
height: 700px;
margin-left: 10px;
background: #fff;
// padding-left: 10px;
// background: #fff;
.btns {
width: 300px;
width: 100%;
height: 32px;
margin: 12px 0 12px 40px;
padding: 12px 40px;
background-color: #FFFFFF;
display: flex;
align-items: center;
justify-content: space-around;
.btn {
cursor: pointer;
......@@ -1765,7 +1766,7 @@ label {
border-radius: 4px;
border: 1px solid #055FE7;
color: #055FE7;
margin-right: 10px;
// margin-right: 10px;
&:active {
background: #055fe7;
......@@ -1795,7 +1796,7 @@ label {
overflow-y: auto;
width: 100%;
height: 500px;
padding-left: 8px;
padding-left: 18px;
.outside {
bottom: 6px;
......@@ -2255,12 +2256,15 @@ label {
.bottom {
text-align: center;
background: #fff;
//height: 40px;
width: 100%;
font-size: 12px;
font-family: HarmonyOS_Sans_SC;
color: #999999;
margin-top: 0;
margin-top: 18px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
.expend {
font-size: 12px;
......
......@@ -1315,7 +1315,7 @@ export default {
this.tableData = this.sourceTableData;
} else {
this.tableData = this.sourceTableData.filter((item) => {
return item.affirmstatus != 1 && item.affirmstatus != 3;
return item.affirmstatus != 2 && item.affirmstatus != 3;
});
//console.log(this.tableData);
}
......
......@@ -686,7 +686,7 @@ const datas = [
.lt_middle {
width: 100%;
// height: 100%;
background: #ffffff;
// background: #ffffff;
border-radius: 8px;
}
.el-table {
......@@ -737,7 +737,7 @@ const datas = [
}
.lt_middle_finger_print {
background-color: #ffffff;
// background-color: #ffffff;
width: 100%;
height: 100%;
box-sizing: border-box;
......@@ -747,7 +747,7 @@ const datas = [
align-items: center;
margin-top: 13px;
justify-content: center;
background-color: #f6f8fa;
background-color: #ffffff;
.btn {
cursor: pointer;
width: 129px;
......
......@@ -324,7 +324,7 @@ export default {
this.tableData = this.sourceTableData;
} else {
this.tableData = this.sourceTableData.filter((item) => {
return item.affirmstatus != 1 && item.affirmstatus != 3;
return item.affirmstatus != 2 && item.affirmstatus != 3;
});
}
this.total = this.tableData.length;
......
......@@ -60,7 +60,7 @@
</div>
</div>
<!-- 视频 -->
<div class="movie" @click="playFn" style="opacity: 1;">
<div class="movie" @click="playFn" style="opacity: 0;">
<span class="iconfont icon-bofang" v-show="!isPlay"></span>
<video v-show="isPlay" ref="video" :src="videoSrc" controls muted></video>
</div>
......@@ -582,6 +582,7 @@
</div>
<!-- 上传提示弹窗 -->
<div class="uploading" v-show="uploadingStart">
<!-- <div class="uploading"> -->
<div class="uploading-content" v-show="uploadingClose=='uploading'">
<el-progress class="pro" type="circle" :percentage="percentage" :color="uploadingColor" :show-text="isShowUploadingTxt" v-if="percentage"></el-progress>
<div class="uploading-title">{{uploadingTitle}}</div>
......@@ -706,7 +707,7 @@ export default {
setRepeatMethod: null,
cancelRepeatMethod: null,
// 重复指位提示
repeatVisible: false,
repeatVisible: false, // 测试
// 是否点击了重复
confirmRepeatGather: false,
// 采集完成之后的提示
......@@ -971,7 +972,7 @@ export default {
getStatus: true,
clickTimes: 0,
// 加载动画
loading: true,
loading: false,
// 小指纹仪
smallCapture: '',
BASE64_MARKER: ';base64,',
......@@ -983,7 +984,7 @@ export default {
frameImage: false,
// 墨奇设备信息
version: {
DeviceSn: "MQ-123" // 测试数据
// DeviceSn: "MQ-123" // 测试数据
},
// 手动采集标志
handChecked: false,
......@@ -1134,6 +1135,9 @@ export default {
// //console.log(this.rybh);
},
async mounted () {
// setInterval(() => {
// this.percentage++
// }, 2000);
let self = this
/************************/
function getIPs (callback) {
......@@ -1480,7 +1484,7 @@ export default {
self.collectInfoMsg.nyry_lxdh = data.nyrlxdh
self.collectInfoMsg.nysj = data.nysj
if(self.cj_type === 0) {
if (self.cj_type === 0) {
self.rGdzw = []
self.rPmzw = []
} else {
......@@ -1492,8 +1496,8 @@ export default {
}
}
self.rGdzw = [1,1,1,1,1,1,1,1,1,1]
self.rPmzw = [0,0,0,0,0,0,0,0,0,0]
// self.rGdzw = [1,1,1,1,1,1,1,1,1,1]
// self.rPmzw = [0,0,0,0,0,0,0,0,0,0]
// //console.log(self.rGdzw);
// //console.log(self.rPmzw);
// 测试全部采集用***************************
......@@ -1556,6 +1560,9 @@ export default {
this.pop = false
this.isAlter = false
})
// self.rGdzw = [1,1,1,1,1,1,1,1,1,1]
// self.rPmzw = [0,0,0,0,0,0,0,0,0,0]
// this.dealIsGetFinger()
},
/**
* @description: 处理补采相关的信息
......@@ -1564,6 +1571,7 @@ export default {
*/
dealIsGetFinger () {
let self = this
debugger
if (this.rGdzw.length > 0) {
this.rGdzw.forEach((item, index) => {
if (item != 1) {
......@@ -8025,6 +8033,28 @@ export default {
finishCollection () {
// 如果没有采集指位
if (this.fingerPic.length == 0) {
this.fingersRight.forEach(item => {
if ((item.imgSrcR == '' || item.imgSrcL == '') && (!item.isLackFinger && (!item.isLackFingerL || !item.isLackFingerR))) {
this.flag = false
this.fingersRightNo.push(item)
}
})
this.fingersLeft.forEach(item => {
if ((item.imgSrcR == '' || item.imgSrcL == '') && (!item.isLackFinger && (!item.isLackFingerL || !item.isLackFingerR))) {
this.flag = false
this.fingersLeftNo.push(item)
}
})
if (this.fingersLeftNo.length > 0 || this.fingersRightNo.length > 0) {
this.flag = false
} else {
this.flag = true
}
if (this.flag) {
this.finishVisible = true
} else {
this.failVisible = true
}
return;
}
this.fingersLeftNo = []
......@@ -8222,17 +8252,22 @@ export default {
setTimeout(() => {
self.uploadingClose = 'uploadingError'
setTimeout(() => {
if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
window.location.href = "about:blank";
window.close();
} else {
window.opener = null;
window.open("", "_self");
window.close();
}
// if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
// window.location.href = "about:blank";
// window.close();
// } else {
// window.opener = null;
// window.open("", "_self");
// window.close();
// }
// 关闭tab页
this.$bus.emit("xzryResetForm", "xzry");
this.$router.push('/htcj')
}, 3000);
}, 1500);
return
} else {
if (self.cj_type === 0) {
self.isUploadingFinish = true
self.isShowUploadingTxt = false
self.uploadingTitle = '指纹上传完成'
......@@ -8243,20 +8278,23 @@ export default {
setTimeout(() => {
self.uploadingClose = 'uploadingFinish'
setTimeout(() => {
if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
window.location.href = "about:blank";
window.close();
} else {
window.opener = null;
window.open("", "_self");
window.close();
}
// if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
// window.location.href = "about:blank";
// window.close();
// } else {
// window.opener = null;
// window.open("", "_self");
// window.close();
// }
// 关闭tab页
this.$bus.emit("xzryResetForm", "xzry");
this.$router.push('/htcj')
}, 3000);
}, 1500);
}
}
if(self.cj_type === 1) {
if (self.cj_type === 1) {
// 返回数据给后台
// 滚动
let zwfkxx = 'A1'
......@@ -8328,46 +8366,52 @@ export default {
// console.log(res);
// 上传完成
// self.percentage = 100
// self.isUploadingFinish = true
// self.isShowUploadingTxt = false
// self.uploadingTitle = '指纹上传完成'
// self.uploadingTip = '页面将在3秒后自动关闭'
// setTimeout(() => {
// document.getElementsByTagName('body')[0].style.setProperty('--uploadingBorder', '2px');
// }, 300);
// setTimeout(() => {
// self.uploadingClose = 'uploadingFinish'
// // setTimeout(() => {
// // if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
// // window.location.href = "about:blank";
// // window.close();
// // } else {
// // window.opener = null;
// // window.open("", "_self");
// // window.close();
// // }
// // }, 3000);
// }, 1500);
self.isUploadingFinish = true
self.isShowUploadingTxt = false
self.uploadingTitle = '指纹上传完成'
self.uploadingTip = '页面将在3秒后自动关闭'
setTimeout(() => {
document.getElementsByTagName('body')[0].style.setProperty('--uploadingBorder', '2px');
}, 300);
setTimeout(() => {
self.uploadingClose = 'uploadingFinish'
setTimeout(() => {
// if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
// window.location.href = "about:blank";
// window.close();
// } else {
// window.opener = null;
// window.open("", "_self");
// window.close();
// }
// 关闭tab页
this.$bus.emit("xzryResetForm", "xzry");
this.$router.push('/htcj')
}, 3000);
}, 1500);
}).catch(err => {
//console.log(err);
// self.uploadingColor = '#E82510'
// self.isUploadingError = true
// self.isShowUploadingTxt = false
// self.uploadingTitle = '指纹上传失败'
// self.uploadingTip = '页面将在3秒后自动关闭'
// setTimeout(() => {
// self.uploadingClose = 'uploadingError'
// // setTimeout(() => {
// // if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
// // window.location.href = "about:blank";
// // window.close();
// // } else {
// // window.opener = null;
// // window.open("", "_self");
// // window.close();
// // }
// // }, 3000);
// }, 1500);
console.log(err);
self.uploadingColor = '#E82510'
self.isUploadingError = true
self.isShowUploadingTxt = false
self.uploadingTitle = '指纹上传失败'
self.uploadingTip = '页面将在3秒后自动关闭'
setTimeout(() => {
self.uploadingClose = 'uploadingError'
setTimeout(() => {
// if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
// window.location.href = "about:blank";
// window.close();
// } else {
// window.opener = null;
// window.open("", "_self");
// window.close();
// }
// 关闭tab页
this.$bus.emit("xzryResetForm", "xzry");
this.$router.push('/htcj')
}, 3000);
}, 1500);
})
}
......@@ -8402,6 +8446,84 @@ export default {
*/
setFinger () {
this.failVisible = false
// 全部未采集
if (this.fingerPic.length == 0) {
if (this.fingersRightNo.length != 0) {
this.preIndex = null
this.preStatusR = null
this.preStatusL = null
this.fingersRightNo.forEach((item, index) => {
if ((item.imgSrcR == '') && (item.imgSrcL == '')) {
this.fingersRight[item.code - 1].statusR = 4
this.fingersRight[item.code - 1].statusL = 4
this.fingersRight[item.code - 1].isLackFinger = true
this.fingersRight[item.code - 1].isLackFingerR = true
this.fingersRight[item.code - 1].isLackFingerL = true
this.cur = item.code + 5
this.$refs.rightFinger.children[item.code - 1].setAttribute('src', this.fingerArr[item.code - 1 + 20])
//console.log(item.code - 1);
} else {
if (item.imgSrcR == '') {
this.fingersRight[item.code - 1].statusR = 4
this.fingersRight[item.code - 1].isLackFingerR = true
this.fingersRight[item.code - 1].isLackFinger = true
this.cur = item.code + 5
this.$refs.rightFinger.children[item.code - 1].setAttribute('src', this.fingerArr[item.code - 1 + 20])
}
if (item.imgSrcL == '') {
this.fingersRight[item.code - 1].statusL = 4
this.fingersRight[item.code - 1].isLackFingerL = true
this.fingersRight[item.code - 1].isLackFinger = true
this.cur = item.code + 5
this.$refs.rightFinger.children[item.code - 1].setAttribute('src', this.fingerArr[item.code - 1 + 20])
}
}
})
}
if (this.fingersLeftNo.length != 0) {
this.preIndex = null
this.preStatusR = null
this.preStatusL = null
this.fingersLeftNo.forEach((item, index) => {
if ((item.imgSrcR == '') && (item.imgSrcL == '')) {
this.fingersLeft[item.code - 1 - 5].statusR = 4
this.fingersLeft[item.code - 1 - 5].statusL = 4
this.fingersLeft[item.code - 1 - 5].isLackFinger = true
this.fingersLeft[item.code - 1 - 5].isLackFingerR = true
this.fingersLeft[item.code - 1 - 5].isLackFingerL = true
this.cur = item.code - 5
this.$refs.leftFinger.children[item.code - 1 - 5].setAttribute('src', this.fingerArr[item.code - 1 - 5 + 5 + 20])
} else {
if (item.imgSrcR == '') {
this.fingersLeft[item.code - 1 - 5].statusR = 4
this.fingersLeft[item.code - 1 - 5].isLackFingerR = true
this.fingersLeft[item.code - 1 - 5].isLackFinger = true
this.cur = item.code - 5
this.$refs.leftFinger.children[item.code - 1 - 5].setAttribute('src', this.fingerArr[item.code - 1 - 5 + 5 + 20])
}
if (item.imgSrcL == '') {
this.fingersLeft[item.code - 1 - 5].statusL = 4
this.fingersLeft[item.code - 1 - 5].isLackFingerL = true
this.fingersLeft[item.code - 1 - 5].isLackFinger = true
this.cur = item.code - 5
this.$refs.leftFinger.children[item.code - 1 - 5].setAttribute('src', this.fingerArr[item.code - 1 - 5 + 5 + 20])
}
}
})
}
setTimeout(() => {
if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1) {
window.location.href = "about:blank";
window.close();
} else {
window.opener = null;
window.open("", "_self");
window.close();
}
}, 1500);
return
}
if (this.rGdzw.length > 0 || this.rPmzw.length > 0) {
if (this.fingersRightNo.length != 0) {
this.preIndex = null
......@@ -8718,7 +8840,7 @@ export default {
* @param {*}
* @return {*}
*/
defaultChange(){
defaultChange () {
console.log('默认模式');
this.themeType = '默认'
document.getElementsByTagName('body')[0].style.setProperty('--elDialog', '#ffffff');//设置
......@@ -9144,7 +9266,7 @@ export default {
if (newValue != '') {
document.getElementsByTagName('body')[0].style.setProperty('--lookingBg', '#fff');
} else {
if(this.themeType == '深色' || this.themeType == '浅色') {
if (this.themeType == '深色' || this.themeType == '浅色') {
document.getElementsByTagName('body')[0].style.setProperty('--lookingBg', '#161712');
} else {
document.getElementsByTagName('body')[0].style.setProperty('--lookingBg', '#fff');
......
......@@ -427,7 +427,7 @@
background-color: #ffffff;
border: none;
// border-bottom: 1px #f6f8fa solid;
border-top: 1px #f6f8fa solid;
border-top: 1px #EEEEEE solid;
}
// 去除table表格最底部边框
.el-table__row > td {
......
......@@ -360,13 +360,15 @@ export default {
},
handleClick(row) {
// console.log(row);
// this.$store.commit("layout/delcachePageName", "xzry");
this.$store.commit("layout/delcachePageName", "xzry");
this.$store.commit('layout/delcachePageName', 'xzryedit')
this.$router.push({
path: "/xzry/edit/"+row.barcode
});
},
toAdd() {
this.$store.commit("layout/delcachePageName", "xzry");
this.$store.commit('layout/delcachePageName', 'xzryedit')
this.$router.push("/xzry");
},
clear() {
......
<!--
* @Author: your name
* @Date: 2021-09-07 10:31:34
* @LastEditTime: 2022-01-15 11:49:43
* @LastEditTime: 2022-01-15 15:09:06
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\zzwlr\Index.vue
......@@ -406,12 +406,13 @@
// 清除全部案件库缓存
self.$store.commit('layout/delcachePageName', 'htcj')
this.$store.commit('layout/delcachePageName', 'xzry')
this.$store.commit('layout/delcachePageName', 'xzryedit')
// this.$refs[formName].resetFields();
this.$set(this.ruleForm, 'ysxtAsjxgrybh', this.ruleForm.ysxtAsjxgrybh.substring(1, 23))
this.$router.pushToTab({
path: `/fingerprintIndex/${reqParam.personDo.ysxtAsjxgrybh}/${this.ruleForm.xm}`,
this.$router.push({
path: `/fingerprintIndex/R${reqParam.personDo.ysxtAsjxgrybh}/${this.ruleForm.xm}`,
query: {
type: 0,
type: 1
},
});
} else {
......@@ -458,10 +459,10 @@
console.log(response);
if (response.data.code === 0) {
this.$message.success("新增成功");
this.$router.pushToTab({
path: `/fingerprintIndex/${reqParam.personDo.ysxtAsjxgrybh}/${this.ruleForm.xm}`,
this.$router.push({
path: `/fingerprintIndex/R${reqParam.personDo.ysxtAsjxgrybh}/${this.ruleForm.xm}`,
query: {
type: 1
type: 0
}
})
this.$store.commit('layout/delcachePageName', 'htcj')
......@@ -500,7 +501,7 @@
} else {
this.$message.error("新增失败");
this.$set(this.ruleForm, "cjxxyydm", []);
// this.$set(this.ruleForm, 'ysxtAsjxgrybh', this.ruleForm.ysxtAsjxgrybh.substring(1, 23))
this.$set(this.ruleForm, 'ysxtAsjxgrybh', this.ruleForm.ysxtAsjxgrybh.substring(1, 23))
}
});
}
......
<!--
* @Author: your name
* @Date: 2021-09-07 10:31:34
* @LastEditTime: 2022-01-15 14:53:05
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\zzwlr\Index.vue
-->
<template>
<div id="xzry">
<div class="top">
<div class="fir">
<div class="cir">1</div>
<span>人员信息 </span>
<div class="dashed"></div>
</div>
<!-- <div class="unactive">
<div class="cir">2</div>
<span>人像采集</span>
<div class="solid"></div>
</div> -->
<div class="unactive">
<div class="cir">2</div>
<span>指掌纹采集</span>
</div>
</div>
<div class="content">
<el-form :label-position="labelPosition" :inline="true" :model="ruleForm" :rules="rules" ref="ruleForm"
class="demo-form-inline">
<!-- 一 -->
<el-row class="title">
<div class="colorDiv"></div>
<div>捺印指掌纹基本信息</div>
</el-row>
<!-- 二 -->
<el-row class="item-row">
<el-form-item label="人员编号:" prop="ysxtAsjxgrybh">
<el-input v-model.trim="ruleForm.ysxtAsjxgrybh" placeholder="请输入人员编号" maxlength="22" class="inputBh"
show-word-limit clearable>
<template slot="prepend" class="preR">R</template>
</el-input>
</el-form-item>
<el-form-item class="no_require" label="警综人员编号:">
<el-input v-model.trim="ruleForm.jzrybh" placeholder="请输入警综人员编号" maxlength="23" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<!-- 三 -->
<el-row class="item-row">
<el-form-item label="采集信息原因:" prop="cjxxyydm">
<SelectCode codeUrl="/api/code/cjxxyydm" width="18.75" :clearable="true" :form="ruleForm" id="cjxxyydm"
ref="cjxxyydm" multiple :multipleLimit="5"></SelectCode>
</el-form-item>
<el-form-item class="no_require" label="指掌纹卡编号:">
<!-- -->
<el-input v-model.trim="ruleForm.zzhwkbh" placeholder="请输入指掌纹卡编号" maxlength="23" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<!-- 四 -->
<el-row class="item-row">
<el-form-item> </el-form-item>
<el-form-item class="no_require" label="案事件相关人员编号:">
<!-- -->
<el-input v-model.trim="ruleForm.asjxgrybh" placeholder="请输入案事件相关人员编号" maxlength="23" show-word-limit
clearable></el-input>
</el-form-item>
</el-row>
<el-divider></el-divider>
<!-- 五 -->
<el-row class="title">
<div class="colorDiv"></div>
<div>指掌纹提取信息</div>
</el-row>
<!-- 六 -->
<el-row class="item-row">
<el-form-item label="姓名:" prop="xm">
<el-input v-model.trim="ruleForm.xm" placeholder="请输入姓名" clearable maxlength="50" show-word-limit>
</el-input>
</el-form-item>
<el-form-item class="no_require" label="别名/绰号:">
<el-input v-model.trim="ruleForm.bmch" placeholder="请输入别名/绰号" maxlength="50" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<!-- 七 -->
<el-row class="item-row">
<el-form-item label="性别:" prop="xbdm">
<SelectCode codeUrl="/api/code/sex" width="18.75" clearable :form="ruleForm" id="xbdm"></SelectCode>
</el-form-item>
<el-form-item label="出生日期:" prop="csrq">
<el-date-picker type="date" placeholder="请选择出生日期" v-model="ruleForm.csrq" style="width: 100%"
:picker-options="{
disabledDate: disabledDate,
}"></el-date-picker>
</el-form-item>
</el-row>
<!-- 八 -->
<el-row class="item-row">
<el-form-item label="国籍:" prop="gjdm">
<SelectCode codeUrl="/api/code/nationality" width="18.75" :form="ruleForm" id="gjdm"></SelectCode>
</el-form-item>
<el-form-item label="民族:" prop="mzdm">
<SelectCode codeUrl="/api/code/nation" width="18.75" clearable :form="ruleForm" id="mzdm"></SelectCode>
</el-form-item>
</el-row>
<!-- 九 -->
<el-row class="item-row">
<el-form-item label="证件类型:" prop="cyzjdm">
<SelectCode codeUrl="/api/code/certificates" width="18.75" clearable :form="ruleForm" id="cyzjdm">
</SelectCode>
</el-form-item>
<el-form-item label="证件号码:" prop="zjhm">
<el-input v-model.trim="ruleForm.zjhm" placeholder="请输入证件号码" maxlength="30" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<el-row class="item-row">
<el-form-item label="户籍地行政区:" prop="hjdzXzqhdm">
<Cascader :form="ruleForm" id="hjdzXzqhdm" codeName="CODE_XZQH" :width="18.75"></Cascader>
</el-form-item>
<el-form-item label="户籍地址:" prop="hjdzDzmc">
<el-input v-model="ruleForm.hjdzDzmc" placeholder="请输入户籍地址" maxlength="100" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<el-row class="item-row">
<el-form-item label="现住址行政区:" prop="xzzXzqhdm">
<Cascader :form="ruleForm" id="xzzXzqhdm" codeName="CODE_XZQH" :width="18.75"></Cascader>
</el-form-item>
<el-form-item label="现住址:" prop="xzzDzmc">
<el-input v-model.trim="ruleForm.xzzDzmc" placeholder="请输入现住址" maxlength="100" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<el-row class="item-row bz">
<el-form-item label="备注信息:">
<el-input resize="none" type="textarea" placeholder="请输入内容" v-model.trim="ruleForm.bz"
show-word-limit>
</el-input>
<!-- maxlength="1024" -->
</el-form-item>
</el-row>
<el-divider></el-divider>
<!-- 逻辑库 -->
<el-row class="title">
<div class="colorDiv"></div>
<div>人员逻辑分库</div>
</el-row>
<el-row class="flexBox">
<div style="margin: 0.9375rem 0"></div>
<el-checkbox-group v-model="checkedTargets" style="padding-right: 6.875rem">
<el-checkbox v-for="(value, key) in targets" :key="key" :label="value.code">{{ value.name }}</el-checkbox>
</el-checkbox-group>
</el-row>
<el-divider></el-divider>
<!-- 六 -->
<el-row class="title">
<div class="colorDiv"></div>
<div>捺印信息</div>
</el-row>
<!-- 七 -->
<el-row class="item-row">
<el-form-item label="捺印单位:" prop="nydwGajgjgdm">
<Cascader :form="ruleForm" id="nydwGajgjgdm" :width="18.75"></Cascader>
</el-form-item>
<el-form-item label="捺印人姓名:" prop="nyryXm">
<el-input v-model="ruleForm.nyryXm" placeholder="请输入捺印人姓名" maxlength="50" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<!-- 八 -->
<el-row class="item-row">
<el-form-item label="捺印日期:" prop="nysj">
<el-date-picker type="date" placeholder="请输入捺印日期" v-model="ruleForm.nysj" style="width: 100%"
:picker-options="{
disabledDate: disabledDate,
}"></el-date-picker>
</el-form-item>
<el-form-item label="捺印人身份证号:" prop="nyryGmsfhm">
<el-input v-model="ruleForm.nyryGmsfhm" placeholder="请输入捺印人身份证号" maxlength="18" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<!-- 九 -->
<el-row class="item-row">
<el-form-item> </el-form-item>
<el-form-item label="捺印人联系电话:" prop="nyryLxdh">
<el-input v-model="ruleForm.nyryLxdh" placeholder="请输入捺印人联系电话" maxlength="18" show-word-limit clearable>
</el-input>
</el-form-item>
</el-row>
<el-divider></el-divider>
<div>
<span slot="footer" class="dialog-footer">
<!-- <el-button @click="submitForm('ruleForm')">提交</el-button> -->
<el-button @click="tijiao('ruleForm')">提交并新增指掌纹</el-button>
<el-button @click="resetForm('ruleForm')" type="primary">取消</el-button>
</span>
</div>
</el-form>
</div>
</div>
</template>
<script>
import Cascader from "@/components/Cascader.vue";
import SelectCode from "@/components/SelectCode.vue";
export default {
name: "xzry",
components: {
Cascader,
SelectCode,
},
data() {
return {
ryInfo: {},
// edit: '新增人员',
dialogVisible: false, // 弹窗状态
labelPosition: "left", // 数据项对齐方式
checkedTargets: ["1"], // 选定的目标逻辑库
targets: this.$store.state.ljk.targetOptions_ry, // 目标逻辑库
reqParam: {
// 请求参数
page: {
total: 0, //表格条数
pageSize: 10, //当前选择要显示的条数
currPage: 1, // 当前在第几页
},
personStoreCustomSearch: {
ysxtAsjxgrybh: "", // 搜索框内容
searchOptions: 3, // 默认搜索方式
checkboxQuery: [], //滚动平面等筛选条件
},
},
ruleForm: {
ysxtAsjxgrybh: "", // 人员编号
jzrybh: "", // 警综人员编号
asjxgrybh: "", // 案事件相关人员编号号
zzhwkbh: "", // 现场掌指纹卡编号
cjxxyydm: "", // 采集信息原因
xm: "", // 姓名
bmch: "", // 别名
xbdm: "", // 性别
csrq: "", // 出生日期
gjdm: "", // 国籍
mzdm: "", // 民族
cyzjdm: "", // 证件类型
zjhm: "", // 证件号码
hjdzXzqhdm: "", // 户籍地行政区
hjdzDzmc: "", // 户籍地址
xzzXzqhdm: "", // 现住址行政区
xzzDzmc: "", // 现住址
bz: "", // 备注
nydwGajgjgdm: "", // 捺印单位
nyryXm: "", // 捺印人姓名
nysj: "", // 捺印时间
nyryGmsfhm: "", // 捺印人身份证号
nyryLxdh: "", // 捺印人电话
ifidcard: "是", // 是否采集二代身份证
zwbdxtlxms: "1", // 指纹比对描述
},
logicList: [], // 逻辑库代码
rules: {
ysxtAsjxgrybh: [
{ min: 22, max: 22, message: "编号长度有误!", trigger: "change" },
{ required: true, message: "请输入人员条码号", trigger: "blur" },
],
jzrybh: [
{ required: true, message: "请输入警综人员编号", trigger: "blur" },
],
asjxgrybh: [
{ required: true, message: "请输入案事件人员号", trigger: "blur" },
],
zzhwkbh: [
{ required: true, message: "请输入掌指纹卡编号", trigger: "blur" },
],
cjxxyydm: [
{ required: true, message: "请选择采集信息原因", trigger: "blur" },
],
xm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
xbdm: [{ required: true, message: "请选择性别", trigger: "blur" }],
csrq: [
{
required: true,
message: "请选择出生日期",
trigger: "change",
},
],
gjdm: [{ required: true, message: "请选择国籍", trigger: "blur" }],
mzdm: [{ required: true, message: "请选择民族", trigger: "blur" }],
cyzjdm: [
{ required: true, message: "请选择证件类型", trigger: "blur" },
],
zjhm: [{ required: true, message: "请输入证件号码", trigger: "blur" }],
hjdzXzqhdm: [
{ required: true, message: "请选择户籍地行政区", trigger: "blur" },
],
hjdzDzmc: [
{ required: true, message: "请输入户籍地址", trigger: "blur" },
],
xzzXzqhdm: [
{ required: true, message: "请选现住地行政区", trigger: "blur" },
],
xzzDzmc: [
{ required: true, message: "请输入现住地址", trigger: "blur" },
],
nydwGajgjgdm: [
{ required: true, message: "请输入捺印单位", trigger: "change" },
],
nyryXm: [
{ required: true, message: "请输入捺印人员姓名", trigger: "change" },
],
nysj: [
{
required: true,
message: "请选择捺印日期",
trigger: "change",
},
],
nyryGmsfhm: [
{ required: true, message: "请输入捺印人身份证号", trigger: "blur" },
{
pattern:
/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
message: "证件号码格式有误!",
trigger: "blur",
},
],
nyryLxdh: [
{ required: true, message: "请输入捺印人联系电话", trigger: "blur" },
],
},
};
},
mounted() {
// console.log(this.$route.query.barcode)
if (this.$route.params.type === "edit") {
this.edit = "修改人员";
this.getRyinfo(this.$route.params.barcode);
} else {
// console.log(this.$route.params.type==='edit');
this.edit = "新增人员";
}
},
methods: {
disabledDate(a) {
if (a.getTime() > new Date().getTime()) {
return true;
} else {
return false;
}
},
tijiao(e) {
let tjType = this.$route.params.type;
if (tjType === "edit") {
this.editForm(e);
} else {
this.submitForm(e);
}
},
editForm(formName) {
let self = this;
// debugger
// console.log(self.ruleForm);
// console.log(formName);
this.$refs[formName].validate((valid) => {
if (valid) {
// let logicList = this.ruleForm.logicdbtype2.map(Number)
// let cjxxyyList = this.ruleForm.cjxxyydm
// delete this.ruleForm.cjxxyydm
this.logicList = this.checkedTargets.map(Number);
let reqParam = {
personDo: "",
logicList: [],
cjxxyyList: [],
};
// reqParam.cjxxyyList = this.ruleForm.cjxxyydm
// this.ruleForm.cjxxyydm.forEach(item => {
// item = Number(item)
// })
// console.log(reqParam.cjxxyyList);
// delete this.ruleForm.cjxxyydm
reqParam.personDo = this.ruleForm;
reqParam.cjxxyyList = this.ruleForm.cjxxyydm;
// reqParam.personDo.ysxtAsjxgrybh = this.ruleForm.ysxtAsjxgrybh
reqParam.personDo.ysxtAsjxgrybh = "R" + this.ruleForm.ysxtAsjxgrybh;
reqParam.logicList = this.logicList;
delete reqParam.personDo.cjxxyydm;
this.$axios
.post("/api/personstore/person/file", reqParam)
.then((res) => {
// console.log(res.data);
if (res.data.code === 0) {
self.$message.success("修改成功!");
// 清除全部案件库缓存
self.$store.commit('layout/delcachePageName', 'htcj')
this.$store.commit('layout/delcachePageName', 'xzry')
this.$store.commit('layout/delcachePageName', 'xzryedit')
// this.$refs[formName].resetFields();
this.$set(this.ruleForm, 'ysxtAsjxgrybh', this.ruleForm.ysxtAsjxgrybh.substring(1, 23))
this.$router.pushToTab({
path: `/fingerprintIndex/R${reqParam.personDo.ysxtAsjxgrybh}/${this.ruleForm.xm}`,
query: {
type: 1
},
});
} else {
self.$message.error("修改失败!");
}
});
self.$bus.emit("isBlur", false);
} else {
this.$nextTick(() => {
let isError = document.getElementsByClassName("is-error");
isError[0].scrollIntoView({
// 滚动到指定节点
// 值有start,center,end,nearest,当前显示在视图区域中间
block: "center",
// 值有auto、instant,smooth,缓动动画(当前是慢速的)
behavior: "smooth",
});
});
return false;
}
});
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.checkedTargets.length == 0) {
this.$message.error("请选择逻辑库");
} else {
this.logicList = this.checkedTargets.map(Number);
let reqParam = {
personDo: "",
logicList: [],
cjxxyyList: [],
};
reqParam.cjxxyyList = this.ruleForm.cjxxyydm;
delete this.ruleForm.cjxxyydm;
reqParam.personDo = this.ruleForm;
reqParam.personDo.ysxtAsjxgrybh = this.ruleForm.ysxtAsjxgrybh;
reqParam.personDo.ysxtAsjxgrybh = "R" + this.ruleForm.ysxtAsjxgrybh;
reqParam.logicList = this.logicList;
this.$axios
.post("/api/personstore/personadd", reqParam)
.then((response) => {
console.log(response);
if (response.data.code === 0) {
this.$message.success("新增成功");
this.$router.pushToTab({
path: `/fingerprintIndex/R${reqParam.personDo.ysxtAsjxgrybh}/${this.ruleForm.xm}`,
query: {
type: 0
}
})
this.$store.commit('layout/delcachePageName', 'htcj')
this.$refs[formName].resetFields();
this.ruleForm = {
ysxtAsjxgrybh: "", // 人员编号
jzrybh: "", // 警综人员编号
asjxgrybh: "", // 案事件相关人员编号号
zzhwkbh: "", // 现场掌指纹卡编号
cjxxyydm: "", // 采集信息原因
xm: "", // 姓名
bmch: "", // 别名
xbdm: "", // 性别
csrq: "", // 出生日期
gjdm: "", // 国籍
mzdm: "", // 民族
cyzjdm: "", // 证件类型
zjhm: "", // 证件号码
hjdzXzqhdm: "", // 户籍地行政区
hjdzDzmc: "", // 户籍地址
xzzXzqhdm: "", // 现住址行政区
xzzDzmc: "", // 现住址
bz: "", // 备注
nydwGajgjgdm: "", // 捺印单位
nyryXm: "", // 捺印人姓名
nysj: "", // 捺印时间
nyryGmsfhm: "", // 捺印人身份证号
nyryLxdh: "", // 捺印人电话
ifidcard: "是", // 是否采集二代身份证
zwbdxtlxms: "1", // 指纹比对描述
};
this.checkedTargets = ["1"]; // 选定的目标逻辑库
} else {
this.$message.error("新增失败");
this.$set(this.ruleForm, "cjxxyydm", []);
// this.$set(this.ruleForm, 'ysxtAsjxgrybh', this.ruleForm.ysxtAsjxgrybh.substring(1, 23))
}
});
}
} else {
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
this.$store.commit('layout/delcachePageName', 'xzry/:type')
this.ruleForm = {} //清空列表
// 关闭tab页
this.$bus.emit("xzryResetForm", "xzry");
},
initData() {
// 赋值
this.ruleForm.id = this.ryInfo.id;
this.ruleForm.rybh = this.ryInfo.ysxtAsjxgrybh;
this.ruleForm.jzrybh = this.ryInfo.jzrybh;
// 人员档案信息
if (this.ryInfo.cjxxyydm) {
this.ruleForm.cjxxyydm = this.ryInfo.cjxxyydm.split(",");
}
this.ruleForm.zzhwkbh = this.ryInfo.zzhwkbh;
this.ruleForm.asjxgrybh = this.ryInfo.asjxgrybh;
this.ruleForm.xm = this.ryInfo.xm;
this.ruleForm.bmch = this.ryInfo.bmch;
this.ruleForm.xbdm = this.ryInfo.xbdm;
this.ruleForm.csrq = this.ryInfo.csrq;
this.ruleForm.gjdm = this.ryInfo.gjdm;
this.ruleForm.mzdm = this.ryInfo.mzdm;
this.ruleForm.cyzjdm = this.ryInfo.cyzjdm;
this.ruleForm.zjhm = this.ryInfo.zjhm;
this.ruleForm.hjdzXzqhdm = this.ryInfo.hjdzXzqhdm;
this.ruleForm.hjdzDzmc = this.ryInfo.hjdzDzmc;
this.ruleForm.xzzXzqhdm = this.ryInfo.xzzXzqhdm;
this.ruleForm.xzzDzmc = this.ryInfo.xzzDzmc;
this.ruleForm.bz = this.ryInfo.bz;
// 人员逻辑分库
// let ryljfk = this.ryInfo.logicdbtype.split('')
// this.ruleForm.logicdbtype = ryljfk
if (
this.ryInfo.logicDatabaseCode &&
this.ryInfo.logicDatabaseCode.length > 0
) {
this.ruleForm.logicdbtype2 = this.ryInfo.logicDatabaseCode.split(",");
} else {
this.ruleForm.logicdbtype2 = [];
}
this.ruleForm.nydwGajgjgdm = this.ryInfo.nydwGajgjgdm;
this.ruleForm.nyryXm = this.ryInfo.nyryXm;
this.ruleForm.nysj = this.ryInfo.nysj;
this.ruleForm.nyryGmsfhm = this.ryInfo.nyryGmsfhm;
this.ruleForm.nyryLxdh = this.ryInfo.nyryLxdh;
},
getRyinfo(code) {
let self = this;
this.reqParam.personStoreCustomSearch.ysxtAsjxgrybh = code;
this.$axios
.post("/api/personstore/person/list", this.reqParam)
.then((response) => {
if (response.data.code === 0) {
self.ryInfo = response.data.ret.list[0];
self.initData();
this.ruleForm.ysxtAsjxgrybh = self.ryInfo.ysxtAsjxgrybh;
// this.ruleForm = self.ryInfo
this.ruleForm.ysxtAsjxgrybh = self.ryInfo.ysxtAsjxgrybh
.toString()
.substr(1);
} else {
self.$message.error(response.data.message);
}
});
},
},
};
</script>
<style lang="scss" scoped>
@import "./xzry.scss";
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment