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

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

上级 5a1afe03
......@@ -41,7 +41,7 @@ watchEffect(() => {
<el-dialog title="批量导入考试成绩" :close-on-click-modal="false" width="400px">
<el-form label-width="70px" class="import-form">
<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-select>
<a :href="templateUrl" download class="import-form__link" v-if="templateUrl">下载模板</a>
......
......@@ -41,7 +41,7 @@ watchEffect(() => {
<el-dialog title="批量导入完整评分" :close-on-click-modal="false" width="400px">
<el-form label-width="70px" class="import-form">
<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-select>
<a :href="templateUrl" download class="import-form__link" v-if="templateUrl">下载模板</a>
......
......@@ -34,7 +34,7 @@ function scoreMethodText(value: string) {
<el-dialog title="同步1+同步线上考试成绩" :close-on-click-modal="false">
<el-form class="sync-form">
<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-select>
<el-button type="primary" :disabled="!form.competition" @click="handleSync">一键同步成绩</el-button>
......
......@@ -88,7 +88,7 @@ function handleResize() {
</p>
</div>
<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-select>
<el-dropdown class="detail-toolbar__dropdown">
......
......@@ -151,17 +151,17 @@ function handleUpdate() {
<el-input v-model="form.org_name" :disabled="isUpdate" />
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -198,10 +198,10 @@ function getModuleStatus(row: any, index: number) {
结束倒计时:<span>{{ countdown }}</span>
</h2>
<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-select>
<el-select v-model="platformKey" size="large" v-if="false">
<el-select filterable v-model="platformKey" size="large" v-if="false">
<el-option
v-for="item in platformKeys"
:key="item.platform_key"
......
......@@ -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-form ref="formRef" :model="form" :rules="rules" label-width="120px">
<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-select>
</el-form-item>
......@@ -119,22 +119,22 @@ function handleUpdate() {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -352,7 +352,7 @@ onMounted(() => {
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="165px">
<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-select>
</el-form-item>
......@@ -360,17 +360,17 @@ onMounted(() => {
<el-input v-model="form.name" :disabled="isUpdate" />
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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
v-for="item in technicalSupportUnitList"
:key="item.id"
......@@ -385,7 +385,7 @@ onMounted(() => {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -390,7 +390,7 @@ onMounted(() => {
<el-input v-model="form.name" />
</el-form-item>
<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-select>
</el-form-item>
......@@ -438,7 +438,7 @@ onMounted(() => {
</el-checkbox>
</el-form-item>
<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-select>
</el-form-item>
......@@ -463,12 +463,12 @@ onMounted(() => {
<div style="flex: 1; margin-left: 10px">
<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-select>
</el-form-item>
<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
v-for="item in technicalSupportUnitList"
:key="item.id"
......@@ -483,7 +483,7 @@ onMounted(() => {
</el-radio-group>
</el-form-item> -->
<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-select> -->
<el-radio-group v-model="form.client_id">
......
......@@ -72,7 +72,7 @@ function handleSubmit() {
<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="角色" 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-select>
</el-form-item>
......@@ -82,7 +82,7 @@ function handleSubmit() {
</el-select>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -186,7 +186,7 @@ function handleRatioChange(row: any, index: number) {
</el-table-column>
<el-table-column prop="date" label="评分方法" align="center" width="124">
<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-select>
</template>
......
......@@ -91,7 +91,7 @@ function handleUpdate(params: any) {
</el-select>
</el-form-item>
<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-select>
<!-- <el-input v-model="form.sort"></el-input> -->
......
......@@ -70,7 +70,7 @@ function handleSubmit() {
<el-input v-model="form.times"></el-input>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -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__field">
<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-select>
</div>
......@@ -278,7 +278,7 @@ function disabledMinSubmitDate(time: Date) {
<el-table v-else :data="form.config.rules">
<el-table-column prop="name" width="170">
<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-select>
</template>
......
......@@ -169,7 +169,7 @@ async function handleSubmit() {
<el-input v-model="form.experiment_name" />
</el-form-item>
<!-- <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-select>
</el-form-item> -->
......
......@@ -270,7 +270,7 @@ const handleSelectAll = () => {
<el-tab-pane label="模板与连接" :name="0">
<el-form-item label="旅程模板" label-width="82" prop="itinerary_id">
<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-select>
</template>
......@@ -281,7 +281,7 @@ const handleSelectAll = () => {
</template>
</el-form-item>
<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
v-for="item in connectionList"
:label="item.name"
......@@ -297,7 +297,7 @@ const handleSelectAll = () => {
<el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio>
</el-radio-group>
<el-select
<el-select filterable
v-model="form.user_attr_config.items"
multiple
style="margin-left: 40px"
......@@ -310,7 +310,7 @@ const handleSelectAll = () => {
<el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio>
</el-radio-group>
<el-select
<el-select filterable
v-model="form.event_config.items"
multiple
style="margin-left: 40px"
......@@ -327,7 +327,7 @@ const handleSelectAll = () => {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -340,7 +340,7 @@ const handleSelectAll = () => {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -353,7 +353,7 @@ const handleSelectAll = () => {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -366,7 +366,7 @@ const handleSelectAll = () => {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -395,22 +395,22 @@ const handleSelectAll = () => {
<template v-if="form.is_use_common === 1">
<el-divider />
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -140,7 +140,7 @@ function handleSubmit() {
<el-tab-pane label="模板与连接" :name="0">
<el-form-item label="旅程模板" label-width="82" prop="itinerary_id">
<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-select>
</template>
......@@ -151,7 +151,7 @@ function handleSubmit() {
</template>
</el-form-item>
<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
v-for="item in connectionList"
:label="item.name"
......@@ -168,7 +168,7 @@ function handleSubmit() {
<el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio>
</el-radio-group>
<el-select
<el-select filterable
v-model="form.user_attr_config.items"
multiple
style="margin-left: 40px"
......@@ -182,7 +182,7 @@ function handleSubmit() {
<el-radio :label="true">全部</el-radio>
<el-radio :label="false">部分</el-radio>
</el-radio-group>
<el-select
<el-select filterable
v-model="form.event_config.items"
multiple
style="margin-left: 40px"
......@@ -200,7 +200,7 @@ function handleSubmit() {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -213,7 +213,7 @@ function handleSubmit() {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -226,7 +226,7 @@ function handleSubmit() {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -239,7 +239,7 @@ function handleSubmit() {
</el-radio-group>
</el-form-item>
<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-select>
</el-form-item>
......@@ -254,22 +254,22 @@ function handleSubmit() {
<template v-if="form.is_use_common === 1">
<el-divider />
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -143,7 +143,7 @@ function handleUpdate(params: ExperimentCreateItem) {
</el-select>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -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__field">
<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-select>
</div>
......@@ -323,7 +323,7 @@ onMounted(() => {
<el-table v-else :data="form.exam_rules" row-key="id">
<el-table-column prop="name" width="170">
<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-select>
</template>
......@@ -368,7 +368,7 @@ onMounted(() => {
<div class="rule-card__field">
<span class="rule-card__label">规则名称</span>
<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-select>
</div>
......@@ -407,7 +407,7 @@ onMounted(() => {
<el-table-column prop="name" width="170">
<template #default="{ row }">
<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-select>
</template>
......
......@@ -96,7 +96,7 @@ defineExpose({ formRef })
label="选择事件"
:prop="`questions.${index}.answer.choose`"
: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-select>
</el-form-item>
......
......@@ -60,7 +60,7 @@ defineExpose({ formRef })
label="正确群组规则"
:prop="`questions.${index}.answer.choose`"
: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-select>
<p style="margin-left: 10px">满足该群组的用户数量:{{ getGroupCount(item.answer.choose) }}</p>
......
......@@ -74,7 +74,7 @@ defineExpose({ formRef })
label="参考答案"
:prop="`questions.${index}.answer.choose`"
: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
v-for="materia in filterMateriaList(item.type)"
:key="materia.id"
......@@ -86,7 +86,7 @@ defineExpose({ formRef })
label="评分AI"
:prop="`questions.${index}.answer.ai`"
: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-select>
</el-form-item>
......
......@@ -59,7 +59,7 @@ defineExpose({ formRef })
label="正确标签规则"
:prop="`questions.${index}.answer.choose`"
: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-select>
<p style="margin-left: 10px">满足该标签的用户数量:{{ getTagCount(item.answer.choose) }}</p>
......
......@@ -14,7 +14,7 @@ const exportUrl = computed(() => {
<el-dialog title="批量导出" :close-on-click-modal="false" width="400px">
<el-form label-width="70px">
<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-select>
&nbsp;&nbsp;
......
......@@ -22,7 +22,7 @@ function handleSync() {
<el-dialog title="同步1+X考试成绩" :close-on-click-modal="false" width="440px">
<el-form>
<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-select>
&nbsp;&nbsp;
......
......@@ -33,13 +33,13 @@ function handleChange(id: string, type: number) {
<!-- <router-link to="/admin/contest/discuss" class="link4"></router-link> -->
</div>
<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-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-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-select> -->
</div>
......
......@@ -40,10 +40,10 @@ const learnURL = urls.learn
<a :href="learnURL" target="_blank" class="link4"></a>
</div>
<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-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-select>
</div>
......
......@@ -33,16 +33,16 @@ function handleChange(id: string, type: number) {
<router-link to="/admin/lab/discuss" class="link4"></router-link>
</div>
<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-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-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-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-select>
</div>
......
......@@ -33,7 +33,7 @@ const selectChange = function () {
<h1>2024 年湖北工匠杯成绩查询</h1>
<div style="display: flex; align-items: center; padding-top: 30px; flex-wrap: wrap">
<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-select>
</div>
......
......@@ -160,7 +160,7 @@ useEventListener(window, 'message', async (event) => {
<div class="welcome-box-header">
<div class="welcome-box-header-content">
<h1>{{ competition?.name }}</h1>
<h2>考试时间</h2>
<h2>{{ isFormalMode ? '考试时间' : '综合实训时间' }}</h2>
<div class="line"></div>
<p>{{ competition?.start_time }} ~ {{ competition?.end_time }}</p>
</div>
......
......@@ -279,12 +279,12 @@ function handleGoToFunction(path: string) {
<div class="lab-left-body">
<el-form :model="form" label-suffix=":" hide-required-asterisk>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
......
......@@ -175,7 +175,7 @@ function handleUpdateBindCapture(files) {
<el-row>
<el-col :xs="24" :sm="24" :md="12">
<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-select>
</el-form-item>
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论