Files
sgxt_web/src/views/backOfficeSystem/IntelligentControl/warningControl/components/yjItem.vue
2025-07-14 21:05:39 +08:00

182 lines
5.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="personCard relative flex mb10 pointer">
<div class="cxbq f14 lh50 tc absolute" v-if="props.item.czzt == '03'">已完成</div>
<el-button color="#0072ff" size="small" class="btn_qs f14 tc absolute">签收</el-button>
<div class="avatarBox relative">
<div class="marks f12 absolute" :class="changeBg(props.item.yjjb)">
<DictTag :tag="false" :value="props.item.czzt" :options="props.dic._GS_ZDR_CZZT" />
</div>
<div>
<el-image :preview-teleported="true" style="width: 80px; height: 110px" :src="props.item.yjTp" :preview-src-list="[props.item.yjTp]"/>
</div>
<span class="smallbtn">全息档案</span>
</div>
<div class="infoBox">
<div class="items">
<div class="infoItem flex nowrap mb10">{{ props.item.yjRyxm }} <span class="bqbox ml6">{{ props.item.yjbq }}</span></div>
<div class="infoItem ellipsis">性别<span class="value">{{ IdCard(props.item.yjRysfzh , 2 )}}</span></div>
<div class="infoItem ellipsis">身份证号<span class="value">{{ props.item.yjRysfzh }}</span></div>
<div class="infoItem ellipsis">出生日期<span class="value">{{ IdCard(props.item.yjRysfzh , 1 )}}</span></div>
<div class="infoItem ellipsis">相似度<span class="value">{{ props.item.xsd * 100 }}%</span></div>
</div>
<div class="items">
<div class="infoItem ellipsis">预警标题:<span class="value">{{ props.item.yjBt }}</span></div>
<div class="infoItem ellipsis">预警内容<span class="value">{{ props.item.yjNr }}</span></div>
<div class="infoItem ellipsis">预警地址<span class="value">{{ props.item.yjDz }}</span></div>
<div class="infoItem ellipsis">预警时间<span class="value">{{ props.item.yjSj }}</span></div>
<div class="infoItem ellipsis">预警次数<span class="value"><span class="num">{{ props.item.yjCs }}</span> </span></div>
<div class="infoItem ellipsis">预警级别<span class="value">{{ props.item.yjJb }}</span></div>
</div>
<div class="items">
<div class="infoItem ellipsis">签收人<span class="value">{{ props.item.qsrxm }}</span></div>
<div class="infoItem ellipsis">签收时间<span class="value">{{ props.item.qssj }}</span></div>
<div class="infoItem ellipsis">反馈时间<span class="value">{{ props.item.fksj }}</span></div>
<div class="infoItem ellipsis">反馈内容<span class="value">{{ props.item.qsFk }}</span></div>
<div class="infoItem ellipsis">反馈人<span class="value">{{ props.item.fkrxm }}</span></div>
</div>
</div>
</div>
</template>
<script setup>
import { IdCard } from '@/utils/validate.js'
import { defineProps } from "vue";
const props = defineProps({
item: {
type: Object,
default: () => ({})
},
dic: {
type: Object,
default: () => ({})
},
type: {
type: String,
default: ""
}
});
// 切换背景
const changeBg = (type) => {
switch (type) {
case "10":
return "marks_red";
case "20":
return "marks_orange";
case "30":
return "marks_yellow";
case "40":
return "marks_blue";
default:
return "marks_red";
}
};
</script>
<style lang="scss" scoped>
.personCard {
background: rgba(10, 49, 88, 0.6);
box-shadow: inset 0px 0px 10px 0px rgba(56, 119, 242, 0.5);
border-radius: 0px 0px 0px 0px;
border: 1px solid #0072ff;
padding: 10px;
box-sizing: border-box;
transition: all 0.3s;
&:hover {
background: rgba(17, 66, 96, 0.8);
}
.cxbq {
right: 5px;
top: 5px;
width: 50px;
height: 50px;
border-radius: 50%;
background: rgba(0, 255, 255, 0.3);
border: 1px solid #00ffff;
color: #00ffff;
transform: rotate(-48deg);
}
.btn_qs {
left: 94px;
bottom: 11px;
}
::v-deep .el-button{
span{
color: #fff;
}
}
.avatarBox {
margin-right: 5px;
overflow: hidden;
width: 80px;
.marks {
width: 70px;
height: 32px;
line-height: 40px;
text-align: center;
background: rgba(255, 62, 62, 0.75);
top: -4px;
left: -24px;
transform: rotate(-45deg);
z-index: 1;
}
.marks_red {
background: rgba(255, 62, 62, 0.75);
}
.marks_orange {
background: rgba(255, 155, 62, 0.75);
}
.marks_yellow {
background: rgba(255, 239, 62, 0.75);
}
.marks_blue {
background: rgba(0, 114, 255, 0.75);
}
}
.bqbox {
color: #ff0000;
padding: 0px 6px;
background: rgba(255, 0, 0, 0.3);
border-radius: 1px 1px 1px 1px;
border: 1px solid #ff0000;
border-radius: 4px;
}
.infoBox {
width: calc(100% - 90px);
display: flex;
justify-content: space-between;
.items{
width: 30%;
}
.infoItem {
font-size: 13px;
margin-bottom: 2px;
color: #fff;
.value {
color: #89afcf;
}
}
}
}
.smallbtn {
display: inline-block;
padding: 4px 10px;
border-radius: 4px;
background: #0072ff;
border-radius: 5px 5px 5px 5px;
margin-top: 6px;
}
.num{
color: #00ffff;
}
</style>