From 236a0b8334dfa75685c7ee69619d8e76536ba666 Mon Sep 17 00:00:00 2001 From: sd <shidong@jhsoft.cc> Date: 星期五, 01 八月 2025 14:58:10 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.1.6:8080/vue-smart-ai --- src/components/subComponents/CardItem.vue | 90 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 75 insertions(+), 15 deletions(-) diff --git a/src/components/subComponents/CardItem.vue b/src/components/subComponents/CardItem.vue index 1d2c855..9bb2319 100644 --- a/src/components/subComponents/CardItem.vue +++ b/src/components/subComponents/CardItem.vue @@ -72,20 +72,20 @@ data.targetInfo == null || data.targetInfo[0].targetType !== 'FaceDetect' " - :src="data.picMaxUrl[0] | httpImage" + :src="data.picMaxUrl[0] | apiImg" class="cursor-pointer" @click="detailsClick($event)" /> <img v-else - :src="data.targetInfo[0].picSmUrl | httpImage" + :src="data.targetInfo[0].picSmUrl | apiImg" class="cursor-pointer" @click="detailsClick($event)" /> </div> <div class="s-card-left-box" v-else> <img - :src="data.baseInfo[0].targetPicUrl | httpImage" + :src="data.baseInfo[0].targetPicUrl | apiImg" class="cursor-pointer" /> </div> @@ -330,15 +330,29 @@ @mouseenter="cardMouseenter($event)" @mouseleave="cardMouseleave($event)" > - <p :title="data.picDate"> + <p :title="data.detect_time"> <span class="fontStyle color222">{{ - data.picDate | formatTime + data.detect_time | formatTime }}</span> </p> <p :title="data.cameraAddr" style="margin-bottom: 8px"> <span class="fontStyle color222">{{ data.cameraAddr }}</span> </p> - <el-tooltip placement="right" popper-class="atooltip"> + <p v-for="(item, index) in data.event_levels" :key="index + 'rule'"> + <span v-if="data.is_warning === 1" style="color: red;">{{ data.task_name }}</span + > + <span v-else>{{ data.task_name }}</span + > + <span v-if="data.is_warning === 1" style="color: red;">{{ + item.dictValue + }}</span + > + <span v-else>{{ + item.dictValue + }}</span + > + </p> + <!-- <el-tooltip placement="right" popper-class="atooltip"> <div slot="content"> <p v-for="(item, index) in data.alarmRules" :key="index + 'rule'"> <span>{{ data.taskName }}</span @@ -381,7 +395,7 @@ <span v-if="index < data.alarmRules.length - 1">/ </span> </span> </el-button> - </el-tooltip> + </el-tooltip> --> </div> <div class="right-bottom"> <div v-if="!data.id" class="card-icon-box"> @@ -398,10 +412,23 @@ v-if="data.targetInfo == null || data.targetInfo[0].picSmUrl == ''" class="card-icon-box" > - <el-tooltip content="璇︽儏" placement="top" popper-class="atooltip"> - <i class="iconfont iconcaidan" @click="detailsClick($event)"></i> + <el-tooltip placement="top" :content="data.zh_desc_class" effect="light" popper-class="my-tooltip"> + <img src="@/assets/img/article-fill@1x.png" > + <!-- <i class="iconfont iconcaidan" @click="detailsClick($event)"></i> --> </el-tooltip> - <el-tooltip content="鏀惰棌" placement="top" popper-class="atooltip"> + <el-dropdown size="small" style="margin-left: 10px;" @command="handleCommand" > + <img src="@/assets/img/modelTraining.png" style="height: 15px;width: 14px"> + + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item :command="{ ruleName: data.rule_names[0].fileName, cameraId: data.video_point_id+'', cameraName: data.video_name,imagePath:data.image_path,status:1 }">姝g‘</el-dropdown-item> + <el-dropdown-item :command="{ ruleName: data.rule_names[0].fileName, cameraId: data.video_point_id+'', cameraName: data.video_name,imagePath:data.image_path,status:2 }">閿欒</el-dropdown-item> + <el-dropdown-item :command="{ ruleName: data.rule_names[0].fileName, cameraId: data.video_point_id+'', cameraName: data.video_name,imagePath:data.image_path,status:0 }">涓嶇‘瀹�</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + <!-- <el-tooltip content="璇︽儏" placement="top" popper-class="atooltip"> + <i class="iconfont iconcaidan" @click="detailsClick($event)"></i> + </el-tooltip> --> + <!-- <el-tooltip content="鏀惰棌" placement="top" popper-class="atooltip"> <i v-if="!data.isCollect" class="iconfont iconshoucang2" @@ -410,26 +437,26 @@ <span v-else @click="collect(false)" class="iconfont icon_collect" ></span > - </el-tooltip> + </el-tooltip> --> <!-- :class=" data.isAlarm ? 'iconfont systemmm' : 'iconfont systemxing' "--> - <el-tooltip + <!-- <el-tooltip content="鍒犻櫎" placement="top" popper-class="atooltip" > <i class="iconfont iconshanchu ml40" @click="toDelete(data.id)"></i> - </el-tooltip> + </el-tooltip> --> <!-- 杩欓噷鏄澧炲姞鎸夐挳鐨勫湴鏂� --> - <el-tooltip + <!-- <el-tooltip content="璇姤" placement="top" popper-class="atooltip" > <i :style="{color:data.misreport? '#f00':''}" :disabled="data.misreport" class="iconfont el-icon-error ml40" @click="toFalseAlarm(data)"></i> - </el-tooltip> + </el-tooltip> --> </div> <div class="card-icon-box" v-else> <el-tooltip content="璇︽儏" placement="top" popper-class="atooltip"> @@ -765,6 +792,7 @@ <script> import { collect } from "@/api/search"; +import {insertModelTraining} from "@/api/task"; Date.prototype.Format = function (fmt) { var o = { @@ -846,6 +874,14 @@ "/httpImage/" + url + (url.indexOf("?") >= 0 ? "&" : "?") + "width=160" ); }, + apiImg(url) { + if (!url.length) { + return ""; + } + return ( + "/api-img" + url + (url.indexOf("?") >= 0 ? "&" : "?") + "width=160" + ); + }, }, data() { return { @@ -865,6 +901,22 @@ }, }, methods: { + handleCommand(command) { + console.log(JSON.stringify(command)) + insertModelTraining(JSON.stringify(command)).then((res) => { + if (res && res.status === 200) { + this.$notify({ + type: "success", + message: "娣诲姞鎴愬姛", + }); + } else { + this.$notify({ + type: "error", + message: "娣诲姞澶辫触锛�", + }); + } + }); + }, getBottom() { this.$nextTick(() => { let imgDom = this.$refs.firstImg; @@ -968,6 +1020,14 @@ }, }; </script> +<style> +/* 鍏ㄥ眬鐢熸晥锛屽彲瑕嗙洊 tooltip */ +.my-tooltip { + max-width: 540px !important; + color: #606266 !important; +} + +</style> <style lang="scss"> .fontStyle { font-family: PingFangSC-Medium; -- Gitblit v1.8.0