feat: 页面重绘

pull/1/head
lizijiee 1 year ago
parent e31ff5a985
commit 3388029176

@ -108,6 +108,9 @@ export async function getTaskDetailPictureList(params: PageParam & PictureSortPa
iztrueorfalse: item.iztrueorfalse,
states: item.states,
history: item.ocpictureid && item.picturecompare && hasHistory(item.ocpictureid, item.picturecompare),
historyStates:item.historyStates,
submitDateTimestamp:item.submitDateTimestamp,
photoDateTimestamp:item.photoDateTimestamp,
}
})

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><g fill="white"><path d="M15 12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h1.172a3 3 0 0 0 2.12-.879l.83-.828A1 1 0 0 1 6.827 3h2.344a1 1 0 0 1 .707.293l.828.828A3 3 0 0 0 12.828 5H14a1 1 0 0 1 1 1zM2 4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-1.172a2 2 0 0 1-1.414-.586l-.828-.828A2 2 0 0 0 9.172 2H6.828a2 2 0 0 0-1.414.586l-.828.828A2 2 0 0 1 3.172 4z"/><path d="M8 11a2.5 2.5 0 1 1 0-5a2.5 2.5 0 0 1 0 5m0 1a3.5 3.5 0 1 0 0-7a3.5 3.5 0 0 0 0 7M3 6.5a.5.5 0 1 1-1 0a.5.5 0 0 1 1 0"/></g></svg>

After

Width:  |  Height:  |  Size: 607 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="white" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 21H7m10 0h.803c1.118 0 1.677 0 2.104-.218c.377-.192.683-.498.875-.874c.218-.427.218-.987.218-2.105V9.22c0-.45 0-.675-.048-.889a1.994 1.994 0 0 0-.209-.545c-.106-.19-.256-.355-.55-.682l-2.755-3.062c-.341-.378-.514-.57-.721-.708a1.999 1.999 0 0 0-.61-.271C15.863 3 15.6 3 15.075 3H6.2c-1.12 0-1.68 0-2.108.218a1.999 1.999 0 0 0-.874.874C3 4.52 3 5.08 3 6.2v11.6c0 1.12 0 1.68.218 2.107c.192.377.497.683.874.875c.427.218.987.218 2.105.218H7m10 0v-3.803c0-1.118 0-1.678-.218-2.105a2.001 2.001 0 0 0-.875-.874C15.48 14 14.92 14 13.8 14h-3.6c-1.12 0-1.68 0-2.108.218a1.999 1.999 0 0 0-.874.874C7 15.52 7 16.08 7 17.2V21m8-14H9"/></svg>

After

Width:  |  Height:  |  Size: 818 B

