|
|
|
|
@ -142,7 +142,7 @@ const trackDropdownBtn = ref<HTMLButtonElement | HTMLButtonElement[] | null>(nul
|
|
|
|
|
const trackMainText = computed(() => {
|
|
|
|
|
const code = formModel.track
|
|
|
|
|
const t = competitionTracks.value.find((x) => x.track_code === code)
|
|
|
|
|
return t ? t.title : code ? code : '请选择'
|
|
|
|
|
return t ? t.title : code ? code : '请选择主题赛道'
|
|
|
|
|
})
|
|
|
|
|
const trackMainClass = computed(() => (formModel.track ? 'text-body' : 'text-secondary'))
|
|
|
|
|
const trackNoteText = computed(() => {
|
|
|
|
|
@ -204,6 +204,13 @@ watch(
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
watch(
|
|
|
|
|
() => formModel.entry_group,
|
|
|
|
|
(g) => {
|
|
|
|
|
if (g === '创新组') formModel.company_name = ''
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const planFileItems = ref<FileItem[]>([])
|
|
|
|
|
const supportingFileItems = ref<FileItem[]>([])
|
|
|
|
|
const planFileSavedInfo = ref('')
|
|
|
|
|
@ -257,6 +264,7 @@ function textareaFieldPlaceholder(field: SignupFormSchemaField): string {
|
|
|
|
|
|
|
|
|
|
function isFieldVisible(field: SignupFormSchemaField): boolean {
|
|
|
|
|
if (field.type === 'file') return true
|
|
|
|
|
if (field.key === 'company_name') return formModel.entry_group !== '创新组'
|
|
|
|
|
if (field.key === 'location_province' || field.key === 'location_city') {
|
|
|
|
|
return isChina.value
|
|
|
|
|
}
|
|
|
|
|
@ -1097,7 +1105,6 @@ onMounted(() => {
|
|
|
|
|
aria-hidden="true"
|
|
|
|
|
:disabled="formDisabled"
|
|
|
|
|
>
|
|
|
|
|
<option value="">请选择</option>
|
|
|
|
|
<option v-for="t in competitionTracks" :key="t.track_code" :value="t.track_code">
|
|
|
|
|
{{ t.title }}
|
|
|
|
|
</option>
|
|
|
|
|
@ -1121,15 +1128,6 @@ onMounted(() => {
|
|
|
|
|
</span>
|
|
|
|
|
</button>
|
|
|
|
|
<ul class="dropdown-menu w-100 border shadow-sm rounded-2 py-0 my-1 track-custom-menu">
|
|
|
|
|
<li>
|
|
|
|
|
<button
|
|
|
|
|
type="button"
|
|
|
|
|
class="dropdown-item track-pick border-0 w-100 text-start rounded-0"
|
|
|
|
|
@click="pickTrack('')"
|
|
|
|
|
>
|
|
|
|
|
<span class="text-secondary">请选择</span>
|
|
|
|
|
</button>
|
|
|
|
|
</li>
|
|
|
|
|
<li v-for="t in competitionTracks" :key="t.track_code">
|
|
|
|
|
<button
|
|
|
|
|
type="button"
|
|
|
|
|
@ -1279,7 +1277,6 @@ onMounted(() => {
|
|
|
|
|
:required="effectiveRequired(field)"
|
|
|
|
|
:disabled="formDisabled"
|
|
|
|
|
>
|
|
|
|
|
<option value="">请选择</option>
|
|
|
|
|
<option v-for="opt in optionsForField(field)" :key="`${field.key}-${opt.value}`" :value="opt.value">
|
|
|
|
|
{{ opt.label }}
|
|
|
|
|
</option>
|
|
|
|
|
@ -1300,9 +1297,8 @@ onMounted(() => {
|
|
|
|
|
v-model="formModel.location_city"
|
|
|
|
|
class="form-select editable"
|
|
|
|
|
:required="effectiveRequired(field)"
|
|
|
|
|
:disabled="formDisabled || !isChina"
|
|
|
|
|
:disabled="formDisabled || !isChina || !String(formModel.location_province ?? '').trim()"
|
|
|
|
|
>
|
|
|
|
|
<option value="">请选择</option>
|
|
|
|
|
<option v-for="opt in optionsForField(field)" :key="opt.value" :value="opt.value">
|
|
|
|
|
{{ opt.label }}
|
|
|
|
|
</option>
|
|
|
|
|
|