Commit d2513855 by liyuhang19990520

人工认定查重,串查

parent 3720cfc9
<!--
* @Author: your name
* @Date: 2021-11-13 16:32:50
* @LastEditTime: 2021-11-25 17:14:09
* @LastEditTime: 2021-12-17 11:25:49
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \founder_vue\src\components\swiper.vue
......@@ -29,7 +29,7 @@
<span>/{{ carData.length }}</span>
</div>
<div class="wenzi">
<p>
<p v-if="type != 'rgrd'">
<span>查询ID:</span>
<span
:class="{
......@@ -60,7 +60,11 @@
</el-carousel>
</div>
<!-- 可以点击上一条的左侧按钮-->
<div v-show="carIndex > 0" class="left" @click="btnQiehuan('left')">
<div
v-show="carIndex > 0 && type != 'rgrd'"
class="left"
@click="btnQiehuan('left')"
>
<img
style="transform: rotate(180deg)"
src="@/assets/img/right.png"
......@@ -68,12 +72,16 @@
/>
</div>
<!-- 不可点击的上一条左侧按钮 -->
<div v-show="carIndex === 0" class="left" @click="noData('left')">
<div
v-show="carIndex === 0 && type != 'rgrd'"
class="left"
@click="noData('left')"
>
<img src="@/assets/img/left.png" alt="" />
</div>
<!-- 可以点击的下一条的按钮-->
<div
v-show="carData.length - 1 > carIndex"
v-show="carData.length - 1 > carIndex && type != 'rgrd'"
class="right"
@click="btnQiehuan('right')"
>
......@@ -81,7 +89,7 @@
</div>
<!-- 不可以点击的下一条的按钮 -->
<div
v-show="carData.length - 1 === carIndex"
v-show="carData.length - 1 === carIndex && type != 'rgrd'"
class="right"
@click="noData('right')"
>
......@@ -100,6 +108,9 @@ export default {
carIndex: 0,
};
},
mounted() {
console.log(this.type);
},
methods: {
noData(type) {
if (type === "left") {
......@@ -135,6 +146,7 @@ export default {
type: Boolean,
default: false,
},
type: String,
},
};
</script>
......
/*
* @Author: your name
* @Date: 2021-09-07 09:58:13
* @LastEditTime: 2021-12-11 10:27:53
* @LastEditTime: 2021-12-17 14:26:13
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\router\modules\index.js
......@@ -188,5 +188,23 @@ export default [
auth: "5",
},
component: () => import("@/views/bzxxgl/fhxxLL.vue")
},
{
path: "/rgTT",
name: "rgTT",
meta: {
title: "人工认定界面",
auth: "5"
},
component: () => import("@/views/rgrd/rgTT.vue")
},
{
path: "/rgLL",
name: "rgLL",
meta: {
title: "人工认定界面",
auth: "5"
},
component: () => import("@/views/rgrd/rgLL.vue")
}
];
......@@ -51,7 +51,6 @@
id="permissionId"
codeUrl="/security/permissions/getAllPermission"
multiple
:multipleLimit="3"
></SelectCode>
</div>
<div class="clear-btn" @click="clear" v-if="newStr">清空</div>
......
......@@ -1256,9 +1256,12 @@ export default {
.then((res) => {
me.loadingIndex--;
if (res.data.code == 0) {
me.currentQqid = res.data.ret[0].qqid;
me.sourceObj = res.data.ret[0];
me.sourcedatas = res.data.ret;
me.sourcedatasLength = res.data.ret.length;
me.sourcebarcode = res.data.ret[0].barcode;
me.$set(me.sourcedatas[0], "clickLog", 1);
//console.log(222);
if (res.data.ret[0].removeFlag == "1") {
this.souceDel = true;
......
......@@ -277,6 +277,7 @@ export default {
switchZhangWen() {
if(this.sourceDel) return;
this.fingerShowType = "掌纹";
this.fingerTotal = this.plamList?.length || 0;
if (this.plamList && this.plamList?.length > 0) {
this.changeStyle(0, this.plamList[0]);
}
......@@ -341,6 +342,7 @@ export default {
let self = this;
// 发送请求
this.fingerShowType = "指纹";
this.$emit("switchName", this.fingerShowType);
self.$store.commit("loading/setLoading", true);
self.qqid = val.qqid;
self.qid = val.qid;
......
......@@ -16,39 +16,45 @@
label-width="7rem"
ref="ruleForm"
>
<el-form-item label="源条码号:" prop="f1" :rules="inputRule">
<el-form-item label="源条码号:" prop="originCode" :rules="inputRule">
<el-input
type="text"
placeholder="请输入内容"
v-model="ruleForm.f1"
v-model="ruleForm.originCode"
maxlength="22"
show-word-limit
>
</el-input>
</el-form-item>
<el-form-item label="源数据类型:" prop="f2" :rules="radioRule">
<el-radio v-model="ruleForm.f2" label="1">人员</el-radio>
<el-radio v-model="ruleForm.f2" label="2">案件</el-radio>
<el-form-item
label="源数据类型:"
prop="originCodeType"
:rules="radioRule"
>
<el-radio v-model="ruleForm.originCodeType" label="0">人员</el-radio>
<el-radio v-model="ruleForm.originCodeType" label="1">案件</el-radio>
</el-form-item>
<el-form-item label="目标条码号:" prop="f3" :rules="inputRule">
<el-form-item label="目标条码号:" prop="targetCode" :rules="inputRule">
<el-input
type="text"
placeholder="请输入内容"
v-model="ruleForm.f3"
v-model="ruleForm.targetCode"
maxlength="22"
show-word-limit
>
</el-input>
</el-form-item>
<el-form-item label="目标数据类型:" prop="f4" :rules="radioRule">
<el-radio v-model="ruleForm.f4" label="1">人员</el-radio>
<el-radio v-model="ruleForm.f4" label="2">案件</el-radio>
<el-form-item
label="目标数据类型:"
prop="targetCodeType"
:rules="radioRule"
>
<el-radio v-model="ruleForm.targetCodeType" label="0">人员</el-radio>
<el-radio v-model="ruleForm.targetCodeType" label="1">案件</el-radio>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button class="confirmBtn" @click="addList('ruleForm')"
>人工认定</el-button
>
<el-button class="confirmBtn" @click="rgrd()">人工认定</el-button>
<el-button class="cancelBtn" @click="off()" type="primary"
>取 消</el-button
>
......@@ -64,10 +70,10 @@ export default {
data() {
return {
ruleForm: {
f1: "", //选择队列
f2: "1", // 删除原图
f3: "", // 覆盖原图
f4: "1", // 处理模式
originCode: "", //选择队列
originCodeType: "0", // 删除原图
targetCode: "", // 覆盖原图
targetCodeType: "0", // 处理模式
},
inputRule: [{ required: true, message: "请输入内容", trigger: "change" }],
radioRule: [{ required: true, message: "请选择内容", trigger: "change" }],
......@@ -84,10 +90,33 @@ export default {
},
closedDialog() {
this.$bus.emit("isBlur", false);
//关闭后重置值和验证状态
this.$refs.ruleForm.resetFields();
},
open() {
this.dialogVisible = true;
},
rgrd() {
let self = this;
this.$refs.ruleForm.validate((boo) => {
if (boo) {
let form = this.ruleForm;
//人人查重
if (form.originCodeType == "0" && form.targetCodeType == "0") {
self.$router.pushToTab("/rgTT");
//人案倒查
} else if (form.originCodeType == "0" && form.targetCodeType == "1") {
self.$router.pushToTab("/rgTL");
//案人正查
} else if (form.originCodeType == "1" && form.targetCodeType == "0") {
self.$router.pushToTab("/rgLT");
//案案串查
} else if (form.originCodeType == "1" && form.targetCodeType == "1") {
self.$router.pushToTab("/rgLL");
}
}
});
},
off() {
this.dialogVisible = false;
},
......
<template>
<div class="lt_candidate">
<div class="lt_cnadidate_search">
<!-- <el-dropdown trigger="click" @command="choose">-->
<!-- <span class="el-dropdown-link">-->
<!-- 指纹-->
<!-- <i style=" width: 1rem; height: 1rem" class="el-icon-caret-bottom"></i>-->
<!-- </span>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item command="1">指纹</el-dropdown-item>-->
<!-- <el-dropdown-item command="2">掌纹</el-dropdown-item>-->
<!-- &lt;!&ndash; <div class="label" @click="choose(1)">指纹</div>-->
<!-- <div class="label" @click="choose(2)">掌纹</div> &ndash;&gt;-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- 指纹下拉框-->
<!-- <el-input-->
<!-- placeholder="请输入内容"-->
<!-- v-model="input3"-->
<!-- class="input-with-select"-->
<!-- >-->
<!-- <el-select v-model="select" slot="prepend" placeholder="请选择">-->
<!-- <el-option label="指纹" value="1"></el-option>-->
<!-- <el-option label="掌纹" value="2"></el-option>-->
<!-- </el-select>-->
<!-- <el-button slot="append" @click="search">筛选</el-button>-->
<!-- </el-input>-->
</div>
<div class="lt_candidate_number">
<el-table
:highlight-current-row="isDelete ? false : true"
@current-change="handleCurrentChange"
class="lt_candidate_table"
:data="tableData"
ref="singleTable"
:row-class-name="tableRowClassName"
>
<el-table-column prop="destseqno" label="序号" :width="width3">
<template slot-scope="scope">
<span v-if="scope.row.removeFlag === 1">
<del>{{
scope.$index + 1 >= 9
? scope.$index + 1
: "0" + (scope.$index + 1)
}}</del>
</span>
<span v-else>
{{
scope.$index + 1 >= 9
? scope.$index + 1
: "0" + (scope.$index + 1)
}}
</span>
</template>
</el-table-column>
<el-table-column
prop="destbarcode"
label="目标条码号"
width="auto"
v-if="roleArr.includes('C-1-7')"
>
<template slot-scope="scope">
<!-- 被删除-->
<span v-if="scope.row.removeFlag === 1">
<del>{{ scope.row.destbarcode }}</del>
</span>
<span v-else>
{{ scope.row.destbarcode }}
</span>
</template>
</el-table-column>
</el-table>
<div class="lt_candidate_bottom">
<span
>共计<span>{{ total }}条</span>数据</span
>
</div>
</div>
</div>
</template>
<script>
import axios from "axios";
import { Loading } from "element-ui";
export default {
name: "LTCandidate",
data() {
return {
width3: 70,
width2: 60,
width1: 50,
checked: true,
tableData: null,
// 不做处理的数据
sourceTableData: null,
input: "",
select: 1,
input3: "",
total: 0,
// 对勾
rightRoll: false,
rightPain: false,
leftRoll: false,
leftPain: false,
// 左手
leftRM: false,
leftRS: false,
leftRZ: false,
leftRH: false,
leftRX: false,
leftPM: false,
leftPS: false,
leftPZ: false,
leftPH: false,
leftPX: false,
// 右手
rightRM: false,
rightRS: false,
rightRZ: false,
rightRH: false,
rightRX: false,
rightPM: false,
rightPS: false,
rightPZ: false,
rightPH: false,
rightPX: false,
// 是否展示指位选择
isShowOptions: false,
// 是否展示指纹下拉框
isFingerDropdown: false,
// 选择的指纹类型
fingershowType: "",
// 加载动画
loading: null,
timer: null,
// 是否被删除
isDelete: false,
//目标表格点击
targetBh: "",
};
},
created() {
let self = this;
let w1 = 1920;
let w2 = window.innerWidth;
this.width1 = (this.width1 * w2) / w1;
this.width2 = (this.width2 * w2) / w1;
this.width3 = (this.width3 * w2) / w1;
// 监听是否被删除
self.$bus.on("deleteMessage", (obj) => {
if (obj.delTime != null) {
self.isDelete = true;
} else {
self.isDelete = false;
}
});
self.$bus.on("initCandidate", (tableData) => {
self.tableData = tableData;
if (self.tableData) {
self.total = self.tableData.length;
}
self.sourceTableData = tableData;
if (!tableData || tableData?.length <= 0) {
sessionStorage.removeItem("destbarcode");
this.$bus.emit("changImageEditTarget", "xxx");
self.$bus.emit("targetDeleteMessage", {
msg: null,
delTime: null,
});
return;
}
// 默认选中第一条数据
if (self.tableData && self.tableData.length > 0) {
self.$refs.singleTable.setCurrentRow(self.tableData[0]);
}
// //console.log(tableData);
});
},
methods: {
/**
* 选择指纹类型
* @param e
*/
changefingershowType(e) {
this.fingershowType = e.target.innerHTML;
this.isFingerDropdown = false;
},
/**
* 指纹下拉框
*/
fingerDropdownChange() {
this.isFingerDropdown = !this.isFingerDropdown;
},
/**
* @description: 比中与认定完成添加样式
* @param {*} row
* @param {*} column
* @param {*} rowIndex
* @param {*} columnIndex
* @return {*}
*/
tableRowClassName({ row, column, rowIndex, columnIndex }) {
// //console.log(row);
// 比中的行
if (row.affirmstatus == 2 || row.affirmstatus == 3) {
//console.log(row);
return "Bizhong";
} else if (row.affirmstatus == 1) {
// 认定完成的行
//console.log(row);
return "Identification";
}
// 浏览过的
if (row.clickLog == 1) {
return "looked";
}
},
/**
* @description: 切换指位选择
* @param {*}
* @return {*}
*/
switchOptions() {
this.isShowOptions = !this.isShowOptions;
// if(!this.isShowOptions) {
// this.tableData = this.sourceTableData
// }
},
/**
* @description: 筛选指位为右手平面小指
* @param {*}
* @return {*}
*/
changeRightPX() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 15;
});
// 对勾
this.rightRoll = false;
this.rightPain = true;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = true;
},
/**
* @description: 筛选指位为右手平面环指
* @param {*}
* @return {*}
*/
changeRightPH() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 14;
});
// 对勾
this.rightRoll = false;
this.rightPain = true;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = true;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手平面中指
* @param {*}
* @return {*}
*/
changeRightPZ() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 13;
});
// 对勾
this.rightRoll = false;
this.rightPain = true;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = true;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手平面食指
* @param {*}
* @return {*}
*/
changeRightPS() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 12;
});
// 对勾
this.rightRoll = false;
this.rightPain = true;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = true;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手平面拇指
* @param {*}
* @return {*}
*/
changeRightPM() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 11;
});
// 对勾
this.rightRoll = false;
this.rightPain = true;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = true;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手滚动小指
* @param {*}
* @return {*}
*/
changeRightRX() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 5;
});
// 对勾
this.rightRoll = true;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = true;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手滚动环指
* @param {*}
* @return {*}
*/
changeRightRH() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 4;
});
// 对勾
this.rightRoll = true;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = true;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手滚动中指
* @param {*}
* @return {*}
*/
changeRightRZ() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 3;
});
// 对勾
this.rightRoll = true;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = true;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手滚动食指
* @param {*}
* @return {*}
*/
changeRightRS() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 2;
});
// 对勾
this.rightRoll = true;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = true;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为右手滚动拇指
* @param {*}
* @return {*}
*/
changeRightRM() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 1;
});
// 对勾
this.rightRoll = true;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = true;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手平面小指
* @param {*}
* @return {*}
*/
changeLeftPX() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 20;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = true;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = true;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手平面环指
* @param {*}
* @return {*}
*/
changeLeftPH() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 19;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = true;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = true;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手平面中指
* @param {*}
* @return {*}
*/
changeLeftPZ() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 18;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = true;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = true;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手平面食指
* @param {*}
* @return {*}
*/
changeLeftPS() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 17;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = true;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = true;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手平面拇指
* @param {*}
* @return {*}
*/
changeLeftPM() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 16;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = false;
this.leftPain = true;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = true;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手滚动小指
* @param {*}
* @return {*}
*/
changeLeftRX() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 10;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = true;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = true;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手滚动环指
* @param {*}
* @return {*}
*/
changeLeftRH() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 9;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = true;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = true;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手滚动中指
* @param {*}
* @return {*}
*/
changeLeftRZ() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 8;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = true;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = false;
this.leftRZ = true;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手滚动食指
* @param {*}
* @return {*}
*/
changeLeftRS() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 7;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = true;
this.leftPain = false;
// 左手
this.leftRM = false;
this.leftRS = true;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 筛选指位为左手滚动拇指
* @param {*}
* @return {*}
*/
changeLeftRM() {
this.tableData = this.sourceTableData.filter((item) => {
return item.destseqno == 6;
});
// 对勾
this.rightRoll = false;
this.rightPain = false;
this.leftRoll = true;
this.leftPain = false;
// 左手
this.leftRM = true;
this.leftRS = false;
this.leftRZ = false;
this.leftRH = false;
this.leftRX = false;
this.leftPM = false;
this.leftPS = false;
this.leftPZ = false;
this.leftPH = false;
this.leftPX = false;
// 右手
this.rightRM = false;
this.rightRS = false;
this.rightRZ = false;
this.rightRH = false;
this.rightRX = false;
this.rightPM = false;
this.rightPS = false;
this.rightPZ = false;
this.rightPH = false;
this.rightPX = false;
},
/**
* @description: 修改表头添加icon
* @param {*} h
* @param {*} column
* @return {*}
*/
icons(h, { column }) {
return h("div", [
h("span", column.label),
h("i", {
class: "el-icon-arrow-down",
style: "color:#B1B6C2;margin-left:5px;cursor:pointer;",
on: {
click: this.switchOptions,
},
}),
]);
},
/**
* @description: 筛选按钮
* @param {*}
* @return {*}
*/
search() {
let self = this;
if (self.isDelete) return;
let value = this.input3.trim();
if (value) {
this.tableData = this.sourceTableData.filter((item) => {
return item.destbarcode.indexOf(value) >= 0;
});
} else {
this.tableData = this.sourceTableData;
}
},
/**
* @description: 选中切换方法
* @param {*} val
* @param {*} old
* @return {*}
*/
handleCurrentChange(val, old) {
if (!val) return;
if (this.isDelete) return;
this.$emit("targetObj", val);
this.targetBh = val.destbarcode;
let self = this;
if (val.removeFlag == "1") {
// 存储目标条码号
sessionStorage.setItem("destbarcode", val.destbarcode);
// 存储目的数据序号
sessionStorage.setItem("destseqno", val.destseqno);
this.$bus.emit("targetDeleteMessage", {
msg: "该条数据已删除!",
delTime: self.$moment(val.removeTime).format("YYYY.MM.DD HH:mm"),
});
return;
} else {
self.$bus.emit("targetDeleteMessage", {
msg: null,
delTime: null,
});
}
if (self.isDelete) {
// 存储目标条码号
sessionStorage.setItem("destbarcode", val.destbarcode);
// 存储目的数据序号
sessionStorage.setItem("destseqno", val.destseqno);
this.$bus.emit("changImageEditTarget", "xxx");
return;
} else {
//console.log(val);
if (val != null) {
// 改变数据为点击状态
self.$set(val, "clickLog", "1");
// 存储目标条码号
sessionStorage.setItem("destbarcode", val.destbarcode);
// 存储目的数据序号
sessionStorage.setItem("destseqno", val.destseqno);
self.$store.commit("loading/setLoading", true);
///////////////////////////////
if (self.fingerShowType == "指纹") {
//案件指纹
this.$axios
.post("/api/org/case/barcode/seqNo", {
barcode: val.destbarcode,
seqno: val.destseqno,
qqid: val.qqid,
})
.then((response) => {
self.$bus.emit(
"changImageEditTarget",
response.data.ret.image || "xxx"
);
});
clearTimeout(self.timer);
self.timer = setTimeout(() => {
self.$store.commit("loading/setLoading", false);
}, 500);
} else {
//案件指纹
this.$axios
.post("/api/org/case/palm/barcode/seq", {
barcode: val.destbarcode,
hpseqno: val.destseqno,
})
// qqid: val.qqid,
.then((response) => {
self.$bus.emit(
"changImageEditTarget",
response.data.ret.image || "xxx"
);
});
clearTimeout(self.timer);
self.timer = setTimeout(() => {
self.$store.commit("loading/setLoading", false);
}, 500);
}
// this.$axios.get(`/api/api/org/plainByBarcode/R1100002487002018050034/1/`)
// this.$axios
// .get(`/api/org/plainByBarcode/${val.destbarcode}/${val.destseqno}`)
// .then(response => {
// //console.log(response);
// self.$bus.emit("changImageEditTarget", response.data.ret.image);
// });
} else {
this.$bus.emit("changImageEditTarget", "xxx");
}
}
},
choose(val) {
//console.info(val);
},
},
watch: {
checked(newValue, oldValue) {
if (newValue) {
this.tableData = this.sourceTableData;
// setTimeout(() => {
// document
// .getElementsByClassName("lcurrte")[0]
// .parentElement.parentElement.parentElement.classList.add(
// "current-row"
// );
// }, 100);
} else {
this.tableData = this.sourceTableData.filter((item) => {
return item.affirmstatus != 2 && item.affirmstatus != 3;
});
//console.log(this.tableData);
}
this.total = this.tableData.length;
},
},
computed: {
roleArr() {
return this.$store.state.layout.Menu;
},
},
props: {
fingerShowType: String,
},
};
const candidates = [
{
score: "99",
finger: "小指",
barcode: "657487483746234657876744",
},
{
score: "99",
finger: "小指",
barcode: "657487483746234657876744",
},
{
score: "99",
finger: "小指",
barcode: "657487483746234657876744",
},
{
score: "99",
finger: "小指",
barcode: "657487483746234657876744",
},
{
score: "99",
finger: "小指",
barcode: "657487483746234657876744",
},
{
score: "99",
finger: "小指",
barcode: "657487483746234657876744",
},
];
</script>
<style lang="scss">
.lt_candidate {
position: relative;
box-sizing: border-box;
width: 100%;
height: calc(100% - 40px);
background: #f6f8fa;
border-radius: 8px;
div {
display: inline-block;
}
.lt_cnadidate_search {
// width: 352px;
width: 100%;
// height: 60px;
background: #ffffff;
.label {
width: 32px;
height: 24px;
font-size: 16px;
font-family: MicrosoftYaHei;
color: #1a1a1a;
line-height: 24px;
i {
margin: 0;
}
}
.input {
width: 292px;
height: 32px;
background: #ffffff;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
border: 1px solid #e6e6e8;
}
.btn {
cursor: pointer;
width: 44px;
height: 34px;
background: #006aff;
border-radius: 0px 4px 4px 0px;
line-height: 34px;
color: #ffffff;
text-align: center;
}
.checked {
display: flex;
justify-content: flex-end;
margin-top: 4px;
}
.finger-dropdown {
position: relative;
cursor: pointer;
.slide-fade-enter-active {
transition: all 0.2s ease;
}
.slide-fade-leave-active {
transition: all 0.2s cubic-bezier(1, 0.5, 0.8, 1);
}
.slide-fade-enter,
.slide-fade-leave-to {
transform: translateX(5px);
opacity: 0;
}
.fingerName {
margin-right: 15px;
font-size: 16px;
font-family: MicrosoftYaHei;
color: #1a1a1a;
}
.dropdown-options {
height: 64px;
width: 87px;
z-index: 9999;
position: absolute;
top: 25px;
right: 0;
background-color: #ffffff;
box-shadow: 0px 6px 10px 2px rgba(0, 21, 51, 0.06);
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
.option-item {
display: flex;
align-items: center;
width: 87px;
height: 32px;
.selected {
width: 30px;
display: flex;
align-items: center;
justify-content: center;
}
.txt {
flex: 1;
}
&:hover {
background: #f5f5f7;
}
}
}
}
}
.lt_candidate_table {
width: 100%;
height: 100%;
}
.lt_candidate_number {
width: 100%;
}
.lt_candidate_bottom {
position: absolute;
bottom: 12px;
left: 20px;
text-align: center;
width: 352px;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #999999;
span {
span {
color: #666;
}
}
}
.el-select {
.el-input {
width: 130px;
}
}
.input-with-select {
.el-input-group__prepend {
background-color: #fff;
}
}
.selectFinger {
z-index: 10;
position: absolute;
top: 110px;
right: 60px;
width: 236px;
height: 194px;
background: #ffffff;
box-shadow: 0px 6px 10px 2px rgba(0, 21, 51, 0.06);
border-radius: 4px;
border: 1px solid #e6e6e8;
padding: 8px 0;
box-sizing: border-box;
display: flex;
flex-direction: column;
.left-title,
.right-title {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #666666;
padding-left: 16px;
}
.right-title {
margin-top: 7px;
}
.line {
cursor: pointer;
box-sizing: border-box;
padding-left: 8px;
display: flex;
align-items: center;
width: 234px;
height: 32px;
.selected {
width: 14px;
height: 14px;
margin-right: 10px;
box-sizing: border-box;
display: flex;
}
.selected-type {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
margin-right: 24px;
}
.item {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #999999;
margin-right: 16px;
&.active {
color: #006aff;
}
}
&.active {
background: #f5f5f7;
}
}
}
.Bizhong {
.cell {
color: #ff0039;
}
}
.Identification {
.cell {
color: #055fe7;
}
}
.looked {
.cell {
color: #999;
}
}
.el-dropdown-link {
cursor: pointer;
}
}
</style>
<style scoped lang="scss">
/deep/ .el-table__body {
width: 100% !important;
}
/deep/ .el-input__inner {
border: none;
height: 32px !important;
line-height: 32px !important;
}
.lt_candidate .lt_cnadidate_search .input {
box-sizing: border-box;
width: 286px;
}
/deep/ .el-input {
box-sizing: border-box !important;
width: 296px;
height: 0.34rem !important;
background: #ffffff;
border-radius: 4px;
border: 1px solid #e6e6e8;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input {
height: 34px !important;
}
// 修改多选框样式
/deep/ .el-checkbox.is-checked {
.el-checkbox__label {
color: #333333;
}
.el-checkbox__input.is-checked {
.el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
}
/deep/ .el-checkbox {
color: #666;
}
/deep/ .el-dropdown-menu {
width: 100px !important;
}
/deep/ #dropdown-menu-2149 {
width: 100px !important;
}
// 表头
/deep/ .has-gutter {
font-weight: normal;
th {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #282f3c;
font-weight: normal;
}
}
// 在表格显示暂无数据时,去掉白色背景
/deep/ .el-table,
/deep/ .el-table__expanded-cell {
background: none;
}
del {
text-decoration: none; /*没有文本装饰*/
text-decoration: underline red; /*红色下划线*/
text-decoration: underline wavy red; /*红色波浪形下划线*/
text-decoration: line-through red; /*红色删除线*/
}
</style>
<template>
<div class="lt_src">
<div class="lt_top">
<!-- <label>任务号:{{ tableData.qid }}</label> -->
<label class="rwh">任务号:{{ rwh }}</label>
<el-checkbox v-model="checked">显示已认定完成查询ID</el-checkbox>
</div>
<div class="lt_middle">
<!-- 源数据区 -->
<div class="lt_middle_src_data">
<el-table
ref="singleTable"
highlight-current-row
@current-change="handleCurrentChange"
:data="dataList"
class="lt_candidate_table border_radius tableHeight"
@row-click="getFirgerPrintDetail"
:row-class-name="tableRowClassName"
>
<el-table-column prop="barcode" label="源条码号" width="auto">
<template slot-scope="scope">
<!-- 被删除-->
<span v-if="scope.row.removeFlag === 1">
<del>{{ scope.row.barcode }}</del>
</span>
<span v-else>
{{ scope.row.barcode }}
</span>
</template>
</el-table-column>
<el-table-column prop="fingerCount" label="枚数" :width="width2">
<template slot-scope="scope">
<!-- 被删除-->
<span v-if="scope.row.removeFlag === 1">
<del>{{ scope.row.fingerCount }}</del>
</span>
<span v-else>
{{ scope.row.fingerCount }}
</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- 源指纹区 -->
<div class="lt_middle_finger_print" v-show="isShowPrint">
<!-- 指纹/掌纹切换 -->
<div class="btns-switch">
<div
class="btn"
@click="switchZhiWen"
:class="{ active: fingerShowType == '指纹' }"
>
指纹
</div>
<div
class="btn"
@click="switchZhangWen"
:class="{ active: fingerShowType == '掌纹', hui: sourceDel }"
>
掌纹
</div>
</div>
<!--指纹图-->
<div class="lt_middle_finger_prints">
<!-- 指纹 -->
<div v-if="fingerShowType === '指纹'">
<div
class="finger_print"
:class="{
finger_print_active: item.seq === isActive,
fingerLook: item.clickLog == 1,
fingerRD: item.affirmstatus == 1,
fingerBZ: item.affirmstatus == 2,
fingerRB: item.affirmstatus == 3,
}"
v-for="(item, index) in enumerate"
@click="changeStyle(index, item)"
:key="index"
>
<div
class="finger_print_number"
:class="{
finger_print_number_active: item.seq === isActive,
fingerLookNum: item.clickLog == 1,
fingerRDNum: item.affirmstatus == 1,
fingerBZNum: item.affirmstatus == 2,
fingerRBNum: item.affirmstatus == 3,
}"
>
{{ Number(item.seq + 1) &lt; 11 ? ("0" + Number(item.seq)) : Number(item.seq) }}
</div>
<img :src="'data:image/jpeg;base64,' + item.image" />
<div class="finger-tips">
<!-- 认定完成 -->
<div class="affirmstatus1" v-if="item.affirmstatus == 1">
<div class="affirmstatusbg"></div>
<div class="dot"></div>
<span class="txt">认定完成</span>
</div>
<!-- 比中 -->
<div class="affirmstatus2" v-else-if="item.affirmstatus == 2">
<div class="affirmstatusbg"></div>
<div class="dot"></div>
<span class="txt">比中</span>
</div>
<div class="affirmstatus2" v-else-if="item.affirmstatus == 3">
<div class="affirmstatusbg"></div>
<div class="dot"></div>
<span class="txt">比中</span>
</div>
<!-- 认定完成+比中 -->
<!-- <div class="affirmstatus3" v-else-if="item.affirmstatus==3">
<div class="affirmstatus3bg"></div>
<div class="icon">
<img class="rb" src="../../../assets/img/LT/rb.png" alt="">
</div>
</div> -->
<!-- 浏览过 -->
<div
class="clickLog"
v-if="item.affirmstatus === '' && item.clickLog == 1"
>
<div class="clickLogbg"></div>
<div class="dot"></div>
<span class="txt">已查看</span>
</div>
</div>
</div>
</div>
<!-- 掌纹 -->
<div v-else>
<div
class="finger_print_zw"
:class="{
finger_print_active_zw: item.seq === isActive,
fingerLook: item.clickLog == 1,
fingerRD: item.affirmstatus == 1,
fingerBZ: item.affirmstatus == 2,
fingerRB: item.affirmstatus == 3,
}"
v-for="(item, index) in plamList"
@click="changeStyle(index, item)"
:key="index"
>
<div
class="finger_print_number"
:class="{
finger_print_number_active: item.seq === isActive,
fingerLookNum: item.clickLog == 1,
fingerRDNum: item.affirmstatus == 1,
fingerBZNum: item.affirmstatus == 2,
fingerRBNum: item.affirmstatus == 3,
}"
>
{{ Number(item.seq + 1) &lt; 11 ? ("0" + Number(item.seq)) : Number(item.seq) }}
</div>
<img :src="'data:image/jpeg;base64,' + item.image" />
<div class="finger-tips">
<!-- 认定完成 -->
<div class="affirmstatus1" v-if="item.affirmstatus == 1">
<div class="affirmstatusbg"></div>
<div class="dot"></div>
<span class="txt">认定完成</span>
</div>
<!-- 比中 -->
<div class="affirmstatus2" v-else-if="item.affirmstatus == 2">
<div class="affirmstatusbg"></div>
<div class="dot"></div>
<span class="txt">比中</span>
</div>
<div class="affirmstatus2" v-else-if="item.affirmstatus == 3">
<div class="affirmstatusbg"></div>
<div class="dot"></div>
<span class="txt">比中</span>
</div>
<!-- 认定完成+比中 -->
<!-- <div class="affirmstatus3" v-else-if="item.affirmstatus==3">
<div class="affirmstatus3bg"></div>
<div class="icon">
<img class="rb" src="../../../assets/img/LT/rb.png" alt="">
</div>
</div> -->
<!-- 浏览过 -->
<div
class="clickLog"
v-if="item.affirmstatus === '' && item.clickLog == 1"
>
<div class="clickLogbg"></div>
<div class="dot"></div>
<span class="txt">已查看</span>
</div>
</div>
</div>
</div>
</div>
<!--指纹个数提示-->
<div class="lt_middle_bottom">
<span
>该查询ID共计<span>{{ fingerTotal }}枚</span
>{{ fingerShowType }}</span
>
</div>
</div>
</div>
</div>
</template>
<script>
import { Loading } from "element-ui";
export default {
name: "LTSrc",
props: ["srcData"],
// watch: {
// srcData: {
// immediate: true,
// handler (val) {
// //console.info("源数据传入组件的值为===>", val);
// this.tableData = val;
// }
// }
// },
created() {
let w1 = 1920;
let w2 = window.innerWidth;
this.width1 = (this.width1 * w2) / w1;
this.width2 = (this.width2 * w2) / w1;
},
data() {
return {
// 指纹/掌纹切换
fingerShowType: "指纹",
width2: 70,
width1: 90,
rwh: null,
checked: true,
enumerate: null,
tableData: null,
isActive: "",
fingerSrc: require("../../../assets/img/img.png"),
isShowPrint: true,
tableHeight: 368,
sourceDataList: [],
dataList: [],
total: 0,
fingerTotal: 0,
currentRow: null,
options: "展开",
qqid: null,
// 加载动画
loading: null,
timer: null,
plamList: [],
sourceDel: false,
};
},
methods: {
/**
* 切换位掌纹
*/
switchZhangWen() {
if (this.sourceDel) return;
this.fingerShowType = "掌纹";
this.fingerTotal = this.plamList?.length || 0;
if (this.plamList && this.plamList?.length > 0) {
this.changeStyle(0, this.plamList[0]);
}
this.$emit("switchName", this.fingerShowType);
},
/**
* 切换为指纹
*/
switchZhiWen() {
this.fingerShowType = "指纹";
if (this.enumerate && this.enumerate?.length > 0) {
this.changeStyle(0, this.enumerate[0]);
}
this.$emit("switchName", this.fingerShowType);
},
/**
* @description: 比中与认定完成添加样式
* @param {*} row
* @param {*} column
* @param {*} rowIndex
* @param {*} columnIndex
* @return {*}
*/
tableRowClassName({ row, column, rowIndex, columnIndex }) {
// 比中的行
if (row.affirmStatus == 2 || row.affirmStatus == 3) {
//console.log(row);
return "Bizhong";
} else if (row.affirmStatus == 1) {
// 认定完成的行
//console.log(row);
return "Identification";
}
// 浏览过的
if (row.clickLog == 1) {
return "looked";
}
},
//获取掌纹
getPlam() {
this.$axios
.post("/api/check/org/case/palm/barcode", {
querytype: "3",
barcode: sessionStorage.getItem("srcbarcode"),
qqid: sessionStorage.getItem("qqid"),
})
.then((res) => {
if (res.data.code == 0 && res.data.message == "success") {
let result = res.data.ret;
this.plamList = result;
}
});
},
/**
* @description: 选择切换
* @param {*} val
* @param {*} old
* @return {*}
*/
handleCurrentChange(val, old) {
if (!val) return;
let self = this;
// 发送请求
this.fingerShowType = "指纹";
this.$emit("switchName", this.fingerShowType);
self.$store.commit("loading/setLoading", true);
self.qqid = val.qqid;
self.qid = val.qid;
// 被删除
if (val.removeFlag === 1) {
self.sourceDel = true;
self.$bus.emit("deleteMessage", {
msg: "该条数据已删除!",
delTime: self.$moment(val.removeTime).format("YYYY.MM.DD HH:mm"),
});
// 清空目标table表
// self.$bus.emit("initCandidate", []);
// 保存qqid和qid
sessionStorage.setItem("qqid", val.qqid);
sessionStorage.setItem("qid", val.qid);
sessionStorage.setItem("srcbarcode", val.barcode);
self.enumerate = [];
self.fingerTotal = 0;
// 请求该条码号的案件指纹图片
self.$axios
.post("/api/org/case/barcode", {
querytype: "3",
barcode: val.barcode,
qqid: self.qqid,
})
.then((response) => {
//console.log(response);
let imageInfo = response.data.ret[0];
// 默认选中第一个指纹预览图片
sessionStorage.setItem("srcseqno", imageInfo.seq);
sessionStorage.setItem("zcseq", imageInfo.seq);
// 发送请求
self.$store.commit("loading/setLoading", true);
this.$axios
.post(`/api/query/matchcand/dest/${self.qqid}/${imageInfo.seq}`, {
srcbarcode: sessionStorage.getItem("srcbarcode"),
})
.then((response) => {
//console.log(response);
self.$bus.emit("initCandidate", response.data.ret);
});
clearTimeout(self.timer);
self.timer = setTimeout(() => {
self.$store.commit("loading/setLoading", false);
}, 500);
});
} else {
self.sourceDel = false;
// 没有被删除
self.$bus.emit("deleteMessage", {
msg: null,
delTime: null,
});
//console.log(val);
if (val == null) return;
// 改变数据为点击状态
self.$set(val, "clickLog", "1");
self.currentRow = val;
//console.log(val);
self.qqid = val.qqid;
self.qid = val.qid;
// 保存qqid和qid
sessionStorage.setItem("qqid", self.qqid);
sessionStorage.setItem("qid", self.qid);
let barcode = val.barcode;
// 存储原条码号
sessionStorage.setItem("srcbarcode", barcode);
//console.log(barcode);
self.$axios
.post("/api/org/case/barcode", {
querytype: "3",
barcode: barcode,
qqid: self.qqid,
})
.then((response) => {
// console.log(response);
if (response.data.code === 0) {
self.enumerate = response.data.ret;
self.fingerTotal = response.data.ret.length;
// 默认选中第一个指纹预览图片
self.changeStyle(0, self.enumerate[0]);
}
});
self.getPlam();
self.isActive = "";
}
clearTimeout(self.timer);
self.timer = setTimeout(() => {
self.$store.commit("loading/setLoading", false);
}, 500);
},
/**
* @description: 获取列表数据
* @param {*}
* @return {*}
*/
getDetailData() {
let self = this;
// 发送请求
self.$store.commit("loading/setLoading", true);
if (this.type == "father") {
this.$axios
.post("/api/queryque/standardAll", {
contrastCustomSearchReq: { qid: Number(self.qid) },
})
.then((response) => {
//console.log(response);
self.sourceDataList = response.data.ret;
self.dataList = self.sourceDataList;
self.total = self.dataList.length;
//console.log(self.dataList);
// 默认选中第一行
self.$nextTick(() => {
self.$refs.singleTable.setCurrentRow(self.dataList[0]);
});
});
} else {
this.$axios
.post("/api/queryque/standardAll", {
contrastCustomSearchReq: { qqid: Number(self.qqid) },
})
.then((response) => {
//console.log(response);
self.sourceDataList = response.data.ret;
self.dataList = self.sourceDataList;
self.total = self.dataList.length;
//console.log(self.dataList);
// 默认选中第一行
self.$nextTick(() => {
self.$refs.singleTable.setCurrentRow(self.dataList[0]);
});
});
}
clearTimeout(self.timer);
self.timer = setTimeout(() => {
self.$store.commit("loading/setLoading", false);
}, 500);
},
// 获取选择的任务详情
getFirgerPrintDetail(row) {
// this.enumerate = row.enumerate;
// 选择新的指纹数据时 清空前一个指纹样式
// let self = this
// let barcode = row.barcode
// //console.log(barcode);
// this.$axios
// .get(`/api/png/caseBybarcode/${barcode}`)
// .then(response => {
// //console.log(response);
// self.enumerate = response.data.ret
// self.fingerTotal = response.data.ret.length
// })
// this.isActive = "";
},
// 指纹部分 增加边框
changeStyle(index, imageInfo) {
let self = this;
this.isActive = imageInfo.seq;
//console.log(this.isActive);
// 存储源数据序号
if (imageInfo) {
this.$emit("sourceObj", imageInfo);
// 改变数据为点击状态
self.$set(imageInfo, "clickLog", "1");
sessionStorage.setItem("srcseqno", imageInfo.seq);
sessionStorage.setItem("zcseq", imageInfo.seq);
this.$bus.emit("changImageEdit", imageInfo.image);
// 没有被删除
self.$bus.emit("deleteMessage", {
msg: null,
delTime: null,
});
// 发送请求
self.$store.commit("loading/setLoading", true);
this.$axios
.post(`/api/query/matchcand/dest/${self.qqid}/${imageInfo.seq}`, {
srcbarcode: sessionStorage.getItem("srcbarcode"),
})
.then((response) => {
//console.log(response);
self.$bus.emit("initCandidate", response.data.ret);
});
clearTimeout(self.timer);
self.timer = setTimeout(() => {
self.$store.commit("loading/setLoading", false);
}, 500);
} else {
this.$bus.emit("changImageEdit", "xxx");
this.$bus.emit("changImageEditTarget", "xxx");
}
},
/**
* @description: 展开收缩切换
* @param {*}
* @return {*}
*/
changeTableHeight() {
this.isShowPrint = !this.isShowPrint;
if (!this.isShowPrint) {
document
.getElementsByTagName("body")[0]
.style.setProperty("--tableHeight", "48.75rem");
// this.tableHeight = 810
this.options = "折叠";
$(".ico").css("transform", "rotate(180deg)");
} else {
document
.getElementsByTagName("body")[0]
.style.setProperty("--tableHeight", "20rem");
// this.tableHeight = 368
this.options = "展开";
$(".ico").css("transform", "rotate(0deg)");
}
},
},
watch: {
/**
* @description: 过滤显示已认定完成查询ID
* @param {*} newValue
* @param {*} oldValue
* @return {*}
*/
checked(newValue, oldValue) {
//console.log(newValue);
if (newValue) {
this.dataList = this.sourceDataList;
} else {
console.log(this.sourceDataList, 11111111);
this.dataList = this.sourceDataList.filter((item) => {
return item.affirmStatus != 1 && item.affirmStatus != 3;
});
//console.log(this.dataList);
}
this.total = this.dataList.length;
},
},
mounted() {
//console.log(this.$route);
this.rwh = this.$route.query.qid;
this.qqid = this.$route.query.qqid;
this.qid = this.$route.query.qid;
this.type = this.$route.query.type;
sessionStorage.setItem("zctype", this.type);
//console.log(this.rwh);
let self = this;
// 初始状态下 展示当前任务的第一条指纹信息(指纹个数)
// this.enumerate = datas[0].enumerate;
this.getDetailData();
// 更新列表数据
this.$bus.on("updateFinderSource", () => {
self.getDetailData();
});
},
beforeDestroy() {
//组件销毁前需要解绑事件。否则会出现重复触发事件的问题
this.$bus.off("updateFinderSource");
},
};
// 某任务下查询的所有信息
const datas = [
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 12 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 13 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 17 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 33 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 24 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 1 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 8 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 12 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 4 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 1 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 8 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 12 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 4 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 11 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 8 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 12 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 14 },
{ userId: "123452", barcode: "657487483746234657876744", enumerate: 11 },
];
</script>
<style lang="scss">
.lt_src {
width: 100%;
height: 100%;
div {
display: inline-block;
}
label {
margin-right: 67px;
}
.el-button {
cursor: pointer;
margin-left: 32px;
width: 24px;
height: 16px;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #055fe7;
line-height: 16px;
font-weight: 350;
}
.lt_top {
width: 100%;
margin: 0 0 10px 0;
visibility: hidden;
.rwh {
font-size: 14px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #282f3c;
}
}
.lt_middle {
width: 100%;
// height: 100%;
background: #ffffff;
border-radius: 8px;
}
.lt_middle_src_data {
border-radius: 8px;
width: 100%;
height: 320px;
.Bizhong {
.cell {
color: #ff0039;
}
}
.Identification {
.cell {
color: #055fe7;
}
}
.looked {
.cell {
color: #999;
}
}
.finger_print_number {
width: 100%;
height: 40px;
}
}
.lt_middle_finger_print {
background-color: #f6f8fa;
width: 100%;
.btns-switch {
display: flex;
align-items: center;
margin-top: 13px;
margin-left: 47px;
.btn {
cursor: pointer;
width: 129px;
height: 32px;
background: #ffffff;
border-radius: 2px 0px 0px 2px;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #282f3c;
}
.active {
width: 129px;
height: 32px;
background: #055fe7;
border-radius: 2px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #ffffff;
}
}
.lt_middle_finger_prints {
background: #f6f8fa;
margin-top: 12px;
overflow-y: auto;
width: 100%;
height: 400px;
}
}
/*底部的统计数据*/
.lt_middle_bottom {
text-align: center;
background-color: #f6f8fa;
height: 40px !important;
line-height: 40px;
width: 100%;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #999;
span {
span {
color: #666;
}
}
}
.lt_middle_src_data {
.lt_middle_bottom {
margin-top: -10px;
display: flex;
justify-content: center;
.btn {
margin-left: 32px;
cursor: pointer;
display: flex;
align-items: center;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #055fe7;
.ico {
transform: rotate(0deg);
margin-left: 5px;
width: 10px;
height: 6px;
display: flex;
img {
object-fit: cover;
width: 100%;
height: 100%;
}
}
}
}
}
/* 单个指纹*/
.finger_print {
position: relative;
width: 104px;
height: 104px;
background: #ffffff;
border-radius: 2px;
border: 1px solid #cccccc;
margin: 8px 4px 8px 4px;
overflow: hidden;
object-fit: contain;
&:hover {
border: 1px solid #999;
}
img {
position: absolute;
top: 0;
left: 0;
}
.finger_print_number {
font-size: 12px;
width: 24px;
height: 24px;
background: #ddebff;
border-radius: 0px 0px 7px 0px;
z-index: 20;
position: absolute;
top: 0;
left: 0;
display: flex;
justify-content: center;
align-items: center;
}
.finger_print_number_active {
position: absolute;
top: 0;
left: 0;
width: 24px;
height: 24px;
background: #055fe7;
border-radius: 0px 0px 7px 0px;
}
.finger-tips {
position: absolute;
bottom: 0;
left: 0;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
.affirmstatus1,
.affirmstatus2 {
width: 100%;
height: 20px;
position: relative;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
.affirmstatusbg {
width: 100%;
height: 100%;
position: absolute;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0) -30%,
#000000 100%
);
opacity: 0.66;
}
.dot {
z-index: 10;
width: 7px;
height: 7px;
background: #055fe7;
border: 1px solid #ffffff;
border-radius: 50%;
margin-right: 8px;
}
.txt {
z-index: 10;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #ffffff;
}
}
.affirmstatus2 {
.dot {
background: #ff0039;
}
}
.affirmstatus3 {
width: 100%;
height: 20px;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
position: relative;
.affirmstatus3bg {
width: 100%;
height: 100%;
position: absolute;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0) 0%,
#000000 100%
);
opacity: 0.66;
}
.icon {
width: 14px;
height: 14px;
display: flex;
.rb {
position: relative;
width: 14px;
height: 14px;
object-fit: contain;
}
}
}
.clickLog {
width: 100%;
height: 20px;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
position: relative;
.clickLogbg {
width: 100%;
height: 100%;
position: absolute;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0) 0%,
#000000 100%
);
opacity: 0.66;
}
.dot {
z-index: 10;
width: 7px;
height: 7px;
background: #999999;
border: 1px solid #ffffff;
border-radius: 50%;
margin-right: 8px;
}
.txt {
z-index: 10;
font-size: 12px;
font-family: Microsoft YaHei;
color: #ffffff;
}
}
}
}
// 单个掌纹
.finger_print_zw {
position: relative;
width: 164px;
height: 164px;
background: #ffffff;
border-radius: 2px;
border: 1px solid #cccccc;
margin: 8px 4px 8px 4px;
overflow: hidden;
object-fit: contain;
&:hover {
border: 1px solid #999;
}
img {
position: absolute;
top: 0;
left: 0;
}
.finger_print_number {
font-size: 12px;
width: 24px;
height: 24px;
background: #ddebff;
border-radius: 0px 0px 7px 0px;
z-index: 20;
position: absolute;
top: 0;
left: 0;
display: flex;
justify-content: center;
align-items: center;
}
.finger_print_number_active {
position: absolute;
top: 0;
left: 0;
width: 24px;
height: 24px;
background: #055fe7;
border-radius: 0px 0px 7px 0px;
}
.finger-tips {
position: absolute;
bottom: 0;
left: 0;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
.affirmstatus1,
.affirmstatus2 {
width: 100%;
height: 20px;
position: relative;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
.affirmstatusbg {
width: 100%;
height: 100%;
position: absolute;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0) -30%,
#000000 100%
);
opacity: 0.66;
}
.dot {
z-index: 10;
width: 7px;
height: 7px;
background: #055fe7;
border: 1px solid #ffffff;
border-radius: 50%;
margin-right: 8px;
}
.txt {
z-index: 10;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #ffffff;
}
}
.affirmstatus2 {
.dot {
background: #ff0039;
}
}
.affirmstatus3 {
width: 100%;
height: 20px;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
position: relative;
.affirmstatus3bg {
width: 100%;
height: 100%;
position: absolute;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0) 0%,
#000000 100%
);
opacity: 0.66;
}
.icon {
width: 14px;
height: 14px;
display: flex;
.rb {
position: relative;
width: 14px;
height: 14px;
object-fit: contain;
}
}
}
.clickLog {
width: 100%;
height: 20px;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
position: relative;
.clickLogbg {
width: 100%;
height: 100%;
position: absolute;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0) 0%,
#000000 100%
);
opacity: 0.66;
}
.dot {
z-index: 10;
width: 7px;
height: 7px;
background: #999999;
border: 1px solid #ffffff;
border-radius: 50%;
margin-right: 8px;
}
.txt {
z-index: 10;
font-size: 12px;
font-family: Microsoft YaHei;
color: #ffffff;
}
}
}
}
// .fingerLook {
// border: 1px solid #333;
// }
// .fingerRD {
// border: 1px solid #055fe7;
// }
// .fingerBZ {
// border: 1px solid #FF0039;
// }
// .fingerRB {
// border: 1px solid #FF0039;
// }
// .fingerLookNum {
// background:#ddebff !important;
// color: #303133 !important;
// }
// .fingerRDNum {
// background:#055fe7 !important;
// color: #ffffff !important;
// }
// .fingerBZNum {
// background: #FF0039 !important;
// color: #ffffff !important;
// }
// .fingerRBNum {
// background: #FF0039 !important;
// color: #ffffff !important;
// }
.finger_print_active {
position: relative;
width: 104px;
height: 104px;
background: #ffffff;
border-radius: 2px;
border: 1px solid #055fe7;
.finger_print_number {
color: #ffffff;
font-size: 12px;
}
&:hover {
border: 1px solid #999;
}
}
.finger_print_active_zw {
position: relative;
width: 164px;
height: 164px;
background: #ffffff;
border-radius: 2px;
border: 1px solid #055fe7;
.finger_print_number {
color: #ffffff;
font-size: 12px;
}
&:hover {
border: 1px solid #999;
}
}
}
</style>
<style lang="scss" scoped>
$tableHeight: var(--tableHeight, 320px);
.tableHeight {
height: $tableHeight;
}
/* 设置滚动条的样式 */
::-webkit-scrollbar {
width: 6px;
}
/* 滚动槽 */
::-webkit-scrollbar-track {
-webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.3);
border-radius: 10px;
}
/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
border-radius: 3px;
background: rgba(0, 0, 0, 0.1);
-webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.5);
}
::-webkit-scrollbar-thumb:window-inactive {
background: #dadde0;
}
// 滚动条的宽度
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
width: 6px; // 横向滚动条
height: 6px; // 纵向滚动条 必写
}
// 滚动条的滑块
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
background-color: #dadde0;
border-radius: 3px;
}
// 修改多选框样式
/deep/ .el-checkbox.is-checked {
.el-checkbox__label {
color: #333333;
}
.el-checkbox__input.is-checked {
.el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
}
/deep/ .el-checkbox {
color: #666;
}
/deep/ .el-dropdown-menu__item {
padding: 0 1.25rem !important;
}
// 表头
/deep/ .has-gutter {
font-weight: normal;
th {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #282f3c;
font-weight: normal;
}
}
del {
text-decoration: none; /*没有文本装饰*/
text-decoration: underline red; /*红色下划线*/
text-decoration: underline wavy red; /*红色波浪形下划线*/
text-decoration: line-through red; /*红色删除线*/
}
.hui {
color: #c2c4c7 !important;
background-color: #ecedf1 !important;
}
</style>
<template>
<div class="ltDiv">
<div class="lt" :class="{ bzActive: isShowbzDialogBg || loading_sd }">
<div class="header">
<div class="label">人工认定-串查</div>
<div class="btns">
<div class="bz-btn" @click="Bz">比中</div>
<div class="rd-btn" @click="Rdwc">认定完成</div>
</div>
</div>
<div class="header_line"></div>
<div class="lt_main">
<div class="lt_main_left">
<LLSrc
:src-data="qid"
@sourceObj="
(val) => {
sourceObj = val;
}
"
@switchName="
(val) => {
fingerShowType = val;
}
"
></LLSrc>
</div>
<div class="lt_main_middle">
<!-- <div class="lt_main_header">顶部工具</div>
<div class="lt_middle_main">中部指纹编辑</div>
<div class="lt_main_footer">底部工具</div> -->
<ImageEd></ImageEd>
</div>
<div class="lt_main_right">
<LLCandidate
:fingerShowType="fingerShowType"
@targetObj="
(val) => {
targetObj = val;
}
"
></LLCandidate>
</div>
</div>
</div>
<!-- 加载动画 -->
<div class="loading" v-show="loading_sd">
<div class="loading-finger">
<img src="@/assets/img/loadingfinger.gif" alt="" />
</div>
<div class="loading-name">
<img src="@/assets/img/loadingtxt.gif" alt="" />
</div>
</div>
<!-- 比中弹窗 -->
<!-- <div class="bzDialog" v-show="isShowbzDialogBg" @click="cancelbz"></div> -->
<div class="bzDialog" v-show="isShowbzDialogBg"></div>
<div class="bzcontent" v-show="isShowbzDialog">
<div class="head-title">
<div class="left">比中</div>
<div class="close" @click="cancelbz">
<img src="@/assets/img/LT/close.png" alt="" />
</div>
</div>
<div class="bzdesc">
<div class="bz-source">
<div class="bzitem">
<div class="bzname">查询类型:</div>
<div class="bzvalue zc">
<div class="dot"></div>
串查
</div>
</div>
<div class="bzitem" style="visibility: hidden">
<div class="bzname">现场勘验编号:</div>
<div class="bzvalue">{{ xckybh }}</div>
</div>
<div class="bzitem">
<p class="smallTitle">源数据</p>
<img src="@/assets/img/LL/bottomLine.png" alt="" />
</div>
<div class="bzitem">
<p class="smallTitle">目标数据</p>
<img src="@/assets/img/LL/bottomLine.png" alt="" />
</div>
<div class="bzitem">
<div class="bzname">案事件编号:</div>
<div class="bzvalue">{{ source.asjbh }}</div>
</div>
<div class="bzitem">
<div class="bzname">案事件编号:</div>
<div class="bzvalue">{{ target.asjbh }}</div>
</div>
<div class="bzitem">
<div class="bzname">现场勘验编号:</div>
<div class="bzvalue">{{ source.xckybh }}</div>
</div>
<div class="bzitem">
<div class="bzname">现场勘验编号:</div>
<div class="bzvalue">{{ target.xckybh }}</div>
</div>
<div class="bzitem">
<div class="bzname">序号:</div>
<div class="bzvalue">{{ source.xh }}</div>
</div>
<div class="bzitem">
<div class="bzname">序号:</div>
<div class="bzvalue">{{ target.xh }}</div>
</div>
<div class="bzitem">
<div class="bzname">提取单位:</div>
<div class="bzvalue">{{ source.tqdwGajgmc }}</div>
</div>
<div class="bzitem">
<div class="bzname">提取单位:</div>
<div class="bzvalue">{{ target.tqdwGajgmc }}</div>
</div>
<div class="bzitem">
<div class="bzname">提取人:</div>
<div class="bzvalue">{{ source.tqryXm }}</div>
</div>
<div class="bzitem">
<div class="bzname">提取人:</div>
<div class="bzvalue">{{ target.tqryXm }}</div>
</div>
</div>
<div class="bz-target">
<div class="bzitem">
<div class="bzname">比中单位:</div>
<div class="bzvalue">{{ bzr.unitName }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中人:</div>
<div class="bzvalue">{{ bzr.name }}</div>
</div>
<div class="bzitem">
<div class="bzname">单位代码:</div>
<div class="bzvalue">{{ bzr.unitCode }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中人身份证号:</div>
<div class="bzvalue">{{ bzr.idCard }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中时间:</div>
<div class="bzvalue">{{ bzr.bzTime }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中人联系电话:</div>
<el-input
class="bzphone"
v-model="bzr.phoneNumber"
placeholder="请输入内容"
disabled
></el-input>
<div class="input-error" v-show="isPhoneError">
<!-- <img src="@/assets/img/inputerror.png" alt=""> -->
<svg-icon icon-class="error" class="icon" />
</div>
<div class="error-desc" v-show="isPhoneError">
联系电话不应低于7位数!
</div>
</div>
</div>
<div class="line"></div>
<div class="bzfooter">
<div class="footer-title">备注</div>
<el-input
type="textarea"
:rows="5"
placeholder="在此输入备注信息"
v-model="textarea"
>
</el-input>
</div>
<div class="bzbtns">
<button class="bzconfirm" @click="confirmbz">确认</button>
<button class="bzcancel" @click="cancelbz">取消</button>
</div>
</div>
</div>
<!-- 认定完成确认框 -->
<div class="rdwcDialog" v-show="isShowrdwcDialogBg"></div>
<div class="rdwccontent" v-show="isShowrdwcDialog">
<div class="title">当前候选未全部查看,是否确认认定完成?</div>
<div class="rdwcbtns">
<button class="rdwcconfirm" @click="confirmrdwc">确认</button>
<button class="rdwccancel" @click="cancelrdwc">取消</button>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import "@/icons/error.svg";
import Utils from "@/utils/util.js";
import LLSrc from "./modules/LLSrc.vue";
import LLCandidate from "./modules/LLCandidate.vue";
import ImageEd from "@/components/ImageEd.vue";
export default {
// 正查 倒查 查重
name: "LT",
components: {
LLSrc,
LLCandidate,
ImageEd,
},
computed: {
...mapState({
loading_sd: (state) => state.loading.loading_sd,
}),
},
data() {
return {
source: {
asjbh: "",
xckybh: "",
tqdwGajgmc: "",
tqryXm: "",
xh: "",
},
target: {
asjbh: "",
xckybh: "",
tqdwGajgmc: "",
tqryXm: "",
xh: "",
},
fingerShowType: "指纹",
qid: null,
radio: 6,
phone: "",
textarea: "",
isShowbzDialog: false,
isShowbzDialogBg: false,
bzdw: "",
bzr: "",
dwdm: "",
bzrsfzh: "",
bzsj: "",
isPhoneError: false,
asjbh: "",
xh: "",
xckybh: "",
rybh: "",
zw: "",
//比中人信息
bzr: {
bzTime: "",
idCard: "",
phoneNumber: "",
name: "",
unitCode: "",
unitName: "",
},
// 是否展示认定完成确认框背景
isShowrdwcDialogBg: false,
// 是否展示认定完成确认框
isShowrdwcDialog: false,
//当前选中的源对象
sourceObj: {},
//当前选中的目标对象
targetObj: {},
};
},
created() {
this.qid = this.$route.query.rowData;
//console.log("源qid====>", this.qid);
},
watch: {
phone(newValue, oldValue) {
if (newValue.length < 7) {
this.isPhoneError = true;
document
.getElementsByTagName("body")[0]
.style.setProperty("--phone", "#ff4242");
} else {
this.isPhoneError = false;
document
.getElementsByTagName("body")[0]
.style.setProperty("--phone", "#606266");
}
},
},
methods: {
/**
* @description: 确认认定完成
* @param {*}
* @return {*}
*/
confirmrdwc() {
let self = this;
this.isShowbzDialogBg = false;
this.isShowrdwcDialog = false;
let srcseqno = sessionStorage.getItem("srcseqno") || "";
let destseqno = sessionStorage.getItem("destseqno") || "";
let srcbarcode = sessionStorage.getItem("srcbarcode") || "";
let destbarcode = sessionStorage.getItem("destbarcode") || "";
let qqid = sessionStorage.getItem("qqid") || "";
let qid = sessionStorage.getItem("qid") || "";
let type = sessionStorage.getItem("zctype") || "";
// 3:串查
let querytype = 3;
this.$axios({
method: "post",
url: "/api/matchcand/affirm/finish",
data: {
// affirmState,
// srcseqno,
// destseqno,
srcbarcode,
destbarcode,
qqid,
qid,
querytype,
},
}).then((response) => {
// 跟新列表数据
self.$bus.emit("updateFinderSource");
//console.log(response);
this.$message.success("认定完成!");
});
},
/**
* @description: 取消认定完成
* @param {*}
* @return {*}
*/
cancelrdwc() {
this.isShowbzDialogBg = false;
this.isShowrdwcDialog = false;
},
/**
* @description: 取消比中
* @param {*}
* @return {*}
*/
cancelbz() {
this.isShowbzDialogBg = false;
this.isShowbzDialog = false;
},
/**
* @description: 确认比中
* @param {*}
* @return {*}
*/
confirmbz() {
let self = this;
//console.log("比中");
let affirmstatus = "1";
let srcseqno = sessionStorage.getItem("srcseqno") || "";
let destseqno = sessionStorage.getItem("destseqno") || "";
let srcbarcode = sessionStorage.getItem("srcbarcode") || "";
let destbarcode = sessionStorage.getItem("destbarcode") || "";
let qqid = sessionStorage.getItem("qqid") || "";
let qid = sessionStorage.getItem("qid") || "";
if (!destbarcode) {
this.$message.error("信息不全,无法比中!");
return;
}
// 3:串查
let queryType = "3";
this.$axios({
method: "post",
url: "/api/matchcand/affirm/hit",
data: {
srcseqno: parseInt(srcseqno),
destseqno: parseInt(destseqno),
srcbarcode,
destbarcode,
qqid: parseInt(qqid),
qid: parseInt(qid),
queryType,
affirmDescribe: self.textarea,
userName: self.bzr.name,
idCard: self.bzr.idCard,
tel: self.bzr.phoneNumber,
unit: self.bzr.unitName,
unitCode: self.bzr.unitCode,
affirmtime: new Date(self.bzr.bzTime),
},
})
.then((response) => {
if(response.data.code == 0){
// 跟新列表数据
self.$bus.emit("updateFinderSource");
this.$message.success("比中成功!");
}else{
this.$message.error(response.data.message)
}
})
.catch((err) => {
this.$message.error("比中失败!");
});
this.isShowbzDialogBg = false;
this.isShowbzDialog = false;
},
/**
* @description: 获取现场勘验编号
* @param {*}
* @return {*}
*/
getUserInfo2() {
let self = this;
let destbarcode = sessionStorage.getItem("destbarcode") || "";
this.$set(
self.target,
"asjbh",
sessionStorage.getItem("destbarcode") || ""
);
this.$axios({
url: "/api/casestore/casebase/detail",
method: "get",
params: {
barcode: destbarcode,
},
loading: false,
}).then((res) => {
if (res.data.code == 0 && res.data.message) {
let result = res.data.ret;
for (let key in self.target) {
if (result[key]) {
this.$set(self.target, key, result[key]);
}
}
this.$set(
self.target,
"xh",
sessionStorage.getItem("destseqno") || ""
);
this.$set(this.bzr, "bzTime", result.time);
}
});
},
/**
* @description: 获取正查比中下方的数据
* @param {*} id
* @return {*}
*/
getUserInfo() {
let self = this;
let srcbarcode = sessionStorage.getItem("srcbarcode") || "";
this.$set(self.source, "asjbh", srcbarcode);
this.$axios({
method: "get",
url: "/api/casestore/casebase/detail?barcode=" + srcbarcode,
}).then((res) => {
if (res.data.code == 0 && res.data.message) {
let result = res.data.ret;
for (let key in self.source) {
if (result[key]) {
this.$set(self.source, key, result[key]);
}
}
this.$set(self.source, "xh", sessionStorage.getItem("zcseq") || "");
this.$set(this.bzr, "bzTime", result.time);
}
});
},
/**
* @description: 比中
* @param {*}
* @return {*}
*/
Bz() {
if (
(this.targetObj.affirmstatus == 2 ||
this.targetObj.affirmstatus == 3) &&
(this.sourceObj.affirmstatus == 2 || this.sourceObj.affirmstatus == 3)
) {
this.$message.error("已经比中过的数据无法再次比中!");
return;
}
let params = JSON.parse(localStorage.getItem("userInfo"));
for (let key in this.bzr) {
this.bzr[key] = params[key];
}
this.getUserInfo();
this.getUserInfo2();
this.asjbh = sessionStorage.getItem("srcbarcode");
this.xh = sessionStorage.getItem("srcseqno");
this.rybh = sessionStorage.getItem("destbarcode");
this.judgeZw(Number(sessionStorage.getItem("destseqno")));
this.isShowbzDialogBg = true;
this.isShowbzDialog = true;
},
/**
* @description: 认定完成
* @param {*}
* @return {*}
*/
Rdwc() {
//console.log("认定完成");
let qqid = sessionStorage.getItem("qqid") || "";
// 认定之前的操作
this.$axios({
method: "post",
url: "/api/matchcand/affirm/confirm",
data: {
qqid,
},
loading: false,
}).then((res) => {
//console.log(res);
if (!res.data.ret) {
this.isShowbzDialogBg = true;
// this.isShowrdwcDialogBg = true;
this.isShowrdwcDialog = true;
} else {
// 执行认定完成
this.confirmrdwc();
}
});
},
/**
* @description: 更具code判断指位
* @param {*} code
* @return {*}
*/
judgeZw(code) {
//console.log(code);
switch (code) {
case 1:
this.zw = "滚动-右拇";
break;
case 2:
this.zw = "滚动-右食";
break;
case 3:
this.zw = "滚动-右中";
break;
case 4:
this.zw = "滚动-右环";
break;
case 5:
this.zw = "滚动-右小";
break;
case 6:
this.zw = "滚动-左拇";
break;
case 7:
this.zw = "滚动-左食";
break;
case 8:
this.zw = "滚动-左中";
break;
case 9:
this.zw = "滚动-左环";
break;
case 10:
this.zw = "滚动-左小";
break;
case 11:
this.zw = "平面-右拇";
break;
case 12:
this.zw = "平面-右食";
break;
case 13:
this.zw = "平面-右中";
break;
case 14:
this.zw = "平面-右环";
break;
case 15:
this.zw = "平面-右小";
break;
case 16:
this.zw = "平面-左拇";
break;
case 17:
this.zw = "平面-左食";
break;
case 18:
this.zw = "平面-左中";
break;
case 19:
this.zw = "平面-左环";
break;
case 20:
this.zw = "平面-左小";
break;
}
},
},
beforeDestroy() {
//组件销毁前需要解绑事件。否则会出现重复触发事件的问题
this.$bus.off("updateFinderSource");
},
};
</script>
<style scoped lang="scss">
// 加载动画
.loading {
z-index: 999999;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba($color: #fff, $alpha: 0.65);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.loading-finger {
width: 100px;
height: 100px;
img {
width: 100%;
height: 100%;
}
}
.loading-name {
width: 100px;
height: auto;
margin-top: 20px;
img {
width: 100%;
height: 100%;
}
}
}
.ltDiv {
width: 100%;
height: 100%;
height: 100vh;
overflow: hidden;
}
div {
margin: 0;
padding: 0;
display: inline-block;
border: none;
}
.lt {
width: 100%;
background-color: #ffffff;
/*padding: 24px;*/
margin: 0;
padding: 0 24px 24px 24px;
display: flex;
flex-direction: column;
/deep/.el-table__body-wrapper.is-scrolling-none {
margin-top: -8px;
}
}
.header {
height: 59px;
flex-grow: 1;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
.label {
align-self: flex-start;
height: 22px;
font-size: 16px;
font-weight: bold;
color: #055fe7;
line-height: 22px;
margin-top: 14px;
}
}
.header_line {
width: 1872px;
height: 2px;
background: #eee;
position: absolute;
top: 52px;
}
.btns {
margin-top: 14px;
align-self: flex-end;
margin-bottom: 13px;
color: #ffffff;
font-size: 14px;
line-height: 22px;
.bz-btn {
cursor: pointer;
width: 96px;
height: 32px;
background: #ff0039;
border-radius: 4px;
margin-right: 16px;
text-align: center;
line-height: 32px;
}
.rd-btn {
cursor: pointer;
width: 96px;
height: 32px;
background: #055fe7;
border-radius: 4px;
text-align: center;
line-height: 32px;
}
}
.lt_header {
height: 59px;
flex-grow: 1;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.lt_header .lt_header_label {
align-self: flex-start;
width: 100px;
}
.lt_header .tt_header_button {
align-self: flex-end;
margin-right: 50px;
}
.lt_main {
width: 100%;
display: flex;
flex-direction: row;
}
.lt_main_left {
width: 352px;
border: none;
/* margin-right: 16px; */
margin-top: 18px;
}
.lt_main_middle {
width: 1120px;
display: flex;
flex-direction: column;
margin-top: -65px;
}
.lt_main_middle .lt_main_header {
height: 70px;
border: 1px #8b4513 solid;
}
.lt_main_middle .lt_main_footer {
height: 104px;
}
.lt_main_middle .lt_middle_main {
width: 100%;
height: 750px;
border: 1px #8b4513 solid;
}
.lt_main_right {
margin-top: 50px;
margin-left: 16px;
width: 380px;
border: none;
}
.lt_main_footer {
border: 1px saddlebrown solid;
}
/deep/ .current-row {
td {
background: #f5f5f7 !important;
}
}
@import "@/views/cxyrd/LL.scss";
</style>
<template>
<div style="width: 100%">
<div :class="{ bzActive: isShowbzDialogBg || loading_sd, tt: true }">
<div class="header">
<div class="label">人工认定-查重</div>
<div class="btns">
<div class="bz-btn" @click="Bz">比中</div>
<div class="rd-btn" @click="Rdwc">认定完成</div>
</div>
</div>
<div class="main">
<div class="data">
<!-- 卡片源数据-->
<div class="source-data">
<template>
<div v-if="sourcedatas.length">
<div class="source-bottom">
<Swiper
type="rgrd"
:souceDel="souceDel"
:carData="sourcedatas"
@prev="last"
@next="next"
@qiehuan="
(index) => {
next(index - 1);
}
"
/>
</div>
</div>
<!-- 数据加载中 -->
<div class="delText" v-if="souceDel">
<p>
<img src="@/assets/img/TT/delTime.png" alt="" />
<span>删除时间</span>
<span>{{ souceDelText }}</span>
</p>
</div>
</template>
</div>
<!-- <div class="source-data">
<Swiper />
</div> -->
<!--指纹 掌纹 人像 按钮组-->
<div class="btns">
<div
class="btn"
:class="{ active: isFinger == true }"
@click="finger"
>
指纹
</div>
<div
class="btn"
:class="{ active: isPlam == true, hui: zhihui }"
@click="zhihui ? () => {} : plam()"
>
掌纹
</div>
<div
class="btn"
:class="{ active: isFace == true, hui: zhihui }"
@click="zhihui ? () => {} : face()"
>
人像
</div>
<br />
<!--滚动 平面 切换-->
<div v-show="isFinger" class="menu middle">
<div
class="menu-item"
:class="{ active: activeIndex == 1 }"
@click="handleSelect(1)"
>
滚动
</div>
<div
class="menu-item"
:class="{ active: activeIndex == 2 }"
@click="handleSelect(2)"
>
平面
</div>
</div>
</div>
<!-- 目标数据 -->
<div class="dest-data">
<el-table
highlight-current-row
:data="tableData"
ref="singleTable"
class="dest-table"
:height="height"
@current-change="handleCurrentChange"
:row-class-name="tableRowClassName"
>
<el-table-column
prop="destbarcode"
label="目标条码号"
width="auto"
v-if="roleArr.includes('C-1-7')"
>
<div
class="del"
slot-scope="scope"
v-if="scope.row.removeFlag == '1'"
>
{{ scope.row.destbarcode }}
</div>
<div slot-scope="scope" v-else>
{{ scope.row.destbarcode }}
</div>
</el-table-column>
</el-table>
<div class="delText" v-if="targetDel">
<p>
<img src="@/assets/img/TT/delTime.png" alt="" />
<span>删除时间</span>
<span>{{ targetDelText }}</span>
</p>
</div>
</div>
</div>
<div class="imgs middle">
<div v-show="isFinger == true" class="fingers">
<div class="data-label">
<div class="source-label"><br /><br /></div>
<div class="dest-label"><br /><br /><br /></div>
</div>
<!-- 指纹图部分-->
<div class="finger-data">
<!-- 滚动 1-10 右拇始 -->
<div v-if="activeIndex == 1">
<!-- Swiper -->
<div class="swiper-main">
<swiper :options="swiperOption" ref="swiper1">
<swiper-slide>
<div class="hands">右手</div>
<div class="outside">
<div
v-for="(item, index) in sourceFingersRightR"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'sourceFingersRightR')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<!-- 有指纹图片 -->
<div v-if="souceDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<img
v-else-if="
item.img &&
screenLoading == false &&
souceDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-if="
screenLoading == true && souceDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
souceDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
<div class="outside">
<div
v-for="(item, index) in destFingersRightR"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'destFingersRightR')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<div v-if="targetDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<!-- 有指纹图片 -->
<img
v-else-if="
item.img &&
screenLoading == false &&
targetDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-else-if="
screenLoading == true && targetDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
targetDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
</swiper-slide>
<swiper-slide>
<div class="hands">左手</div>
<div class="outside">
<!-- 源 左手 滚动 -->
<div
v-for="(item, index) in sourceFingersLeftR"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'sourceFingersLeftR')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<div v-if="souceDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<!-- 有指纹图片 -->
<img
v-else-if="
item.img &&
screenLoading == false &&
souceDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-if="
screenLoading == true && souceDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
souceDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
<div class="outside">
<!-- 左手 滚动 目标 -->
<div
v-for="(item, index) in destFingersLeftR"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'destFingersLeftR')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<div v-if="targetDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<!-- 有指纹图片 -->
<img
v-else-if="
item.img &&
screenLoading == false &&
targetDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-else-if="
screenLoading == true && targetDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
targetDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
</swiper-slide>
</swiper>
</div>
</div>
<!-- 平面 11-20 右拇始 -->
<div v-if="activeIndex == 2">
<!-- Swiper -->
<div class="swiper-main">
<swiper :options="swiperOption1" ref="swiper1">
<swiper-slide>
<div class="hands">右手</div>
<div class="outside">
<div
v-for="(item, index) in sourceFingersRightL"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'sourceFingersRightL')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<div v-if="souceDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<!-- 有指纹图片 -->
<img
v-if="
item.img &&
screenLoading == false &&
souceDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-else-if="
screenLoading == true && souceDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
souceDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
<div class="outside">
<div
v-for="(item, index) in destFingersRightL"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'destFingersRightL')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<div v-if="targetDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<!-- 有指纹图片 -->
<img
v-else-if="
item.img &&
screenLoading == false &&
targetDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-else-if="
screenLoading == true && targetDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
targetDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
</swiper-slide>
<swiper-slide>
<div class="hands">左手</div>
<div class="outside">
<!-- 源 左手 滚动 -->
<div
v-for="(item, index) in sourceFingersLeftL"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'sourceFingersLeftL')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<div v-if="souceDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<!-- 有指纹图片 -->
<img
v-if="
item.img &&
screenLoading == false &&
souceDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-else-if="
screenLoading == true && souceDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
souceDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
<div class="outside">
<!-- 左手 滚动 目标 -->
<div
v-for="(item, index) in destFingersLeftL"
:key="index"
>
<div
class="finger-img"
@dblclick="
showDetail(item, index, 'destFingersLeftL')
"
>
<img
v-if="fingerLoading"
class="img"
src="@/assets/img/fingerprint.gif"
/>
<div class="relative" v-else>
<div v-if="targetDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span>图像已删除</span>
</div>
<!-- 有指纹图片 -->
<img
v-else-if="
item.img &&
screenLoading == false &&
targetDel == false
"
:src="'data:image/jpeg;base64,' + item.img"
/>
<img
v-else-if="
screenLoading == true && targetDel == false
"
src="@/assets/img/zzjz/zwjz.gif"
/>
<div
v-else-if="
!item.img &&
screenLoading == false &&
targetDel == false
"
class="wtx"
>
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
</div>
</div>
<div class="label">{{ item.name }}</div>
</div>
</div>
</swiper-slide>
</swiper>
</div>
</div>
</div>
</div>
<!-- <t-t-finger-print-->
<!-- style="margin-top: -40px"-->
<!-- v-show="isFinger == true"-->
<!-- ></t-t-finger-print>-->
<t-t-plam
v-show="isPlam == true"
:sonSouceDel="souceDel"
@logbg="isShowbzDialogBg = true"
:sonTargetDel="targetDel"
:scouceCode="scouceCode"
:isPlam="isPlam"
:targetCode="targetCode"
:plamDetail="plamDetail"
></t-t-plam>
<t-t-face
v-show="isFace == true"
:faceDetail="faceDetail"
@logbg="isShowbzDialogBg = true"
:sonSouceDel="souceDel"
:sonTargetDel="targetDel"
:scouceCode="scouceCode"
:targetCode="targetCode"
></t-t-face>
</div>
</div>
<!-- 认定完成确认框 -->
<!-- <div
class="rdwcDialog"
v-show="isShowrdwcDialogBg"
@click="cancelrdwc"
></div> -->
<div
class="jiantou"
ref="jiantou"
style="width: 100px; height: 100px"
v-show="isFinger"
@click="jiantoudianji"
>
<img
src="@/assets/img/jiantou.gif"
alt=""
width="100px"
height="100px"
/>
</div>
</div>
<!-- 加载动画 -->
<div class="loading" v-show="loading_sd">
<div class="loading-finger">
<img src="@/assets/img/loadingfinger.gif" alt="" />
</div>
<div class="loading-name">
<img src="@/assets/img/loadingtxt.gif" alt="" />
</div>
</div>
<!-- 认定判断弹框 -->
<div class="rdwccontent" v-show="isShowrdwcDialog">
<div class="title">当前候选未全部查看,是否确认认定完成?</div>
<div class="rdwcbtns">
<button class="rdwcconfirm" @click="confirmrdwc">确认</button>
<button class="rdwccancel" @click="cancelrdwc">取消</button>
</div>
</div>
<!-- 指纹详情 -->
<div class="detail" v-show="isShowDetail">
<div class="head-title">{{ zwName }}</div>
<div class="finger">
<div v-if="souceDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span class="cccccc">图像已删除</span>
</div>
<img
v-else-if="sourceImgdetail && souceDel == false"
:src="'data:image/jpeg;base64,' + sourceImgdetail"
style="width: 100%; height: 100%"
/>
<div v-else-if="!sourceImgdetail && souceDel == false" class="wtx">
<img src="@/assets/img/TT/zwtp.png" />
<span class="cccccc">暂无图像</span>
</div>
</div>
<div class="finger">
<div v-if="targetDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span class="cccccc">图像已删除</span>
</div>
<img
v-else-if="destImgdetail && targetDel == false"
:src="'data:image/jpeg;base64,' + destImgdetail"
style="width: 100%; height: 100%"
/>
<div v-else-if="!destImgdetail && targetDel == false" class="wtx">
<img src="@/assets/img/TT/zwtp.png" />
<span class="cccccc">暂无图像</span>
</div>
</div>
</div>
<!-- 比中弹窗 -->
<div class="bzDialog" v-show="isShowbzDialogBg" @click="cancelbz"></div>
<div class="bzcontent" v-show="isShowbzDialog">
<div class="head-title">
<div class="left">比中</div>
<div class="close" @click="cancelbz">
<img src="@/assets/img/TT/close.png" alt="" />
</div>
</div>
<div class="bzdesc">
<div class="bz-source">
<div class="bzitem">
<div class="bzname">查询类型:</div>
<div class="bzvalue cc">
<div class="dot"></div>
查重
</div>
</div>
<br />
<div class="bz-src-item">
<div class="img">
照片
<div class="title">源数据</div>
</div>
<div class="item">
<div class="title">人员编号:</div>
<div class="value">{{ sourceObj.barcode }}</div>
<div class="title">姓名:</div>
<div class="value">{{ bzsource.xm }}</div>
<div class="title">捺印日期:</div>
<div class="value">{{ bzsource.nysj }}</div>
</div>
</div>
<div class="bz-src-item">
<div class="img">
照片
<div class="title">目标数据</div>
</div>
<div class="item">
<div class="title">人员编号:</div>
<div class="value">{{ targetObj.destbarcode }}</div>
<div class="title">姓名:</div>
<div class="value">{{ bztarget.xm }}</div>
<div class="title">捺印日期:</div>
<div class="value">{{ bztarget.nysj }}</div>
</div>
</div>
</div>
<div class="bz-target">
<div class="bzitem">
<div class="bzname">比中单位:</div>
<div class="bzvalue">{{ bzr.unitName }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中人:</div>
<div class="bzvalue">{{ bzr.name }}</div>
</div>
<div class="bzitem">
<div class="bzname">单位代码:</div>
<div class="bzvalue">{{ bzr.unitCode }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中人身份证号:</div>
<div class="bzvalue">{{ bzr.idCard }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中时间:</div>
<div class="bzvalue">{{ bzr.bzTime }}</div>
</div>
<div class="bzitem">
<div class="bzname">比中人联系电话:</div>
<el-input
class="bzphone"
v-model="bzr.phoneNumber"
disabled
placeholder="请输入内容"
></el-input>
<div class="input-error" v-show="isPhoneError">
<!-- <img src="@/assets/img/inputerror.png" alt=""> -->
<svg-icon icon-class="error" class="icon" />
</div>
<div class="error-desc" v-show="isPhoneError">
联系电话不应低于7位数!
</div>
</div>
</div>
<div class="line"></div>
<div class="bzfooter">
<div class="footer-title">备注</div>
<el-input
type="textarea"
:rows="5"
placeholder="在此输入备注信息"
v-model="textarea"
>
</el-input>
</div>
<div class="bzbtns">
<button class="bzconfirm" @click="confirmbz">确认</button>
<button class="bzcancel" @click="cancelbz">取消</button>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import "swiper/dist/css/swiper.css";
import { swiper, swiperSlide } from "vue-awesome-swiper";
import TTPlam from "@/views/cxyrd/modules/TTPlam.vue";
import TTFace from "@/views/cxyrd/modules/TTFace.vue";
import Utils from "@/utils/util.js";
import "@/icons/error.svg";
import Swiper from "@/components/swiper.vue";
export default {
name: "TT",
components: {
TTPlam,
TTFace,
swiper,
swiperSlide,
Swiper,
},
computed: {
...mapState({
loading_sd: (state) => state.loading.loading_sd,
}),
roleArr() {
return this.$store.state.layout.Menu;
},
},
data() {
return {
width1: 50,
height: 150,
souceDel: false,
souceDelText: "",
targetDel: false,
targetDelText: "",
swiperOption: {
//swiper3
observer: true,
direction: "vertical",
mousewheel: true,
// loop: true,
// autoplay: true,
speed: 1000,
pagination: {
el: ".swiper-pagination",
},
scrollbar: {
el: ".swiper-scrollbar",
},
},
swiperOption1: {
//swiper3
observer: true,
direction: "vertical",
mousewheel: true,
// loop: true,
// autoplay: true,
speed: 1000,
pagination: {
el: ".swiper-pagination",
},
scrollbar: {
el: ".swiper-scrollbar",
},
},
activeIndex3: 0,
dataType: null,
qid: null,
currentQqid: null,
tableData: [],
isFinger: true,
isPlam: false,
isFace: false,
barcode: null,
isShowbzDialog: false,
isShowbzDialogBg: false,
isShowDetail: false,
isShowDetailBg: false,
phone: null,
radio: 6,
textarea: "",
sourceloading: false,
destloading: false,
destbarcode: "",
sourcebarcode: "",
activeIndex: 1,
sourcedatas: [],
sourcedatasIndex: -1,
sourcedatasLength: -1,
sourceImgdetail: "",
destImgdetail: "",
sourceFingersLeftR: [
{ name: "拇", code: 6, img: null },
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null },
],
sourceFingersRightR: [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null },
],
sourceFingersLeftL: [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null },
],
sourceFingersRightL: [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null },
],
destFingersLeftR: [
{ name: "拇", code: 6, img: null },
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null },
],
destFingersRightR: [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null },
],
destFingersLeftL: [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null },
],
destFingersRightL: [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null },
],
rdcount: 0, // 认定条数
// 指纹图片加载
fingerLoading: true,
bzdw: "",
bzr: {
bzTime: "",
idCard: "",
phoneNumber: "",
name: "",
unitCode: "",
unitName: "",
},
dwdm: "",
bzrsfzh: "",
bzsj: "",
isPhoneError: false,
// 是否展示认定完成确认框背景
isShowrdwcDialogBg: false,
// 是否展示认定完成确认框
isShowrdwcDialog: false,
issrcAffirmStatus: -1,
isdestAffirmStatus: -1,
index: 0,
flag: false,
colors: 1,
screenLoading: false,
loadingIndex: 0,
timer: null,
btnPlace: "top",
userName: "",
dateTime: "",
zwName: "",
sLoading: "",
zhihui: false,
//源barcode
scouceCode: "",
//目标barcode
targetCode: "",
sonSouceDel: false,
sonTargetDel: false,
faceDetail: 1,
plamDetail: 1,
//当前展示的源对象
sourceObj: {},
//当前展示的目标对象
targetObj: {},
//比中弹框目标信息
bztarget: {
xm: "",
nysj: "",
},
//比重弹框目标信息
bzsource: {
xm: "",
nysj: "",
},
};
},
created() {
let w1 = 1920;
let w2 = window.innerWidth;
this.height = (this.height * w2) / w1;
this.width1 = (this.width1 * w2) / w1;
this.dataType = this.$route.query.type;
this.qid = this.$route.query.qid;
this.currentQqid = this.$route.query.qqid;
this.getSourceList();
this.activeIndex = 1;
//console.log("源qid===>", this.qid);
//console.log("源qqid===>", this.currentQqid);
},
watch: {
souceDel: {
handler(val) {
if (!val && !this.targetDel) {
this.zhihui = false;
} else {
this.zhihui = true;
}
this.sonSouceDel = val;
},
immediate: true,
},
targetDel: {
handler(val) {
if (!val && !this.souceDel) {
this.zhihui = false;
} else {
this.zhihui = true;
}
this.sonTargetDel = val;
},
immediate: true,
},
phone(newValue, oldValue) {
if (newValue.length < 7) {
this.isPhoneError = true;
document
.getElementsByTagName("body")[0]
.style.setProperty("--phone", "#ff4242");
} else {
this.isPhoneError = false;
document
.getElementsByTagName("body")[0]
.style.setProperty("--phone", "#606266");
}
},
sourcebarcode(val) {
this.finger();
this.scouceCode = val;
},
destbarcode(val) {
this.finger();
this.targetCode = val;
},
screenLoading(val) {},
loadingIndex(val, oldval) {
if (oldval == 0) {
this.screenLoading = true;
// this.sLoading = this.$loading({
// // 通过cdn引入的element-ui
// customClass: "screen",
// spinner: "screenIcon",
// lock: true,
// text: " ",
// background: "rgba(255, 255, 255, 0.9)",
// });
}
if (this.timer) clearTimeout(this.timer);
if (val == 0) {
this.timer = setTimeout(() => {
this.screenLoading = false;
// this.sLoading.close();
// this.sLoading = null;
}, 200);
}
},
},
methods: {
// 滚动平面选择切换
handleSelect(index) {
this.activeIndex = index;
//console.info(this.activeIndex);
if (index == 1) {
//console.info("滚动指纹");
}
if (index == 2) {
//console.info("平面指纹");
}
},
jiantoudianji() {
if (this.btnPlace == "top") {
this.btnPlace = "bottom";
this.$refs.swiper1.swiper.slideNext(1500);
this.$refs.jiantou.style.transform = "rotate(180deg)";
} else {
this.btnPlace = "top";
this.$refs.swiper1.swiper.slidePrev(1500);
this.$refs.jiantou.style.transform = "rotate(0deg)";
}
},
// 获取上一条
last(index) {
let i = index;
if (index > 0) {
this.currentQqid = this.sourcedatas[i - 1].qqid;
this.sourcebarcode = this.sourcedatas[i - 1].barcode;
this.sourceObj = this.sourcedatas[i - 1];
this.fingerLoading = true;
this.$set(this.sourcedatas[i - 1], "clickLog", "1");
if (this.sourcedatas[i - 1].removeFlag == "1") {
this.souceDel = true;
this.souceDelText = this.$moment(
this.sourcedatas[i - 1].removeTime
).format("YYYY.MM.DD HH:mm");
} else {
this.souceDel = false;
}
// 指纹图清空
this.clearsource();
this.cleardest();
// 获取源的滚动
this.getSourceRollFingerPrintDetail(this.sourcebarcode);
// 获取源的平面
this.getSourcePlainFingerPrintDetail(this.sourcebarcode);
// 获取候选列表
this.getMatchcandList();
} else {
this.$message.warning("没上一条了");
}
},
// 获取下一条
next(index) {
let i = index;
// 当源数据卡片数量大于一的时候才点击
if (this.sourcedatas.length - 1 > index) {
this.currentQqid = this.sourcedatas[i + 1].qqid;
this.sourcebarcode = this.sourcedatas[i + 1].barcode;
this.sourceObj = this.sourcedatas[i + 1];
this.$set(this.sourcedatas[i + 1], "clickLog", "1");
if (this.sourcedatas[i + 1].removeFlag == "1") {
this.souceDel = true;
this.souceDelText = this.$moment(
this.sourcedatas[i + 1].removeTime
).format("YYYY.MM.DD HH:mm");
} else {
this.souceDel = false;
}
this.fingerLoading = true;
// 指纹图清空
this.clearsource();
this.cleardest();
// 获取源的滚动
this.getSourceRollFingerPrintDetail(this.sourcebarcode);
// 获取源的平面
this.getSourcePlainFingerPrintDetail(this.sourcebarcode);
// 获取候选列表
this.getMatchcandList();
} else {
this.$message.warning("没下一条了");
}
},
// 获取源数据
getSourceList() {
let me = this;
this.screenLoading = true;
this.loadingIndex++;
if (me.dataType == "father") {
me.$axios
.post("/api/queryque/standardAll", {
contrastCustomSearchReq: { qid: me.qid },
})
.then((res) => {
me.loadingIndex--;
if (res.data.code == 0) {
me.sourcedatas = res.data.ret;
me.sourcedatasLength = res.data.ret.length;
me.sourcebarcode = res.data.ret[0].barcode;
me.currentQqid = res.data.ret[0].qqid;
me.sourceObj = res.data.ret[0];
me.$set(me.sourcedatas[0], "clickLog", 1);
if (res.data.ret[0].removeFlag == "1") {
this.souceDel = true;
this.souceDelText = this.$moment(
res.data.ret[0].removeFlag.removeTime
).format("YYYY.MM.DD HH:mm");
} else {
this.souceDel = false;
}
me.getMatchcandList(me.currentQqid);
this.getSourceRollFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
this.getSourcePlainFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
// 认定条数
let count = 0;
me.sourcedatas.forEach((item, index) => {
if (item.affirmStatus == "1" || item.affirmStatus == "3") {
count += 1;
}
});
this.rdcount = count;
}
});
} else {
me.$axios
.post("/api/queryque/standardAll", {
contrastCustomSearchReq: { qqid: me.currentQqid },
})
.then((res) => {
me.loadingIndex--;
if (res.data.code == 0) {
me.sourcedatas = res.data.ret;
me.sourcedatasLength = res.data.ret.length;
me.sourcebarcode = res.data.ret[0].barcode;
//console.log(222);
if (res.data.ret[0].removeFlag == "1") {
this.souceDel = true;
this.souceDelText = this.$moment(
res.data.ret[0].removeFlag.removeTime
).format("YYYY.MM.DD HH:mm");
} else {
this.souceDel = false;
}
me.$set(me.sourcedatas[0], "clickLog", 1);
this.getSourceRollFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
this.getSourcePlainFingerPrintDetail(
res.data.ret[0].barcode,
"yes"
);
me.getMatchcandList(me.currentQqid);
if (
me.sourcedatas[0].affirmStatus == "1" ||
me.sourcedatas[0].affirmStatus == "3"
) {
this.rdcount = 1;
} else {
this.rdcount = 0;
}
}
//console.info("源数据", me.sourcedatas);
});
}
//console.log("源barcode===>", this.sourcebarcode);
},
// 获取候选列表
getMatchcandList() {
let me = this;
this.loadingIndex++;
if (me.currentQqid !== null) {
me.$axios
.get(
"/api/query/matchcand/" + me.currentQqid + "/" + me.sourcebarcode
)
.then((res) => {
me.loadingIndex--;
if (res.data.code == 0) {
me.tableData = res.data.ret;
me.$nextTick(() => {
me.$refs.singleTable.setCurrentRow(me.tableData[0]);
});
}
});
}
},
// 获取源平面指纹图
getSourcePlainFingerPrintDetail(barcode, type) {
let self = this;
this.loadingIndex++;
// 平面
this.$axios
.post("/api/png/plain/barcode", {
barcode: this.sourcebarcode,
})
.then(function (response) {
self.loadingIndex--;
if (response.data.code == 0) {
//console.info("源plan", response.data.ret);
response.data.ret.forEach((element, index) => {
// 源 左手 平面
self.sourceFingersLeftL.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
// 源 右手 平面
self.sourceFingersRightL.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
});
// 去掉加载状态
self.fingerLoading = false;
} else if (response.data.code == 4) {
// 去掉加载状态
self.fingerLoading = false;
}
})
.catch(function (error) {
//console.log(error);
});
},
// 获取源滚动指纹图
getSourceRollFingerPrintDetail(barcode, type) {
this.loadingIndex++;
let self = this;
// 滚动 源数据
this.$axios
.post("/api/png/roll/barcode", { barcode: barcode })
.then(function (response) {
self.loadingIndex--;
if (response.data.code == 0) {
response.data.ret.forEach((element, index) => {
// 源 左手 滚动
self.sourceFingersLeftR.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
// 源 右手 滚动
self.sourceFingersRightR.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
});
// 去掉加载状态
self.fingerLoading = false;
} else if (response.data.code == 4) {
// 去掉加载状态
self.fingerLoading = false;
}
})
.catch(function (error) {
//console.log(error);
});
},
// 获取目标的滚动指纹图
getDestRollFingerPrintDetail(barcode) {
let self = this;
this.loadingIndex++;
// 平面 目标
this.$axios
.post("/api/png/roll/barcode", {
barcode: this.destbarcode,
})
.then(function (response) {
self.loadingIndex--;
if (response.data.code == 0) {
//console.info("目标plan", response.data.ret);
response.data.ret.forEach((element, index) => {
// 目标 左手 平面
self.destFingersLeftL.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
// 目标 右手 平面
self.destFingersRightL.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
});
// 去掉加载状态
self.fingerLoading = false;
} else if (response.data.code == 4) {
// 去掉加载状态
self.fingerLoading = false;
}
})
.catch(function (error) {
//console.log(error);
});
},
// 获取目标的平面指纹图
getDestPlainFingerPrintDetail(barcode) {
let self = this;
this.loadingIndex++;
// 滚动 目标数据
this.$axios
.post("/api/png/plain/barcode", { barcode: this.destbarcode })
.then(function (response) {
self.loadingIndex--;
if (response.data.code == 0) {
//console.info("目标roll", response.data.ret);
response.data.ret.forEach((element, index) => {
// 目标 左手 滚动
self.destFingersLeftR.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
// 目标 右手 滚动
self.destFingersRightR.forEach((item) => {
if (item.code == element.seq) {
item.img = element.image;
}
});
}); // 去掉加载状态
} else if (response.data.code == 4) {
}
//console.log(response);
})
.catch(function (error) {
//console.log(error);
});
},
// 目标数据table的选中事件
handleCurrentChange(val) {
console.log(val);
if (val) {
this.targetObj = val;
val.clickLog = "1";
if (val.removeFlag == "1") {
this.targetDel = true;
this.targetDelText = this.$moment(val.removeTime).format(
"YYYY.MM.DD HH:mm"
);
} else {
this.targetDel = false;
}
this.destbarcode = val.destbarcode;
//console.info("destbarcode", this.destbarcode);
this.$bus.emit("ccbarcode", this.destbarcode);
}
},
// 比中与认定完成添加样式
tableRowClassName({ row, column, rowIndex, columnIndex }) {
//console.log("row", row.clickLog);
// 比中的行
if (row.affirmstatus == "2" || row.affirmstatus == "3") {
return "Bizhong";
} else if (row.affirmstatus == "1") {
// 认定完成的行
return "Identification";
}
// 浏览过的
if (row.clickLog == "1") {
return "looked";
}
},
//比中
Bz() {
if (
(this.targetObj.affirmstatus == 2 ||
this.targetObj.affirmstatus == 3) &&
(this.sourceObj.affirmStatus == 2 || this.sourceObj.affirmStatus == 3)
) {
this.$message.error("已经比中过的数据无法再次比中!");
return;
}
this.isShowbzDialogBg = true;
this.isShowbzDialog = true;
let params = JSON.parse(localStorage.getItem("userInfo"));
for (let key in this.bzr) {
this.bzr[key] = params[key];
}
this.getUser();
},
getUser() {
let self = this;
this.loadingIndex += 2;
this.$axios({
method: "post",
url: `/api/personstore/findname?ysxtAsjxgrybh=${this.sourceObj.barcode}`,
}).then((res) => {
this.loadingIndex--;
if (res.data.code == 0) {
let result = res.data.ret;
if (result) {
for (let key in self.bzsource) {
self.bzsource[key] = result[key];
}
this.$set(this.bzr, "bzTime", result.time);
}
}
});
this.$axios({
method: "post",
url: `/api/personstore/findname?ysxtAsjxgrybh=${this.targetObj.destbarcode}`,
}).then((res) => {
this.loadingIndex--;
if (res.data.code == 0) {
let result = res.data.ret;
if (result) {
for (let key in self.bztarget) {
self.bztarget[key] = result[key];
}
this.$set(this.bzr, "bzTime", result.time);
}
}
});
},
/**
* @description: 取消认定完成
* @param {*}
* @return {*}
*/
cancelrdwc() {
this.isShowbzDialogBg = false;
this.isShowrdwcDialogBg = false;
this.isShowrdwcDialog = false;
},
// 认定完成
Rdwc() {
if (this.sourcedatas.length <= 1) {
this.confirmrdwc();
return;
}
//console.info("认定完成");
this.loadingIndex++;
// 认定之前的操作
this.$axios
.post("/api/matchcand/affirm/confirm", { qqid: this.currentQqid })
.then((res) => {
this.loadingIndex--;
//console.log(res);
if (!res.data.ret) {
this.isShowbzDialogBg = true;
this.isShowrdwcDialogBg = true;
this.isShowrdwcDialog = true;
} else {
// 执行认定完成
this.confirmrdwc();
}
});
},
// 确认认定完成
confirmrdwc() {
let self = this;
this.isShowrdwcDialogBg = false;
this.isShowbzDialogBg = false;
this.isShowrdwcDialog = false;
this.loadingIndex++;
// 1:倒查
let querytype = 0;
this.$axios
.post("/api/matchcand/affirm/finish", {
srcbarcode: self.sourcebarcode,
destbarcode: self.destbarcode,
qqid: self.currentQqid,
qid: self.qid,
querytype: querytype,
})
.then((response) => {
this.loadingIndex--;
// 跟新列表数据
self.$bus.emit("updateTTSourceData");
// this.getMatchcandList();
let index = this.sourcedatas.findIndex(
(i) => i.barcode == this.sourcebarcode
);
if (index >= 0) {
let obj = this.sourcedatas[index];
if (obj.affirmStatus != "1" && obj.affirmStatus != "3") {
this.rdcount += 1;
}
if (obj.affirmStatus == "2" || obj.affirmStatus == "3") {
obj.affirmStatus = "3";
} else {
obj.affirmStatus = "1";
}
this.$set(this.sourcedatas, index, obj);
}
this.tableData = this.tableData.map((i) => {
if (i.affirmstatus == "2" || i.affirmstatus == "3") {
i.affirmstatus = "3";
} else {
i.affirmstatus = "1";
}
return i;
});
//console.log(response);
this.$message.success("认定完成!");
if (self.datatype == "son") {
window.close();
}
});
},
// 指纹可见
finger() {
this.isFinger = true;
this.isPlam = false;
this.isFace = false;
},
// 掌纹可见
plam() {
this.isPlam = true;
this.isFinger = false;
this.isFace = false;
},
// 人像可见
face() {
this.isFace = true;
this.isFinger = false;
this.isPlam = false;
},
// 取消比中
cancelbz() {
this.isShowbzDialogBg = false;
this.isShowbzDialog = false;
this.cancelDetail();
this.cancelrdwc();
this.faceDetail++;
this.plamDetail++;
},
// 确认比中
confirmbz() {
let self = this;
//console.log("比中");
this.loadingIndex++;
let querytype = 0;
this.$axios
.post("/api/matchcand/affirm/hit", {
srcbarcode: self.sourcebarcode,
destbarcode: self.destbarcode,
qid: parseInt(self.qid),
queryType: "0",
qqid: parseInt(self.currentQqid),
userName: self.bzr.name,
idCard: self.bzr.idCard,
tel: self.bzr.phoneNumber,
unit: self.bzr.unitName,
unitCode: self.bzr.unitCode,
affirmtime: new Date(self.bzr.bzTime),
affirmDescribe: self.textarea,
})
.then((response) => {
this.loadingIndex--;
if (response.data.code == 0) {
// 跟新列表数据
self.$bus.emit("updateTTSourceData");
//源数据手动修改状态
let index = this.sourcedatas.findIndex(
(i) => i.barcode == this.sourcebarcode
);
if (index >= 0) {
let obj = this.sourcedatas[index];
if (obj.affirmStatus == "1" || obj.affirmStatus == "3") {
obj.affirmStatus = "3";
} else {
obj.affirmStatus = "2";
}
this.$set(this.sourcedatas, index, obj);
}
//目标数据手动修改状态
let tableDataIndex = this.tableData.findIndex(
(i) => i.destbarcode == this.destbarcode
);
let newObj = this.tableData[tableDataIndex];
if (newObj.affirmstatus == "1" || newObj.affirmstatus == "3") {
newObj.affirmstatus = "3";
} else {
newObj.affirmstatus = "2";
}
this.$set(this.tableData, tableDataIndex, newObj);
self.isShowbzDialogBg = false;
self.isShowbzDialog = false;
this.$message.success("比中成功!");
//console.log(response);
}
})
.catch((err) => {
this.$message.error("比中失败!");
});
},
// 展示详情
showDetail(fingerData, index, name) {
//console.info("指纹详情==》", fingerData);
//console.info("指纹详情", index);
//console.info(name);
this.isShowDetail = true;
this.isShowbzDialogBg = true;
this.zwName = fingerData.name;
let sourceimg = "";
let destimg = "";
// 源 左手的滚动
if (name == "sourceFingersLeftR") {
sourceimg = fingerData.img;
destimg = this.destFingersLeftR[index].img;
} else if (name == "sourceFingersRightR") {
sourceimg = fingerData.img;
destimg = this.destFingersRightR[index].img;
} else if (name == "sourceFingersLeftL") {
sourceimg = fingerData.img;
destimg = this.destFingersLeftL[index].img;
} else if (name == "sourceFingersRightL") {
sourceimg = fingerData.img;
destimg = this.destFingersRightL[index].img;
} else if (name == "destFingersLeftR") {
destimg = fingerData.img;
sourceimg = this.sourceFingersLeftR[index].img;
} else if (name == "destFingersRightR") {
destimg = fingerData.img;
sourceimg = this.sourceFingersRightR[index].img;
} else if (name == "destFingersLeftL") {
destimg = fingerData.img;
sourceimg = this.sourceFingersLeftL[index].img;
} else if (name == "destFingersRightL") {
destimg = fingerData.img;
sourceimg = this.sourceFingersRightL[index].img;
} else {
this.$message.error("没有数据");
}
this.sourceImgdetail = sourceimg;
this.destImgdetail = destimg;
},
// 取消详情
cancelDetail() {
this.isShowDetail = false;
this.isShowbzDialogBg = false;
},
// 清空源指纹图
clearsource() {
(this.sourceFingersLeftR = [
{ name: "拇", code: 6, img: null },
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null },
]),
(this.sourceFingersRightR = [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null },
]),
(this.sourceFingersLeftL = [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null },
]),
(this.sourceFingersRightL = [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null },
]);
},
// 清空目标指纹图
cleardest() {
(this.destFingersLeftR = [
{ name: "拇", code: 6, img: null },
{ name: "食", code: 7, img: null },
{ name: "中", code: 8, img: null },
{ name: "环", code: 9, img: null },
{ name: "小", code: 10, img: null },
]),
(this.destFingersRightR = [
{ name: "拇", code: 1, img: null },
{ name: "食", code: 2, img: null },
{ name: "中", code: 3, img: null },
{ name: "环", code: 4, img: null },
{ name: "小", code: 5, img: null },
]),
(this.destFingersLeftL = [
{ name: "拇", code: 16, img: null },
{ name: "食", code: 17, img: null },
{ name: "中", code: 18, img: null },
{ name: "环", code: 19, img: null },
{ name: "小", code: 20, img: null },
]),
(this.destFingersRightL = [
{ name: "拇", code: 11, img: null },
{ name: "食", code: 12, img: null },
{ name: "中", code: 13, img: null },
{ name: "环", code: 14, img: null },
{ name: "小", code: 15, img: null },
]);
},
scrollFunc(e) {
e = e || window.event;
if (this.flag) {
return 0;
} else {
this.flag = true;
setTimeout(() => {
this.flag = false;
}, 300);
}
if (e.wheelDelta) {
e.wheelDelta > 0 && this.index--;
e.wheelDelta < 0 && this.index++;
if (this.index < 0) this.index = 0;
if (this.index >= this.colors) this.index = this.colors - 1;
window.scrollTo({
top: 769 * this.index,
behavior: "smooth",
});
} else if (e.detail) {
e.detail > 0 && this.index--;
e.detail < 0 && this.index++;
if (this.index < 0) this.index = 0;
if (this.index >= this.colors) this.index = this.colors - 1;
window.scrollTo({
top: 769 * this.index,
behavior: "smooth",
});
}
},
},
mounted() {
this.finger();
this.$bus.on("ccbarcode", (code) => {
this.cleardest();
this.getDestRollFingerPrintDetail(code);
this.getDestPlainFingerPrintDetail(code);
});
setTimeout(() => {
let self = this;
this.$refs.swiper1.swiper.on("slideChangeTransitionStart", function () {
if (self.$refs.swiper1.swiper.isEnd) {
self.btnPlace = "bottom";
self.$refs.jiantou.style.transform = "rotate(180deg)";
} else {
self.btnPlace = "top";
self.$refs.jiantou.style.transform = "rotate(0deg)";
}
});
}, 200);
},
};
</script>
<style scoped lang="scss">
div {
margin: 0;
padding: 0;
display: inline-block;
///*border: none;*/
}
.tt {
width: 100%;
height: 100vh;
background-color: #ffffff;
padding: 0 24px 24px 24px;
display: flex;
flex-direction: column;
overflow: hidden;
}
.header {
border-bottom: 2px solid #eeeeee;
height: 52px;
padding-bottom: 10px;
display: flex;
flex-direction: row;
justify-content: space-between;
.label {
align-self: flex-start;
height: 22px;
font-size: 16px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #fa9500;
line-height: 22px;
margin-top: 14px;
}
.btns {
align-self: flex-end;
//margin-right: 50px;
margin-top: 18px;
color: #ffffff;
font-size: 14px;
line-height: 22px;
.bz-btn {
width: 96px;
height: 32px;
background: #ff0039;
border-radius: 4px;
margin-right: 16px;
text-align: center;
line-height: 32px;
cursor: pointer;
}
.rd-btn {
width: 96px;
height: 32px;
background: #055fe7;
border-radius: 4px;
text-align: center;
line-height: 32px;
cursor: pointer;
}
}
}
.relative {
width: 100%;
height: 100%;
position: relative;
.wtx {
position: absolute;
width: 75%;
left: 50%;
top: 45%;
transform: translate(-50%, -50%);
> span {
display: inline-block;
margin-top: 20px;
font-size: 14px;
color: #cccccc !important;
}
}
}
.cccccc {
font-size: 18px !important;
color: #cccccc !important;
display: inline-block;
margin-top: 10px;
}
.main {
width: 100%;
display: flex;
flex-direction: column;
.data {
width: 100%;
height: 200px;
padding: 0 25px 0 25px;
display: flex;
z-index: 333;
flex-direction: row;
justify-content: space-between;
align-items: center;
.source-data {
position: relative;
z-index: 500;
.source-top {
height: 25px;
width: 315px;
display: flex;
flex-direction: row;
justify-content: space-between;
.barcode {
width: 117px;
height: 22px;
font-size: 14px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #282f3c;
line-height: 22px;
}
.count {
width: 116px;
height: 22px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #055fe7;
line-height: 22px;
}
}
.source-bottom {
width: 400px;
height: 120px;
border-radius: 6px;
.source-count {
background: url("../../assets/img/TT/ttbg.png") no-repeat right top;
width: 315px;
height: 26px;
//position: absolute;
//left: 294px;
padding-right: 9px;
text-align: right;
line-height: 26px;
font-size: 12px;
color: #999999;
}
.source {
margin: 7px 0 9px 24px;
height: 20px;
.label {
width: 73px;
height: 19px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #999999;
line-height: 19px;
}
.value {
width: 191px;
height: 19px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
line-height: 19px;
&.bz {
color: #ff0039;
}
&.rd {
color: #055fe7;
}
}
}
.more {
border-top: #eeeeee 1px solid;
width: 315px;
height: 27px;
margin-top: 9px;
padding-top: 9px;
text-align: center;
.last {
width: 157px;
height: 20px;
border-right: #eeeeee 1px solid;
img {
margin-top: -7px;
}
}
.next {
width: 157px;
img {
margin-top: -7px;
}
}
}
}
}
.btns {
position: relative;
top: 0px;
// left: 180px;
height: 100px;
text-align: center;
.btn {
width: 72px;
height: 40px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #2e3846;
line-height: 40px;
border-radius: 4px;
border: 1px solid #aeb5c2;
margin: 0 12px 12px 12px;
cursor: pointer;
&:hover {
background: #055fe7;
color: #ffffff;
}
&.active {
background: #055fe7;
color: #ffffff;
}
}
.menu {
border-bottom: 1px solid #eeeeee;
//border-bottom: 2px solid #055fe7;
.menu-item {
width: 132px;
height: 40px;
background: #ffffff;
font-size: 14px;
color: #333333;
font-family: MicrosoftYaHei;
line-height: 40px;
cursor: pointer;
&:hover {
border-bottom: 2px solid #055fe7;
color: #055fe7;
}
&.active {
border-bottom: 2px solid #055fe7;
background: #ffffff;
color: #055fe7;
}
}
}
}
.dest-data /deep/ {
position: relative;
width: 340px;
height: 160px;
.current-row {
td {
background: #ecf5ff;
}
}
}
}
.imgs {
width: inherit;
height: 700px;
display: flex;
flex-direction: row;
.fingers {
display: flex;
flex-direction: row;
margin-top: -40px;
width: auto;
height: 700px;
.data-label {
margin: 0 16px 0 24px;
height: 700px;
.source-label {
width: 40px;
height: 320px;
background: #f6f8fa;
border-radius: 8px 0px 0px 8px;
margin-top: 40px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 18px;
font-family: MicrosoftYaHei;
color: #055fe7;
line-height: 40px;
}
.dest-label {
width: 40px;
height: 320px;
background: #f6f8fa;
border-radius: 8px 0px 0px 8px;
margin-top: 45px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 18px;
font-family: MicrosoftYaHei;
color: #ff6200;
line-height: 40px;
}
}
.finger-data {
margin-top: -10px;
height: 700px;
//overflow: scroll;
overflow: hidden;
.hands {
width: 800px;
height: 30px;
font-size: 20px;
font-family: MicrosoftYaHei;
color: #333333;
line-height: 40px;
margin-left: -50px;
}
.outside {
width: 100%;
height: 320px;
padding-top: 3px;
.finger-img {
width: 280px;
height: 280px;
background: #ffffff;
border-radius: 8px;
border: 1px solid #cccccc;
cursor: pointer;
.img {
object-fit: contain;
margin-top: 35%;
}
}
.label {
width: 100%;
height: 40px;
text-align: center;
margin-top: 3px;
}
}
}
}
}
}
/deep/.dest-table {
width: 100%;
.Bizhong {
.cell {
color: #ff0039 !important;
}
}
.Identification {
td {
.cell {
color: #055fe7;
}
}
}
.looked {
.cell {
color: #999;
}
}
}
/* 修改表头内容 */
/deep/.dest-table .el-table__header-wrapper th {
height: 12px;
background: #f6f8fa;
color: #282f3c;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #282f3c;
line-height: 32px;
border: none;
}
/deep/.el-table td,
.el-table th {
padding: 0;
}
/deep/.el-table th,
.el-table th {
padding: 0;
}
.loading {
z-index: 999999;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba($color: #fff, $alpha: 0.65);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.loading-finger {
width: 100px;
height: 100px;
img {
width: 100%;
height: 100%;
}
}
.loading-name {
width: 100px;
height: auto;
margin-top: 20px;
img {
width: 100%;
height: 100%;
}
}
}
/* 修改表格里内容 */
/deep/.dest-table .el-table__body-wrapper tr td {
height: 24px;
background: #ffffff;
font-size: 12px;
color: #333333;
border: none;
border-bottom: 1px #f6f8fa solid;
border-top: 1px #f6f8fa solid;
}
/* 选中的颜色 */
/deep/.dest-table tbody tr.current-row > td {
background: #f5f5f7;
}
/* 划过的颜色 */
/deep/.dest-table tbody tr:hover > td {
/*background-color: #231994 !important;*/
background-color: #f5f5f7 !important;
}
.swiper-main {
width: 100%;
height: 750px;
padding-top: 30px;
position: relative;
}
.swiper-container {
width: 100%;
height: 750px;
}
.swiper-pagination {
bottom: 0;
width: 100%;
}
::v-deep .swiper-pagination-bullet-active {
background-color: #b0352f;
}
::v-deep .swiper-pagination-bullet {
margin: 0 5px;
}
.main .data .btns .hui {
background-color: #ecedf1;
color: #c2c4c7;
border: none;
&:hover {
background-color: #ecedf1 !important;
color: #c2c4c7 !important;
}
}
.jiantou {
position: fixed;
width: 50px !important;
height: 50px !important;
background: #ffffff;
box-shadow: 0px 0px 5px 0px rgba(5, 95, 231, 0.4);
border-radius: 8px;
line-height: 60px;
border-radius: 50%;
text-align: center;
right: 50px;
top: 50%;
transform: translateY(-40%);
cursor: pointer;
z-index: 888;
transition: all 1s;
transform: rotate(0deg);
> img {
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
height: 30px !important;
width: 30px !important;
cursor: pointer;
}
}
.el-carousel__item h3 {
color: #475669;
font-size: 18px;
opacity: 0.75;
line-height: 300px;
margin: 0;
}
.el-carousel__item:nth-child(2n) {
background-color: #99a9bf;
}
.el-carousel__item:nth-child(2n + 1) {
background-color: #d3dce6;
}
@import "@/views/cxyrd/TT.scss";
</style>
/*
* @Author: your name
* @Date: 2021-09-07 09:57:48
* @LastEditTime: 2021-12-17 10:19:46
* @LastEditTime: 2021-12-17 10:33:54
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \指纹系统\founder_vue\vue.config.js
......@@ -129,9 +129,9 @@ module.exports = {
"/security": {
//target: "http://192.168.128.106:8765", // 湖南-王
// target: "http://192.168.128.121:8765", // 湖南-张
target: "http://192.168.128.121:8765", // 湖南-张
// target: "http://www.meetfood.cn:2390", // 湖南-王
target: "http://zwpt.xzclub.top:9333",
// target: "http://zwpt.xzclub.top:9333",
ws: true,
changeOrigin: true,
pathRewrite: {
......
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