diff --git a/src/config/participantContact.ts b/src/config/participantContact.ts new file mode 100644 index 0000000..325fa1d --- /dev/null +++ b/src/config/participantContact.ts @@ -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', +} diff --git a/src/styles/login-page-overrides.css b/src/styles/login-page-overrides.css index 281d319..fee41e0 100644 --- a/src/styles/login-page-overrides.css +++ b/src/styles/login-page-overrides.css @@ -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; +} diff --git a/src/views/ApplyFormView.vue b/src/views/ApplyFormView.vue index 6e3aa5e..6c8c330 100644 --- a/src/views/ApplyFormView.vue +++ b/src/views/ApplyFormView.vue @@ -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(() => { {{ applicationStatusBody }} +
+ 参赛咨询: + {{ phone.display }} + 技术咨询:{{ techConsultPhone.display }} +
{ 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; diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index 20c5f84..3a72fd9 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -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(() => { +
+ + 技术咨询:{{ techConsultPhone.display }} +

{{ apiHint }}

diff --git a/vite.config.ts b/vite.config.ts index 20f7f5e..d2c17dc 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -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' })