• el-select 搜索无选项时 请求接口添加输入的值


    el-select 搜索无选项时 请求接口添加输入的值

    实现思路:在搜索方法中把输入的值储存起来,然后通过搜索为空的插槽显示需要添加的值,点击添加的时候请求添加选项接口

    如果数据量少的话可以直接本地搜索,在为空的情况下添加所需的值,然后在添加成功后重新请求一次全部值

    1. <script setup lang="ts">
    2. import { reactive, onMounted } from 'vue';
    3. const state = reactive({
    4. // 品牌的数据结构
    5. brand: {
    6. id: undefined,
    7. displayName: '',
    8. },
    9. // 全部的选项
    10. tableData: [] as any,
    11. // 存放输入的值
    12. searchValue: '',
    13. });
    14. onMounted(() => {
    15. // 初始请求一次全部选项
    16. handleQuery('');
    17. });
    18. // 选择以后清空选择框的输入值
    19. const tagHandler = () => {
    20. state.searchValue = '';
    21. };
    22. // 输入值开始搜索
    23. const handleQuery = async (e: any) => {
    24. // 把输入的值存起来,页面显示需要用
    25. state.searchValue = e;
    26. let res = await getAPI(ProductExtApi);
    27. state.tableData = res.data.result?.items ?? [];
    28. };
    29. // 添加品牌
    30. const addBrand = async () => {
    31. // 请求添加接口
    32. let res = await getAPI(BrandApi)({
    33. displayName: state.searchValue,
    34. });
    35. // 接口返回ID 赋值到我们自定义的数据上面
    36. state.brand = {
    37. id: res.data.result ?? 0,
    38. displayName: state.searchValue,
    39. };
    40. // 添加完执行一次搜索
    41. if (res.data.code == 200) handleQuery(state.searchValue);
    42. };
    43. // 组件初始化的时候判断选项里有没这个值,没有的话手动push进去
    44. const init = (brand: any) => {
    45. if (brand) {
    46. if (!state.tableData.find((el: any) => el.id == brand.id)) {
    47. state.tableData.push(brand);
    48. }
    49. state.brand = brand;
    50. }
    51. };
    52. script>
    53. <style lang="scss" scoped>
    54. .add-item {
    55. padding: 10px;
    56. font-size: 14px;
    57. .add-item-value {
    58. cursor: pointer;
    59. }
    60. i {
    61. vertical-align: text-top;
    62. margin-right: 5px;
    63. }
    64. .searchValue {
    65. color: var(--el-color-primary);
    66. margin-left: 5px;
    67. }
    68. }style>

  • 相关阅读:
    可能就蛮好了呢,哈哈哈哈
    密集计算场景下的 JNI 实战
    ubuntu如何开启22端口支持ssh访问
    Ajax(一)
    决策树(中):数据挖掘十大算法之一
    注解详解系列 - @EnableAspectJAutoProxy:启用AspectJ自动代理
    Less常用内置函数
    文档:htm格式转txt
    生成验证码易语言代码
    网易云信4K 8K RTC助力远程医疗的技术实践
  • 原文地址:https://blog.csdn.net/weixin_46194350/article/details/134220466