chore: prepare anxinyan release
This commit is contained in:
@@ -57,6 +57,7 @@ const productSpecItems = computed(() => {
|
||||
appendSpecItem(items, "序列号/编码", product.serial_no);
|
||||
|
||||
for (const point of normalizedKeyPoints(result.key_points)) {
|
||||
if (hasSpecItem(items, point.point_name)) continue;
|
||||
appendSpecItem(items, point.point_name, point.point_value, point.point_remark);
|
||||
}
|
||||
|
||||
@@ -92,6 +93,11 @@ function appendSpecItem(
|
||||
});
|
||||
}
|
||||
|
||||
function hasSpecItem(items: Array<{ label: string }>, label: unknown) {
|
||||
const labelText = textValue(label);
|
||||
return Boolean(labelText && items.some((item) => item.label === labelText));
|
||||
}
|
||||
|
||||
function textValue(value: unknown) {
|
||||
return String(value ?? "").trim();
|
||||
}
|
||||
@@ -276,6 +282,7 @@ onShow(() => {
|
||||
</view>
|
||||
|
||||
<view class="report-shell">
|
||||
<view class="report-shell__watermark" aria-hidden="true"></view>
|
||||
<view class="report-cover">
|
||||
<swiper v-if="reportImages.length" class="report-cover__swiper" indicator-dots circular>
|
||||
<swiper-item v-for="item in reportImages" :key="item.file_url || item.file_id">
|
||||
@@ -316,8 +323,6 @@ onShow(() => {
|
||||
</view>
|
||||
|
||||
<view v-if="activeTab === 'product'" class="report-panel">
|
||||
<view class="report-watermark" aria-hidden="true"></view>
|
||||
|
||||
<view class="report-result">
|
||||
<view class="report-result__content">
|
||||
<view class="report-result__label">{{ resultItem.label }}</view>
|
||||
@@ -325,8 +330,8 @@ onShow(() => {
|
||||
<view v-if="resultItem.remark" class="report-result__desc">{{ resultItem.remark }}</view>
|
||||
</view>
|
||||
<view class="report-seal">
|
||||
<text class="report-seal__brand">ANXINYAN</text>
|
||||
<text class="report-seal__main">可信</text>
|
||||
<text class="report-seal__brand">安心验</text>
|
||||
<text class="report-seal__main">鉴定</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -496,6 +501,26 @@ onShow(() => {
|
||||
box-shadow: 0 18rpx 48rpx rgba(31, 36, 48, 0.08);
|
||||
}
|
||||
|
||||
.report-shell__watermark {
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
top: 374rpx;
|
||||
left: 28rpx;
|
||||
right: 28rpx;
|
||||
height: 560rpx;
|
||||
background: url("../../static/report/report-watermark.svg") center / 100% 100% no-repeat;
|
||||
opacity: 1;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.report-cover,
|
||||
.report-meta,
|
||||
.report-tabs,
|
||||
.report-panel {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.report-cover {
|
||||
height: 356rpx;
|
||||
margin: 28rpx 28rpx 0;
|
||||
@@ -620,28 +645,14 @@ onShow(() => {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.report-watermark {
|
||||
position: absolute;
|
||||
top: -6rpx;
|
||||
left: 50%;
|
||||
width: 520rpx;
|
||||
height: 430rpx;
|
||||
border-radius: 50%;
|
||||
opacity: 0.46;
|
||||
transform: translateX(-50%);
|
||||
background:
|
||||
repeating-radial-gradient(ellipse at center, rgba(230, 195, 79, 0.2) 0, rgba(230, 195, 79, 0.2) 2rpx, transparent 3rpx, transparent 17rpx),
|
||||
repeating-conic-gradient(from 0deg, rgba(230, 195, 79, 0.12) 0deg 8deg, transparent 8deg 16deg);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.report-result {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 24rpx;
|
||||
padding: 10rpx 0 30rpx;
|
||||
min-height: 132rpx;
|
||||
padding: 10rpx 136rpx 30rpx 0;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
@@ -674,29 +685,57 @@ onShow(() => {
|
||||
}
|
||||
|
||||
.report-seal {
|
||||
flex: 0 0 auto;
|
||||
position: absolute;
|
||||
right: 2rpx;
|
||||
bottom: 22rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 104rpx;
|
||||
height: 104rpx;
|
||||
margin-top: 2rpx;
|
||||
border: 4rpx solid rgba(56, 164, 73, 0.8);
|
||||
width: 106rpx;
|
||||
height: 106rpx;
|
||||
border: 4rpx solid rgba(40, 151, 73, 0.82);
|
||||
border-radius: 999rpx;
|
||||
color: #39a54b;
|
||||
transform: rotate(-10deg);
|
||||
background: rgba(255, 255, 255, 0.42);
|
||||
color: #239245;
|
||||
box-shadow: inset 0 0 0 4rpx rgba(40, 151, 73, 0.1);
|
||||
transform: rotate(-9deg);
|
||||
}
|
||||
|
||||
.report-seal::before {
|
||||
position: absolute;
|
||||
inset: 10rpx;
|
||||
border: 2rpx solid rgba(40, 151, 73, 0.58);
|
||||
border-radius: inherit;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.report-seal::after {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: 12rpx;
|
||||
width: 34rpx;
|
||||
height: 5rpx;
|
||||
border-radius: 999rpx;
|
||||
background: currentColor;
|
||||
content: "";
|
||||
opacity: 0.7;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.report-seal__brand {
|
||||
font-size: 16rpx;
|
||||
font-weight: 800;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
font-size: 18rpx;
|
||||
font-weight: 900;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.report-seal__main {
|
||||
margin-top: 8rpx;
|
||||
font-size: 28rpx;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-top: 9rpx;
|
||||
font-size: 26rpx;
|
||||
font-weight: 900;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 75 KiB |
36
work-app/src/static/report/report-watermark.svg
Normal file
36
work-app/src/static/report/report-watermark.svg
Normal file
@@ -0,0 +1,36 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 584">
|
||||
<g fill="none" stroke="#E5BE39" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="320" cy="292" r="248" opacity=".16" stroke-width="2"/>
|
||||
<circle cx="320" cy="292" r="210" opacity=".14" stroke-width="2"/>
|
||||
<circle cx="320" cy="292" r="170" opacity=".12" stroke-width="2"/>
|
||||
<circle cx="320" cy="292" r="118" opacity=".11" stroke-width="2"/>
|
||||
<circle cx="320" cy="292" r="74" opacity=".12" stroke-width="2"/>
|
||||
|
||||
<g opacity=".11" stroke-width="1.6">
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(15 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(30 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(45 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(60 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(75 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(90 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(105 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(120 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(135 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(150 320 292)"/>
|
||||
<ellipse cx="320" cy="292" rx="58" ry="234" transform="rotate(165 320 292)"/>
|
||||
</g>
|
||||
|
||||
<g opacity=".18" stroke-width="2">
|
||||
<path d="M320 88c34 54 69 86 128 106-59 20-94 52-128 106-34-54-69-86-128-106 59-20 94-52 128-106Z"/>
|
||||
<path d="M320 284c28 45 58 73 107 90-49 17-79 45-107 90-28-45-58-73-107-90 49-17 79-45 107-90Z"/>
|
||||
</g>
|
||||
|
||||
<g opacity=".1" stroke-width="1.4">
|
||||
<path d="M96 292h448"/>
|
||||
<path d="M320 68v448"/>
|
||||
<path d="M160 132l320 320"/>
|
||||
<path d="M480 132 160 452"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
Reference in New Issue
Block a user