参赛咨询电话

master
lion 4 months ago
parent 7d46889c4a
commit 21a6cd9755

@ -0,0 +1,16 @@
export interface ConsultPhone {
display: string
tel: string
}
/** 选手端登录页 / 报名页展示的参赛咨询电话 */
export const entryConsultPhones: ConsultPhone[] = [
{ display: '0512-66969167', tel: '051266969167' },
{ display: '0512-66969172', tel: '051266969172' },
]
/** 选手端登录页 / 报名页展示的技术咨询电话 */
export const techConsultPhone: ConsultPhone = {
display: '18626298655',
tel: '18626298655',
}

@ -79,3 +79,34 @@ body.login-page-wls .login-page-wls__input.login-page-wls__input--error:focus {
body.login-page-wls .login-page-wls__slogan.login-page-wls__slogan--error {
color: #052d62;
}
body.login-page-wls .login-page-wls__contact {
display: grid;
gap: 0.45rem;
margin-top: 0.95rem;
padding-top: 0.9rem;
border-top: 1px solid rgba(5, 45, 98, 0.14);
color: #314158;
font-size: 0.92rem;
line-height: 1.35;
}
body.login-page-wls .login-page-wls__contact-entry {
display: flex;
flex-wrap: wrap;
align-items: center;
}
body.login-page-wls .login-page-wls__contact-label {
color: inherit;
}
body.login-page-wls .login-page-wls__contact a {
color: inherit;
text-decoration: none;
}
body.login-page-wls .login-page-wls__contact a:hover {
color: #052d62;
text-decoration: underline;
}

@ -22,6 +22,7 @@ import {
participantApplyPageTitle,
type BrandingForm,
} from '../utils/competitionBranding'
import { entryConsultPhones, techConsultPhone } from '../config/participantContact'
import {
CONTEST_DEFAULT_FILE_EXTENSIONS,
normalizeSignupSchema,
@ -1367,6 +1368,15 @@ onMounted(() => {
<span>{{ applicationStatusBody }}</span>
</div>
</div>
<div class="apply-contact-panel" aria-label="咨询电话">
<span class="apply-contact-label">参赛咨询:</span>
<a
v-for="phone in entryConsultPhones"
:key="phone.tel"
:href="`tel:${phone.tel}`"
>{{ phone.display }}</a>
<a :href="`tel:${techConsultPhone.tel}`">技术咨询:{{ techConsultPhone.display }}</a>
</div>
<form
id="applyForm"
ref="applyFormEl"
@ -1950,6 +1960,31 @@ onMounted(() => {
color: #42664f;
}
.apply-contact-panel {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.45rem 1rem;
margin-bottom: 1rem;
padding: 0.72rem 0.9rem;
border: 1px solid #e4e9ef;
border-radius: 8px;
background: #fbfcfe;
color: #425466;
font-size: 0.9rem;
line-height: 1.4;
}
.apply-contact-panel a {
color: inherit;
text-decoration: none;
}
.apply-contact-panel a:hover {
color: #052d62;
text-decoration: underline;
}
.track-selected-note {
display: block;
margin-top: 0.35rem;

@ -15,6 +15,7 @@ import {
type BrandingForm,
} from '../utils/competitionBranding'
import { readPublicSourceCodeForAttribution } from '../utils/publicSource'
import { entryConsultPhones, techConsultPhone } from '../config/participantContact'
import '../styles/prototype-styles.css'
import '../styles/login-page-overrides.css'
@ -464,6 +465,16 @@ onUnmounted(() => {
<button type="submit" class="login-page-wls__submit" :disabled="submitting">
{{ submitting ? '登录中…' : '登录' }}
</button>
<div class="login-page-wls__contact" aria-label="咨询电话">
<div class="login-page-wls__contact-entry">
<span class="login-page-wls__contact-label">参赛咨询:</span>
<template v-for="(phone, index) in entryConsultPhones" :key="phone.tel">
<span v-if="index > 0" class="login-page-wls__contact-sep">、</span>
<a :href="`tel:${phone.tel}`">{{ phone.display }}</a>
</template>
</div>
<a :href="`tel:${techConsultPhone.tel}`">技术咨询:{{ techConsultPhone.display }}</a>
</div>
<p v-if="apiHint" :class="apiHintClass" style="margin-top: 0.75rem">{{ apiHint }}</p>
</form>
</div>

@ -8,7 +8,7 @@ import { viteStaticCopy } from 'vite-plugin-static-copy'
import type { Plugin } from 'vite'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
const laravelPublicAdmin = path.resolve(__dirname, '../backend/public/admin')
const laravelPublicAdmin = path.resolve(__dirname, '../xxfcyds2026-backend/public/admin')
function spaHistoryFallback(): Plugin {
const middleware = history({ index: '/index.html' })

Loading…
Cancel
Save