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

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

上级 897bf3b5
......@@ -24,7 +24,7 @@ const options = [
</el-radio-group>
</el-form-item>
<el-form-item label="资源审核员:">
<el-select v-model="form.auditor" placeholder="请选择资料审核员">
<el-select filterable v-model="form.auditor" placeholder="请选择资料审核员">
<el-option
v-for="(item, index) in options"
:key="index"
......
......@@ -141,7 +141,7 @@ getProList({ name: '', 'per-page': '100' }).then((res: any) => {
<el-input v-model="form.name" :disabled="props.isEdit === '2' || props.isEdit === '1'"></el-input>
</el-form-item>
<el-form-item label="所属部门/学校" prop="organ_id">
<el-select
<el-select filterable
clearable
v-model="form.organ_id"
:disabled="props.isEdit === '2'"
......@@ -179,7 +179,7 @@ getProList({ name: '', 'per-page': '100' }).then((res: any) => {
</el-select>
</el-form-item>
<el-form-item label="入学年份:" prop="start_year">
<el-select v-model="form.start_year" placeholder="请选择入学年份" :disabled="props.isEdit === '2'">
<el-select filterable v-model="form.start_year" placeholder="请选择入学年份" :disabled="props.isEdit === '2'">
<el-option
v-for="(item, index) in startYearList"
:key="index"
......
......@@ -71,7 +71,7 @@ const handleChangeTerm = (val: any) => {
>
<el-form :model="form" label-position="right" label-width="auto" label-suffix=":">
<el-form-item label="学期名称" prop="name">
<el-select
<el-select filterable
clearable
v-model="form.name"
:disabled="props.title === '查看详情'"
......
......@@ -102,7 +102,7 @@ const handleImport = () => {
<template v-if="isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属部门/学校:</div>
<el-select @change="handleRefresh" clearable v-model="params.organ_id" placeholder="请选择所属部门/学校">
<el-select filterable @change="handleRefresh" clearable v-model="params.organ_id" placeholder="请选择所属部门/学校">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -102,7 +102,7 @@ if (props.isEdit === '2' || props.isEdit === '1') {
<el-input v-model="form.name" :disabled="props.isEdit === '2' || props.isEdit === '1'"></el-input>
</el-form-item>
<el-form-item label="专业类别" prop="category">
<el-select v-model="form.category" placeholder="请选择专业类别" :disabled="props.isEdit === '2'">
<el-select filterable v-model="form.category" placeholder="请选择专业类别" :disabled="props.isEdit === '2'">
<el-option
v-for="(item, index) in categoryList"
:key="index"
......@@ -122,7 +122,7 @@ if (props.isEdit === '2' || props.isEdit === '1') {
</el-radio-group>
</el-form-item>
<el-form-item label="学位门类" prop="degree_category">
<el-select v-model="form.degree_category" :disabled="props.isEdit === '2'" placeholder="请选择学位门类">
<el-select filterable v-model="form.degree_category" :disabled="props.isEdit === '2'" placeholder="请选择学位门类">
<el-option
v-for="(item, index) in degreeCategoryList"
:key="index"
......
......@@ -99,7 +99,7 @@ if (props.isEdit === '2' || props.isEdit === '1') {
<el-input v-model="form.name" :disabled="props.isEdit === '2'"></el-input>
</el-form-item>
<el-form-item label="所属部门/学校" prop="organ_id">
<el-select
<el-select filterable
clearable
v-model="form.organ_id"
:disabled="props.isEdit === '2'"
......
......@@ -90,7 +90,7 @@ const handleChangeStatus = (row: any) => {
<ImportSemester @create="handleFresh" />
<template v-if="isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属部门/学校:</div>
<el-select @change="handleFresh" clearable v-model="params.organ_id" placeholder="请选择所属部门/学校">
<el-select filterable @change="handleFresh" clearable v-model="params.organ_id" placeholder="请选择所属部门/学校">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -117,7 +117,7 @@ if (props.isEdit === '2' || props.isEdit === '1') {
<el-dialog :model-value="isShowStaffDialog" draggable :title="props.title" :before-close="handleCancel" width="30%">
<el-form :model="form" label-position="right" label-width="auto" :rules="rules" ref="ruleFormRef" label-suffix=":">
<el-form-item label="所属部门/学校" prop="organ_id">
<el-select
<el-select filterable
clearable
v-model="form.organ_id"
:disabled="props.isEdit === '2' || props.isEdit === '1'"
......
......@@ -124,7 +124,7 @@ const handleChangeStatus = (row: any) => {
<ImportStaff @create="handleFresh" />
<template v-if="isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属部门/学校:</div>
<el-select @change="handleFresh" clearable v-model="params.organ_id" placeholder="请选择所属部门/学校">
<el-select filterable @change="handleFresh" clearable v-model="params.organ_id" placeholder="请选择所属部门/学校">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -82,7 +82,7 @@ const submitForm = async (formEl: FormInstance | undefined) => {
<el-row>
<el-col :span="8">
<el-form-item label="讲师学历" prop="education">
<el-select v-model="ruleForm.education" clearable style="width: 300px" placeholder="请选择讲师学历">
<el-select filterable v-model="ruleForm.education" clearable style="width: 300px" placeholder="请选择讲师学历">
<el-option v-for="(item, index) in levelList" :key="index" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
......
......@@ -115,7 +115,7 @@ onMounted(() => {
<el-input v-model="ruleForm.title" :disabled="isEdit === '1'" />
</el-form-item>
<el-form-item label="讲师学历:" prop="education">
<el-select
<el-select filterable
v-model="ruleForm.education"
clearable
style="width: 250px"
......
......@@ -256,7 +256,7 @@ const handleTextbook = (val: any) => {
<el-input v-model="form.credit" maxlength="3" />
</el-form-item>
<el-form-item label="适用专业" prop="specialty_id">
<el-select
<el-select filterable
v-model="form.specialty_id"
placeholder="请选择适用专业"
style="width: 100%"
......
......@@ -255,7 +255,7 @@ watch(
</el-col>
</el-row>
</div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-select filterable style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select>
</el-form-item>
......@@ -279,7 +279,7 @@ watch(
</div>
<div class="item">
<el-radio label="2">学期有效</el-radio>
<el-select v-model="item.auth_semester_id">
<el-select filterable v-model="item.auth_semester_id">
<el-option v-for="(it, id) in item.semesters" :key="id" :label="it.name" :value="it.id"></el-option>
</el-select>
</div>
......
......@@ -124,7 +124,7 @@ const changeCard = () => {
</template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
<el-select @change="typeFilter" clearable v-model="params.authorized">
<el-select filterable @change="typeFilter" clearable v-model="params.authorized">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -105,7 +105,7 @@ async function handleSetBelong() {
<el-col :span="12">更新时间:{{ props.data.updated_time }}</el-col>
</el-row>
</div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-select filterable style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members" :label="item.name" :value="item.id" :key="item.id" />
</el-select>
</el-form-item>
......
......@@ -79,7 +79,7 @@ async function handleDelete(row: any) {
<AppList v-bind="listOptions" ref="appList">
<template #filter-department="{ params }">
<div class="filter-label">部门:</div>
<el-select clearable v-model="params.authorized" @change="refetch">
<el-select filterable clearable v-model="params.authorized" @change="refetch">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -170,7 +170,7 @@ const handlesetBelong = () => {
</el-col>
</el-row>
</div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-select filterable style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select>
</el-form-item>
......
......@@ -128,7 +128,7 @@ watch(
</template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
<el-select @change="typeFilter" clearable v-model="params.authorized">
<el-select filterable @change="typeFilter" clearable v-model="params.authorized">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -171,7 +171,7 @@ const handlesetBelong = () => {
</el-col>
</el-row>
</div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-select filterable style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select>
</el-form-item>
......
......@@ -128,7 +128,7 @@ watch(
</template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
<el-select @change="typeFilter" clearable v-model="params.authorized">
<el-select filterable @change="typeFilter" clearable v-model="params.authorized">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -165,7 +165,7 @@ const handlesetBelong = () => {
</el-col>
</el-row>
</div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-select filterable style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select>
</el-form-item>
......
......@@ -129,7 +129,7 @@ watch(
</template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
<el-select @change="typeFilter" clearable v-model="params.authorized">
<el-select filterable @change="typeFilter" clearable v-model="params.authorized">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -173,7 +173,7 @@ const handlesetBelong = () => {
</el-col>
</el-row>
</div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-select filterable style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select>
</el-form-item>
......
......@@ -164,7 +164,7 @@ const handleBatchImport = () => {
</template>
<template v-if="tabValue == '3' && isAdmin" #filter-department="{ params }">
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">部门:</div>
<el-select @change="typeFilter" clearable v-model="params.authorized">
<el-select filterable @change="typeFilter" clearable v-model="params.authorized">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
......@@ -82,7 +82,7 @@ onMounted(() => {
>
<el-form :model="form" :rules="rules" ref="ruleFormRef" label-width="120px" label-suffix=":">
<el-form-item label="封面类型" prop="type">
<el-select v-model="form.type">
<el-select filterable v-model="form.type">
<el-option v-for="(item, id) in typeList" :key="id" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
......
......@@ -14,7 +14,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="提供商" prop="provider">
<el-select v-model="formData.provider" placeholder="请选择提供商" @change="handleProviderChange">
<el-select filterable v-model="formData.provider" placeholder="请选择提供商" @change="handleProviderChange">
<el-option
v-for="provider in providerOptions"
:key="provider.value"
......
......@@ -16,7 +16,7 @@
</el-input>
</el-col>
<el-col :span="4">
<el-select v-model="searchForm.provider" placeholder="选择提供商" clearable @change="handleSearch">
<el-select filterable v-model="searchForm.provider" placeholder="选择提供商" clearable @change="handleSearch">
<el-option
v-for="provider in providerOptions"
:key="provider.value"
......@@ -25,7 +25,7 @@
</el-select>
</el-col>
<el-col :span="4">
<el-select v-model="searchForm.is_enabled" placeholder="启用状态" clearable @change="handleSearch">
<el-select filterable v-model="searchForm.is_enabled" placeholder="启用状态" clearable @change="handleSearch">
<el-option label="已启用" value="true" />
<el-option label="已禁用" value="false" />
</el-select>
......
......@@ -16,7 +16,7 @@
</el-input>
</el-col>
<el-col :span="4">
<el-select v-model="searchForm.level" placeholder="敏感级别" clearable @change="handleSearch">
<el-select filterable v-model="searchForm.level" placeholder="敏感级别" clearable @change="handleSearch">
<el-option label="低" value="low" />
<el-option label="中" value="medium" />
<el-option label="高" value="high" />
......@@ -117,7 +117,7 @@
<div class="form-tip">每行输入一个别名,系统会自动识别</div>
</el-form-item>
<el-form-item label="敏感级别" prop="level">
<el-select v-model="formData.level" placeholder="请选择敏感级别">
<el-select filterable v-model="formData.level" placeholder="请选择敏感级别">
<el-option label="低" value="low" />
<el-option label="中" value="medium" />
<el-option label="高" value="high" />
......
......@@ -16,7 +16,7 @@
</el-input>
</el-col>
<el-col :span="4">
<el-select v-model="searchForm.level" placeholder="敏感级别" clearable @change="handleSearch">
<el-select filterable v-model="searchForm.level" placeholder="敏感级别" clearable @change="handleSearch">
<el-option label="低" value="low" />
<el-option label="中" value="medium" />
<el-option label="高" value="high" />
......@@ -106,7 +106,7 @@
<el-input v-model="formData.word" placeholder="请输入敏感词" />
</el-form-item>
<el-form-item label="敏感级别" prop="level">
<el-select v-model="formData.level" placeholder="请选择敏感级别">
<el-select filterable v-model="formData.level" placeholder="请选择敏感级别">
<el-option label="低" value="low" />
<el-option label="中" value="medium" />
<el-option label="高" value="high" />
......
......@@ -211,7 +211,7 @@ const beforeUploadFiles = (file: any) => {
<el-row>
<el-col :span="11">
<el-form-item label="所属机构" prop="organ_id">
<el-select
<el-select filterable
clearable
v-model="form.organ_id"
placeholder="所属机构"
......@@ -226,7 +226,7 @@ const beforeUploadFiles = (file: any) => {
<el-col :span="11">
<el-form-item label="所属学期" prop="semester_id">
<el-select
<el-select filterable
clearable
v-model="form.semester_id"
placeholder="所属学期"
......@@ -242,7 +242,7 @@ const beforeUploadFiles = (file: any) => {
<el-row>
<el-col :span="11">
<el-form-item label="所属班级" prop="class_id">
<el-select
<el-select filterable
clearable
v-model="form.class_id"
placeholder="所属班级"
......@@ -258,7 +258,7 @@ const beforeUploadFiles = (file: any) => {
<el-col :span="11">
<el-form-item label="所属课程" prop="course_id">
<el-select
<el-select filterable
clearable
v-model="form.course_id"
placeholder="所属课程"
......@@ -274,7 +274,7 @@ const beforeUploadFiles = (file: any) => {
<el-row>
<el-col :span="11">
<el-form-item label="所属章节" prop="chapter_id">
<el-select
<el-select filterable
clearable
v-model="form.chapter_id"
placeholder="所属章节"
......@@ -289,7 +289,7 @@ const beforeUploadFiles = (file: any) => {
<el-col :span="11">
<el-form-item label="类型" prop="type">
<el-select clearable v-model="form.type" placeholder="类型" style="width: 100%">
<el-select filterable clearable v-model="form.type" placeholder="类型" style="width: 100%">
<el-option v-for="item in typeList" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
......
......@@ -256,31 +256,31 @@ const handleReply = (row: any) => {
<el-button type="primary" round @click="handleAddPosts" style="margin-bottom: 20px" v-permission="'v1-teaching-discussion-create'">新建帖子</el-button>
<template #filter-department>
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属部门/学校:</div>
<el-select @change="handleChangeOrgan" clearable v-model="organ_id" placeholder="请选择所属部门/学校">
<el-select filterable @change="handleChangeOrgan" clearable v-model="organ_id" placeholder="请选择所属部门/学校">
<el-option v-for="item in departmentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
<template #filter-semester>
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属学期:</div>
<el-select @change="handleChangeSemester" clearable v-model="semester_id" placeholder="请选择所属学期" no-data-text="请先选择所属部门/学校">
<el-select filterable @change="handleChangeSemester" clearable v-model="semester_id" placeholder="请选择所属学期" no-data-text="请先选择所属部门/学校">
<el-option v-for="item in semesterList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
<template #filter-class>
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属班级:</div>
<el-select @change="handleChangeClass" clearable v-model="class_id" placeholder="请选择所属班级" no-data-text="请先选择所属学期">
<el-select filterable @change="handleChangeClass" clearable v-model="class_id" placeholder="请选择所属班级" no-data-text="请先选择所属学期">
<el-option v-for="item in classList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
<template #filter-course>
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属课程:</div>
<el-select @change="handleChangeCourse" clearable v-model="course_id" placeholder="请选择所属课程" no-data-text="请先选择所属班级">
<el-select filterable @change="handleChangeCourse" clearable v-model="course_id" placeholder="请选择所属课程" no-data-text="请先选择所属班级">
<el-option v-for="item in courseList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
<template #filter-chapter>
<div class="name" style="font-size: 14px; color: #606266; padding-right: 12px">所属章节:</div>
<el-select @change="handleRefresh" clearable v-model="chapter_id" placeholder="请选择所属章节" no-data-text="请先选择所属课程">
<el-select filterable @change="handleRefresh" clearable v-model="chapter_id" placeholder="请选择所属章节" no-data-text="请先选择所属课程">
<el-option v-for="item in chapterList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</template>
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论