Commit cdef3d40 by tianlonglong

增加查看报告

1 parent 04f1ec2c
.resultPic[data-v-5a74fdc8]{border:1px solid #ddd;padding:0 10px}.pictures[data-v-5a74fdc8]{width:100%;margin-top:10px}.secondCondition[data-v-5a74fdc8]{display:inline-block}.resultContent[data-v-5a74fdc8]{overflow:auto;max-height:540px;min-height:300px;margin-bottom:10px}.boxInfo[data-v-5a74fdc8]{line-height:28px;margin-bottom:5px}.classBox[data-v-5a74fdc8]{margin:7px 0;border:1px solid #000;height:260px;overflow-y:hidden}.expand[data-v-5a74fdc8]{height:auto;overflow:auto}.expandWord[data-v-5a74fdc8]{color:#1890ff;margin-right:5px;cursor:pointer;float:right}.iconExpand[data-v-5a74fdc8]{cursor:pointer;float:right;color:#1890ff;margin-right:20px}.single-image[data-v-5a74fdc8]{width:100%;height:220px}.picBox[data-v-5a74fdc8]{position:relative}.picBox:hover .checkBox[data-v-5a74fdc8]{display:block}.checkBox[data-v-5a74fdc8]{display:none;width:80px;height:30px;position:absolute;left:0;top:0;right:0;bottom:0;margin:auto}.single-image[data-v-0020d14a]{width:100%;height:220px}.boxInfo[data-v-0020d14a]{line-height:28px;margin-bottom:10px}.checkBox[data-v-0020d14a]{margin-left:15px}.classBox[data-v-0020d14a]{margin-bottom:10px;border:1px solid #000;height:265px;overflow:hidden;padding:5px}.expand[data-v-0020d14a]{height:auto;overflow-y:auto}.expandWord[data-v-0020d14a]{color:#1890ff;margin-right:5px;cursor:pointer;float:right}.iconExpand[data-v-0020d14a]{cursor:pointer;float:right;color:#1890ff;margin-right:20px}.active[data-v-8be59f66]{border:2px solid #40a9ff}.regBox[data-v-8be59f66]{height:300px;overflow-y:auto;overflow-x:hidden}.hitBox[data-v-8be59f66]{position:relative}.delHitPic[data-v-8be59f66]{position:absolute;right:0;top:0;color:#1890ff;font-size:28px}.secondCondition[data-v-8be59f66]{margin-right:5px!important}.identifyResultTable[data-v-8be59f66]{overflow-y:auto}.pictureBox[data-v-8be59f66]{position:relative;cursor:pointer}.btnPic[data-v-8be59f66]{display:none;position:absolute;top:0;right:0;left:0;bottom:0;margin:auto}.pictureBox:hover .btnPic[data-v-8be59f66]{display:block;width:100px;height:100px}.checkBox[data-v-8be59f66]{width:100px;height:30px;margin-left:0!important;margin-bottom:10px}.score[data-v-8be59f66]{position:absolute;right:10px;top:0;color:red;font-weight:900;font-size:18px}.iconPic[data-v-8be59f66]{position:absolute;right:0;top:0;color:#1890ff;font-size:28px}.single-image[data-v-8be59f66]{width:100%;height:200px}.box[data-v-8be59f66],.containter[data-v-8be59f66],.contentBox[data-v-8be59f66]{height:100%}.boxRight[data-v-8be59f66]{border-left:5px solid #ccc;padding-left:5px}.btns[data-v-8be59f66]{text-align:right;margin-top:10px;margin-right:15px}.btn[data-v-8be59f66]{margin-left:10px}
\ No newline at end of file \ No newline at end of file
.resultPic[data-v-41d51f98]{border:1px solid #ddd;padding:0 10px}.pictures[data-v-41d51f98]{width:100%;margin-top:10px}.secondCondition[data-v-41d51f98]{display:inline-block}.resultContent[data-v-41d51f98]{overflow:auto;max-height:540px;min-height:300px;margin-bottom:10px}.boxInfo[data-v-41d51f98]{line-height:28px;margin-bottom:5px}.classBox[data-v-41d51f98]{margin:7px 0;border:1px solid #000;height:260px;overflow-y:hidden}.expand[data-v-41d51f98]{height:auto;overflow:auto}.expandWord[data-v-41d51f98]{color:#1890ff;margin-right:5px;cursor:pointer;float:right}.iconExpand[data-v-41d51f98]{cursor:pointer;float:right;color:#1890ff;margin-right:20px}.single-image[data-v-41d51f98]{width:100%;height:220px}.picBox[data-v-41d51f98]{position:relative}.picBox:hover .checkBox[data-v-41d51f98]{display:block}.checkBox[data-v-41d51f98]{display:none;width:80px;height:30px;position:absolute;left:0;top:0;right:0;bottom:0;margin:auto}.single-image[data-v-21f1d6de]{width:100%;height:220px}.boxInfo[data-v-21f1d6de]{line-height:28px;margin-bottom:10px}.checkBox[data-v-21f1d6de]{margin-left:15px}.classBox[data-v-21f1d6de]{margin-bottom:10px;border:1px solid #000;height:265px;overflow:hidden;padding:5px}.expand[data-v-21f1d6de]{height:auto;overflow-y:auto}.expandWord[data-v-21f1d6de]{color:#1890ff;margin-right:5px;cursor:pointer;float:right}.iconExpand[data-v-21f1d6de]{cursor:pointer;float:right;color:#1890ff;margin-right:20px}.active[data-v-745c0dec]{border:2px solid #40a9ff}.regBox[data-v-745c0dec]{height:300px;overflow-y:auto;overflow-x:hidden}.hitBox[data-v-745c0dec]{position:relative}.delHitPic[data-v-745c0dec]{position:absolute;right:0;top:0;color:#1890ff;font-size:28px}.secondCondition[data-v-745c0dec]{margin-right:5px!important}.identifyResultTable[data-v-745c0dec]{overflow-y:auto}.pictureBox[data-v-745c0dec]{position:relative;cursor:pointer}.btnPic[data-v-745c0dec]{display:none;position:absolute;top:0;right:0;left:0;bottom:0;margin:auto}.pictureBox:hover .btnPic[data-v-745c0dec]{display:block;width:100px;height:100px}.checkBox[data-v-745c0dec]{width:100px;height:30px;margin-left:0!important;margin-bottom:10px}.score[data-v-745c0dec]{position:absolute;right:10px;top:0;color:red;font-weight:900;font-size:18px}.iconPic[data-v-745c0dec]{position:absolute;right:0;top:0;color:#1890ff;font-size:28px}.single-image[data-v-745c0dec]{width:100%;height:200px}.box[data-v-745c0dec],.containter[data-v-745c0dec],.contentBox[data-v-745c0dec]{height:100%}.boxRight[data-v-745c0dec]{border-left:5px solid #ccc;padding-left:5px}.btns[data-v-745c0dec]{text-align:right;margin-top:10px;margin-right:15px}.btn[data-v-745c0dec]{margin-left:10px}
\ No newline at end of file \ No newline at end of file
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="logo.png"><title>tools</title><script src="config.js"></script><link href="css/chunk-0361d0b6.5b4f64f0.css" rel="prefetch"><link href="css/chunk-150ec2fa.148b09b7.css" rel="prefetch"><link href="css/chunk-1b380c13.5b4f64f0.css" rel="prefetch"><link href="css/chunk-28e98f5e.5b4f64f0.css" rel="prefetch"><link href="css/chunk-301c0ce2.4e859c14.css" rel="prefetch"><link href="css/chunk-345e515a.436ffd71.css" rel="prefetch"><link href="css/chunk-46fd989a.18a9baf6.css" rel="prefetch"><link href="css/chunk-50f27236.32d33c6c.css" rel="prefetch"><link href="css/chunk-5d3f07e9.0c33a0ee.css" rel="prefetch"><link href="css/chunk-6236aa01.6dfcf3dc.css" rel="prefetch"><link href="css/chunk-7160d008.18af0163.css" rel="prefetch"><link href="css/chunk-74700eb0.79bfc701.css" rel="prefetch"><link href="css/chunk-f6efcd8e.5722fa14.css" rel="prefetch"><link href="js/chunk-0361d0b6.4409ff25.js" rel="prefetch"><link href="js/chunk-144c996e.b1f131a5.js" rel="prefetch"><link href="js/chunk-150ec2fa.8b717d0d.js" rel="prefetch"><link href="js/chunk-1b380c13.757b1c6f.js" rel="prefetch"><link href="js/chunk-28e98f5e.5012d40a.js" rel="prefetch"><link href="js/chunk-2d21b108.07b8436b.js" rel="prefetch"><link href="js/chunk-301c0ce2.3b3a06ee.js" rel="prefetch"><link href="js/chunk-345e515a.cefa4d57.js" rel="prefetch"><link href="js/chunk-46fd989a.8be14a41.js" rel="prefetch"><link href="js/chunk-50f27236.e0a1a00d.js" rel="prefetch"><link href="js/chunk-5d3f07e9.9b89d1fa.js" rel="prefetch"><link href="js/chunk-5dc6092e.71fb9b51.js" rel="prefetch"><link href="js/chunk-619a39b4.fad9ebbd.js" rel="prefetch"><link href="js/chunk-6236aa01.39401447.js" rel="prefetch"><link href="js/chunk-7160d008.1ead3219.js" rel="prefetch"><link href="js/chunk-74700eb0.38111593.js" rel="prefetch"><link href="js/chunk-7cc3643e.232aa0c6.js" rel="prefetch"><link href="js/chunk-e2ba07ae.7609fa1e.js" rel="prefetch"><link href="js/chunk-f6efcd8e.a9f0dbc7.js" rel="prefetch"><link href="css/app.997cda54.css" rel="preload" as="style"><link href="css/chunk-vendors.4472a901.css" rel="preload" as="style"><link href="js/app.93a306a7.js" rel="preload" as="script"><link href="js/chunk-vendors.c9da1582.js" rel="preload" as="script"><link href="css/chunk-vendors.4472a901.css" rel="stylesheet"><link href="css/app.997cda54.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but vion-tools doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.c9da1582.js"></script><script src="js/app.93a306a7.js"></script></body></html>
\ No newline at end of file \ No newline at end of file
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="logo.png"><title>tools</title><script src="config.js"></script><link href="css/chunk-0361d0b6.5b4f64f0.css" rel="prefetch"><link href="css/chunk-150ec2fa.148b09b7.css" rel="prefetch"><link href="css/chunk-1b380c13.5b4f64f0.css" rel="prefetch"><link href="css/chunk-28372132.3e5d333d.css" rel="prefetch"><link href="css/chunk-28e98f5e.5b4f64f0.css" rel="prefetch"><link href="css/chunk-345e515a.436ffd71.css" rel="prefetch"><link href="css/chunk-46fd989a.18a9baf6.css" rel="prefetch"><link href="css/chunk-50f27236.32d33c6c.css" rel="prefetch"><link href="css/chunk-5d3f07e9.0c33a0ee.css" rel="prefetch"><link href="css/chunk-6236aa01.6dfcf3dc.css" rel="prefetch"><link href="css/chunk-7160d008.18af0163.css" rel="prefetch"><link href="css/chunk-74700eb0.79bfc701.css" rel="prefetch"><link href="css/chunk-f6efcd8e.5722fa14.css" rel="prefetch"><link href="js/chunk-0361d0b6.4409ff25.js" rel="prefetch"><link href="js/chunk-144c996e.5c29f31e.js" rel="prefetch"><link href="js/chunk-150ec2fa.8b717d0d.js" rel="prefetch"><link href="js/chunk-1b380c13.757b1c6f.js" rel="prefetch"><link href="js/chunk-28372132.5b651177.js" rel="prefetch"><link href="js/chunk-28e98f5e.5012d40a.js" rel="prefetch"><link href="js/chunk-2d21b108.07b8436b.js" rel="prefetch"><link href="js/chunk-345e515a.cefa4d57.js" rel="prefetch"><link href="js/chunk-46fd989a.8be14a41.js" rel="prefetch"><link href="js/chunk-50f27236.e0a1a00d.js" rel="prefetch"><link href="js/chunk-5d3f07e9.9b89d1fa.js" rel="prefetch"><link href="js/chunk-5dc6092e.71fb9b51.js" rel="prefetch"><link href="js/chunk-619a39b4.fad9ebbd.js" rel="prefetch"><link href="js/chunk-6236aa01.39401447.js" rel="prefetch"><link href="js/chunk-7160d008.1ead3219.js" rel="prefetch"><link href="js/chunk-74700eb0.38111593.js" rel="prefetch"><link href="js/chunk-7cc3643e.232aa0c6.js" rel="prefetch"><link href="js/chunk-e2ba07ae.7609fa1e.js" rel="prefetch"><link href="js/chunk-f6efcd8e.a9f0dbc7.js" rel="prefetch"><link href="css/app.997cda54.css" rel="preload" as="style"><link href="css/chunk-vendors.4472a901.css" rel="preload" as="style"><link href="js/app.cb2fea37.js" rel="preload" as="script"><link href="js/chunk-vendors.611f93ab.js" rel="preload" as="script"><link href="css/chunk-vendors.4472a901.css" rel="stylesheet"><link href="css/app.997cda54.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but vion-tools doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.611f93ab.js"></script><script src="js/app.cb2fea37.js"></script></body></html>
\ No newline at end of file \ No newline at end of file
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
"lodash": "^4.17.21", "lodash": "^4.17.21",
"moment": "^2.29.1", "moment": "^2.29.1",
"vue": "^3.2.27", "vue": "^3.2.27",
"vue-photo-zoom-pro": "^3.0.1",
"vue-router": "^4.0.8", "vue-router": "^4.0.8",
"vuex": "^4.0.0" "vuex": "^4.0.0"
}, },
......
...@@ -14,7 +14,7 @@ const axiosInstance = axios.create( ...@@ -14,7 +14,7 @@ const axiosInstance = axios.create(
// 请求拦截器 // 请求拦截器
axiosInstance.interceptors.request.use( axiosInstance.interceptors.request.use(
config => { config => {
// Cookies.set('atoken','7150be77-f099-4a63-90c5-ef9cc6b51137') // Cookies.set('atoken','1f458b21-9785-41d7-822c-a4565463c9ed')
if(!Cookies.get('atoken')){ if(!Cookies.get('atoken')){
ElMessage({ ElMessage({
message: `登录过期,请重新登录`, message: `登录过期,请重新登录`,
......
...@@ -2,6 +2,7 @@ import {createApp} from 'vue' ...@@ -2,6 +2,7 @@ import {createApp} from 'vue'
import App from './App.vue' import App from './App.vue'
import Antd from 'ant-design-vue' import Antd from 'ant-design-vue'
import 'ant-design-vue/dist/antd.css' import 'ant-design-vue/dist/antd.css'
import VuePhotoZoomPro from 'vue-photo-zoom-pro'
import router from './router' import router from './router'
import store from './store' import store from './store'
import installElementPlus from './plugins/element' import installElementPlus from './plugins/element'
...@@ -9,6 +10,7 @@ import installElementPlus from './plugins/element' ...@@ -9,6 +10,7 @@ import installElementPlus from './plugins/element'
const app = createApp(App) const app = createApp(App)
installElementPlus(app) installElementPlus(app)
app.use(store) app.use(store)
app.use(VuePhotoZoomPro)
app.use(router) app.use(router)
app.use(Antd) app.use(Antd)
app.mount('#app') app.mount('#app')
<template> <template>
<div class="containter"> <div class="containter">
<el-row class="contentBox" v-loading="isLoading"> <el-row class="contentBox" v-loading="isLoading" v-show="isShow">
<el-col :span="7" class="box boxLeft"> <el-col :span="7" class="box boxLeft">
<a-form :model="queryForm" layout="inline" :label-col="{ style: { width: '70px' } }"> <a-form :model="queryForm" layout="inline" :label-col="{ style: { width: '70px' } }">
<a-form-item label="集团:"> <a-form-item label="集团:">
...@@ -15,14 +15,16 @@ ...@@ -15,14 +15,16 @@
<div class="btns"> <div class="btns">
<a-button type="primary" @click="confirmSearch" class="btn">搜索</a-button> <a-button type="primary" @click="confirmSearch" class="btn">搜索</a-button>
<a-button type="primary" @click="addPersonFun" class="btn">新增注册人员</a-button> <a-button type="primary" @click="addPersonFun" class="btn">新增注册人员</a-button>
<!-- <a-button type="primary" @click="confirmSearch" class="btn">预览报告</a-button> --> <a-button type="primary" @click="selectReport" class="btn">查看报告</a-button>
</div> </div>
<el-table :data="resultList" @row-click='clickRow' :highlight-current-row='true' :rowKey="id" :height="contentHeight" style="width: 100%"> <el-table :data="resultList" @row-click='clickRow' :highlight-current-row='true' :rowKey="id" :height="contentHeight" style="width: 100%" @selection-change="handleSelectionChange">
<!-- <el-table-column type="index" align="center" label="序号" width="80"> <!-- <el-table-column type="index" align="center" label="序号" width="80">
<template #default="scope"> <template #default="scope">
<span v-text="getIndex(scope.$index)"> </span> <span v-text="getIndex(scope.$index)"> </span>
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column type="selection" width="30">
</el-table-column>
<el-table-column prop="name" align="center" label="姓名"> <el-table-column prop="name" align="center" label="姓名">
</el-table-column> </el-table-column>
<el-table-column prop="regCount" align="center" label="注册图片数量"> <el-table-column prop="regCount" align="center" label="注册图片数量">
...@@ -123,12 +125,44 @@ ...@@ -123,12 +125,44 @@
<addPersonConfig ref="addPersonConfigRef" @refreshParentTable='confirmSearch'></addPersonConfig> <addPersonConfig ref="addPersonConfigRef" @refreshParentTable='confirmSearch'></addPersonConfig>
<editPersonConfig ref="addSamplePicConfigRef" @refreshParentTable='confirmSearch'></editPersonConfig> <editPersonConfig ref="addSamplePicConfigRef" @refreshParentTable='confirmSearch'></editPersonConfig>
<hitDetailDialog ref="hitDetailDialogRef" @refreshParentTable='confirmSearch'></hitDetailDialog> <hitDetailDialog ref="hitDetailDialogRef" @refreshParentTable='confirmSearch'></hitDetailDialog>
<div v-show="!isShow" style="padding: 0px 10px 10px">
<div @click="returns" style="cursor: pointer;margin-bottom: 10px;color: blue;">返回</div>
<div v-for="item in tableDataList" :key="item.id" style="margin-bottom: 10px;border-top: 1px solid #ccc;padding-top: 10px;">
<div>
<div style="margin-left: 55px;"><span style="font-weight: bolder;">姓名:</span>{{ item.name }}</div>
<div style="display: flex;align-items: center;">
<span><span style="font-weight: bolder;">注册图片数量:</span>{{ item.picList&& item.picList.length}}</span>
<el-image v-for="(item1,index) in item.picList" :key="index" :src='formatUrl(item1)' alt="" style="width: 100px;height:100px;margin-left: 10px;" :preview-src-list="[formatUrl(item1)]"></el-image>
<!-- <el-image v-for="(item1,index) in item.picList" :key="index" :src='formatUrl(item1)' alt="" style="width: 100px;height:100px;margin-left: 20px;" :preview-src-list="formatUrlList"></el-image> -->
</div>
<div style="margin-top: 10px;margin-bottom: 10px;">
<span><span style="font-weight: bolder;">命中目标数量:</span>{{ item.hitRecords&& item.hitRecords.length}}</span>
</div>
</div>
<el-table :data="item.hitRecords" style="width: 100%" border>
<el-table-column type="index" label="序号" width="80">
</el-table-column>
<el-table-column prop="counttime" label="时间" >
</el-table-column>
<el-table-column prop="gateName" label="监控点名称" >
</el-table-column>
<el-table-column prop="direction" label="方向">
</el-table-column>
<el-table-column label="图片">
<template #default="scope">
<!-- <img :src='formatUrl1(scope.row.picture_path)' alt="" style="width: 100px;height:100px;margin-left: 10px;margin-top: 5px;"> -->
<el-image :src='formatUrl1(scope.row.picture_path)' alt="" style="width: 100px;height:100px;margin-left: 10px;" :preview-src-list="[formatUrl1(scope.row.picture_path)]"></el-image>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { reactive, ref, toRaw } from "vue"; import { nextTick, reactive, ref, toRaw } from "vue";
import moment from "moment"; import moment from "moment";
import snapshotRecordApi from "@/views/SnapshotCluster/SnapshotRecord/SnapshotRecordApi"; import snapshotRecordApi from "@/views/SnapshotCluster/SnapshotRecord/SnapshotRecordApi";
import { isArray } from "@/PublicUtil/Judgment"; import { isArray } from "@/PublicUtil/Judgment";
...@@ -143,6 +177,7 @@ import addPersonConfig from "./addPerson.vue"; ...@@ -143,6 +177,7 @@ import addPersonConfig from "./addPerson.vue";
import editPersonConfig from "./editPerson.vue"; import editPersonConfig from "./editPerson.vue";
import hitDetailDialog from "./hitDetailDialog.vue"; import hitDetailDialog from "./hitDetailDialog.vue";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router";
export default { export default {
components: { components: {
addPersonConfig, addPersonConfig,
...@@ -152,6 +187,12 @@ export default { ...@@ -152,6 +187,12 @@ export default {
setup() { setup() {
const accountList = ref([]); const accountList = ref([]);
const plazaList = ref([]); const plazaList = ref([]);
const tableDataList = ref([
]);
const selectList = ref([]);
const router = useRouter();
const isShow = ref(true);
const queryForm = reactive({ const queryForm = reactive({
account_id: "", account_id: "",
plaza_id: "", plaza_id: "",
...@@ -350,7 +391,7 @@ export default { ...@@ -350,7 +391,7 @@ export default {
// 添加注册样本图 // 添加注册样本图
const addSamplePicConfigRef = ref(); const addSamplePicConfigRef = ref();
const addSamplePic = function (row) { const addSamplePic = function (row) {
console.log(row,'888888') console.log(row, "888888");
FeatureMatchingAccuracyApi.getMatchOne(row).then((r) => { FeatureMatchingAccuracyApi.getMatchOne(row).then((r) => {
if (r.msg_code == 200) { if (r.msg_code == 200) {
addSamplePicConfigRef.value.initDialog(r.data); addSamplePicConfigRef.value.initDialog(r.data);
...@@ -381,19 +422,17 @@ export default { ...@@ -381,19 +422,17 @@ export default {
if (r.data.faceList && r.data.faceList.length > 0) { if (r.data.faceList && r.data.faceList.length > 0) {
r.data.faceList.forEach((item) => { r.data.faceList.forEach((item) => {
item.picture_url = item.picture_url =
window._baseImgUrl + window._baseImgUrl + "tool/picture/" + item.picUrl;
"tool/picture/" +item.picUrl
// item.bodyPath + // item.bodyPath +
// item.bodyPic; // item.bodyPic;
}); });
regPictureList.value = r.data.faceList; regPictureList.value = r.data.faceList;
console.log(regPictureList.value) console.log(regPictureList.value);
} }
if (r.data.hitList && r.data.hitList.length > 0) { if (r.data.hitList && r.data.hitList.length > 0) {
r.data.hitList.forEach((item) => { r.data.hitList.forEach((item) => {
item.picture_url = item.picture_url =
window._baseImgUrl + window._baseImgUrl + "tool/picture/" + item.picUrl;
"tool/picture/" +item.picUrl
// item.bodyPath + // item.bodyPath +
// item.bodyPic; // item.bodyPic;
}); });
...@@ -421,13 +460,13 @@ export default { ...@@ -421,13 +460,13 @@ export default {
}; };
const currentId = ref(); const currentId = ref();
// 点击图片以图搜图 // 点击图片以图搜图
const clickPicture = function (row,type) { const clickPicture = function (row, type) {
console.log(row,'5555') console.log(row, "5555");
let types=null let types = null;
if(type===0){ if (type === 0) {
types=0 types = 0;
}else if(type===1){ } else if (type === 1) {
types=1 types = 1;
} }
const rawData = toRaw(hitSearchObj); const rawData = toRaw(hitSearchObj);
// if(rawData.gate_id.length<1){ // if(rawData.gate_id.length<1){
...@@ -437,7 +476,7 @@ export default { ...@@ -437,7 +476,7 @@ export default {
// }) // })
// return false; // return false;
// } // }
currentId.value = row.faceUnid||row.unid; currentId.value = row.faceUnid || row.unid;
// currentId.value = row.id; // currentId.value = row.id;
isLoading.value = true; isLoading.value = true;
let data = filterEmptyValueInObject({ let data = filterEmptyValueInObject({
...@@ -451,7 +490,7 @@ export default { ...@@ -451,7 +490,7 @@ export default {
endTime: formatDate(rawData.date) + " " + formatTime(rawData.endTime), endTime: formatDate(rawData.date) + " " + formatTime(rawData.endTime),
// faceId: currentId.value, // faceId: currentId.value,
faceUnid: currentId.value, faceUnid: currentId.value,
type:types, type: types,
page: pageNum_identify.value - 1, page: pageNum_identify.value - 1,
pageSize: pageSize_identify.value, pageSize: pageSize_identify.value,
regId: regPersonId.value, regId: regPersonId.value,
...@@ -520,11 +559,11 @@ export default { ...@@ -520,11 +559,11 @@ export default {
}); });
getTableData(); getTableData();
// disabledPicList.value.push(resData.unid); // disabledPicList.value.push(resData.unid);
identifyResultList.value.forEach(item=>{ identifyResultList.value.forEach((item) => {
if(item.unid===resData.unid){ if (item.unid === resData.unid) {
item.checked=true item.checked = true;
} }
}) });
clickRow(redPersonObj.value); clickRow(redPersonObj.value);
// searchPicture(); // searchPicture();
} }
...@@ -554,7 +593,7 @@ export default { ...@@ -554,7 +593,7 @@ export default {
FeatureMatchingAccuracyApi.delMatchSample({ FeatureMatchingAccuracyApi.delMatchSample({
regId: regPersonId.value, regId: regPersonId.value,
// faceId: row.id, // faceId: row.id,
faceUnid:row.faceUnid faceUnid: row.faceUnid,
}).then((r) => { }).then((r) => {
isLoading.value = false; isLoading.value = false;
if (r.msg_code == 200) { if (r.msg_code == 200) {
...@@ -575,8 +614,48 @@ export default { ...@@ -575,8 +614,48 @@ export default {
getAccountList(); getAccountList();
}; };
__main(); __main();
const handleSelectionChange = (val) => {
selectList.value = val;
console.log(val);
};
const formatUrlList=ref([])
const selectReport = () => {
if (selectList.value.length <= 0) {
return ElMessage({
message: `请选择`,
type: "warning",
});
}
isShow.value = false;
let datas=selectList.value.map(item=>item.id).join(',')
FeatureMatchingAccuracyApi.getfeatureReport({
idList:datas
}).then(res=>{
tableDataList.value=res
// console.log(tableDataList.value)
// formatUrlList.value=tableDataList.value.picList.map(item=>{
// return window._baseImgUrl + "tool/picture/" + item
// })
// console.log(formatUrlList.value)
})
};
const returns = () => {
console.log(isShow.value);
isShow.value = true;
};
const formatUrl=(url)=>{
return window._baseImgUrl + "tool/picture/" + url;
}
const formatUrl1=(url)=>{
return window._baseImgUrl + "picture/" + url;
}
return { return {
// sequence // sequence
tableDataList,
formatUrlList,
isShow,
isLoading, isLoading,
pageNum, pageNum,
pageSize, pageSize,
...@@ -589,6 +668,10 @@ export default { ...@@ -589,6 +668,10 @@ export default {
addSamplePicConfigRef, addSamplePicConfigRef,
hitSearchObj, hitSearchObj,
gateList, gateList,
handleSelectionChange,
formatUrl,
formatUrl1,
selectReport,
activeKey: ref("1"), activeKey: ref("1"),
regPictureList, regPictureList,
pageNum_identify, pageNum_identify,
...@@ -619,6 +702,7 @@ export default { ...@@ -619,6 +702,7 @@ export default {
hitDetail, hitDetail,
delSamplePic, delSamplePic,
addSamplePic, addSamplePic,
returns,
}; };
}, },
}; };
......
...@@ -80,6 +80,15 @@ class FeatureMatchingAccuracy { ...@@ -80,6 +80,15 @@ class FeatureMatchingAccuracy {
} }
) )
} }
getfeatureReport(data){
return axiosInstance.request(
{
method: 'GET',
url: `/feature/match/report`,
params: data
}
)
}
getMatchHit(data){ getMatchHit(data){
return axiosInstance.request( return axiosInstance.request(
{ {
...@@ -88,6 +97,14 @@ class FeatureMatchingAccuracy { ...@@ -88,6 +97,14 @@ class FeatureMatchingAccuracy {
} }
) )
} }
GetmatchPrecision(data){
return axiosInstance.request(
{
method: 'GET',
url: `/feature/match/precision/${data.regId}/${data.personUnid}`,
}
)
}
delMatchSample(data){ delMatchSample(data){
return axiosInstance.request( return axiosInstance.request(
{ {
......
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
人id:{{ ' ' + person.personId }} 人id:{{ ' ' + person.personId }}
图片数量:{{ person.count }} 图片数量:{{ person.count }}
<el-radio class="checkBox" v-model="checked" :label="person.personId">以此为对比项</el-radio> <el-radio class="checkBox" v-model="checked" :label="person.personId">以此为对比项</el-radio>
<el-button @click="selectRate(person)" size="mini" type="primary" style="margin-right: 10px;">查询精度</el-button>
<span v-if="person.personId==currentpersonId">准确率:{{results.correctRate}}</span>
<span v-if="person.personId==currentpersonId" style="margin-left: 10px;">召回率:{{results.recallRate}}</span>
</div> </div>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="3" v-for="item in person.records"> <el-col :span="3" v-for="item in person.records">
...@@ -48,6 +51,8 @@ export default { ...@@ -48,6 +51,8 @@ export default {
setup(props,context) { setup(props,context) {
const isVisible = ref(false); const isVisible = ref(false);
const isLoading = ref(false) const isLoading = ref(false)
const results=ref({})
const currentpersonId=ref('')
const accountId = ref(''); const accountId = ref('');
const mallId = ref(''); const mallId = ref('');
const checked = ref(''); const checked = ref('');
...@@ -101,8 +106,22 @@ export default { ...@@ -101,8 +106,22 @@ export default {
} }
) )
} }
const selectRate=(row)=>{
console.log(row ,regId.value )
currentpersonId.value=row.personId
FeatureMatchingAccuracyApi.GetmatchPrecision({
regId:regId.value,
personUnid:row.personId
}).then(res=>{
console.log(res,'66666')
results.value=res
})
}
return { return {
isVisible, isVisible,
selectRate,
currentpersonId,
results,
onCancel, onCancel,
onConfirm, onConfirm,
initDialog, initDialog,
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!