From 05d754bb09ba4aeddd60320d33d583d388434c2f Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期一, 20 十二月 2021 15:38:45 +0800
Subject: [PATCH] 树形组件修改
---
src/components/subComponents/CardItem.vue | 221 ++++++++++++++++++++++++++++++++-----------------------
1 files changed, 129 insertions(+), 92 deletions(-)
diff --git a/src/components/subComponents/CardItem.vue b/src/components/subComponents/CardItem.vue
index df8d6ef..077aea4 100644
--- a/src/components/subComponents/CardItem.vue
+++ b/src/components/subComponents/CardItem.vue
@@ -7,7 +7,7 @@
<div class="card-img-box-compear">
<div class="card-img-box-compear-left" ref="firstImg">
<img
- :src="'/httpImage/'+data.targetInfo[0].picSmUrl+'?width=160'"
+ :src="data.targetInfo[0].picSmUrl | httpImage"
:id="'/compear/'+data.targetInfo[0].picSmUrl"
class="cursor-pointer"
@click="detailsClick($event)"
@@ -22,7 +22,7 @@
>
<el-carousel-item v-for="(item, index) in data.baseInfo" :key="index">
<img
- :src="'/httpImage/'+item.targetPicUrl+'?width=160'"
+ :src="item.targetPicUrl | httpImage"
class="cursor-pointer"
@click="detailsClick($event)"
/>
@@ -31,13 +31,12 @@
</div>
<div
class="s-card-left-isCompare-div compareScore111"
- style
:style="{
- bottom: getBottom(),
+ bottom: '0',
background: getUrl(data.baseInfo[initialIndex].bwType)
}"
>
- <b>{{ `${data.baseInfo[initialIndex].compareScore}%` }}</b>
+ <b>{{ data.baseInfo[initialIndex].compareScore | percentage }}</b>
</div>
</div>
</div>
@@ -54,30 +53,28 @@
@change="changeCarousel"
>
<el-carousel-item v-for="(item, index) in data.picMaxUrl" :key="index + 'img'">
- <img
- :src="'/httpImage/'+item+'?width=160'"
- class="cursor-pointer"
- @click="detailsClick($event)"
- />
+ <img :src="item | httpImage" class="cursor-pointer" @click="detailsClick($event)" />
</el-carousel-item>
</el-carousel>
+ <!-- 鏆傛椂璁や负鍙湁浜鸿劯鎶撴媿鐨勬姤璀�, 棣栭〉鏄剧ず灏忓浘, 鍏朵粬鏃堕棿鍧囨樉绀哄ぇ鍥� -->
<img
- v-else-if="data.targetInfo == null || data.targetInfo[0].picSmUrl == ''"
- :src="'/httpImage/'+data.picMaxUrl[0]+'?width=160'"
+ v-else-if="data.targetInfo == null || data.targetInfo[0].targetType !== 'FaceDetect'"
+ :src="data.picMaxUrl[0] | httpImage"
class="cursor-pointer"
@click="detailsClick($event)"
/>
<img
v-else
- :src="'/httpImage/'+data.targetInfo[0].picSmUrl+'?width=160'"
+ :src="data.targetInfo[0].picSmUrl | httpImage"
class="cursor-pointer"
@click="detailsClick($event)"
/>
</div>
<div class="s-card-left-box" v-else>
- <img :src="'/httpImage/'+data.baseInfo[0].targetPicUrl+'?width=160'" class="cursor-pointer" />
+ <img :src="data.baseInfo[0].targetPicUrl | httpImage" class="cursor-pointer" />
</div>
</div>
+
<!-- 鍙充晶鏂囧瓧鍖哄煙 -->
<!-- 澶氬紶搴曞浘鍒囨崲 -->
<div class="s-card-right-isCompare" v-if="showType == 'compare'">
@@ -87,12 +84,8 @@
@mouseenter="cardMouseenter($event)"
@mouseleave="cardMouseleave($event)"
>
- <!-- <p :title="data.baseInfo[0].compareScore" class="score">
- <span v-if="data.id">{{ data.compareScore }}%</span>
- <span v-else>{{ data.baseInfo[0].compareScore }}%</span>
- </p>-->
<p>
- <span class="fontStyle color222">{{ data.picDate }}</span>
+ <span class="fontStyle color222">{{ data.picDate | formatTime}}</span>
</p>
<p style="margin-bottom: 8px;">
<span class="fontStyle color222">{{ data.cameraAddr }}</span>
@@ -137,7 +130,7 @@
<span
class="fontStyle"
v-if="data.baseInfo[initialIndex].labels"
- >/ {{ data.baseInfo[initialIndex].labels.split("/")[1] }}</span>
+ >/ {{ data.baseInfo[initialIndex].labels | idCard}}</span>
<span
class="fontStyle"
v-if="data.baseInfo[initialIndex].monitorLevel"
@@ -163,7 +156,7 @@
<span
class="fontStyle"
v-if="data.baseInfo[initialIndex].labels"
- >/ {{ data.baseInfo[initialIndex].labels.split("/")[1] }}</span>
+ >/ {{ data.baseInfo[initialIndex].labels | idCard}}</span>
<span
class="fontStyle"
v-if="data.baseInfo[initialIndex].monitorLevel"
@@ -200,7 +193,7 @@
class="score"
style="font-family: PingFangSC-Medium;font-size: 20px;color: #3D68E1;letter-spacing: 0.4px;"
>
- <span>{{ data.baseInfo[0].compareScore }}%</span>
+ <span>{{ data.baseInfo[0].compareScore | percentage}}</span>
</p>
<p
:style="data.baseInfo[0].bwType == '0' ? 'font-size:12px;line-height:20px' : 'color:red;font-size:12px;line-height:20px'"
@@ -209,7 +202,7 @@
<span>{{ data.baseInfo[0].targetName }}</span>
<span
v-if="data.baseInfo[0].labels"
- >/ {{ data.baseInfo[0].labels.split("/")[1] }}</span>
+ >/ {{ data.baseInfo[0].labels | idCard}}</span>
</p>
</div>
<div class="card-icon-box">
@@ -230,7 +223,7 @@
@mouseleave="cardMouseleave($event)"
>
<p :title="data.picDate">
- <span class="fontStyle color222">{{ data.picDate }}</span>
+ <span class="fontStyle color222">{{ data.picDate | formatTime }}</span>
</p>
<p :title="data.cameraAddr" style="margin-bottom: 8px;">
<span class="fontStyle color222">{{ data.cameraAddr }}</span>
@@ -302,7 +295,7 @@
<!-- 娌℃湁搴曞簱锛岄潪姣斿锛屾櫘閫氭ā寮� 涓�瀹氭湁targetInfo锛屽苟涓攖argetInfo涓暟涓�1-->
<div
- v-else-if="data.targetInfo !== null && data.targetInfo[0].picSmUrl !== '' && data.targetInfo.length == 1"
+ v-else-if="data.targetInfo !== null && data.targetInfo[0].picSmUrl !== ''"
class="s-card-right-signal"
>
<div
@@ -316,11 +309,11 @@
v-if="VideoPhotoData.uploadType"
style="font-family: PingFangSC-Medium;font-size: 20px;color: #3D68E1;letter-spacing: 0.4px;"
>
- <span v-if="data.id">{{ data.compareScore }}%</span>
- <span v-else>{{ data.baseInfo[0].compareScore }}%</span>
+ <span v-if="data.id">{{ data.compareScore | percentage}}</span>
+ <span v-else>{{ data.baseInfo[0].compareScore | percentage}}</span>
</p>
<p :title="data.picDate">
- <span class="fontStyle color222">{{ data.picDate }}</span>
+ <span class="fontStyle color222">{{ data.picDate | formatTime }}</span>
</p>
<p :title="data.cameraAddr" style="margin-bottom: 8px;">
<span class="fontStyle color222">{{ data.cameraAddr }}</span>
@@ -362,15 +355,12 @@
<div slot="content">
<p v-for="(item,index) in data.baseInfo" :key="index+'base1'">
<span class="fontStyle">{{item.tableName}}</span>
- <span class="fontStyle" v-if="item.targetName !== ''">/ {{item.targetName}}</span>
+ <span class="fontStyle" v-if="item.targetName.length">/ {{item.targetName}}</span>
<span
class="fontStyle"
- v-if="item.labels !== '' && item.labels.split('/')[1] !== ''"
- >/ {{item.labels.split("/")[1]}}</span>
- <span
- class="fontStyle"
- v-if="item.labels !== '' && item.labels.split('/')[0] !== ''"
- >/ {{item.labels.split("/")[0]}}</span>
+ v-if="item.labels.length"
+ >/ {{item.labels | idCard}}</span>
+ <span class="fontStyle" v-if="item.labels.length">/ {{item.labels | sex}}</span>
</p>
</div>
<el-button
@@ -382,15 +372,12 @@
:style="item.bwType == '1' ? 'color:red;font-size:12px;line-height:20px':'font-size:12px;line-height:20px'"
>
<span class="fontStyle">{{item.tableName}}</span>
- <span class="fontStyle" v-if="item.targetName !== ''">/ {{item.targetName}}</span>
+ <span class="fontStyle" v-if="item.targetName.length">/ {{item.targetName}}</span>
<span
class="fontStyle"
- v-if="item.labels !== '' && item.labels.split('/')[1] !== ''"
- >/ {{item.labels.split("/")[1]}}</span>
- <span
- class="fontStyle"
- v-if="item.labels !== '' && item.labels.split('/')[0] !== ''"
- >/ {{item.labels.split("/")[0]}}</span>
+ v-if="item.labels.length"
+ >/ {{item.labels | idCard}}</span>
+ <span class="fontStyle" v-if="item.labels.length">/ {{item.labels |sex }}</span>
</span>
</el-button>
</el-tooltip>
@@ -469,7 +456,7 @@
>
<div>
<p :title="data.picDate">
- <span class="fontStyle color222">{{ data.picDate }}</span>
+ <span class="fontStyle color222">{{ data.picDate | formatTime }}</span>
</p>
<p :title="data.cameraAddr" style="margin-bottom: 8px;">
<span class="fontStyle color222">{{ data.cameraAddr }}</span>
@@ -488,9 +475,26 @@
</template>
<script>
+Date.prototype.Format = function (fmt) {
+ var o = {
+ "M+": this.getMonth() + 1, //鏈堜唤
+ "d+": this.getDate(), //鏃�
+ "H+": this.getHours(), //灏忔椂
+ "m+": this.getMinutes(), //鍒�
+ "s+": this.getSeconds(), //绉�
+ "q+": Math.floor((this.getMonth() + 3) / 3), //瀛e害
+ "S": this.getMilliseconds() //姣
+ };
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
+ for (var k in o)
+ if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+ return fmt;
+}
+
export default {
mounted() {
- window.addEventListener("resize", this.watchWindow);
+ //window.addEventListener("resize", this.watchWindow);
+ window.addEventListener("resize", this.getBottom)
},
props: {
data: {
@@ -500,20 +504,46 @@
showType: {
type: String,
default: "search"
- }
- },
- watch: {
- data: {
- handler(val, oldVal) {
- console.log('鏁版嵁鍙戠敓鍙樺寲')
- this.$forceUpdate()
- },
- deep: true
- }
+ },
+ fromCluster: {
+ type: Boolean,
+ default: false
+ },
+ searchT: {}
},
computed: {
isId() {
return this.data.id
+ }
+ },
+ filters: {
+ formatTime(t) {
+ return new Date(t).Format("yyyy-MM-dd HH:mm:ss")
+ },
+ percentage(score) {
+ return score.toFixed(2) + "%"
+ },
+ idCard(v) {
+ try {
+ let obj = JSON.parse(v)
+ return obj.idCard
+ } catch (error) {
+ return v.split("/")[1]
+ }
+ },
+ sex(v) {
+ try {
+ let obj = JSON.parse(v)
+ return obj.sex
+ } catch (error) {
+ return v.split("/")[0]
+ }
+ },
+ httpImage(url) {
+ if (!url.length) {
+ return ""
+ }
+ return '/httpImage/' + url + ((url.indexOf("?") >= 0) ? '&' : '?') + 'width=160'
}
},
data() {
@@ -525,31 +555,30 @@
overflowState: true
};
},
+ watch: {
+ data: {
+ handler(val, oldVal) {
+ this.$forceUpdate()
+ },
+ deep: true
+ }
+ },
methods: {
- watchWindow() {
- // console.log('height')
- // this.$nextTick(() => {
- // document.querySelectorAll('.compareScore111').forEach(ele => {
- // ele.style.bottom = this.getBottom()
- // console.log("鍏冪礌鐨勬牱寮忓�硷細",ele.style.bottom)
- // });
- // this.$forceUpdate()
- // })
- },
getBottom() {
- // let imgDom = document.getElementById(str)
- let imgDom = this.$refs.firstImg
- if (imgDom) {
- let num = (imgDom.offsetHeight - imgDom.offsetWidth) / 2
- return `${num}px`;
- }
- return `4px`;
+ this.$nextTick(() => {
+ let imgDom = this.$refs.firstImg
+ if (imgDom) {
+ let num = (imgDom.offsetHeight - imgDom.offsetWidth) / 2
+ return `${num}px`;
+ }
+ return `4px`;
+ })
},
getUrl(bwtype) {
if (bwtype == 1) {
- return `url(${require("@/assets/bg/red.png")})`
+ return `url(${require("@/assets/img/red.png")})`
} else {
- return `url(${require("@/assets/bg/green.png")})`
+ return `url(${require("@/assets/img/green.png")})`
}
},
changeInitialIndex(index) {
@@ -568,23 +597,25 @@
this.$emit("detailsClick", ev);
},
toAdd(item) {
- console.log("瑙﹀彂鍔犲叆搴曞簱")
this.$emit("addToBase", item);
},
tosearch(item) {
- var curWwwPath = window.document.location.href;
- var pathname = window.document.location.pathname;
- var pos = curWwwPath.indexOf(pathname);
- var localhostPath = curWwwPath.substring(0, pos); //ip+port
- var href = localhostPath + "/Layout/Searching"
+ this.searchT
let captureId = item.id == "" ? item.baseInfo[0].targetId : item.id
- var url = item.targetInfo ? item.targetInfo[0].picSmUrl : item.baseInfo[0].targetPicUrl
- console.log("璺宠浆鍦板潃", href, "url", url)
- var compType = 1 // 鏁版嵁鏉ヨ嚜浜巈s
+ let imgUrl = item.targetInfo ? item.targetInfo[0].picSmUrl : item.baseInfo[0].targetPicUrl
+ let compType = 1 // 鏁版嵁鏉ヨ嚜浜巈s
if (!item.id || item.id == "") {
compType = 0 // 鏁版嵁鏉ヨ嚜浜庡簳搴�
}
- window.open(href + '?showType=findByPic&targetId=' + captureId + '&picSmUrl=' + url + '&compType=' + compType)
+ let message
+ if (this.fromCluster) {
+ message = 'toCluster?showType=findByPic&targetId=' + captureId + '&picSmUrl=' + imgUrl + '&compType=' + compType + '×tamp=' + new Date().getTime() + '&start=' + this.searchT[0] + '&end=' + this.searchT[1];
+ } else {
+ message = 'toSearch?showType=findByPic&targetId=' + captureId + '&picSmUrl=' + imgUrl + '&compType=' + compType + '×tamp=' + new Date().getTime() + '&start=' + this.searchT[0] + '&end=' + this.searchT[1];
+ }
+ window.parent.postMessage({
+ msg: message
+ }, "*")
}
}
};
@@ -594,15 +625,15 @@
font-family: PingFangSC-Medium;
}
.color222 {
- font-size: 0.75rem;
+ font-size: 12px;
font-weight: 600;
- line-height: 1rem;
+ line-height: 14px;
color: #222222;
}
.color666 {
color: #666666;
- font-size: 0.75rem;
- line-height: 1.25rem;
+ font-size: 12px;
+ line-height: 16px;
}
.box-card {
cursor: default;
@@ -624,11 +655,11 @@
.card-img-box {
box-sizing: border-box;
width: 100%;
- height: 100%;
position: relative;
overflow: hidden;
+ top: 50%;
+ transform: translateY(-50%);
.card-img-box-compear {
- height: 100%;
width: 100%;
display: flex;
.card-img-box-compear-left {
@@ -637,8 +668,13 @@
justify-content: center;
align-items: Center;
overflow: hidden;
- width: 100%;
+ flex: 1;
height: 100%;
+ }
+ .el-carousel {
+ flex: 1;
+ width: auto;
+ height: auto !important;
}
.el-carousel__item {
display: flex;
@@ -676,9 +712,10 @@
}
}
img {
+ display: block;
width: 100%;
- height: 100%;
- object-fit: contain;
+ //height: 100%;
+ //object-fit: contain;
}
.s-card-left-isCompare-div {
width: 60px;
--
Gitblit v1.8.0