提交 3093dddd authored 作者: 王鹏飞's avatar 王鹏飞

feat: 为多个选择框添加过滤功能以提升用户体验

上级 5a1afe03
...@@ -41,7 +41,7 @@ watchEffect(() => { ...@@ -41,7 +41,7 @@ watchEffect(() => {
<el-dialog title="批量导入考试成绩" :close-on-click-modal="false" width="400px"> <el-dialog title="批量导入考试成绩" :close-on-click-modal="false" width="400px">
<el-form label-width="70px" class="import-form"> <el-form label-width="70px" class="import-form">
<el-form-item label="赛项名称"> <el-form-item label="赛项名称">
<el-select v-model="form.competition_id" class="import-form__select"> <el-select filterable v-model="form.competition_id" class="import-form__select">
<el-option v-for="item in competitions" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in competitions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<a :href="templateUrl" download class="import-form__link" v-if="templateUrl">下载模板</a> <a :href="templateUrl" download class="import-form__link" v-if="templateUrl">下载模板</a>
......
...@@ -41,7 +41,7 @@ watchEffect(() => { ...@@ -41,7 +41,7 @@ watchEffect(() => {
<el-dialog title="批量导入完整评分" :close-on-click-modal="false" width="400px"> <el-dialog title="批量导入完整评分" :close-on-click-modal="false" width="400px">
<el-form label-width="70px" class="import-form"> <el-form label-width="70px" class="import-form">
<el-form-item label="赛项名称"> <el-form-item label="赛项名称">
<el-select v-model="form.competition_id" class="import-form__select"> <el-select filterable v-model="form.competition_id" class="import-form__select">
<el-option v-for="item in competitions" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in competitions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<a :href="templateUrl" download class="import-form__link" v-if="templateUrl">下载模板</a> <a :href="templateUrl" download class="import-form__link" v-if="templateUrl">下载模板</a>
......
...@@ -34,7 +34,7 @@ function scoreMethodText(value: string) { ...@@ -34,7 +34,7 @@ function scoreMethodText(value: string) {
<el-dialog title="同步1+同步线上考试成绩" :close-on-click-modal="false"> <el-dialog title="同步1+同步线上考试成绩" :close-on-click-modal="false">
<el-form class="sync-form"> <el-form class="sync-form">
<el-form-item label="赛项名称"> <el-form-item label="赛项名称">
<el-select v-model="form.competition" value-key="id" class="sync-form__select"> <el-select filterable v-model="form.competition" value-key="id" class="sync-form__select">
<el-option v-for="item in competitions" :key="item.id" :label="item.name" :value="item"></el-option> <el-option v-for="item in competitions" :key="item.id" :label="item.name" :value="item"></el-option>
</el-select> </el-select>
<el-button type="primary" :disabled="!form.competition" @click="handleSync">一键同步成绩</el-button> <el-button type="primary" :disabled="!form.competition" @click="handleSync">一键同步成绩</el-button>
......
...@@ -88,7 +88,7 @@ function handleResize() { ...@@ -88,7 +88,7 @@ function handleResize() {
</p> </p>
</div> </div>
<div class="detail-toolbar__actions"> <div class="detail-toolbar__actions">
<el-select v-model="platformUrl" class="detail-toolbar__select"> <el-select filterable v-model="platformUrl" class="detail-toolbar__select">
<el-option v-for="item in platformList" :key="item.id" :label="item.name" :value="item.url"></el-option> <el-option v-for="item in platformList" :key="item.id" :label="item.name" :value="item.url"></el-option>
</el-select> </el-select>
<el-dropdown class="detail-toolbar__dropdown"> <el-dropdown class="detail-toolbar__dropdown">
......
...@@ -151,17 +151,17 @@ function handleUpdate() { ...@@ -151,17 +151,17 @@ function handleUpdate() {
<el-input v-model="form.org_name" :disabled="isUpdate" /> <el-input v-model="form.org_name" :disabled="isUpdate" />
</el-form-item> </el-form-item>
<el-form-item label="省" prop="province"> <el-form-item label="省" prop="province">
<el-select v-model="provinceValue" style="width: 100%" :disabled="isUpdate"> <el-select filterable v-model="provinceValue" style="width: 100%" :disabled="isUpdate">
<el-option v-for="item in provinceList" :value="item.label" :key="item.code"></el-option> <el-option v-for="item in provinceList" :value="item.label" :key="item.code"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="市" prop="city"> <el-form-item label="市" prop="city">
<el-select v-model="cityValue" style="width: 100%" :disabled="isUpdate"> <el-select filterable v-model="cityValue" style="width: 100%" :disabled="isUpdate">
<el-option v-for="item in cityList" :value="item.label" :key="item.code"></el-option> <el-option v-for="item in cityList" :value="item.label" :key="item.code"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="区/县" prop="county"> <el-form-item label="区/县" prop="county">
<el-select v-model="countyValue" style="width: 100%" :disabled="isUpdate"> <el-select filterable v-model="countyValue" style="width: 100%" :disabled="isUpdate">
<el-option v-for="item in countyList" :value="item.label" :key="item.code"></el-option> <el-option v-for="item in countyList" :value="item.label" :key="item.code"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -198,10 +198,10 @@ function getModuleStatus(row: any, index: number) { ...@@ -198,10 +198,10 @@ function getModuleStatus(row: any, index: number) {
结束倒计时:<span>{{ countdown }}</span> 结束倒计时:<span>{{ countdown }}</span>
</h2> </h2>
<el-row justify="center"> <el-row justify="center">
<el-select v-model="currentCompetition" value-key="id" size="large" style="margin-right: 20px"> <el-select filterable v-model="currentCompetition" value-key="id" size="large" style="margin-right: 20px">
<el-option v-for="item in competitionList" :key="item.id" :value="item" :label="item.name"></el-option> <el-option v-for="item in competitionList" :key="item.id" :value="item" :label="item.name"></el-option>
</el-select> </el-select>
<el-select v-model="platformKey" size="large" v-if="false"> <el-select filterable v-model="platformKey" size="large" v-if="false">
<el-option <el-option
v-for="item in platformKeys" v-for="item in platformKeys"
:key="item.platform_key" :key="item.platform_key"
......
...@@ -100,7 +100,7 @@ function handleUpdate() { ...@@ -100,7 +100,7 @@ function handleUpdate() {
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)"> <el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="120px"> <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="所属部门/学校" prop="organization_id"> <el-form-item label="所属部门/学校" prop="organization_id">
<el-select v-model="form.organization_id" style="width: 100%" :disabled="isUpdate"> <el-select filterable v-model="form.organization_id" style="width: 100%" :disabled="isUpdate">
<el-option v-for="item in organizations" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in organizations" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -119,22 +119,22 @@ function handleUpdate() { ...@@ -119,22 +119,22 @@ function handleUpdate() {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="职务" prop="position_id"> <el-form-item label="职务" prop="position_id">
<el-select v-model="form.position_id" style="width: 100%"> <el-select filterable v-model="form.position_id" style="width: 100%">
<el-option v-for="item in positionList" :key="item.id" :label="item.label" :value="item.id"></el-option> <el-option v-for="item in positionList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="省" prop="province"> <el-form-item label="省" prop="province">
<el-select v-model="provinceValue" style="width: 100%"> <el-select filterable v-model="provinceValue" style="width: 100%">
<el-option v-for="item in provinceList" :value="item.label" :key="item.code"></el-option> <el-option v-for="item in provinceList" :value="item.label" :key="item.code"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="市" prop="city"> <el-form-item label="市" prop="city">
<el-select v-model="cityValue" style="width: 100%"> <el-select filterable v-model="cityValue" style="width: 100%">
<el-option v-for="item in cityList" :value="item.label" :key="item.code"></el-option> <el-option v-for="item in cityList" :value="item.label" :key="item.code"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="区/县" prop="area"> <el-form-item label="区/县" prop="area">
<el-select v-model="countyValue" style="width: 100%"> <el-select filterable v-model="countyValue" style="width: 100%">
<el-option v-for="item in countyList" :value="item.label" :key="item.code"></el-option> <el-option v-for="item in countyList" :value="item.label" :key="item.code"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -352,7 +352,7 @@ onMounted(() => { ...@@ -352,7 +352,7 @@ onMounted(() => {
> >
<el-form ref="formRef" :model="form" :rules="rules" label-width="165px"> <el-form ref="formRef" :model="form" :rules="rules" label-width="165px">
<el-form-item label="客户端标识" prop="client_id"> <el-form-item label="客户端标识" prop="client_id">
<el-select v-model="form.client_id" style="width: 100%" clearable> <el-select filterable v-model="form.client_id" style="width: 100%" clearable>
<el-option v-for="item in clientList" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in clientList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -360,17 +360,17 @@ onMounted(() => { ...@@ -360,17 +360,17 @@ onMounted(() => {
<el-input v-model="form.name" :disabled="isUpdate" /> <el-input v-model="form.name" :disabled="isUpdate" />
</el-form-item> </el-form-item>
<el-form-item label="主办单位" prop="host_unit_id"> <el-form-item label="主办单位" prop="host_unit_id">
<el-select v-model="form.host_unit_id" style="width: 100%"> <el-select filterable v-model="form.host_unit_id" style="width: 100%">
<el-option v-for="item in hostUnitList" :key="item.id" :label="item.label" :value="item.id"></el-option> <el-option v-for="item in hostUnitList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="承办单位" prop="organizer_ids"> <el-form-item label="承办单位" prop="organizer_ids">
<el-select v-model="form.organizer_ids" multiple style="width: 100%"> <el-select filterable v-model="form.organizer_ids" multiple style="width: 100%">
<el-option v-for="item in organizerList" :key="item.id" :label="item.label" :value="item.id"></el-option> <el-option v-for="item in organizerList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="技术支持单位" prop="technical_support_unit_id"> <el-form-item label="技术支持单位" prop="technical_support_unit_id">
<el-select v-model="form.technical_support_unit_id" style="width: 100%"> <el-select filterable v-model="form.technical_support_unit_id" style="width: 100%">
<el-option <el-option
v-for="item in technicalSupportUnitList" v-for="item in technicalSupportUnitList"
:key="item.id" :key="item.id"
...@@ -385,7 +385,7 @@ onMounted(() => { ...@@ -385,7 +385,7 @@ onMounted(() => {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="指导教师" prop="teacher_ids"> <el-form-item label="指导教师" prop="teacher_ids">
<el-select v-model="form.teacher_ids" multiple style="width: 100%"> <el-select filterable v-model="form.teacher_ids" multiple style="width: 100%">
<el-option v-for="item in teachers" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in teachers" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -390,7 +390,7 @@ onMounted(() => { ...@@ -390,7 +390,7 @@ onMounted(() => {
<el-input v-model="form.name" /> <el-input v-model="form.name" />
</el-form-item> </el-form-item>
<el-form-item label="承办单位" prop="organizer_ids"> <el-form-item label="承办单位" prop="organizer_ids">
<el-select v-model="form.organizer_ids" multiple style="width: 100%"> <el-select filterable v-model="form.organizer_ids" multiple style="width: 100%">
<el-option v-for="item in organizerList" :key="item.id" :label="item.label" :value="item.id"></el-option> <el-option v-for="item in organizerList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -438,7 +438,7 @@ onMounted(() => { ...@@ -438,7 +438,7 @@ onMounted(() => {
</el-checkbox> </el-checkbox>
</el-form-item> </el-form-item>
<el-form-item label="指导教师" prop="teacher_ids"> <el-form-item label="指导教师" prop="teacher_ids">
<el-select v-model="form.teacher_ids" multiple style="width: 100%"> <el-select filterable v-model="form.teacher_ids" multiple style="width: 100%">
<el-option v-for="item in teachers" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in teachers" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -463,12 +463,12 @@ onMounted(() => { ...@@ -463,12 +463,12 @@ onMounted(() => {
<div style="flex: 1; margin-left: 10px"> <div style="flex: 1; margin-left: 10px">
<el-form-item label="主办单位" prop="host_unit_id"> <el-form-item label="主办单位" prop="host_unit_id">
<el-select v-model="form.host_unit_id" style="width: 100%"> <el-select filterable v-model="form.host_unit_id" style="width: 100%">
<el-option v-for="item in hostUnitList" :key="item.id" :label="item.label" :value="item.id"></el-option> <el-option v-for="item in hostUnitList" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="技术支持单位" prop="technical_support_unit_id"> <el-form-item label="技术支持单位" prop="technical_support_unit_id">
<el-select v-model="form.technical_support_unit_id" style="width: 100%"> <el-select filterable v-model="form.technical_support_unit_id" style="width: 100%">
<el-option <el-option
v-for="item in technicalSupportUnitList" v-for="item in technicalSupportUnitList"
:key="item.id" :key="item.id"
...@@ -483,7 +483,7 @@ onMounted(() => { ...@@ -483,7 +483,7 @@ onMounted(() => {
</el-radio-group> </el-radio-group>
</el-form-item> --> </el-form-item> -->
<el-form-item label="客户端标识" prop="client_id"> <el-form-item label="客户端标识" prop="client_id">
<!-- <el-select v-model="form.client_id" style="width: 100%" clearable> <!-- <el-select filterable v-model="form.client_id" style="width: 100%" clearable>
<el-option v-for="item in clientList" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in clientList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> --> </el-select> -->
<el-radio-group v-model="form.client_id"> <el-radio-group v-model="form.client_id">
......
...@@ -72,7 +72,7 @@ function handleSubmit() { ...@@ -72,7 +72,7 @@ function handleSubmit() {
<el-form ref="formRef" :model="form" :rules="rules" label-position="right" label-width="100px" label-suffix=":"> <el-form ref="formRef" :model="form" :rules="rules" label-position="right" label-width="100px" label-suffix=":">
<el-form-item label="赛项名称">{{ detail.name }}</el-form-item> <el-form-item label="赛项名称">{{ detail.name }}</el-form-item>
<el-form-item label="角色" prop="role"> <el-form-item label="角色" prop="role">
<el-select v-model="form.role" style="width: 100%"> <el-select filterable v-model="form.role" style="width: 100%">
<el-option v-for="item in roleList" :key="item.id" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in roleList" :key="item.id" :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -82,7 +82,7 @@ function handleSubmit() { ...@@ -82,7 +82,7 @@ function handleSubmit() {
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="添加班级"> <el-form-item label="添加班级">
<el-select multiple v-model="classes" style="width: 100%"> <el-select filterable multiple v-model="classes" style="width: 100%">
<el-option v-for="item in classList" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in classList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -186,7 +186,7 @@ function handleRatioChange(row: any, index: number) { ...@@ -186,7 +186,7 @@ function handleRatioChange(row: any, index: number) {
</el-table-column> </el-table-column>
<el-table-column prop="date" label="评分方法" align="center" width="124"> <el-table-column prop="date" label="评分方法" align="center" width="124">
<template #default="{ row }"> <template #default="{ row }">
<el-select v-model="row.type" @change="handleTypeChange(row)"> <el-select filterable v-model="row.type" @change="handleTypeChange(row)">
<el-option v-for="item in currentScoreMethods(row.type)" :key="item.id" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in currentScoreMethods(row.type)" :key="item.id" :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
</template> </template>
......
...@@ -91,7 +91,7 @@ function handleUpdate(params: any) { ...@@ -91,7 +91,7 @@ function handleUpdate(params: any) {
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="模块" prop="sort" v-if="form.type === '1'"> <el-form-item label="模块" prop="sort" v-if="form.type === '1'">
<el-select v-model="form.sort"> <el-select filterable v-model="form.sort">
<el-option v-for="item in 6" :value="item" :key="item"></el-option> <el-option v-for="item in 6" :value="item" :key="item"></el-option>
</el-select> </el-select>
<!-- <el-input v-model="form.sort"></el-input> --> <!-- <el-input v-model="form.sort"></el-input> -->
......
...@@ -70,7 +70,7 @@ function handleSubmit() { ...@@ -70,7 +70,7 @@ function handleSubmit() {
<el-input v-model="form.times"></el-input> <el-input v-model="form.times"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="案例所属实验类型" prop="type"> <el-form-item label="案例所属实验类型" prop="type">
<el-select v-model="form.type"> <el-select filterable v-model="form.type">
<el-option v-for="item in types" :key="item.id" v-bind="item"></el-option> <el-option v-for="item in types" :key="item.id" v-bind="item"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -244,7 +244,7 @@ function disabledMinSubmitDate(time: Date) { ...@@ -244,7 +244,7 @@ function disabledMinSubmitDate(time: Date) {
<div class="rule-card" v-for="(row, $index) in form.config.rules" :key="`${row.type}-${$index}`"> <div class="rule-card" v-for="(row, $index) in form.config.rules" :key="`${row.type}-${$index}`">
<div class="rule-card__field"> <div class="rule-card__field">
<span class="rule-card__label">评分项</span> <span class="rule-card__label">评分项</span>
<el-select v-model="row.type" style="width: 100%" @change="handleTypeChange(row)"> <el-select filterable v-model="row.type" style="width: 100%" @change="handleTypeChange(row)">
<el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option> <el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -278,7 +278,7 @@ function disabledMinSubmitDate(time: Date) { ...@@ -278,7 +278,7 @@ function disabledMinSubmitDate(time: Date) {
<el-table v-else :data="form.config.rules"> <el-table v-else :data="form.config.rules">
<el-table-column prop="name" width="170"> <el-table-column prop="name" width="170">
<template #default="{ row }"> <template #default="{ row }">
<el-select v-model="row.type" style="width: 100%" @change="handleTypeChange(row)"> <el-select filterable v-model="row.type" style="width: 100%" @change="handleTypeChange(row)">
<el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option> <el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option>
</el-select> </el-select>
</template> </template>
......
...@@ -169,7 +169,7 @@ async function handleSubmit() { ...@@ -169,7 +169,7 @@ async function handleSubmit() {
<el-input v-model="form.experiment_name" /> <el-input v-model="form.experiment_name" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="实验所属部门/学校" prop="organ_id"> <!-- <el-form-item label="实验所属部门/学校" prop="organ_id">
<el-select v-model="form.organ_id" style="width: 100%" @change="handleOrgChange" clearable> <el-select filterable v-model="form.organ_id" style="width: 100%" @change="handleOrgChange" clearable>
<el-option v-for="item in organizations" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in organizations" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
......
...@@ -270,7 +270,7 @@ const handleSelectAll = () => { ...@@ -270,7 +270,7 @@ const handleSelectAll = () => {
<el-tab-pane label="模板与连接" :name="0"> <el-tab-pane label="模板与连接" :name="0">
<el-form-item label="旅程模板" label-width="82" prop="itinerary_id"> <el-form-item label="旅程模板" label-width="82" prop="itinerary_id">
<template v-if="templateList.length"> <template v-if="templateList.length">
<el-select v-model="form.itinerary_id" style="width: 100%"> <el-select filterable v-model="form.itinerary_id" style="width: 100%">
<el-option v-for="item in templateList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in templateList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</template> </template>
...@@ -281,7 +281,7 @@ const handleSelectAll = () => { ...@@ -281,7 +281,7 @@ const handleSelectAll = () => {
</template> </template>
</el-form-item> </el-form-item>
<el-form-item label="连接" label-width="82" prop="connect_ids"> <el-form-item label="连接" label-width="82" prop="connect_ids">
<el-select v-model="form.connect_ids" multiple style="width: 100%"> <el-select filterable v-model="form.connect_ids" multiple style="width: 100%">
<el-option <el-option
v-for="item in connectionList" v-for="item in connectionList"
:label="item.name" :label="item.name"
...@@ -297,7 +297,7 @@ const handleSelectAll = () => { ...@@ -297,7 +297,7 @@ const handleSelectAll = () => {
<el-radio :label="true">全部</el-radio> <el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio> <el-radio :label="false">部分</el-radio>
</el-radio-group> </el-radio-group>
<el-select <el-select filterable
v-model="form.user_attr_config.items" v-model="form.user_attr_config.items"
multiple multiple
style="margin-left: 40px" style="margin-left: 40px"
...@@ -310,7 +310,7 @@ const handleSelectAll = () => { ...@@ -310,7 +310,7 @@ const handleSelectAll = () => {
<el-radio :label="true">全部</el-radio> <el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio> <el-radio :label="false">部分</el-radio>
</el-radio-group> </el-radio-group>
<el-select <el-select filterable
v-model="form.event_config.items" v-model="form.event_config.items"
multiple multiple
style="margin-left: 40px" style="margin-left: 40px"
...@@ -327,7 +327,7 @@ const handleSelectAll = () => { ...@@ -327,7 +327,7 @@ const handleSelectAll = () => {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="用户/事件数据" label-width="118"> <el-form-item label="用户/事件数据" label-width="118">
<el-select v-model="form.ids" multiple style="width: 100%" disabled> <el-select filterable v-model="form.ids" multiple style="width: 100%" disabled>
<el-option value="教师维护的用户和事件数据"></el-option> <el-option value="教师维护的用户和事件数据"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -340,7 +340,7 @@ const handleSelectAll = () => { ...@@ -340,7 +340,7 @@ const handleSelectAll = () => {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="标签数据" label-width="118" prop="tag_ids"> <el-form-item label="标签数据" label-width="118" prop="tag_ids">
<el-select v-model="form.tag_ids" multiple style="width: 100%"> <el-select filterable v-model="form.tag_ids" multiple style="width: 100%">
<el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -353,7 +353,7 @@ const handleSelectAll = () => { ...@@ -353,7 +353,7 @@ const handleSelectAll = () => {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="用户群组" label-width="118" prop="group_ids"> <el-form-item label="用户群组" label-width="118" prop="group_ids">
<el-select v-model="form.group_ids" multiple style="width: 100%"> <el-select filterable v-model="form.group_ids" multiple style="width: 100%">
<el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -366,7 +366,7 @@ const handleSelectAll = () => { ...@@ -366,7 +366,7 @@ const handleSelectAll = () => {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="营销资料" label-width="118" prop="material_ids"> <el-form-item label="营销资料" label-width="118" prop="material_ids">
<el-select v-model="form.material_ids" multiple style="width: 100%"> <el-select filterable v-model="form.material_ids" multiple style="width: 100%">
<el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -395,22 +395,22 @@ const handleSelectAll = () => { ...@@ -395,22 +395,22 @@ const handleSelectAll = () => {
<template v-if="form.is_use_common === 1"> <template v-if="form.is_use_common === 1">
<el-divider /> <el-divider />
<el-form-item label="用户/事件数据" label-width="118"> <el-form-item label="用户/事件数据" label-width="118">
<el-select v-model="form.ids" multiple style="width: 100%" disabled> <el-select filterable v-model="form.ids" multiple style="width: 100%" disabled>
<el-option value="教师维护的用户和事件数据"></el-option> <el-option value="教师维护的用户和事件数据"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="标签数据" label-width="118" prop="tag_ids"> <el-form-item label="标签数据" label-width="118" prop="tag_ids">
<el-select v-model="form.tag_ids" multiple style="width: 100%"> <el-select filterable v-model="form.tag_ids" multiple style="width: 100%">
<el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="用户群组" label-width="118" prop="group_ids"> <el-form-item label="用户群组" label-width="118" prop="group_ids">
<el-select v-model="form.group_ids" multiple style="width: 100%"> <el-select filterable v-model="form.group_ids" multiple style="width: 100%">
<el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="营销资料" label-width="118" prop="material_ids"> <el-form-item label="营销资料" label-width="118" prop="material_ids">
<el-select v-model="form.material_ids" multiple style="width: 100%"> <el-select filterable v-model="form.material_ids" multiple style="width: 100%">
<el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -140,7 +140,7 @@ function handleSubmit() { ...@@ -140,7 +140,7 @@ function handleSubmit() {
<el-tab-pane label="模板与连接" :name="0"> <el-tab-pane label="模板与连接" :name="0">
<el-form-item label="旅程模板" label-width="82" prop="itinerary_id"> <el-form-item label="旅程模板" label-width="82" prop="itinerary_id">
<template v-if="templateList.length"> <template v-if="templateList.length">
<el-select v-model="form.itinerary_id" style="width: 100%"> <el-select filterable v-model="form.itinerary_id" style="width: 100%">
<el-option v-for="item in templateList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in templateList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</template> </template>
...@@ -151,7 +151,7 @@ function handleSubmit() { ...@@ -151,7 +151,7 @@ function handleSubmit() {
</template> </template>
</el-form-item> </el-form-item>
<el-form-item label="连接" label-width="82" prop="connect_ids"> <el-form-item label="连接" label-width="82" prop="connect_ids">
<el-select v-model="form.connect_ids" multiple style="width: 100%"> <el-select filterable v-model="form.connect_ids" multiple style="width: 100%">
<el-option <el-option
v-for="item in connectionList" v-for="item in connectionList"
:label="item.name" :label="item.name"
...@@ -168,7 +168,7 @@ function handleSubmit() { ...@@ -168,7 +168,7 @@ function handleSubmit() {
<el-radio :label="true">全部</el-radio> <el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio> <el-radio :label="false">部分</el-radio>
</el-radio-group> </el-radio-group>
<el-select <el-select filterable
v-model="form.user_attr_config.items" v-model="form.user_attr_config.items"
multiple multiple
style="margin-left: 40px" style="margin-left: 40px"
...@@ -182,7 +182,7 @@ function handleSubmit() { ...@@ -182,7 +182,7 @@ function handleSubmit() {
<el-radio :label="true">全部</el-radio> <el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio> <el-radio :label="false">部分</el-radio>
</el-radio-group> </el-radio-group>
<el-select <el-select filterable
v-model="form.event_config.items" v-model="form.event_config.items"
multiple multiple
style="margin-left: 40px" style="margin-left: 40px"
...@@ -200,7 +200,7 @@ function handleSubmit() { ...@@ -200,7 +200,7 @@ function handleSubmit() {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="用户/事件数据" label-width="118"> <el-form-item label="用户/事件数据" label-width="118">
<el-select v-model="form.ids" multiple style="width: 100%" disabled> <el-select filterable v-model="form.ids" multiple style="width: 100%" disabled>
<el-option value="教师维护的用户和事件数据"></el-option> <el-option value="教师维护的用户和事件数据"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -213,7 +213,7 @@ function handleSubmit() { ...@@ -213,7 +213,7 @@ function handleSubmit() {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="标签数据" label-width="118" prop="tag_ids"> <el-form-item label="标签数据" label-width="118" prop="tag_ids">
<el-select v-model="form.tag_ids" multiple style="width: 100%"> <el-select filterable v-model="form.tag_ids" multiple style="width: 100%">
<el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -226,7 +226,7 @@ function handleSubmit() { ...@@ -226,7 +226,7 @@ function handleSubmit() {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="用户群组" label-width="118" prop="group_ids"> <el-form-item label="用户群组" label-width="118" prop="group_ids">
<el-select v-model="form.group_ids" multiple style="width: 100%"> <el-select filterable v-model="form.group_ids" multiple style="width: 100%">
<el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -239,7 +239,7 @@ function handleSubmit() { ...@@ -239,7 +239,7 @@ function handleSubmit() {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="营销资料" label-width="118" prop="material_ids"> <el-form-item label="营销资料" label-width="118" prop="material_ids">
<el-select v-model="form.material_ids" multiple style="width: 100%"> <el-select filterable v-model="form.material_ids" multiple style="width: 100%">
<el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -254,22 +254,22 @@ function handleSubmit() { ...@@ -254,22 +254,22 @@ function handleSubmit() {
<template v-if="form.is_use_common === 1"> <template v-if="form.is_use_common === 1">
<el-divider /> <el-divider />
<el-form-item label="用户/事件数据" label-width="118"> <el-form-item label="用户/事件数据" label-width="118">
<el-select v-model="form.ids" multiple style="width: 100%" disabled> <el-select filterable v-model="form.ids" multiple style="width: 100%" disabled>
<el-option value="教师维护的用户和事件数据"></el-option> <el-option value="教师维护的用户和事件数据"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="标签数据" label-width="118" prop="tag_ids"> <el-form-item label="标签数据" label-width="118" prop="tag_ids">
<el-select v-model="form.tag_ids" multiple style="width: 100%"> <el-select filterable v-model="form.tag_ids" multiple style="width: 100%">
<el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in tagList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="用户群组" label-width="118" prop="group_ids"> <el-form-item label="用户群组" label-width="118" prop="group_ids">
<el-select v-model="form.group_ids" multiple style="width: 100%"> <el-select filterable v-model="form.group_ids" multiple style="width: 100%">
<el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in groupList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="营销资料" label-width="118" prop="material_ids"> <el-form-item label="营销资料" label-width="118" prop="material_ids">
<el-select v-model="form.material_ids" multiple style="width: 100%"> <el-select filterable v-model="form.material_ids" multiple style="width: 100%">
<el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in materialList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -143,7 +143,7 @@ function handleUpdate(params: ExperimentCreateItem) { ...@@ -143,7 +143,7 @@ function handleUpdate(params: ExperimentCreateItem) {
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="实验类型" prop="type"> <el-form-item label="实验类型" prop="type">
<el-select v-model="form.type" style="width: 100%"> <el-select filterable v-model="form.type" style="width: 100%">
<el-option v-for="item in types" :key="item.id" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in types" :key="item.id" :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -295,7 +295,7 @@ onMounted(() => { ...@@ -295,7 +295,7 @@ onMounted(() => {
<div class="rule-card" v-for="(row, $index) in form.exam_rules" :key="row.id || $index"> <div class="rule-card" v-for="(row, $index) in form.exam_rules" :key="row.id || $index">
<div class="rule-card__field"> <div class="rule-card__field">
<span class="rule-card__label">理论考试</span> <span class="rule-card__label">理论考试</span>
<el-select v-model="row.exam_id" style="width: 100%"> <el-select filterable v-model="row.exam_id" style="width: 100%">
<el-option v-for="item in examList" :key="item.id" :label="item.name" :value="item.exam_id"></el-option> <el-option v-for="item in examList" :key="item.id" :label="item.name" :value="item.exam_id"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -323,7 +323,7 @@ onMounted(() => { ...@@ -323,7 +323,7 @@ onMounted(() => {
<el-table v-else :data="form.exam_rules" row-key="id"> <el-table v-else :data="form.exam_rules" row-key="id">
<el-table-column prop="name" width="170"> <el-table-column prop="name" width="170">
<template #default="{ row }"> <template #default="{ row }">
<el-select v-model="row.exam_id" style="width: 100%"> <el-select filterable v-model="row.exam_id" style="width: 100%">
<el-option v-for="item in examList" :key="item.id" :label="item.name" :value="item.exam_id"></el-option> <el-option v-for="item in examList" :key="item.id" :label="item.name" :value="item.exam_id"></el-option>
</el-select> </el-select>
</template> </template>
...@@ -368,7 +368,7 @@ onMounted(() => { ...@@ -368,7 +368,7 @@ onMounted(() => {
<div class="rule-card__field"> <div class="rule-card__field">
<span class="rule-card__label">规则名称</span> <span class="rule-card__label">规则名称</span>
<el-input v-model="row.name" :maxlength="20" style="width: 100%" v-if="row.type === 5" /> <el-input v-model="row.name" :maxlength="20" style="width: 100%" v-if="row.type === 5" />
<el-select v-model="row.type" style="width: 100%" @change="handleTypeChange(row)" v-else> <el-select filterable v-model="row.type" style="width: 100%" @change="handleTypeChange(row)" v-else>
<el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option> <el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -407,7 +407,7 @@ onMounted(() => { ...@@ -407,7 +407,7 @@ onMounted(() => {
<el-table-column prop="name" width="170"> <el-table-column prop="name" width="170">
<template #default="{ row }"> <template #default="{ row }">
<el-input v-model="row.name" :maxlength="20" style="width: 100%" v-if="row.type === 5" /> <el-input v-model="row.name" :maxlength="20" style="width: 100%" v-if="row.type === 5" />
<el-select v-model="row.type" style="width: 100%" @change="handleTypeChange(row)" v-else> <el-select filterable v-model="row.type" style="width: 100%" @change="handleTypeChange(row)" v-else>
<el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option> <el-option v-for="item in currentRuleNames(row.type)" :key="item.value" v-bind="item"></el-option>
</el-select> </el-select>
</template> </template>
......
...@@ -96,7 +96,7 @@ defineExpose({ formRef }) ...@@ -96,7 +96,7 @@ defineExpose({ formRef })
label="选择事件" label="选择事件"
:prop="`questions.${index}.answer.choose`" :prop="`questions.${index}.answer.choose`"
:rules="{ required: true, message: '请输入' }"> :rules="{ required: true, message: '请输入' }">
<el-select v-model="item.answer.choose" @change="handleEventChange(item)"> <el-select filterable v-model="item.answer.choose" @change="handleEventChange(item)">
<el-option v-for="item in eventList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in eventList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -60,7 +60,7 @@ defineExpose({ formRef }) ...@@ -60,7 +60,7 @@ defineExpose({ formRef })
label="正确群组规则" label="正确群组规则"
:prop="`questions.${index}.answer.choose`" :prop="`questions.${index}.answer.choose`"
:rules="{ required: true, message: '请输入' }"> :rules="{ required: true, message: '请输入' }">
<el-select v-model="item.answer.choose" placeholder="请选择"> <el-select filterable v-model="item.answer.choose" placeholder="请选择">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
<p style="margin-left: 10px">满足该群组的用户数量:{{ getGroupCount(item.answer.choose) }}</p> <p style="margin-left: 10px">满足该群组的用户数量:{{ getGroupCount(item.answer.choose) }}</p>
......
...@@ -74,7 +74,7 @@ defineExpose({ formRef }) ...@@ -74,7 +74,7 @@ defineExpose({ formRef })
label="参考答案" label="参考答案"
:prop="`questions.${index}.answer.choose`" :prop="`questions.${index}.answer.choose`"
:rules="{ required: true, message: '请选择' }"> :rules="{ required: true, message: '请选择' }">
<el-select v-model="item.answer.choose" placeholder="请选择" clearable> <el-select filterable v-model="item.answer.choose" placeholder="请选择" clearable>
<el-option <el-option
v-for="materia in filterMateriaList(item.type)" v-for="materia in filterMateriaList(item.type)"
:key="materia.id" :key="materia.id"
...@@ -86,7 +86,7 @@ defineExpose({ formRef }) ...@@ -86,7 +86,7 @@ defineExpose({ formRef })
label="评分AI" label="评分AI"
:prop="`questions.${index}.answer.ai`" :prop="`questions.${index}.answer.ai`"
:rules="{ required: true, message: '请选择' }"> :rules="{ required: true, message: '请选择' }">
<el-select v-model="item.answer.ai" placeholder="请选择"> <el-select filterable v-model="item.answer.ai" placeholder="请选择">
<el-option v-for="item in aiOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in aiOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -59,7 +59,7 @@ defineExpose({ formRef }) ...@@ -59,7 +59,7 @@ defineExpose({ formRef })
label="正确标签规则" label="正确标签规则"
:prop="`questions.${index}.answer.choose`" :prop="`questions.${index}.answer.choose`"
:rules="{ required: true, message: '请输入' }"> :rules="{ required: true, message: '请输入' }">
<el-select v-model="item.answer.choose"> <el-select filterable v-model="item.answer.choose">
<el-option v-for="item in tagList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in tagList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
<p style="margin-left: 10px">满足该标签的用户数量:{{ getTagCount(item.answer.choose) }}</p> <p style="margin-left: 10px">满足该标签的用户数量:{{ getTagCount(item.answer.choose) }}</p>
......
...@@ -14,7 +14,7 @@ const exportUrl = computed(() => { ...@@ -14,7 +14,7 @@ const exportUrl = computed(() => {
<el-dialog title="批量导出" :close-on-click-modal="false" width="400px"> <el-dialog title="批量导出" :close-on-click-modal="false" width="400px">
<el-form label-width="70px"> <el-form label-width="70px">
<el-form-item label="实验名称"> <el-form-item label="实验名称">
<el-select v-model="form.experiment_id"> <el-select filterable v-model="form.experiment_id">
<el-option v-for="item in experiments" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in experiments" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
&nbsp;&nbsp; &nbsp;&nbsp;
......
...@@ -22,7 +22,7 @@ function handleSync() { ...@@ -22,7 +22,7 @@ function handleSync() {
<el-dialog title="同步1+X考试成绩" :close-on-click-modal="false" width="440px"> <el-dialog title="同步1+X考试成绩" :close-on-click-modal="false" width="440px">
<el-form> <el-form>
<el-form-item label="实验名称"> <el-form-item label="实验名称">
<el-select v-model="form.experiment_id" value-key="id"> <el-select filterable v-model="form.experiment_id" value-key="id">
<el-option v-for="item in experiments" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in experiments" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
&nbsp;&nbsp; &nbsp;&nbsp;
......
...@@ -33,13 +33,13 @@ function handleChange(id: string, type: number) { ...@@ -33,13 +33,13 @@ function handleChange(id: string, type: number) {
<!-- <router-link to="/admin/contest/discuss" class="link4"></router-link> --> <!-- <router-link to="/admin/contest/discuss" class="link4"></router-link> -->
</div> </div>
<div class="select-group"> <div class="select-group">
<el-select size="large" placeholder="大赛评分" @change="handleChange($event, 1)"> <el-select filterable size="large" placeholder="大赛评分" @change="handleChange($event, 1)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-select size="large" placeholder="大赛成绩发布" @change="handleChange($event, 2)"> <el-select filterable size="large" placeholder="大赛成绩发布" @change="handleChange($event, 2)">
<el-option v-for="item in leaderList" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in leaderList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<!-- <el-select size="large" placeholder="大赛成绩分析" @change="handleChange($event, 3)"> <!-- <el-select filterable size="large" placeholder="大赛成绩分析" @change="handleChange($event, 3)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> --> </el-select> -->
</div> </div>
......
...@@ -40,10 +40,10 @@ const learnURL = urls.learn ...@@ -40,10 +40,10 @@ const learnURL = urls.learn
<a :href="learnURL" target="_blank" class="link4"></a> <a :href="learnURL" target="_blank" class="link4"></a>
</div> </div>
<div class="select-group"> <div class="select-group">
<el-select size="large" placeholder="我的实验课程" @change="handleChange($event, 1)" class="select1"> <el-select filterable size="large" placeholder="我的实验课程" @change="handleChange($event, 1)" class="select1">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-select size="large" placeholder="我的大赛项目" value-key="id" @change="handleContestChange" class="select2"> <el-select filterable size="large" placeholder="我的大赛项目" value-key="id" @change="handleContestChange" class="select2">
<el-option v-for="item in contestList" :key="item.id" :label="item.name" :value="item"></el-option> <el-option v-for="item in contestList" :key="item.id" :label="item.name" :value="item"></el-option>
</el-select> </el-select>
</div> </div>
......
...@@ -33,16 +33,16 @@ function handleChange(id: string, type: number) { ...@@ -33,16 +33,16 @@ function handleChange(id: string, type: number) {
<router-link to="/admin/lab/discuss" class="link4"></router-link> <router-link to="/admin/lab/discuss" class="link4"></router-link>
</div> </div>
<div class="select-group"> <div class="select-group">
<el-select size="large" placeholder="实验指导书" @change="handleChange($event, 1)"> <el-select filterable size="large" placeholder="实验指导书" @change="handleChange($event, 1)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-select size="large" placeholder="实验视频" @change="handleChange($event, 2)"> <el-select filterable size="large" placeholder="实验视频" @change="handleChange($event, 2)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-select size="large" placeholder="实验答疑" @change="handleChange($event, 3)"> <el-select filterable size="large" placeholder="实验答疑" @change="handleChange($event, 3)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-select size="large" placeholder="实验成绩" @change="handleChange($event, 4)"> <el-select filterable size="large" placeholder="实验成绩" @change="handleChange($event, 4)">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</div> </div>
......
...@@ -33,7 +33,7 @@ const selectChange = function () { ...@@ -33,7 +33,7 @@ const selectChange = function () {
<h1>2024 年湖北工匠杯成绩查询</h1> <h1>2024 年湖北工匠杯成绩查询</h1>
<div style="display: flex; align-items: center; padding-top: 30px; flex-wrap: wrap"> <div style="display: flex; align-items: center; padding-top: 30px; flex-wrap: wrap">
<span style="margin-right: 10px">赛项</span> <span style="margin-right: 10px">赛项</span>
<el-select style="width: 100%; max-width: 320px" v-model="eventValue" placeholder="请选择" @change="selectChange"> <el-select filterable style="width: 100%; max-width: 320px" v-model="eventValue" placeholder="请选择" @change="selectChange">
<el-option v-for="item in eventOption" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in eventOption" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</div> </div>
......
...@@ -160,7 +160,7 @@ useEventListener(window, 'message', async (event) => { ...@@ -160,7 +160,7 @@ useEventListener(window, 'message', async (event) => {
<div class="welcome-box-header"> <div class="welcome-box-header">
<div class="welcome-box-header-content"> <div class="welcome-box-header-content">
<h1>{{ competition?.name }}</h1> <h1>{{ competition?.name }}</h1>
<h2>考试时间</h2> <h2>{{ isFormalMode ? '考试时间' : '综合实训时间' }}</h2>
<div class="line"></div> <div class="line"></div>
<p>{{ competition?.start_time }} ~ {{ competition?.end_time }}</p> <p>{{ competition?.start_time }} ~ {{ competition?.end_time }}</p>
</div> </div>
......
...@@ -279,12 +279,12 @@ function handleGoToFunction(path: string) { ...@@ -279,12 +279,12 @@ function handleGoToFunction(path: string) {
<div class="lab-left-body"> <div class="lab-left-body">
<el-form :model="form" label-suffix=":" hide-required-asterisk> <el-form :model="form" label-suffix=":" hide-required-asterisk>
<el-form-item label="请选择课程"> <el-form-item label="请选择课程">
<el-select :model-value="form.course_id" @change="handleCourseChange" style="width: 100%"> <el-select filterable :model-value="form.course_id" @change="handleCourseChange" style="width: 100%">
<el-option v-for="item in courses" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in courses" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="请选择实验" prop="experiment_id"> <el-form-item label="请选择实验" prop="experiment_id">
<el-select :model-value="form.experiment_id" @change="handleExperimentChange" style="width: 100%"> <el-select filterable :model-value="form.experiment_id" @change="handleExperimentChange" style="width: 100%">
<el-option v-for="item in experimentList" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in experimentList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
...@@ -175,7 +175,7 @@ function handleUpdateBindCapture(files) { ...@@ -175,7 +175,7 @@ function handleUpdateBindCapture(files) {
<el-row> <el-row>
<el-col :xs="24" :sm="24" :md="12"> <el-col :xs="24" :sm="24" :md="12">
<el-form-item label="实验地点"> <el-form-item label="实验地点">
<el-select v-model="form.experiment_address"> <el-select filterable v-model="form.experiment_address">
<el-option v-for="item in experimentAddress" v-bind="item" :key="item.id"></el-option> <el-option v-for="item in experimentAddress" v-bind="item" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论