Commit e1466a36 by li_hongchao

网络请求整合封装

比中信息审核按新框架改造
parent 57414ac7
......@@ -7,195 +7,215 @@
* @FilePath: \指纹系统\founder_vue\src\App.vue
-->
<template>
<div id="app">
<router-view v-wechat-title="$route.meta.title"></router-view>
</div>
<div id="app">
<router-view v-wechat-title="$route.meta.title"></router-view>
</div>
</template>
<script>
export default {
created() {
logger.logo()
// console.log(document.body.scrollHeight)
var lett = this;
var lett = this
document.onkeydown = function (e) {
var key = window.event.keyCode;
var key = window.event.keyCode
if (key == 13) {
lett.$bus.emit("enter");
lett.$bus.emit('enter')
}
};
}
},
};
}
</script>
<style lang="scss">
/*每个页面公共css */
@import "assets/styles/main.scss";
#app {
height: 100%;
margin: 0;
padding: 0;
box-sizing: border-box;
}
@font-face {
font-family: "MicrosoftYaHei-Bold";
src: url("../src/assets/font/MSYHBD.ttf") format("truetype");
}
@font-face {
font-family: "MicrosoftYaHei";
src: url("../src/assets/font/MSYH.ttf") format("truetype");
}
.boxShadow {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
// background: url('~@/assets/img/shadow.png') 0 0 / cover;
z-index: -100;
opacity: 0.65;
}
// 滚动条的宽度
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
width: 6px; // 横向滚动条
height: 6px; // 纵向滚动条 必写
}
.el-message {
z-index: 999999 !important;
}
// 滚动条的滑块
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
background-color: #dadde0;
border-radius: 3px;
}
// 表头
/deep/ .has-gutter {
font-weight: normal;
th {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #282f3c;
font-weight: normal;
}
}
// 修改多选框样式
/deep/ .el-checkbox.is-checked {
.el-checkbox__label {
color: #333333;
}
.el-checkbox__input.is-checked {
.el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
}
/*每个页面公共css */
@import "assets/styles/main.scss";
#app {
height: 100%;
margin: 0;
padding: 0;
box-sizing: border-box;
}
@font-face {
font-family: "MicrosoftYaHei-Bold";
src: url("../src/assets/font/MSYHBD.ttf") format("truetype");
}
@font-face {
font-family: "MicrosoftYaHei";
src: url("../src/assets/font/MSYH.ttf") format("truetype");
}
.boxShadow {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
// background: url('~@/assets/img/shadow.png') 0 0 / cover;
z-index: -100;
opacity: 0.65;
}
// 滚动条的宽度
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
width: 6px; // 横向滚动条
height: 6px; // 纵向滚动条 必写
}
.el-message {
z-index: 999999 !important;
}
// 滚动条的滑块
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
background-color: #dadde0;
border-radius: 3px;
}
// 表头
/deep/ .has-gutter {
font-weight: normal;
th {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #282f3c;
font-weight: normal;
}
}
// 修改多选框样式
/deep/ .el-checkbox.is-checked {
.el-checkbox__label {
color: #333333;
}
.el-checkbox__input.is-checked {
.el-checkbox__inner {
background: #055fe7;
border-color: #055fe7;
}
}
}
</style>
<style lang="scss">
/deep/.el-message {
justify-content: flex-start !important;
}
/deep/ .el-message {
justify-content: flex-start !important;
}
.el-message-box__message {
margin: 23px 24px 17px 24px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
p {
line-height: 4rem !important;
}
}
.el-message-box__btns {
margin-bottom: 24px;
padding-bottom: 24px;
// 交换 确定 取消 按钮的位置
.el-button:nth-child(1) {
float: right;
margin-right: 23%;
width: 72px;
height: 40px;
background: #055fe7;
border-radius: 4px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #ffffff;
}
.el-button:nth-child(2) {
float: left;
margin-left: 23%;
width: 72px;
height: 40px;
background: #ffffff;
border-radius: 4px;
border: 1px solid #aeb5c2;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #2e3846;
}
}
.screenSave {
margin-right: 0 !important;
// background: #ffffff!important;
// border-radius: 4px!important;
// border: 1px solid #aeb5c2!important;
// font-size: 14px!important;
// font-family: MicrosoftYaHei!important;
// color: #2e3846!important;
}
.el-message-box {
position: relative;
display: inline-block;
width: 26.25rem;
padding-bottom: 0.625rem;
vertical-align: middle;
background-color: #fff;
border-radius: 0.25rem;
border: 0.0625rem solid #ebeef5;
font-size: 1.125rem;
-webkit-box-shadow: 0 0.125rem 0.75rem 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 0.125rem 0.75rem 0 rgba(0, 0, 0, 0.1);
text-align: left;
overflow: hidden;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 99999;
}
.el-message-box__status {
display: none !important;
}
.el-popconfirm__main {
margin: 23px 24px 17px 24px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
}
.el-popconfirm__action {
margin-bottom: 24px;
padding-bottom: 24px;
// 交换 确定 取消 按钮的位置
.el-button:nth-child(1) {
float: right;
margin-right: 23%;
width: 72px;
height: 32px;
background: #055fe7;
border-radius: 4px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #ffffff;
}
.el-button:nth-child(2) {
float: left;
margin-left: 23%;
width: 72px;
height: 32px;
background: #ffffff;
border-radius: 4px;
border: 1px solid #aeb5c2;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #2e3846;
}
}
.el-message-box__message {
margin: 23px 24px 17px 24px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
p {
line-height: 4rem !important;
}
}
.el-message-box__btns {
margin-bottom: 24px;
padding-bottom: 24px;
// 交换 确定 取消 按钮的位置
.el-button:nth-child(1) {
float: right;
margin-right: 23%;
width: 72px;
height: 40px;
background: #055fe7;
border-radius: 4px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #ffffff;
}
.el-button:nth-child(2) {
float: left;
margin-left: 23%;
width: 72px;
height: 40px;
background: #ffffff;
border-radius: 4px;
border: 1px solid #aeb5c2;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #2e3846;
}
}
.screenSave {
margin-right: 0 !important;
// background: #ffffff!important;
// border-radius: 4px!important;
// border: 1px solid #aeb5c2!important;
// font-size: 14px!important;
// font-family: MicrosoftYaHei!important;
// color: #2e3846!important;
}
.el-message-box {
position: relative;
display: inline-block;
width: 26.25rem;
padding-bottom: 0.625rem;
vertical-align: middle;
background-color: #fff;
border-radius: 0.25rem;
border: 0.0625rem solid #ebeef5;
font-size: 1.125rem;
-webkit-box-shadow: 0 0.125rem 0.75rem 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 0.125rem 0.75rem 0 rgba(0, 0, 0, 0.1);
text-align: left;
overflow: hidden;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 99999;
}
.el-message-box__status {
display: none !important;
}
.el-popconfirm__main {
margin: 23px 24px 17px 24px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #333333;
}
.el-popconfirm__action {
margin-bottom: 24px;
padding-bottom: 24px;
// 交换 确定 取消 按钮的位置
.el-button:nth-child(1) {
float: right;
margin-right: 23%;
width: 72px;
height: 32px;
background: #055fe7;
border-radius: 4px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #ffffff;
}
.el-button:nth-child(2) {
float: left;
margin-left: 23%;
width: 72px;
height: 32px;
background: #ffffff;
border-radius: 4px;
border: 1px solid #aeb5c2;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #2e3846;
}
}
</style>
......@@ -8,6 +8,8 @@
*/
import Vue from 'vue'
import './plugins/axios'
import fHttp from './request/http.js'
import NetUtil from './netmgr/NetUtil'
import App from './App.vue'
import router from './router'
import store from './store'
......@@ -65,6 +67,8 @@ Vue.prototype.$util = Util
window.util = Util
window.logger = LoggerUtil
window.user = UserUtil
window.fHttp = fHttp
window.NetUtil = NetUtil
Vue.use(VueWechatTitle)
Vue.use(VueClipboard)
Vue.use(VueBus)
......
const api = {
api: '/api',
security: '/security'
}
export default api
import bzxxsh from '../netmgr/bzxxgl/bzxxsh'
export default {
bzxxsh
}
const api = {
bzxxsh: '/api/hit',
}
export default api
import addrType from '../../netmgr/NetAddressType'
export function queryShList(_that, _parameter) {
return _that.$axios({
method: 'post',
url: api.bzxxsh + '/queryAllSh',
headers: {
'Content-Type': 'application/json'
},
data: _parameter
})
const _path = {
bzxxsh: addrType.api + '/hit',
}
export default {
shList(_parameter) {
return fHttp.postJson(_path.bzxxsh + '/queryAllSh', _parameter)
},
sh(_parameter) {
return fHttp.postJson(_path.bzxxsh + '/udateShzt', _parameter)
},
export function bzxxSh(_that, _parameter) {
return _that.$axios({
method: 'post',
url: api.bzxxsh + '/udateShzt',
headers: {
'Content-Type': 'application/json'
},
data: _parameter
})
}
updateJrzg(_parameter) {
return fHttp.postJson(_path.bzxxsh + '/updateJrzg', _parameter)
},
export function bzxxZg(_that, _parameter) {
return _that.$axios({
method: 'post',
url: api.bzxxsh + '/updateJrzg',
headers: {
'Content-Type': 'application/json'
},
data: _parameter
})
}
plsb(_parameter) { // 批量上报
return fHttp.postJson(_path.bzxxsh + '/insertBeach', _parameter)
},
export function bzxxPlSb(_that, _parameter) { // 批量上报
return _that.$axios({
method: 'post',
url: api.bzxxsh + '/insertBeach',
headers: {
'Content-Type': 'application/json'
},
data: _parameter
})
}
......@@ -98,7 +98,6 @@ _axios.interceptors.response.use(
if (error) {
hideLoading();
}
// NProgress.done();
return Promise.reject(error);
}
);
......
import axios from 'axios'
import {Message, MessageBox} from 'element-ui'
import qs from 'qs'
import {ACCESS_TOKEN} from '../store/mutation-types'
import router from '../router'
import {showLoading, hideLoading} from '@/utils/requestLoading'
// debugger
axios.defaults.timeout = 0
axios.defaults.headers = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json'
}
axios.defaults.responseType = 'json'
var instance = axios.create({// post 常规请求
headers: {
'Content-Type': 'multipart/form-data'
}
})
var json = axios.create({ // post json
headers: {
'Content-Type': 'application/json'
}
})
var down = axios.create({ // 文件下载
headers: {
'Content-Type': 'application/json'
},
})
// 初始化参数
let initConfig = (config) => {
if (config.url.indexOf('/login/myLoginForm') <= 0) {
const token = localStorage.getItem(ACCESS_TOKEN)
if (token) {
config.headers['Authorization'] = token // 让每个请求携带自定义 token 请根据实际情况自行修改
config.headers.BrowserHeader = 'H5'
}
}
config.cancelToken = new axios.CancelToken(cancel => {
if (!window._axiosPromiseArr) {
window._axiosPromiseArr = []
}
window._axiosPromiseArr.push({cancel})
})
// 判断当前请求是否设置了不显示Loading,默认显示
if (config.loading !== false) {
showLoading(config.loadingTarget) // 如果设置了targer,使用设置的target,比如el-table
}
// console.log('initConfig', config)
return config
}
let onError = (error) => {
if (error) {
hideLoading()
}
let result = {
code: -1,
message: ''
}
if (error.toString().indexOf('400') > 0) {
result.code = 400
result.message = '失败(400):客户端错误!'
} else if (error.toString().indexOf('403') > 0) {
result.code = 403
result.message = '失败(403):您的权限不足!'
} else if (error.toString().indexOf('404') > 0) {
result.code = 404
result.message = '失败(404):网络请求不存在!'
} else if (error.toString().indexOf('500') > 0) {
result.code = 500
result.message = '失败(500):服务器异常!'
} else if (error.toString().indexOf('501') > 0) {
result.code = 501
result.message = '失败(501):您的操作被取消或不允许提交!'
} else if (error.toString().indexOf('timeout') > 0) {
result.code = -1
result.message = '请求超时,请检查网络连接!'
} else if (error.toString().indexOf('Cancel') > 0) {
result.code = -1
result.message = '取消请求成功!'
} else {// 其他未知异常
result.code = -1
result.message = '未知错误:' + error.toString()
}
let errorMsg = error + '-------' + result.message
// Promise.reject(new Error(errorMsg))
logger.error(errorMsg)
return result
}
let onResponse = (response) => {
if (!response) return
if (response.headers && response.headers.token) localStorage.setItem(ACCESS_TOKEN, response.headers.token)
if (response.config && response.config.loading !== false) hideLoading(response.config.loadingTarget)
let status = response.data.code
let message = response.data.message
if (status === 0) {
// return response.data
} else if (status === '200') {
response.data.code = 0
} else if (status === 401) {
response.data.message = message === '未登录' ? '登陆超时,请重新登录!' : message
} else {
response.data.message = '未知异常:' + message
}
return response.data
}
// request 请求拦截器
axios.interceptors.request.use(
config => {
config.headers['Content-Type'] = 'application/json'
config = initConfig(config)
return config
}, onError)
// response 响应拦截器
axios.interceptors.response.use(onResponse, onError)
instance.interceptors.request.use(
config => {
config = initConfig(config)
return config
}, onError)
instance.interceptors.response.use(onResponse, onError)
json.interceptors.request.use(
config => {
config.headers['Content-Type'] = 'application/json'
config = initConfig(config)
return config
}, onError)
json.interceptors.response.use(onResponse, onError)
var resTimer
let handleError = (response) => {
if (!response) return
let code = response.code
let message = response.message
switch (code) {
case 401:
if (resTimer) clearTimeout(resTimer)
resTimer = setTimeout(() => {
hideLoading()
MessageBox.confirm(message, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
confirmButtonClass: 'screenSave',
closeOnPressEscape: false,
closeOnClickModal: false,
showCancelButton: false,
showClose: false,
type: 'warning'
}).then(() => {
localStorage.removeItem('token')
router.replace('/Login')
}).catch(() => {
})
}, 500)
break
}
Message({
message: message,
type: 'error'
})
}
let parseResponse = (resolve, reject, response) => {
if (response && response.code === 0) {
resolve(response)
} else {
handleError(response)
resolve(response)
}
}
export default {
/**
* 封装get方法
*/
get(url, params) {
return new Promise((resolve, reject) => {
axios
.get(url, {
params: params
})
.then(response => {
logger.net(data, url, response)
parseResponse(resolve, reject, response)
})
.catch(err => {
Promise.reject(err)
})
})
},
/**
* 封装post请求
*/
post(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, qs.stringify(params))
.then(response => {
logger.net(data, url, response)
parseResponse(resolve, reject, response)
})
.catch(err => {
Promise.reject(err)
})
})
},
/**
* 封装post请求 multipart/form-data
*/
postform(url, data) {
return new Promise((resolve, reject) => {
instance.post(url, data).then(response => {
logger.net(data, url, response)
parseResponse(resolve, reject, response)
})
}).catch(err => {
Promise.reject(err)
})
},
/**
* 封装post请求 文件下载
*/
postdown(url, data) {
return new Promise((resolve, reject) => {
down.post(url, data).then(response => {
logger.net(data, url, response)
parseResponse(resolve, reject, response)
})
}).catch(err => {
Promise.reject(err)
})
},
/**
* 封装post请求 json格式
*/
postJson(url, data) {
return new Promise((resolve, reject) => {
json.post(url, data).then(response => {
logger.net(data, url, response)
parseResponse(resolve, reject, response)
})
}).catch(err => {
Promise.reject(err)
})
},
cancel() {// 取消当前网络请求
if (window._axiosPromiseArr) {
window._axiosPromiseArr.forEach((ele, index) => {// 切换路由时,关闭当前页面请求
if (ele) {
ele.cancel()
delete window._axiosPromiseArr[index]
}
})
}
},
// get, post, postform, postdown, postJson
}
......@@ -6,45 +6,45 @@
* @Description: In User Settings Edit
* @FilePath: \指纹系统\founder_vue\src\router\index.js
*/
import Vue from "vue";
import VueRouter from "vue-router";
import store from "../store";
import { getToken } from "../utils/auth";
import { Message } from "element-ui";
import indexRoutes from "./modules/index";
import Vue from 'vue'
import VueRouter from 'vue-router'
import store from '../store'
import {getToken} from '../utils/auth'
import {Message} from 'element-ui'
import indexRoutes from './modules/index'
const originalPush = VueRouter.prototype.push;
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
if (location && typeof location == "string" && location.indexOf("http") != -1)
return window.location.open(location, "_self");
return originalPush.call(this, location).catch(err => err);
};
if (location && typeof location == 'string' && location.indexOf('http') != -1)
return window.location.open(location, '_self')
return originalPush.call(this, location).catch(err => err)
}
const originalResolve = VueRouter.prototype.resolve;
const originalResolve = VueRouter.prototype.resolve
VueRouter.prototype.pushToTab = function pushToTab(location) {
if (!location) return;
if (location && typeof location == "string" && location.indexOf("http") != -1)
return window.open(location, "_blank");
const { href } = originalResolve.call(this, location);
window.open(href, "_blank");
};
if (!location) return
if (location && typeof location == 'string' && location.indexOf('http') != -1)
return window.open(location, '_blank')
const {href} = originalResolve.call(this, location)
window.open(href, '_blank')
}
Vue.use(VueRouter);
Vue.use(VueRouter)
const mainRouters = [
...indexRoutes,
{
path: "*",
name: "error",
component: () => import("@/views/index/error.vue")
path: '*',
name: 'error',
component: () => import('@/views/index/error.vue')
},
];
]
const router = new VueRouter({
// mode: "history",
// base: process.env.BASE_URL,
routes: mainRouters
});
})
// router.beforeEach((to, from, next) => {
// const token = getToken();
......@@ -66,24 +66,34 @@ const router = new VueRouter({
// });
router.beforeEach((to, from, next) => {
// if(window._axiosPromiseArr){
// window._axiosPromiseArr.forEach((ele, index) => {// 切换路由时,关闭当前页面请求
// if (ele) {
// ele.cancel()
// delete window._axiosPromiseArr[index]
// }
// })
// }
fHttp.cancel() // 切换路由时,关闭当前页面所有请求
if (from.name == 'ryzwbj' || from.name == 'ajzwbj') {
sessionStorage.clear()
}
store.commit('loading/setPreRoute', from.name)
let token = localStorage.getItem('token');
let token = localStorage.getItem('token')
if (to.path != '/Login' && to.path != '/') {
if (token) {
next();
next()
} else {
next('/Login')
}
} else {
if (localStorage.getItem('token')) {
next('/index');
}else{
next();
next('/index')
} else {
next()
}
}
})
export default router;
export default router
export const ACCESS_TOKEN = 'token'
export const USER_TYPE = 'userInfo'
// export const CONTENT_WIDTH_TYPE = {
// Fluid: 'Fluid',
// Fixed: 'Fixed'
// }
export default function PrintLog(title, content, tag) {
if (!title && !content) {
return
}
if (!tag) {
tag = '^_^'
}
// console.log('')
console.log('----------------------------' + tag + '----------------------------')
if (title && content) {
console.log(' 标题:', title)
console.log(' 内容:', content)
} else if (title) {
console.log(' ', title)
} else if (content) {
console.log(' ', content)
}
console.log('----------------------------' + tag + '----------------------------')
console.log('')
}
export function PrintNetInfo(url, request, response) {
var tag = '^_^'
// console.log('')
console.log('----------------------------' + tag + '----------------------------')
if (url) {
console.log(' 请求接口:', url)
}
if (request) {
console.log(' 请求参数:', request)
}
if (response) {
console.log(' 请求结果:', response)
}
console.log('----------------------------' + tag + '----------------------------')
console.log('')
}
......@@ -76,23 +76,52 @@ const _LOGO3 = '
' \n' +
' '
const LOGOS = {_LOGO1, _LOGO2, _LOGO3}
const LOGOS = [_LOGO1, _LOGO2, _LOGO3]
export default {
net(request, url, response) {
if (!this.isOpenLog()) return
console.log(TOP_LEFT_CORNER + DOUBLE_DIVIDER)
console.log(HORIZONTAL_LINE + ' ' + url)
console.log(MIDDLE_CORNER + SINGLE_DIVIDER)
console.log(HORIZONTAL_LINE + ' ' + formatJson(request))
console.log(MIDDLE_CORNER + SINGLE_DIVIDER)
console.log(HORIZONTAL_LINE + ' ' + formatJson(response))
console.log(BOTTOM_LEFT_CORNER + DOUBLE_DIVIDER)
},
json(val) {
// console.log('json', Math.random() * 3)
if (!this.isOpenLog()) return
console.log(TOP_LEFT_CORNER + DOUBLE_DIVIDER)
console.info(formatJson(val))
console.log(BOTTOM_LEFT_CORNER + DOUBLE_DIVIDER)
},
info(tag, val) {
if (!this.isOpenLog()) return
if (val) {
console.log(tag, TOP_LEFT_CORNER + DOUBLE_DIVIDER)
console.log(tag + ' '+ HORIZONTAL_LINE , val)
console.log(tag, BOTTOM_LEFT_CORNER + DOUBLE_DIVIDER)
} else {
console.log(TOP_LEFT_CORNER + DOUBLE_DIVIDER)
console.log(HORIZONTAL_LINE + ' ', tag)
console.log(BOTTOM_LEFT_CORNER + DOUBLE_DIVIDER)
}
},
error(val) {
if (!this.isOpenLog()) return
console.error(TOP_LEFT_CORNER + DOUBLE_DIVIDER)
console.error(HORIZONTAL_LINE + ' ' + val)
console.error(BOTTOM_LEFT_CORNER + DOUBLE_DIVIDER)
},
logo() {
Math.random() * 3
let index = Math.floor((Math.random() * LOGOS.length))
console.log(LOGOS[index])
},
isOpenLog() {
return true
return process.env.NODE_ENV === 'development' ? true : false
}
}
......@@ -102,8 +131,8 @@ const TOP_LEFT_CORNER = '┌'
const BOTTOM_LEFT_CORNER = '└'
const MIDDLE_CORNER = '├'
const HORIZONTAL_LINE = '│'
const DOUBLE_DIVIDER = '────────────────────────────────────────────────────────'
const SINGLE_DIVIDER = '┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄'
const DOUBLE_DIVIDER = '──────────────────────────────────────────────────────────────────────────────────────'
const SINGLE_DIVIDER = '┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄'
var formatJson = function (json, options) {
var reg = null,
......
import PrintLog from './LogcatUtil'
const _DEFAULT_KEYS = [
'公安厅',
......@@ -10,7 +9,7 @@ const _DEFAULT_KEYS = [
'中队',
]
const _TAG = '\\src\\utils\\LogcatUtil.js'
const _TAG = 'src/utils/ZzjgUtil.js'
export default {
......@@ -47,15 +46,15 @@ export default {
let parseStr = function (keyArrs, content) {
if (!keyArrs) {
if (isOpenLogger()) PrintLog('解析关键字', '解析关键字为空', _TAG)
if (isOpenLogger()) logger.info('解析关键字', '解析关键字为空', _TAG)
return []
}
if (!content || content === '' || content === 'null') {
if (isOpenLogger()) PrintLog('解析内容', '解析内容为空', _TAG)
if (isOpenLogger()) logger.info('解析内容', '解析内容为空', _TAG)
return []
}
if (isOpenLogger()) PrintLog('解析关键字', keyArrs, _TAG)
if (isOpenLogger()) PrintLog('解析内容', content, _TAG)
if (isOpenLogger()) logger.info('解析关键字', keyArrs, _TAG)
if (isOpenLogger()) logger.info('解析内容', content, _TAG)
let arrs = []
let temp = content
......@@ -79,7 +78,7 @@ let parseStr = function (keyArrs, content) {
if (arrs.length === 0) {
arrs.push(content)
}
if (isOpenLogger()) PrintLog('解析结果', arrs, _TAG)
if (isOpenLogger()) logger.info('解析结果', arrs, _TAG)
return arrs
}
......
......@@ -47,17 +47,7 @@ axios.interceptors.response.use(
type: "warning",
})
.then(() => {
if (relUrlIp == '47.92.225.109') {
// window.open('http://47.92.225.109:8300/#/login', '_blank')
window.location.href = 'http://47.92.225.109:8300/#/login';
} else if (relUrlIp == '26.3.13.120') {
window.location.href = 'http://26.3.13.120:8050/#/login';
} else if (relUrlIp == '10.142.16.177') {
window.location.href = 'http://10.142.16.177:8050/#/login';
} else {
// window.open('http://localhost:8080/#/login', '_blank')
window.location.href = 'http://localhost:8080/#/login';
}
})
}
if (status < 0) {
......@@ -151,9 +141,6 @@ export function postform (url, data) {
/**
* 封装post请求 文件下载
* @param url
* @param data
* @returns {Promise}
*/
export function postdown (url, data) {
return new Promise((resolve, reject) => {
......
......@@ -41,8 +41,6 @@
</template>
<script>
import PrintLog from '../../utils/LogcatUtil'
import {bzxxPlSb, bzxxSh, bzxxZg} from '../../netmgr/bzxxgl/bzxxsh'
export default {
name: 'BzxxsfOpt',
......@@ -146,7 +144,7 @@ export default {
init() {
var _that = this
_that.isStRole = _that.isSt
console.log('bzxxsfOpt-isSt', _that.isSt)
// logger.info('bzxxsfOpt-isSt', _that.isSt)
_that.initShItem()
},
/**
......@@ -236,8 +234,6 @@ export default {
break
}
console.log('ruleForm @@@@@@@@@@@@@@@@@@@@@@@', _that.parentRuleForm)
if (_path) {
let query = {
isFromSh: 'true',
......@@ -347,7 +343,7 @@ export default {
doSh(fhzt, shzt, desc = '') {
let TITLE = '审核'
let _that = this
PrintLog('item:', JSON.stringify(_that.shInfo))
logger.info('item:', JSON.stringify(_that.shInfo))
var ruleForm = {}
ruleForm.querytype = _that.shInfo.querytype
ruleForm.id = _that.shInfo.id
......@@ -356,20 +352,30 @@ export default {
ruleForm.des = desc
ruleForm.level = _that.getLevel()
PrintLog(TITLE + '请求参数', ruleForm)
// PrintLog(TITLE + '请求参数', ruleForm)
bzxxSh(_that, ruleForm).then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
_that.$emit('refresh', _that.shInfo)
_that.initShItem()
} else {
NetUtil.bzxxsh
.sh(ruleForm)
.then(res => {
if (res.code === 0) {
_that.$emit('refresh', _that.shInfo)
_that.initShItem()
}
})
}
}).catch(err => {
PrintLog(TITLE + '异常', err, _that.TAG)
_that.$message.error('异常' + err)
})
// bzxxSh(_that, ruleForm).then(res => {
// PrintLog(TITLE + '返回结果', res, _that.TAG)
// if (res.data.code === 0) {
// _that.$emit('refresh', _that.shInfo)
// _that.initShItem()
// } else {
//
// }
// }).catch(err => {
// PrintLog(TITLE + '异常', err, _that.TAG)
// _that.$message.error('异常' + err)
// })
},
doZg(zgzt, desc = '') {
......@@ -382,20 +388,32 @@ export default {
ruleForm.des = desc
ruleForm.level = _that.getLevel()
PrintLog(TITLE + '请求参数', ruleForm)
// PrintLog(TITLE + '请求参数', ruleForm)
// PrintLog(TITLE + '接口', 'updateJrzg')
bzxxZg(_that, ruleForm).then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
_that.$emit('refresh', _that.shInfo)
_that.initShItem()
} else {
NetUtil.bzxxsh
.updateJrzg(ruleForm)
.then(res => {
// PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.code === 0) {
_that.$emit('refresh', _that.shInfo)
_that.initShItem()
}
})
// bzxxZg(_that, ruleForm).then(res => {
// PrintLog(TITLE + '返回结果', res, _that.TAG)
// if (res.data.code === 0) {
// _that.$emit('refresh', _that.shInfo)
// _that.initShItem()
// } else {
//
// }
// }).catch(err => {
// PrintLog(TITLE + '异常', err, _that.TAG)
// })
}
}).catch(err => {
PrintLog(TITLE + '异常', err, _that.TAG)
})
},
doPlSb() {
......@@ -409,21 +427,31 @@ export default {
ruleForm.status = '3'
ruleForm.level = _that.getLevel()
PrintLog(TITLE + '请求参数', ruleForm, _that.TAG)
// PrintLog(TITLE + '请求参数', ruleForm, _that.TAG)
// PrintLog(TITLE + '接口', '/api/hit/insertBeach', _that.TAG)
bzxxPlSb(_that, ruleForm)
NetUtil.bzxxsh
.bzxxPlSb(ruleForm)
.then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
// PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.code === 0) {
_that.$emit('refresh', _that.shInfo)
_that.initShItem()
}
})
.catch(err => {
PrintLog(TITLE + '异常', err.toString(), _that.TAG)
this.$message.error('失败原因:' + err.toString())
})
// bzxxPlSb(_that, ruleForm)
// .then(res => {
// PrintLog(TITLE + '返回结果', res, _that.TAG)
// if (res.data.code === 0) {
// _that.$emit('refresh', _that.shInfo)
// _that.initShItem()
// }
// })
// .catch(err => {
// PrintLog(TITLE + '异常', err.toString(), _that.TAG)
// this.$message.error('失败原因:' + err.toString())
// })
},
},
}
......
......@@ -333,8 +333,6 @@
<script>
import Cascader from '@/components/Cascader.vue'
import bzxxsfOpt from '../bzxxgl/BzxxsfOpt.vue'
import PrintLog from '../../utils/LogcatUtil'
import {queryShList, bzxxPlSb} from '../../netmgr/bzxxgl/bzxxsh'
import ZzjgUtil from '../../utils/ZzjgUtil.js'
export default {
......@@ -440,7 +438,7 @@ export default {
// _that.initTestData()
_that.getData()
console.log('bzxxsH-isSt', _that.isSt)
// console.log('bzxxsH-isSt', _that.isSt)
},
computed: {
roleArr() {
......@@ -487,7 +485,7 @@ export default {
item.width = item.width * scalePercent
_that.checkedProps.push(item.prop)
})
PrintLog('tableColumns', _that.tableColumns)
logger.info('tableColumns', _that.tableColumns)
},
changeCheckbox(val) {
let _that = this
......@@ -496,7 +494,7 @@ export default {
item.isShow = val.indexOf(item.prop) >= 0
}
)
PrintLog('checkedProps', _that.checkedProps)
logger.info('checkedProps', _that.checkedProps)
},
getShState(info) {
let _that = this
......@@ -559,7 +557,7 @@ export default {
kk: ''
})
}
console.log('initTestData', JSON.stringify(_that.tableDate))
// console.log('initTestData', JSON.stringify(_that.tableDate))
},
commitShAction() { // 确定
......@@ -643,7 +641,7 @@ export default {
for (let key in _that.ruleForm) {
_that.ruleForm[key] = ''
}
PrintLog('resetForm-ruleForm', JSON.stringify(_that.ruleForm))
logger.info('resetForm-ruleForm', JSON.stringify(_that.ruleForm))
_that.getData()
},
bzxxsfOptRefresh(data) {
......@@ -695,28 +693,38 @@ export default {
_that.ruleForm.level = _that.getLevel()
PrintLog('查询审核列表' + '请求参数', JSON.stringify(_that.ruleForm), _that.TAG)
PrintLog('查询审核列表' + '接口', '/api/hit/queryAllSh', _that.TAG)
// PrintLog('查询审核列表' + '请求参数', JSON.stringify(_that.ruleForm), _that.TAG)
// PrintLog('查询审核列表' + '接口', '/api/hit/queryAllSh', _that.TAG)
queryShList(_that, _that.ruleForm)
NetUtil.bzxxsh.shList(_that.ruleForm)
.then(res => {
PrintLog('查询审核列表' + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
logger.json(res.data)
_that.tableDate = res.data.ret.rows
_that.total = res.data.ret.total
if (res.code === 0) {
_that.tableDate = res.ret.rows
_that.total = res.ret.total
_that.totalPage = Math.ceil(_that.total / _that.pageSize)
} else {
_that.tableDate = []
_that.total = 0
_that.totalPage = 0
_that.refreshItemsData()
}
_that.refreshItemsData()
})
.catch(err => {
PrintLog('查询审核列表' + '异常', err.toString(), _that.TAG)
this.$message.error('失败原因:' + err.toString())
})
// queryShList(_that, _that.ruleForm)
// .then(res => {
// PrintLog('查询审核列表' + '返回结果', res, _that.TAG)
// if (res.code === 0) {
// // logger.json(res.data)
// _that.tableDate = res.data.ret.rows
// _that.total = res.data.ret.total
// _that.totalPage = Math.ceil(_that.total / _that.pageSize)
// } else {
// _that.tableDate = []
// _that.total = 0
// _that.totalPage = 0
// }
// _that.refreshItemsData()
// })
// .catch(err => {
// PrintLog('查询审核列表' + '异常', err, _that.TAG)
// this.$message.error('失败原因:' + err.toString())
// })
},
onSbxxListener() {
......@@ -771,20 +779,29 @@ export default {
// ruleForm.username = username
ruleForm.level = _that.getLevel()
PrintLog(TITLE + '请求参数', ruleForm, _that.TAG)
PrintLog(TITLE + '接口', '/api/hit/insertBeach', _that.TAG)
// PrintLog(TITLE + '请求参数', ruleForm, _that.TAG)
// PrintLog(TITLE + '接口', '/api/hit/insertBeach', _that.TAG)
bzxxPlSb(_that, ruleForm)
NetUtil.bzxxsh
.plsb(ruleForm)
.then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
// PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.code === 0) {
_that.getData()
}
})
.catch(err => {
PrintLog(TITLE + '异常', err.toString(), _that.TAG)
this.$message.error('失败原因:' + err.toString())
})
// bzxxPlSb(_that, ruleForm)
// .then(res => {
// PrintLog(TITLE + '返回结果', res, _that.TAG)
// if (res.data.code === 0) {
// _that.getData()
// }
// })
// .catch(err => {
// PrintLog(TITLE + '异常', err.toString(), _that.TAG)
// this.$message.error('失败原因:' + err.toString())
// })
},
onFztmSuccess(e) {
......@@ -811,7 +828,7 @@ export default {
})
_that.fztm_ytmh = _that.fztm_ytmh.join(',')
}
PrintLog('fztm_ytmh', _that.fztm_ytmh)
// PrintLog('fztm_ytmh', _that.fztm_ytmh)
}
},
watch: {
......
......@@ -217,8 +217,6 @@
<script>
import {mapState} from 'vuex'
import ImageEd from '@/components/ImageEd.vue'
import PrintLog from '../../utils/LogcatUtil'
import {bzxxSh} from '../../netmgr/bzxxgl/bzxxsh'
export default {
name: 'fhxxLT',
......@@ -557,25 +555,19 @@ export default {
ruleForm.des = _that.fhyj
ruleForm.level = _that.curLevel
PrintLog(TITLE + '请求参数', ruleForm)
// PrintLog(TITLE + '接口', 'udateShzt')
bzxxSh(_that, ruleForm).then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
// _that.$router.go(-1)//返回上一层
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
}).catch(err => {
PrintLog(TITLE + '异常', err, _that.TAG)
_that.$message.error('异常' + err)
})
NetUtil.bzxxsh
.sh(ruleForm)
.then(res => {
if (res.code === 0) {
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
})
},
},
......
......@@ -206,8 +206,6 @@
<script>
import {mapState} from 'vuex'
import ImageEd from '@/components/ImageEd.vue'
import {bzxxSh} from '../../netmgr/bzxxgl/bzxxsh'
import PrintLog from '../../utils/LogcatUtil'
export default {
name: 'fhxxLT',
......@@ -603,23 +601,19 @@ export default {
ruleForm.des = _that.fhyj
ruleForm.level = _that.curLevel
PrintLog(TITLE + '请求参数', ruleForm)
// PrintLog(TITLE + '接口', 'udateShzt')
bzxxSh(_that, ruleForm).then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
}).catch(err => {
PrintLog(TITLE + '异常', err, _that.TAG)
_that.$message.error('异常' + err)
})
NetUtil.bzxxsh
.sh(ruleForm)
.then(res => {
if (res.code === 0) {
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
})
},
},
destroyed() {
......
......@@ -225,8 +225,6 @@
<script>
import { mapState } from 'vuex'
import ImageEd from '@/components/ImageEd.vue'
import PrintLog from '../../utils/LogcatUtil'
import { bzxxSh } from '../../netmgr/bzxxgl/bzxxsh'
export default {
name: 'fhxxLT',
......@@ -613,24 +611,19 @@ export default {
ruleForm.des = _that.fhyj
ruleForm.level = _that.curLevel
PrintLog(TITLE + '请求参数', ruleForm)
// PrintLog(TITLE + '接口', 'udateShzt')
bzxxSh(_that, ruleForm).then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
}).catch(err => {
PrintLog(TITLE + '异常', err, _that.TAG)
_that.$message.error('异常' + err)
})
NetUtil.bzxxsh
.sh(ruleForm)
.then(res => {
if (res.code === 0) {
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
})
},
},
......
......@@ -7,642 +7,660 @@
* @FilePath: \指纹系统\founder_vue\src\views\bzxxgl\fhxxLT.vue
-->
<template>
<div class="fhxxLT fhxxTT" id="fhxxLT">
<div :class="{ bzActive: isShowbzDialogBg || loading_sd, tt: true }">
<div class="header">
<div class="label">复核信息-查重</div>
<div class="btns" @click="openFhxxTT">
<span class="iconfont">&#xe644;</span>
<span>复核详情</span>
</div>
</div>
<div class="main">
<div class="data">
<!-- 卡片源数据-->
<div class="source-data">
<template>
<div>
<div class="source-bottom">
<Swiper :srcbarcode="srcbarcode" />
<div class="fhxxLT fhxxTT" id="fhxxLT">
<div :class="{ bzActive: isShowbzDialogBg || loading_sd, tt: true }">
<div class="header">
<div class="label">复核信息-查重</div>
<div class="btns" @click="openFhxxTT">
<span class="iconfont">&#xe644;</span>
<span>复核详情</span>
</div>
</div>
</template>
</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" :row-class-name="tableRowClassName">
<el-table-column prop="destbarcode" label="目标条码号" width="auto">
<div slot-scope="scope">
{{ scope.row.destbarcode }}
<div class="main">
<div class="data">
<!-- 卡片源数据-->
<div class="source-data">
<template>
<div>
<div class="source-bottom">
<Swiper :srcbarcode="srcbarcode" />
</div>
</div>
</template>
</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" :row-class-name="tableRowClassName">
<el-table-column prop="destbarcode" label="目标条码号" width="auto">
<div slot-scope="scope">
{{ 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>
</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="
<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="
<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="
<img v-if="
screenLoading == true && souceDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<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="
<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="
<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="
<img v-else-if="
screenLoading == true && targetDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<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="
<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="
<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="
<img v-if="
screenLoading == true && souceDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<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="
<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="
<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="
<img v-else-if="
screenLoading == true && targetDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<div v-else-if="
!item.img &&
screenLoading == false &&
targetDel == false
" class="wtx">
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
<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 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="
<!-- 平面 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="
<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="
<img v-else-if="
screenLoading == true && souceDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<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="
<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="
<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="
<img v-else-if="
screenLoading == true && targetDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<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="
<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="
<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="
<img v-else-if="
screenLoading == true && souceDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<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="
<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="
<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="
<img v-else-if="
screenLoading == true && targetDel == false
" src="@/assets/img/zzjz/zwjz.gif" />
<div v-else-if="
<div v-else-if="
!item.img &&
screenLoading == false &&
targetDel == false
" class="wtx">
<img src="@/assets/img/TT/zwtp.png" />
<span>暂无图像</span>
</div>
<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 class="label">{{ item.name }}</div>
</div>
</div>
</swiper-slide>
</swiper>
</div>
<t-t-plam v-show="isPlam == true" :sonSouceDel="souceDel" @logbg="isShowbzDialogBg = true"
:sonTargetDel="targetDel" :scouceCode="scouceCode" :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"
:isFace="isFace" :targetCode="targetCode"></t-t-face>
</div>
</div>
</div>
</div>
<t-t-plam v-show="isPlam == true" :sonSouceDel="souceDel" @logbg="isShowbzDialogBg = true" :sonTargetDel="targetDel" :scouceCode="scouceCode" :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" :isFace="isFace" :targetCode="targetCode"></t-t-face>
</div>
</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="bzDialog" v-show="isShowbzDialogBg" @click="cancelbz"></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="fhxxLTDom" v-show="fhxxTTShow">
<div class="fhxxLT-right">
<div class="fhxx-title">
<div class="name">{{getShOrFhName()}}详情</div>
<div class="back" @click="cancelbz"><i class="iconfont icon-fanhui"></i></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="scroll-content">
<div class="fhxx-top">
<div class="fhxx-top-top">
<div class="fhxx-top-top-left">
<div class="fhxx-top-top-left-title">
<div class="title-line"></div>
<div class="title-name">人员信息</div>
<div class="bzDialog" v-show="isShowbzDialogBg" @click="cancelbz"></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>
<div class="fhxx-top-top-left-content">
<div class="content-item">
<div class="label-name">人员编号:</div>
<div class="label-value">{{allData.ysxtAsjxgrybh}}</div>
</div>
<div class="content-item content-item2">
<div class="label-name">姓名:</div>
<div class="label-value">
<span>{{allData.xm}}</span>
<div class="label-name2">别名/绰号:</div>
<div class="label-value2">{{allData.bmch}}</div>
</div>
</div>
<div class="content-item">
<div class="label-name">性别:</div>
<div class="label-value">{{allData.xb}}</div>
</div>
<div class="content-item">
<div class="label-name">民族:</div>
<div class="label-value">{{allData.mz}}</div>
</div>
<div class="content-item">
<div class="label-name">籍贯:</div>
<div class="label-value">{{allData.jgmc}}</div>
</div>
<div class="content-item">
<div class="label-name">出生日期:</div>
<div class="label-value">{{allData.csrq &&
$moment(allData.csrq).format('YYYY-MM-DD')}}
</div>
</div>
<div class="content-item">
<div class="label-name">案件类别:</div>
<div class="label-value">{{allData.personAjlb}}</div>
</div>
<div class="content-item">
<div class="label-name">目标逻辑库:</div>
<div class="label-value">{{allData.logicDatabaseName}}</div>
</div>
<div class="content-item">
<div class="label-name">现住址详情:</div>
<div class="label-value" :title="allData.xzzDzmc">{{allData.xzzDzmc}}</div>
</div>
<div class="content-item">
<div class="label-name">户籍地详址:</div>
<div class="label-value" :title="allData.hjdzDzmc">{{allData.hjdzDzmc}}</div>
</div>
<div class="content-area2">
<el-input type="textarea" :rows="3" placeholder="暂无内容" v-model="allData.personBz" disabled>
</el-input>
</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="fhxx-top-top-right">
<div class="fhxx-top-top-left-title">
<div class="title-line"></div>
<div class="title-name">人员信息</div>
</div>
<div class="finger">
<div v-if="targetDel == true" class="wtx">
<img src="@/assets/img/TT/tuxiangdel.png" />
<span class="cccccc">图像已删除</span>
</div>
<div class="fhxx-top-top-left-content">
<div class="content-item">
<div class="label-name">人员编号:</div>
<div class="label-value">{{allData.destYsxtAsjxgrybh}}</div>
</div>
<div class="content-item content-item2">
<div class="label-name">姓名:</div>
<div class="label-value">
<span>{{allData.destXm}}</span>
<div class="label-name2">别名/绰号:</div>
<div class="label-value2">{{allData.destBmch}}</div>
</div>
</div>
<div class="content-item">
<div class="label-name">性别:</div>
<div class="label-value">{{allData.destXb}}</div>
</div>
<div class="content-item">
<div class="label-name">民族:</div>
<div class="label-value" :title="allData.destMz">{{allData.destMz}}</div>
</div>
<div class="content-item">
<div class="label-name">籍贯:</div>
<div class="label-value" :title="allData.destJgmc">{{allData.destJgmc}}</div>
</div>
<div class="content-item">
<div class="label-name">出生日期:</div>
<div class="label-value">{{allData.destCsrq &&
$moment(allData.destCsrq).format('YYYY-MM-DD')}}
</div>
</div>
<div class="content-item">
<div class="label-name">案件类别:</div>
<div class="label-value">{{allData.destPersonAjlb}}</div>
</div>
<div class="content-item">
<div class="label-name">目标逻辑库:</div>
<div class="label-value">{{allData.destLogicDatabaseName}}</div>
</div>
<div class="content-item">
<div class="label-name">现住址详情:</div>
<div class="label-value" :title="allData.destXzzDzmc">{{allData.destXzzDzmc}}
</div>
</div>
<div class="content-item">
<div class="label-name">户籍地详址:</div>
<div class="label-value" :title="allData.destHjdzDzmc">
{{allData.destHjdzDzmc}}
</div>
</div>
<div class="content-area2">
<el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="allData.destPersonBz" disabled>
</el-input>
</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="fhxx-top-line"></div>
<div class="fhxx-top-bottom">
<div class="fhxx-top-top-left-title">
<div class="title-line"></div>
<div class="title-name">比中信息</div>
</div>
<div class="fhxx-top-bottom-content">
<div class="fhxx-top-bottom-left">
<div class="content-item">
<div class="label-name">比中单位:</div>
<div class="label-value" :title="allData.bzdwGajgmc">{{allData.bzdwGajgmc}}
</div>
</div>
<div class="content-item">
<div class="label-name">单位代码:</div>
<div class="label-value">{{allData.bzdwGajgjgdm}}</div>
</div>
<div class="content-item">
<div class="label-name">比中时间:</div>
<div class="label-value">{{allData.bzsj &&
</div>
<!-- 信息卡 -->
<div class="fhxxLTDom" v-show="fhxxTTShow">
<div class="fhxxLT-right">
<div class="fhxx-title">
<div class="name">{{getShOrFhName()}}详情</div>
<div class="back" @click="cancelbz"><i class="iconfont icon-fanhui"></i></div>
</div>
<div class="scroll-content">
<div class="fhxx-top">
<div class="fhxx-top-top">
<div class="fhxx-top-top-left">
<div class="fhxx-top-top-left-title">
<div class="title-line"></div>
<div class="title-name">人员信息</div>
</div>
<div class="fhxx-top-top-left-content">
<div class="content-item">
<div class="label-name">人员编号:</div>
<div class="label-value">{{allData.ysxtAsjxgrybh}}</div>
</div>
<div class="content-item content-item2">
<div class="label-name">姓名:</div>
<div class="label-value">
<span>{{allData.xm}}</span>
<div class="label-name2">别名/绰号:</div>
<div class="label-value2">{{allData.bmch}}</div>
</div>
</div>
<div class="content-item">
<div class="label-name">性别:</div>
<div class="label-value">{{allData.xb}}</div>
</div>
<div class="content-item">
<div class="label-name">民族:</div>
<div class="label-value">{{allData.mz}}</div>
</div>
<div class="content-item">
<div class="label-name">籍贯:</div>
<div class="label-value">{{allData.jgmc}}</div>
</div>
<div class="content-item">
<div class="label-name">出生日期:</div>
<div class="label-value">{{allData.csrq &&
$moment(allData.csrq).format('YYYY-MM-DD')}}
</div>
</div>
<div class="content-item">
<div class="label-name">案件类别:</div>
<div class="label-value">{{allData.personAjlb}}</div>
</div>
<div class="content-item">
<div class="label-name">目标逻辑库:</div>
<div class="label-value">{{allData.logicDatabaseName}}</div>
</div>
<div class="content-item">
<div class="label-name">现住址详情:</div>
<div class="label-value" :title="allData.xzzDzmc">{{allData.xzzDzmc}}</div>
</div>
<div class="content-item">
<div class="label-name">户籍地详址:</div>
<div class="label-value" :title="allData.hjdzDzmc">{{allData.hjdzDzmc}}</div>
</div>
<div class="content-area2">
<el-input type="textarea" :rows="3" placeholder="暂无内容"
v-model="allData.personBz" disabled>
</el-input>
</div>
</div>
</div>
<div class="fhxx-top-top-right">
<div class="fhxx-top-top-left-title">
<div class="title-line"></div>
<div class="title-name">人员信息</div>
</div>
<div class="fhxx-top-top-left-content">
<div class="content-item">
<div class="label-name">人员编号:</div>
<div class="label-value">{{allData.destYsxtAsjxgrybh}}</div>
</div>
<div class="content-item content-item2">
<div class="label-name">姓名:</div>
<div class="label-value">
<span>{{allData.destXm}}</span>
<div class="label-name2">别名/绰号:</div>
<div class="label-value2">{{allData.destBmch}}</div>
</div>
</div>
<div class="content-item">
<div class="label-name">性别:</div>
<div class="label-value">{{allData.destXb}}</div>
</div>
<div class="content-item">
<div class="label-name">民族:</div>
<div class="label-value" :title="allData.destMz">{{allData.destMz}}</div>
</div>
<div class="content-item">
<div class="label-name">籍贯:</div>
<div class="label-value" :title="allData.destJgmc">{{allData.destJgmc}}</div>
</div>
<div class="content-item">
<div class="label-name">出生日期:</div>
<div class="label-value">{{allData.destCsrq &&
$moment(allData.destCsrq).format('YYYY-MM-DD')}}
</div>
</div>
<div class="content-item">
<div class="label-name">案件类别:</div>
<div class="label-value">{{allData.destPersonAjlb}}</div>
</div>
<div class="content-item">
<div class="label-name">目标逻辑库:</div>
<div class="label-value">{{allData.destLogicDatabaseName}}</div>
</div>
<div class="content-item">
<div class="label-name">现住址详情:</div>
<div class="label-value" :title="allData.destXzzDzmc">{{allData.destXzzDzmc}}
</div>
</div>
<div class="content-item">
<div class="label-name">户籍地详址:</div>
<div class="label-value" :title="allData.destHjdzDzmc">
{{allData.destHjdzDzmc}}
</div>
</div>
<div class="content-area2">
<el-input type="textarea" :rows="3" placeholder="请输入内容"
v-model="allData.destPersonBz" disabled>
</el-input>
</div>
</div>
</div>
</div>
<div class="fhxx-top-line"></div>
<div class="fhxx-top-bottom">
<div class="fhxx-top-top-left-title">
<div class="title-line"></div>
<div class="title-name">比中信息</div>
</div>
<div class="fhxx-top-bottom-content">
<div class="fhxx-top-bottom-left">
<div class="content-item">
<div class="label-name">比中单位:</div>
<div class="label-value" :title="allData.bzdwGajgmc">{{allData.bzdwGajgmc}}
</div>
</div>
<div class="content-item">
<div class="label-name">单位代码:</div>
<div class="label-value">{{allData.bzdwGajgjgdm}}</div>
</div>
<div class="content-item">
<div class="label-name">比中时间:</div>
<div class="label-value">{{allData.bzsj &&
$moment(allData.bzsj).format('YYYY-MM-DD HH:mm')}}
</div>
</div>
</div>
<div class="fhxx-top-bottom-right">
<div class="content-item">
<div class="label-name">比中人:</div>
<div class="label-value">{{allData.bzrXm}}</div>
</div>
<div class="content-item">
<div class="label-name">比中人身份证号:</div>
<div class="label-value">{{allData.bzrGmsfhm}}</div>
</div>
<div class="content-item">
<div class="label-name">比中人联系电话:</div>
<div class="label-value">{{allData.bzrLxdh}}</div>
</div>
</div>
</div>
<div class="bzxx-textarea">
<el-input type="textarea" :rows="3" placeholder="暂无内容" v-model="allData.bzbz" disabled>
</el-input>
</div>
</div>
</div>
<div class="fhxx-bottom">
<div class="fhxx-bottom-title">{{getShOrFhName()}}意见</div>
<div class="fhxx-bottom-textarea">
<el-input type="textarea" :rows="3" placeholder="在此输入意见" v-model="fhyj">
</el-input>
</div>
</div>
</div>
</div>
<div class="fhxx-top-bottom-right">
<div class="content-item">
<div class="label-name">比中人:</div>
<div class="label-value">{{allData.bzrXm}}</div>
</div>
<div class="content-item">
<div class="label-name">比中人身份证号:</div>
<div class="label-value">{{allData.bzrGmsfhm}}</div>
</div>
<div class="content-item">
<div class="label-name">比中人联系电话:</div>
<div class="label-value">{{allData.bzrLxdh}}</div>
</div>
<div class="fhxx-btns">
<div class="pass" @click="gotoProgress(true)">通过</div>
<div class="no-pass" @click="gotoProgress(false)">未通过</div>
<div v-show="!isFromSh && jcbzFlag" class="relieve" @click="relieveChange">解除比中关系</div>
<el-tooltip class="item" effect="dark" content="只有认定人才能解除比中关系" placement="top">
<div v-show="!isFromSh && !jcbzFlag" class="relieve jcbzFlag">解除比中关系</div>
</el-tooltip>
</div>
</div>
<div class="bzxx-textarea">
<el-input type="textarea" :rows="3" placeholder="暂无内容" v-model="allData.bzbz" disabled>
</el-input>
</div>
</div>
</div>
<div class="fhxx-bottom">
<div class="fhxx-bottom-title">{{getShOrFhName()}}意见</div>
<div class="fhxx-bottom-textarea">
<el-input type="textarea" :rows="3" placeholder="在此输入意见" v-model="fhyj">
</el-input>
</div>
<!-- 确认解除 -->
<div class="relieveDialog" v-show="isRelieveVisible">
<div class="close">
<i class="iconfont icon-danchuangguanbianniu" @click="isRelieveVisible=false"></i>
</div>
<div class="desc">是否确认解除比中关系?</div>
<div class="btns">
<div class="btn confirmBtn" @click="confirmRelieveChange">确认</div>
<div class="btn cancelBtn" @click="isRelieveVisible=false">取消</div>
</div>
</div>
</div>
<div class="fhxx-btns">
<div class="pass" @click="gotoProgress(true)">通过</div>
<div class="no-pass" @click="gotoProgress(false)">未通过</div>
<div v-show="!isFromSh && jcbzFlag" class="relieve" @click="relieveChange">解除比中关系</div>
<el-tooltip class="item" effect="dark" content="只有认定人才能解除比中关系" placement="top">
<div v-show="!isFromSh && !jcbzFlag" class="relieve jcbzFlag">解除比中关系</div>
</el-tooltip>
<!-- 加载动画 -->
<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>
</div>
<!-- 确认解除 -->
<div class="relieveDialog" v-show="isRelieveVisible">
<div class="close">
<i class="iconfont icon-danchuangguanbianniu" @click="isRelieveVisible=false"></i>
</div>
<div class="desc">是否确认解除比中关系?</div>
<div class="btns">
<div class="btn confirmBtn" @click="confirmRelieveChange">确认</div>
<div class="btn cancelBtn" @click="isRelieveVisible=false">取消</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>
</template>
<script>
import { mapState } from 'vuex'
import {mapState} from 'vuex'
import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
import {swiper, swiperSlide} from 'vue-awesome-swiper'
import TTPlam from './modules/TTPlam.vue'
import TTFace from './modules/TTFace.vue'
import '@/icons/error.svg'
import Swiper from '@/components/swiperbzxx.vue'
import PrintLog from '../../utils/LogcatUtil'
import { bzxxSh } from '../../netmgr/bzxxgl/bzxxsh'
export default {
name: 'fhxxLT',
data () {
data() {
return {
fhxxTTShow: false,
srcbarcode: '',
......@@ -749,60 +767,60 @@ export default {
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 },
{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 },
{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 },
{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 },
{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 },
{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 },
{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 },
{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 },
{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, // 认定条数
// 指纹图片加载
......@@ -885,7 +903,7 @@ export default {
swiperSlide,
Swiper,
},
created () {
created() {
let w1 = 1920
let w2 = window.innerWidth
......@@ -912,7 +930,7 @@ export default {
}
this.getData()
},
mounted () {
mounted() {
this.finger()
this.$bus.on('ccbarcode', (code) => {
......@@ -943,7 +961,7 @@ export default {
}
},
methods: {
getShOrFhName () {
getShOrFhName() {
let _that = this
if (_that.isFromSh === 'true') {
return _that.isSh === 'true' ? '审核' : '复核'
......@@ -954,7 +972,7 @@ export default {
/**
* 打开复核详情信息卡
*/
openFhxxTT () {
openFhxxTT() {
this.fhxxTTShow = true
this.isShowbzDialogBg = true
this.isShowbzDialogBg = true
......@@ -962,7 +980,7 @@ export default {
/**
* 取消查看详情
*/
cancelbz () {
cancelbz() {
this.isShowbzDialogBg = false
this.isShowbzDialog = false
this.cancelDetail()
......@@ -973,7 +991,7 @@ export default {
/**
* 確認解除比中关系
*/
confirmRelieveChange () {
confirmRelieveChange() {
let self = this
this.$axios({
method: 'post',
......@@ -1007,10 +1025,10 @@ export default {
/**
* 解除比中关系
*/
relieveChange () {
relieveChange() {
this.isRelieveVisible = true
},
gotoProgress (isPass) {// 进入处理逻辑
gotoProgress(isPass) {// 进入处理逻辑
let _that = this
if (!isPass && !_that.fhyj) {
this.$message.error('请填写不通过意见!')
......@@ -1045,7 +1063,7 @@ export default {
/**
* 未通过
*/
noPassChange () {
noPassChange() {
let self = this
if (self.isFromSh === 'true') {
self.doSh(false)
......@@ -1084,7 +1102,7 @@ export default {
/**
* 通过
*/
passChange () {
passChange() {
let self = this
if (self.isFromSh === 'true') {
self.doSh(true)
......@@ -1123,7 +1141,7 @@ export default {
/**
* 获取数据
*/
getData () {
getData() {
let self = this
this.$axios({
method: 'post',
......@@ -1164,7 +1182,7 @@ export default {
})
},
doSh (isPass) {
doSh(isPass) {
let TITLE = '审核'
let _that = this
var ruleForm = {}
......@@ -1185,28 +1203,24 @@ export default {
ruleForm.des = _that.fhyj
ruleForm.level = _that.curLevel
PrintLog(TITLE + '请求参数', ruleForm)
// PrintLog(TITLE + '接口', 'udateShzt')
bzxxSh(_that, ruleForm).then(res => {
PrintLog(TITLE + '返回结果', res, _that.TAG)
if (res.data.code === 0) {
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
}).catch(err => {
PrintLog(TITLE + '异常', err, _that.TAG)
_that.$message.error('异常' + err)
})
NetUtil.bzxxsh
.sh(ruleForm)
.then(res => {
if (res.code === 0) {
let _path = _that.curLevel === '0' ? '/dsBzxxsh' : '/stBzxxsh' // 市级 0 省级 1 字段名:level
_that.$router.replace({
path: _path,
query: {
formData: _that.formData
}
})
}
})
},
// 滚动平面选择切换
handleSelect (index) {
handleSelect(index) {
this.activeIndex = index
//console.info(this.activeIndex);
if (index == 1) {
......@@ -1216,7 +1230,7 @@ export default {
//console.info("平面指纹");
}
},
jiantoudianji () {
jiantoudianji() {
if (this.btnPlace == 'top') {
this.btnPlace = 'bottom'
this.$refs.swiper1.swiper.slideNext(1500)
......@@ -1230,7 +1244,7 @@ export default {
// 获取源平面指纹图
getSourcePlainFingerPrintDetail (barcode, type) {
getSourcePlainFingerPrintDetail(barcode, type) {
let self = this
this.loadingIndex++
// 平面
......@@ -1269,12 +1283,12 @@ export default {
})
},
// 获取源滚动指纹图
getSourceRollFingerPrintDetail (barcode, type) {
getSourceRollFingerPrintDetail(barcode, type) {
this.loadingIndex++
let self = this
// 滚动 源数据
this.$axios
.post('/api/png/roll/barcode', { barcode: barcode })
.post('/api/png/roll/barcode', {barcode: barcode})
.then(function (response) {
console.log(response)
self.loadingIndex--
......@@ -1305,7 +1319,7 @@ export default {
})
},
// 获取目标的滚动指纹图
getDestRollFingerPrintDetail (barcode) {
getDestRollFingerPrintDetail(barcode) {
let self = this
this.loadingIndex++
// 平面 目标
......@@ -1344,12 +1358,12 @@ export default {
})
},
// 获取目标的平面指纹图
getDestPlainFingerPrintDetail (barcode) {
getDestPlainFingerPrintDetail(barcode) {
let self = this
this.loadingIndex++
// 滚动 目标数据
this.$axios
.post('/api/png/roll/barcode', { barcode: this.destbarcode })
.post('/api/png/roll/barcode', {barcode: this.destbarcode})
.then(function (response) {
self.loadingIndex--
if (response.data.code == 0) {
......@@ -1379,7 +1393,7 @@ export default {
},
// 比中与认定完成添加样式
tableRowClassName ({ row, column, rowIndex, columnIndex }) {
tableRowClassName({row, column, rowIndex, columnIndex}) {
//console.log("row", row.clickLog);
// 比中的行
if (row.affirmstatus == '2' || row.affirmstatus == '3') {
......@@ -1395,29 +1409,29 @@ export default {
},
// 指纹可见
finger () {
finger() {
this.isFinger = true
this.isPlam = false
this.isFace = false
this.$bus.emit('fhxxTT', { isPlam: this.isPlam, isFace: this.isFace })
this.$bus.emit('fhxxTT', {isPlam: this.isPlam, isFace: this.isFace})
},
// 掌纹可见
plam () {
plam() {
this.isPlam = true
this.isFinger = false
this.isFace = false
this.$bus.emit('fhxxTT', { isPlam: this.isPlam, isFace: this.isFace })
this.$bus.emit('fhxxTT', {isPlam: this.isPlam, isFace: this.isFace})
},
// 人像可见
face () {
face() {
this.isFace = true
this.isFinger = false
this.isPlam = false
this.$bus.emit('fhxxTT', { isPlam: this.isPlam, isFace: this.isFace })
this.$bus.emit('fhxxTT', {isPlam: this.isPlam, isFace: this.isFace})
},
// 展示详情
showDetail (fingerData, index, name) {
showDetail(fingerData, index, name) {
//console.info("指纹详情==》", fingerData);
//console.info("指纹详情", index);
//console.info(name);
......@@ -1458,73 +1472,73 @@ export default {
this.destImgdetail = destimg
},
// 取消详情
cancelDetail () {
cancelDetail() {
this.isShowDetail = false
this.isShowbzDialogBg = false
},
// 清空源指纹图
clearsource () {
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 },
{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 },
{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 },
{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 },
{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 () {
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 },
{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 },
{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 },
{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 },
{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) {
scrollFunc(e) {
e = e || window.event
if (this.flag) {
return 0
......@@ -1557,7 +1571,7 @@ export default {
},
watch: {
souceDel: {
handler (val) {
handler(val) {
if (!val && !this.targetDel) {
this.zhihui = false
} else {
......@@ -1568,7 +1582,7 @@ export default {
immediate: true,
},
targetDel: {
handler (val) {
handler(val) {
if (!val && !this.souceDel) {
this.zhihui = false
} else {
......@@ -1578,7 +1592,7 @@ export default {
},
immediate: true,
},
phone (newValue, oldValue) {
phone(newValue, oldValue) {
if (newValue.length < 7) {
this.isPhoneError = true
document
......@@ -1591,17 +1605,17 @@ export default {
.style.setProperty('--phone', '#606266')
}
},
srcbarcode (val) {
srcbarcode(val) {
this.finger()
this.scouceCode = val
},
destbarcode (val) {
destbarcode(val) {
this.finger()
this.targetCode = val
},
screenLoading (val) {
screenLoading(val) {
},
loadingIndex (val, oldval) {
loadingIndex(val, oldval) {
if (oldval == 0) {
this.screenLoading = true
}
......@@ -1613,7 +1627,7 @@ export default {
}
},
},
beforeDestroy () {
beforeDestroy() {
this.$bus.off('fhxxTT')
},
}
......
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