@ -1,23 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>放大</title>
<defs>
<rect id="path-1" x="0" y="0" width="16" height="16"></rect>
<rect id="path-1" x="0" y="0" width="64" height="64"></rect>
</defs>
<g id="-index" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="图片放大" transform="translate(-1174.000000, -447.000000)">
<g id="编组-29" transform="translate(1026.000000, 430.000000)">
<g id="编组-13备份-2" transform="translate(142.000000, 11.000000)">
<g id="放大" transform="translate(6.000000, 6.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="蒙版" fill="#000000" fill-rule="nonzero" opacity="0" xlink:href="#path-1"></use>
<g id="编组" mask="url(#mask-2)" fill="#666666" fill-rule="nonzero">
<g transform="translate(1.750000, 1.750000)" id="形状">
<path d="M11.1402432,10.1416427 C11.1680207,10.1624758 11.1937149,10.1846978 11.2187146,10.2096975 L12.2291206,11.2194091 C12.4149505,11.3988049 12.489504,11.6645212 12.4241187,11.9144019 C12.3587335,12.1642826 12.1635882,12.3594279 11.9137075,12.4248132 C11.6638267,12.4901984 11.3981105,12.4156449 11.2187146,12.229815 L10.2090031,11.2194091 C10.1844588,11.1949242 10.1617147,11.1686989 10.1409482,11.1409377 C7.54738474,13.2042331 3.79420765,12.8843106 1.58727663,10.4118189 C-0.619654391,7.93932727 -0.51289924,4.17405278 1.83057677,1.83057677 C4.17405278,-0.51289924 7.93932727,-0.619654391 10.4118189,1.58727663 C12.8843106,3.79420765 13.2042331,7.54738474 11.1409377,10.1409482 L11.1409377,10.1416427 L11.1402432,10.1416427 Z M5.71391175,5.71460619 L5.71391175,4.28614909 C5.70578865,4.02566909 5.84011531,3.78142274 6.06444104,3.64878118 C6.28876677,3.51613963 6.56751385,3.51613963 6.79183958,3.64878118 C7.01616531,3.78142274 7.15049197,4.02566909 7.14236887,4.28614909 L7.14236887,5.71460619 L8.57082597,5.71460619 C8.83130603,5.706483 9.07555248,5.84080963 9.20819409,6.0651354 C9.3408357,6.28946117 9.3408357,6.56820832 9.20819409,6.79253409 C9.07555248,7.01685985 8.83130603,7.15118649 8.57082597,7.14306329 L7.14236887,7.14306329 L7.14236887,8.57152041 C7.15049197,8.83200041 7.01616531,9.07624677 6.79183958,9.20888832 C6.56751385,9.34152987 6.28876677,9.34152987 6.06444104,9.20888832 C5.84011531,9.07624677 5.70578865,8.83200041 5.71391175,8.57152041 L5.71391175,7.14306329 L4.28545464,7.14306329 C4.02497459,7.15118649 3.78072814,7.01685985 3.64808653,6.79253409 C3.51544491,6.56820832 3.51544491,6.28946117 3.64808653,6.0651354 C3.78072814,5.84080963 4.02497459,5.706483 4.28545464,5.71460619 L5.71391175,5.71460619 Z M6.24932275,11.071494 C7.98553481,11.0923319 9.59885248,10.1780144 10.4730296,8.67778745 C11.3472067,7.17756051 11.3472067,5.32316832 10.4730296,3.82294138 C9.59885248,2.32271443 7.98553481,1.40839695 6.24932275,1.42923486 C3.60925424,1.46092082 1.4857089,3.61010576 1.4857089,6.25036441 C1.4857089,8.89062307 3.60925424,11.039808 6.24932275,11.071494 Z"></path>
</g>
</g>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="PrevailCloud-Design-图标集" transform="translate(-1720.000000, -2805.000000)">
<g id="放大" transform="translate(1720.000000, 2805.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="蒙版" fill="#000000" fill-rule="nonzero" opacity="0" xlink:href="#path-1"></use>
<g id="编组" mask="url(#mask-2)" fill="#ffffff" fill-rule="nonzero">
<g transform="translate(7.000000, 7.000000)" id="形状">
<path d="M44.560973,40.5665707 C44.6720829,40.6499032 44.7748596,40.7387911 44.8748585,40.8387901 L48.9164824,44.8776363 C49.6598018,45.5952197 49.958016,46.6580848 49.6964749,47.6576076 C49.4349339,48.6571305 48.6543527,49.4377117 47.6548299,49.6992527 C46.655307,49.9607937 45.5924419,49.6625796 44.8748585,48.9192602 L40.8360124,44.8776363 C40.7378353,44.7796968 40.6468589,44.6747954 40.563793,44.5637507 C30.189539,52.8169323 15.1768306,51.5372425 6.34910651,41.6472758 C-2.47861756,31.7573091 -2.05159696,16.6962111 7.32230707,7.32230707 C16.6962111,-2.05159696 31.7573091,-2.47861756 41.6472758,6.34910651 C51.5372425,15.1768306 52.8169323,30.189539 44.5637507,40.563793 L44.5637507,40.5665707 L44.560973,40.5665707 Z M22.855647,22.8584248 L22.855647,17.1445963 C22.8231546,16.1026764 23.3604612,15.1256909 24.2577642,14.5951247 C25.1550671,14.0645585 26.2700554,14.0645585 27.1673583,14.5951247 C28.0646612,15.1256909 28.6019679,16.1026764 28.5694755,17.1445963 L28.5694755,22.8584248 L34.2833039,22.8584248 C35.3252241,22.825932 36.3022099,23.3632385 36.8327764,24.2605416 C37.3633428,25.1578447 37.3633428,26.2728333 36.8327764,27.1701363 C36.3022099,28.0674394 35.3252241,28.604746 34.2833039,28.5722532 L28.5694755,28.5722532 L28.5694755,34.2860817 C28.6019679,35.3280017 28.0646612,36.3049871 27.1673583,36.8355533 C26.2700554,37.3661195 25.1550671,37.3661195 24.2577642,36.8355533 C23.3604612,36.3049871 22.8231546,35.3280017 22.855647,34.2860817 L22.855647,28.5722532 L17.1418186,28.5722532 C16.0998983,28.604746 15.1229125,28.0674394 14.5923461,27.1701363 C14.0617797,26.2728333 14.0617797,25.1578447 14.5923461,24.2605416 C15.1229125,23.3632385 16.0998983,22.825932 17.1418186,22.8584248 L22.855647,22.8584248 Z M24.997291,44.2859759 C31.9421392,44.3693275 38.3954099,40.7120576 41.8921184,34.7111498 C45.3888269,28.710242 45.3888269,21.2926733 41.8921184,15.2917655 C38.3954099,9.29085771 31.9421392,5.63358778 24.997291,5.71693946 C14.4370169,5.84368327 5.94283561,14.440423 5.94283561,25.0014577 C5.94283561,35.5624923 14.4370169,44.1592321 24.997291,44.2859759 Z"></path>
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -5,6 +5,7 @@ getTaskDetailPictureList,
setTF
} from "@/api/work/work";
import { fieldMap } from "@/config/workorder";
import { TASK_STATUS_OBJ } from '@/enums/index';
import { useWorkOrder } from "@/store/modules/workOrder";
import { isEmpty } from "@/utils";
import { formatToDateHMS } from "@/utils/dateUtil";
@ -133,7 +134,7 @@ function trueHandler() {
onPositiveClick: () => {
setTrue();
},
onNegativeClick: () => {},
onNegativeClick: () => { },
});
}
@ -207,7 +208,7 @@ async function refreshHandler() {
useInfiniteScroll(
el as any,
() => {
() => {
loadMore();
},
{ distance: 10, canLoadMore: () => canloadMore }
@ -222,14 +223,14 @@ async function loadMore() {
}
async function featchList() {
loading.value = true;
try {
taskpagination.pageNo += 1;
const { data, total, pageCount } = await getTaskDetailPictureList(
{ ...taskpagination, ...sortBy ,checkDuplicateId: workStore.activeId}
{ ...taskpagination, ...sortBy, checkDuplicateId: workStore.activeId }
);
totalCount.value = total;
canloadMore = pageCount >= taskpagination.pageNo && pageCount > 0;
@ -297,7 +298,7 @@ async function queryDetail(checkDuplicateId: any) {
refreshHandler();
}
async function handleSelect(item: any) {
taskDetailInfo.value = await getTaskDetailInfo( workStore.activeId);
taskDetailInfo.value = await getTaskDetailInfo(workStore.activeId);
const packageid = workStore.getActiveId;
@ -334,7 +335,7 @@ async function clearHandler() {
onPositiveClick: () => {
clearMark();
},
onNegativeClick: () => {},
onNegativeClick: () => { },
});
}
@ -367,7 +368,7 @@ onUnmounted(() => {
function getPercent(pictureid: string) {
const { ocpictureid, pictureresult } = taskDetailInfo.value;
const index = ocpictureid ? ocpictureid.split(",").indexOf(String(pictureid)):'';
const index = ocpictureid ? ocpictureid.split(",").indexOf(String(pictureid)) : '';
const results = pictureresult ? pictureresult.split(",") : '';
const percent = results[index] || "0";
const val = Math.floor(Number.parseFloat(percent));
@ -418,12 +419,7 @@ function previewHandler(event: MouseEvent) {
<SvgIcon style="margin-right: 6px" size="14" name="tf" />
辨别真假
</div>
<SvgIcon
style="cursor: pointer"
size="20"
name="immersion-model"
@click="immersionHandler"
/>
<SvgIcon style="cursor: pointer" size="20" name="immersion-model" @click="immersionHandler" />
</div>
<div v-show="showActions" class="batch">
@ -447,157 +443,116 @@ function previewHandler(event: MouseEvent) {
<n-spin :show="loading">
<div ref="el" class="scroll">
<div class="wrapper-detail">
<div
class="left"
:style="{ 'background-image': `url(${taskDetailInfo?.imgurl})` }"
@click="showAction"
@mouseleave="leaveTaskHandler"
>
<!-- 左侧大图 图片信息 -->
<div class="left" :style="{ 'background-image': `url(${taskDetailInfo?.imgurl})` }" @click="showAction"
@mouseleave="leaveTaskHandler">
<!-- 真假标记 -->
<div class="mark">
<SvgIcon
v-show="taskDetailInfo?.iztrueorfalse === 0"
size="128"
name="jia"
/>
<SvgIcon v-show="taskDetailInfo?.iztrueorfalse === 0" size="128" name="jia" />
</div>
<div class="mark">
<SvgIcon
v-show="taskDetailInfo?.iztrueorfalse === 1"
size="128"
name="zhen"
/>
<SvgIcon v-show="taskDetailInfo?.iztrueorfalse === 1" size="128" name="zhen" />
</div>
<div class="footer-times">
<div class="time" style="margin-bottom: 4px;">
<SvgIcon color="#FFF" size="16" name="camera" />
<span class="time-value">{{ taskDetailInfo.createTime }} </span>
</div>
<div class="time">
<SvgIcon color="#FFF" size="16" name="save" />
<span class="time-value">{{ taskDetailInfo.createTime }} </span>
</div>
</div>
<div class="time">
<SvgIcon color="#FFF" size="16" name="time" />
<span>{{ taskDetailInfo.createTime }} </span>
<div class="status">
<img v-show="taskDetailInfo?.states === 3" class="img-status" src="@/assets/images/task/pass.png" alt="">
<img v-show="taskDetailInfo?.states === 5" class="img-status" src="@/assets/images/task/not_pass.png"
alt="">
</div>
<!-- 右下信息 -->
<div class="info">
<n-grid x-gap="16" y-gap="0" :cols="12">
<!-- <n-gi span="4">
<span style="color: #8b8d8f">
<SvgIcon name="m1" />
<div class="info img-info">
<n-grid x-gap="12" y-gap="10" :cols="12">
<n-gi span="4" class="gi1">
<span>
<img class="icon-status" src="@/assets/images/task/status.png" alt="">
</span>
</n-gi>
<n-gi
span="8"
style="
display: flex;
align-items: left;
flex-direction: column;
justify-content: center;
"
>
<span>{{ mark }}</span>
<span>图片标记</span>
</n-gi> -->
<n-gi span="4">
<span style="color: #8b8d8f">
<SvgIcon name="m2" />
<n-gi span="8" class="gi2">
<span class="value">{{ TASK_STATUS_OBJ[taskDetailInfo.states] }}</span>
<span class="label">审批状态</span>
</n-gi>
<n-gi span="4" class="gi1">
<span>
<img class="icon-status" src="@/assets/images/task/similarity.png" alt="">
</span>
</n-gi>
<n-gi
span="8"
style="
display: flex;
align-items: left;
flex-direction: column;
justify-content: center;
"
>
<span>{{ totalCount }}</span>
<span>相似匹配</span>
<n-gi span="8" class="gi2">
<span class="value num">{{
totalCount
}}<span class="unit"></span> </span>
<span class="label">相似匹配</span>
</n-gi>
</n-grid>
</div>
<!-- 右上点击大图 -->
<div class="preview" @click="previewHandler">
<SvgIcon size="30" name="zoom-out" />
<SvgIcon size="16" name="zoom-out" />
</div>
<!-- 预览大图组件 -->
<div style="display: none">
<n-image
ref="imageRef"
:img-props="{ onClick: hideDownload }"
:src="taskDetailInfo?.imgurl"
/>
<n-image ref="imageRef" :img-props="{ onClick: hideDownload }" :src="taskDetailInfo?.imgurl" />
</div>
<!-- 操作 -->
<div
v-show="overTask && overTask.id === taskDetailInfo.id"
class="action"
@click.stop="hideAction"
>
<div v-show="overTask && overTask.id === taskDetailInfo.id" class="action" @click.stop="hideAction">
<SvgIcon style="cursor: pointer" name="t1" @click.stop="trueHandler" />
<SvgIcon
style="cursor: pointer; margin-left: 30px"
name="t2"
@click.stop="falseHandler"
/>
<SvgIcon style="cursor: pointer; margin-left: 30px" name="t2" @click.stop="falseHandler" />
</div>
</div>
<!-- 右侧任务 标题信息 -->
<div class="right">
<n-scrollbar style="max-height: 100%">
<span class="name">任务ID{{taskDetailInfo.taskname}}</span>
<span class="task-name">任务ID{{ taskDetailInfo.taskname }}</span>
<div class="tags">
<div class="tag tag-actived">重复图片</div>
<div class="tag">基线任务</div>
<div class="tag tag-approved">已审批</div>
<div class="tag tag-passed">通过</div>
</div>
<n-divider />
<n-divider class="divider-line" />
<div class="property">
<span class="property-name top" style=" color: #666666"
>图片大小
<span class="property-name top" style=" color: #666666">图片大小
</span>
<span style=" color: #333333; font-size: 16px"
>{{ taskDetailInfo?.pictureInfo && (taskDetailInfo?.pictureInfo?.imgSize /1000).toFixed(2) }}KB</span
>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.pictureInfo &&
(taskDetailInfo?.pictureInfo?.imgSize / 1000).toFixed(2) }}KB</span>
</div>
<div class="property">
<span class="property-name top" style=" color: #666666"
>图片格式
<span class="property-name top" style=" color: #666666">图片格式
</span>
<span style=" color: #333333; font-size: 16px"
>{{ taskDetailInfo?.pictureInfo?.imgFormat }}</span
>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.pictureInfo?.imgFormat }}</span>
</div>
<div class="property">
<span class="property-name top" style=" color: #666666"
>图片尺寸
<span class="property-name top" style=" color: #666666">图片尺寸
</span>
<span style=" color: #333333; font-size: 16px"
>{{ taskDetailInfo?.pictureInfo?.imgMeasure }}</span
>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.pictureInfo?.imgMeasure }}</span>
</div>
<div class="property">
<span class="property-name top" style=" color: #666666"
>色彩空间
<span class="property-name top" style=" color: #666666">色彩空间
</span>
<span style=" color: #333333; font-size: 16px"
>{{ taskDetailInfo?.pictureInfo?.imgSpace }}</span
>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.pictureInfo?.imgSpace }}</span>
</div>
<div class="property">
<span class="property-name top" style=" color: #666666"
>提报人
<span class="property-name top" style=" color: #666666">提报人
</span>
<span style=" color: #333333; font-size: 16px"
>{{ taskDetailInfo?.pictureInfo?.source || "-" }}</span
>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.pictureInfo?.source || "-" }}</span>
</div>
<div class="property">
<span class="property-name top" style=" color: #666666"
>创建时间
<span class="property-name top" style=" color: #666666">创建时间
</span>
<span style=" color: #333333; font-size: 16px"
>{{ taskDetailInfo?.pictureInfo && format(taskDetailInfo?.pictureInfo?.createTime, 'yyyy-MM-dd HH:mm:ss')}}</span>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.pictureInfo &&
format(taskDetailInfo?.pictureInfo?.createTime, 'yyyy-MM-dd HH:mm:ss') }}</span>
</div>
<div class="property">
<span class="property-name top" style=" color: #666666"
>提报时间
<span class="property-name top" style=" color: #666666">提报时间
</span>
<span style=" color: #333333; font-size: 16px"
>{{ taskDetailInfo?.uploadTime && format(taskDetailInfo?.pictureInfo?.uploadTime, 'yyyy-MM-dd HH:mm:ss') || '-'}}</span>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.uploadTime &&
format(taskDetailInfo?.pictureInfo?.uploadTime, 'yyyy-MM-dd HH:mm:ss') || '-' }}</span>
</div>
<div v-for="key in Object.keys(propertys)" :key="key" class="property">
<span class="property-name">{{ fieldMap[key] }}</span>
@ -608,65 +563,57 @@ function previewHandler(event: MouseEvent) {
</div>
<div style="display: flex; justify-content: space-between; padding: 12px 0px">
<div>
<span style="font-size: 21px; font-weight: bold">相似图片</span
><span>({{ totalCount }})</span>
<!-- <span style="font-size: 21px; font-weight: bold">任务包图片</span><span>({{ totalCount }})</span> -->
<span
style="font-size: 18px; font-weight: Medium;color: #333333;font-family: PingFang SC, PingFang SC-Medium;">任务包图片</span>
</div>
<div style="display: flex; align-items: center">
<div style="cursor: pointer" @click="sortHandler('createdate')">
<span>时间排序</span>
<span>时间排序</span>
<SvgIcon style="margin-left: 8px" name="sort" size="12" />
</div>
<div
style="margin-left: 15px; cursor: pointer"
@click="sortHandler('similarityScore')"
>
<div style="margin-left: 15px; cursor: pointer" @click="sortHandler('similarityScore')">
<span>相似度排序</span>
<SvgIcon style="margin-left: 8px" name="sort" size="12" />
</div>
</div>
</div>
<div class="wrapper-list">
<div
v-for="(item, index) in listData"
:key="index"
:class="{ 'item-selected': item === selectTask }"
class="grid-item"
@click="handleSelect(item)"
@mouseover="overTaskHandelr(item)"
@mouseleave="leaveTaskHandler"
>
<div
class="img-wrapper"
:style="{ 'background-image': `url(${item.imgurl})` }"
/>
<div class="time">
<SvgIcon color="#FFF" size="16" name="time" />
<span>{{ formatToDateHMS(item.createdate || 0) }}</span>
<div v-for="(item, index) in listData" :key="index" :class="{ 'item-selected': item === selectTask }"
class="grid-item" @click="handleSelect(item)" @mouseover="overTaskHandelr(item)"
@mouseleave="leaveTaskHandler">
<div class="img-wrapper" :style="{ 'background-image': `url(${item.imgurl})` }" />
<div class="time-wrapper">
<div class="time">
<SvgIcon color="#FFF" size="16" name="camera" />
<span class="current-time">{{ item.photoDateTimestamp ? formatToDateHMS(item.photoDateTimestamp || 0) : ''
}}</span>
</div>
<div class="time">
<SvgIcon color="#FFF" size="16" name="save" />
<span class="current-time">{{ item.submitDateTimestamp ? formatToDateHMS(item.submitDateTimestamp || 0) : ''
}}</span>
</div>
</div>
<div class="check">
<n-checkbox
v-show="batch"
v-model:checked="item.checked"
@click.stop
@update:checked="onCheckChange($event, item)"
/>
<n-checkbox v-show="batch" v-model:checked="item.checked" @click.stop
@update:checked="onCheckChange($event, item)" />
</div>
<div class="percent">
<SvgIcon size="42" name="tag" />
<div class="val">
{{ item?.maxSimilarity && Number(item?.maxSimilarity).toFixed(0) }}%
{{ item?.maxSimilarity && Number(item?.maxSimilarity).toFixed(0) }}%
</div>
</div>
<!-- <div class="pass-status">
<SvgIcon name="pass-icon" style="width:52;height:24px"/>
</div> -->
<!-- <div class="pass-status">
<SvgIcon name="no-pass-icon" style="width:52;height:24px"/>
</div>-->
<!-- <div class="pass-status">
<SvgIcon name="repeat-icon" style="width:52;height:24px"/>
</div> -->
<div class="pass-status" v-if="item.historyStates === 1">
<SvgIcon name="repeat-icon" style="width:52;height:24px" />
</div>
<div class="pass-status" v-else-if="item.historyStates === 2">
<SvgIcon name="pass-icon" style="width:52;height:24px" />
</div>
<div class="pass-status" v-else-if="item.historyStates === 3">
<SvgIcon name="no-pass-icon" style="width:52;height:24px" />
</div>
<!-- <div class="mark">
<SvgIcon name="jia" />
</div>
@ -752,20 +699,19 @@ function previewHandler(event: MouseEvent) {
}
.font {
font-size: 18px;
font-weight: bold;
color: #333333;
line-height: 25px;
margin-left: 12px;
font-size: 20px;
font-family: PingFang SC, PingFang SC-Medium;
font-weight: 500;
color: #0d0b22;
}
}
&-detail {
display: flex;
height: calc((100vh - 88px - 72px) / 2);
height: 350px;
.left {
flex: 1;
flex: 0.6;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
@ -774,13 +720,14 @@ function previewHandler(event: MouseEvent) {
.preview {
position: absolute;
z-index: 3;
right: 10px;
top: 10px;
width: 50px;
height: 50px;
background-color: rgba(255, 255, 255, 0.6);
border-radius: 10px;
z-index: 3;
width: 30px;
height: 30px;
background: rgba(255, 255, 255, 0.20);
border-radius: 6px;
backdrop-filter: blur(10px);
display: flex;
align-items: center;
justify-content: center;
@ -803,16 +750,40 @@ function previewHandler(event: MouseEvent) {
}
}
.info {
.status {
position: absolute;
z-index: 3;
right: 2%;
bottom: 2%;
width: 136px;
height: 60px;
opacity: 0.44;
background: rgba(216, 216, 216, 0.4);
border-radius: 7px;
left: 0;
top: 0;
.img-status {
width: 133px;
height: 129px;
}
}
.footer-times {
width: 100%;
height: 80px;
background: linear-gradient(180deg, rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 0.71) 100%);
border-radius: 0px 8px 8px 0px;
position: absolute;
bottom: 0;
padding-left: 17px;
display: flex;
flex-direction: column;
justify-content: center;
font-weight: Medium;
.time {
color: white;
font-size: 15px;
line-height: 21px;
&-value {
margin-left: 7px;
}
}
}
.action {
@ -826,27 +797,102 @@ function previewHandler(event: MouseEvent) {
justify-content: center;
background-color: rgba(102, 102, 102, 0.5);
}
.info {
position: absolute;
z-index: 3;
right: 2%;
bottom: 2%;
width: 136px;
height: 119px;
background: rgba(216, 216, 216, 0.4);
border-radius: 7px;
padding: 16px 0 0 23px;
color: #fff;
}
.img-info {
color: lime !important;
.icon-status {
width: 32px;
height: 32px;
}
.label {
font-size: 11px;
font-family: PingFang SC, PingFang SC-Medium;
font-weight: 500;
color: #ffffff;
display: block;
}
.value {
font-size: 15px;
font-family: PingFang SC, PingFang SC-Semibold;
font-weight: 600;
color: #ffffff;
}
.num {
font-size: 18px;
font-family: PingFang SC, PingFang SC-Semibold;
font-weight: 600;
color: #ffffff;
}
.unit {
font-size: 11px;
}
}
}
.right {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
background: #fafafa;
// flex: 1;
// display: flex;
// flex-direction: column;
// justify-content: space-between;
// // background: #fafafa;
// border-radius: 8px;
// margin-left: 20px;
// padding: 24px;
// width: 24vw;
flex: 0.5;
background: #f9f9f9;
border-radius: 8px;
margin-left: 20px;
padding: 24px;
// background: lime;
.name {
font-size: 22px;
font-weight: bold;
.task-name {
display: inline-block;
width: 100%;
font-size: 18px;
color: #0d0b22;
line-height: 25px;
font-family: PingFang SC, PingFang SC-Medium;
font-weight: Medium;
max-width: 445px;
/* 设置文本溢出时的样式为省略号 */
text-overflow: ellipsis;
/* 隐藏超出容器的文本 */
overflow: hidden;
/* 确保文本不换行 */
white-space: nowrap;
}
// ::v-deep(.n-divider:not(.n-divider--vertical)) {
::v-deep(.divider-line .n-divider__line) {
background-color: #e8e8e8;
}
.tags {
display: flex;
margin-top: 12px;
margin-top: 8px;
}
.tag {
@ -860,26 +906,32 @@ function previewHandler(event: MouseEvent) {
line-height: 16px;
}
.tag-actived {
color: #fe9800;
border: 1px solid #fe9800;
.tag-passed {
color: #02C984;
border: 1px solid #02C984;
}
.tag-approved {
color: #507afd;
border: 1px solid #507afd;
}
.property {
display: flex;
align-items: center;
margin-top: 10px;
margin-top: 12px;
line-height: 20px;
}
.property-name {
width: 100px;
width: 56px;
text-align: right;
color: #999999;
position: relative;
margin-right: 32px;
}
.top {
}
.top {}
.property-content {
flex: 1;
@ -916,6 +968,26 @@ function previewHandler(event: MouseEvent) {
border-radius: 8px;
}
.time-wrapper {
position: absolute;
bottom: 0;
width: 100%;
height: 58px;
background: linear-gradient(180deg, rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 0.71) 100%);
border-radius: 0px 8px 8px 0px;
display: flex;
flex-direction: column;
justify-content: center;
font-weight: Medium;
padding-left: 12px;
color: white;
.time .current-time {
margin-left: 9px;
font-weight: Medium;
}
}
.check {
position: absolute;
z-index: 3;
@ -927,7 +999,7 @@ function previewHandler(event: MouseEvent) {
position: absolute;
text-align: center;
z-index: 3;
right: 12px;
right: 17px;
top: 2px;
color: #fff;
@ -949,11 +1021,13 @@ function previewHandler(event: MouseEvent) {
line-height: 24px;
}
}
.pass-status {
position: absolute;
left: 0px;
top: 14px;
top: 15px;
}
.mark {
position: absolute;
z-index: 3;
@ -984,6 +1058,8 @@ function previewHandler(event: MouseEvent) {
justify-content: space-around;
background-color: #666666;
}
}
}
}
@ -992,14 +1068,4 @@ function previewHandler(event: MouseEvent) {
margin-top: 12px;
margin-bottom: 12px;
}
.time {
position: absolute;
z-index: 3;
left: 5%;
bottom: 5%;
color: #fff;
display: flex;
align-items: center;
}
</style>

Loading…
Cancel
Save