master
lion 4 weeks ago
parent 32c3993d9f
commit 47cdf6f90c

@ -0,0 +1,42 @@
.tracks .section-title::before,
.roadmap .section-title::before {
background: url("title-precision-bracket-v1.png") left bottom / 100% 100% no-repeat;
}
.awards {
background:
linear-gradient(90deg,rgba(31,7,92,.48) 0%,rgba(14,42,132,.28) 46%,rgba(0,88,142,.16) 100%),
linear-gradient(180deg,rgba(8,17,83,.06) 0%,rgba(5,22,84,.25) 100%),
url("generated/awards-accelerator-gradient-wave-v2.png?v=1") center / cover no-repeat !important;
}
@media (max-width: 680px) {
.awards {
background:
linear-gradient(180deg,rgba(30,8,96,.44),rgba(4,55,132,.26)),
url("generated/awards-accelerator-gradient-wave-v2.png?v=1") 58% center / auto 100% no-repeat !important;
}
}
.audience-tracks-layout .tracks-mesh {
background: url("generated/photonics-value-chain-mesh-transparent-v1.png?v=2") center / cover no-repeat;
}
.roadmap {
background:
url("generated/roadmap-pale-blue-dotmaps-refined-transparent-v5.png?v=5") center / cover no-repeat,
radial-gradient(ellipse 72% 84% at 14% 4%,rgba(255,255,255,.96) 0%,rgba(248,251,255,.72) 58%,transparent 100%),
linear-gradient(180deg,#f8fbff 0%,#f3f7fc 100%) !important;
}
.roadmap .timeline::after {
background:
linear-gradient(180deg,rgba(255,255,255,.08),transparent 22%,rgba(2,18,66,.08) 100%),
url("generated/roadmap-pale-blue-dotmaps-full-transparent-v4.png?v=4") center / cover no-repeat;
}
.audience-tracks-layout .audience-focus {
background: #164fae url("target-projects-network-card-clean.png") center / cover no-repeat !important;
}
.audience-tracks-layout .audience::before {
background-image: url("audience-global-network-transparent-v2.png") !important;
}
@media (min-width: 768px) {
.hero-map-dots {
background: url("generated/roadmap-pale-blue-dotmaps-full-transparent-v4.png?v=4") center / 100% 100% no-repeat;
}
}

@ -9,21 +9,35 @@
<style>
@font-face {
font-family: "Event Heiti";
src: local("Heiti SC"), local("STHeiti"), local("黑体"), local("SimHei");
src: local("Heiti SC"), local("STHeiti"), local("PingFang SC"), local("黑体"), local("SimHei"),
url("assets/fonts/SourceHanSansSC-Regular-gb2312.woff2?v=20260828") format("woff2");
font-weight: 400 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Event Songti";
src: local("Songti SC"), local("STSong"), local("宋体"), local("SimSun"), local("NSimSun");
src: local("Songti SC"), local("STSong"), local("宋体"), local("SimSun"), local("NSimSun"),
url("assets/fonts/SourceHanSerifSC-Regular-gb2312.woff2?v=20260828") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Event Songti";
src: local("Songti SC Bold"), local("STSongti-SC-Bold"), local("宋体"), local("SimSun"), local("NSimSun");
font-weight: 600 900;
src: local("Songti SC Bold"), local("STSongti-SC-Bold"), local("宋体"), local("SimSun"), local("NSimSun"),
url("assets/fonts/SourceHanSerifSC-SemiBold-gb2312.woff2?v=20260828") format("woff2");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Event Songti";
src: local("Songti SC Bold"), local("STSongti-SC-Bold"), local("宋体"), local("SimSun"), local("NSimSun"),
url("assets/fonts/SourceHanSerifSC-Bold-gb2312.woff2?v=20260828") format("woff2");
font-weight: 700 900;
font-style: normal;
font-display: swap;
}
:root {
--blue: #0094dc;

@ -9,22 +9,33 @@
<style>
@font-face {
font-family: "Event Heiti";
src: local("Heiti SC"), local("STHeiti"), local("PingFang SC"), local("PingFangSC-Regular"), local("黑体"), local("SimHei");
src: local("Heiti SC"), local("STHeiti"), local("PingFang SC"), local("PingFangSC-Regular"), local("黑体"), local("SimHei"),
url("assets/fonts/SourceHanSansSC-Regular-gb2312.woff2?v=20260828") format("woff2");
font-weight: 400 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Event Songti";
src: local("Songti SC"), local("STSongti-SC-Regular"), local("STSong"), local("宋体"), local("SimSun"), local("NSimSun");
src: local("Songti SC"), local("STSongti-SC-Regular"), local("STSong"), local("宋体"), local("SimSun"), local("NSimSun"),
url("assets/fonts/SourceHanSerifSC-Regular-gb2312.woff2?v=20260828") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Event Songti";
src: local("Songti SC Bold"), local("STSongti-SC-Bold"), local("宋体"), local("SimSun"), local("NSimSun");
font-weight: 600 900;
src: local("Songti SC Bold"), local("STSongti-SC-Bold"), local("宋体"), local("SimSun"), local("NSimSun"),
url("assets/fonts/SourceHanSerifSC-SemiBold-gb2312.woff2?v=20260828") format("woff2");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Event Songti";
src: local("Songti SC Bold"), local("STSongti-SC-Bold"), local("宋体"), local("SimSun"), local("NSimSun"),
url("assets/fonts/SourceHanSerifSC-Bold-gb2312.woff2?v=20260828") format("woff2");
font-weight: 700 900;
font-style: normal;
font-display: swap;
}
@ -5648,9 +5659,7 @@
<div class="hero-banner hero-banner--landmarks is-active">
<img src="assets/generated/hero-three-landmarks-clean-field-v16.png?v=20260826" alt="" fetchpriority="high" decoding="async">
</div>
<div class="hero-banner hero-banner--photonic">
<img src="assets/generated/hero-photonic-youth-blue-purple-balanced-v7-sharp-trails-4k.jpg?v=20260826" alt="" decoding="async">
</div>
<div class="hero-banner hero-banner--photonic"></div>
</div>
<div class="hero-map-dots" aria-hidden="true"></div>
<img class="hero-orbit-beams" src="assets/generated/hero-reference-beams-v1.png?v=20260826" alt="" aria-hidden="true" decoding="async">
@ -5696,9 +5705,9 @@
</div>
<div class="audience-detail">
<div class="audience-types" aria-label="参赛主体类型">
<div class="audience-type" tabindex="0"><img src="assets/icons/audience-enterprise.svg" alt="" loading="lazy"><div><strong>科技企业</strong><p>光通信细分领域创业项目,目前已具备一定的技术储备和市场规模。</p></div></div>
<div class="audience-type" tabindex="0"><img src="assets/icons/audience-university.svg" alt="" loading="lazy"><div><strong>高校团队</strong><p>关注产学研成果转化类项目,目前已进行概念验证,希望进行市场化运作。</p></div></div>
<div class="audience-type" tabindex="0"><img src="assets/icons/audience-institute.svg" alt="" loading="lazy"><div><strong>科研院所</strong><p>聚焦光通信产业领域前沿技术类项目,未来可引领技术市场发展方向。</p></div></div>
<div class="audience-type" tabindex="0"><img src="assets/icons/audience-enterprise.svg" alt=""><div><strong>科技企业</strong><p>光通信细分领域创业项目,目前已具备一定的技术储备和市场规模。</p></div></div>
<div class="audience-type" tabindex="0"><img src="assets/icons/audience-university.svg" alt=""><div><strong>高校团队</strong><p>关注产学研成果转化类项目,目前已进行概念验证,希望进行市场化运作。</p></div></div>
<div class="audience-type" tabindex="0"><img src="assets/icons/audience-institute.svg" alt=""><div><strong>科研院所</strong><p>聚焦光通信产业领域前沿技术类项目,未来可引领技术市场发展方向。</p></div></div>
</div>
</div>
</div>
@ -5857,12 +5866,15 @@
function ensureBannerImage(banner) {
if (!banner) return;
var img = banner.querySelector("img[data-src]");
if (!img) return;
var real = img.getAttribute("data-src");
if (!real) return;
img.setAttribute("src", real);
img.removeAttribute("data-src");
var img = banner.querySelector("img");
if (img) return;
var base = (document.querySelector("script[src*='prototype-scale']") || {}).src || "";
base = base.replace(/prototype-scale\.js.*$/, "") || "/frontend/assets/";
img = document.createElement("img");
img.alt = "";
img.decoding = "async";
img.src = base + "generated/hero-photonic-youth-blue-purple-balanced-v7-sharp-trails-4k.jpg?v=20260826";
banner.appendChild(img);
}
function setOrbitVisible(visible) {
@ -5905,32 +5917,35 @@
}, 120);
});
window.addEventListener("load", function () {
window.setTimeout(function () {
var ua = navigator.userAgent || "";
var isIOS = /iP(hone|ad|od)/.test(ua) || (/\bMac OS X\b/.test(ua) && "ontouchend" in document);
var css = "";
if (!isIOS) {
css += '@font-face{font-family:"Event Heiti";src:url("assets/fonts/SourceHanSansSC-Regular-gb2312.woff2?v=20260828") format("woff2");font-weight:400 900;font-display:swap;}';
css += '@font-face{font-family:"Event Songti";src:url("assets/fonts/SourceHanSerifSC-Regular-gb2312.woff2?v=20260828") format("woff2");font-weight:400;font-display:swap;}';
css += '@font-face{font-family:"Event Songti";src:url("assets/fonts/SourceHanSerifSC-SemiBold-gb2312.woff2?v=20260828") format("woff2");font-weight:600;font-display:swap;}';
css += '@font-face{font-family:"Event Songti";src:url("assets/fonts/SourceHanSerifSC-Bold-gb2312.woff2?v=20260828") format("woff2");font-weight:700 900;font-display:swap;}';
(function () {
var done = false;
function assetBase() {
var node = document.querySelector("script[src*='prototype-scale']");
if (node && node.src) return node.src.replace(/prototype-scale\.js.*$/, "");
return "/frontend/assets/";
}
function loadLate() {
if (done) return;
done = true;
var base = assetBase();
var late = document.createElement("link");
late.rel = "stylesheet";
late.href = base + "event-site-late.css?v=20260828";
document.head.appendChild(late);
var photonic = document.querySelector(".hero-banner--photonic");
if (photonic && !photonic.querySelector("img")) {
var photo = document.createElement("img");
photo.alt = "";
photo.decoding = "async";
photo.src = base + "generated/hero-photonic-youth-blue-purple-balanced-v7-sharp-trails-4k.jpg?v=20260826";
photonic.appendChild(photo);
}
css += '.tracks .section-title::before,.roadmap .section-title::before{background:url("assets/title-precision-bracket-v1.png") left bottom / 100% 100% no-repeat;}';
css += '.awards{background:linear-gradient(90deg,rgba(31,7,92,.48) 0%,rgba(14,42,132,.28) 46%,rgba(0,88,142,.16) 100%),linear-gradient(180deg,rgba(8,17,83,.06) 0%,rgba(5,22,84,.25) 100%),url("assets/generated/awards-accelerator-gradient-wave-v2.png?v=1") center / cover no-repeat !important;}';
css += '@media (max-width:680px){.awards{background:linear-gradient(180deg,rgba(30,8,96,.44),rgba(4,55,132,.26)),url("assets/generated/awards-accelerator-gradient-wave-v2.png?v=1") 58% center / auto 100% no-repeat !important;}}';
css += '.audience-tracks-layout .tracks-mesh{background:url("assets/generated/photonics-value-chain-mesh-transparent-v1.png?v=2") center / cover no-repeat;}';
css += '.roadmap{background:url("assets/generated/roadmap-pale-blue-dotmaps-refined-transparent-v5.png?v=5") center / cover no-repeat,radial-gradient(ellipse 72% 84% at 14% 4%,rgba(255,255,255,.96) 0%,rgba(248,251,255,.72) 58%,transparent 100%),linear-gradient(180deg,#f8fbff 0%,#f3f7fc 100%) !important;}';
css += '.roadmap .timeline::after{background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 22%,rgba(2,18,66,.08) 100%),url("assets/generated/roadmap-pale-blue-dotmaps-full-transparent-v4.png?v=4") center / cover no-repeat;}';
css += '.audience-tracks-layout .audience-focus{background:#164fae url("assets/target-projects-network-card-clean.png") center / cover no-repeat !important;}';
css += '.audience-tracks-layout .audience::before{background-image:url("assets/audience-global-network-transparent-v2.png") !important;}';
css += '@media (min-width:768px){.hero-map-dots{background:url("assets/generated/roadmap-pale-blue-dotmaps-full-transparent-v4.png?v=4") center / 100% 100% no-repeat;}}';
var style = document.createElement("style");
style.setAttribute("data-deferred-assets", "1");
style.textContent = css;
document.head.appendChild(style);
}, 280);
});
}
function startLate() { window.setTimeout(loadLate, 60); }
if (document.readyState === "complete") startLate();
else window.addEventListener("load", startLate);
}());
</script>
<script>

@ -4,6 +4,7 @@ namespace Tests\Feature;
use App\Models\Application;
use App\Models\Competition;
use App\Models\FormSchemaDefinition;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Laravel\Sanctum\Sanctum;
@ -91,6 +92,23 @@ class ParticipantApplicationSaveTest extends TestCase
'status' => 'draft',
]);
$schema = FormSchemaDefinition::query()->create([
'competition_id' => $competition->id,
'purpose' => FormSchemaDefinition::PURPOSE_SIGNUP,
'name' => '报名表',
'version' => 1,
'is_published' => true,
'schema_json' => [
[
'key' => 'contact_email',
'type' => 'email',
'label' => '注册邮箱',
'prefill_from' => 'user.email',
],
],
]);
$competition->update(['form_schema_id' => $schema->id]);
Sanctum::actingAs($user);
$this->postJson('/api/applications/current/save?competition_slug=xxf-prefill', [

Loading…
Cancel
Save