首页 > 其他分享 >vue select-option组件 普通下拉和远程下拉数据展示及回显

vue select-option组件 普通下拉和远程下拉数据展示及回显

时间:2023-11-03 19:34:27浏览次数:30  
标签:vue option 回显 codeTypeMap item code 格式 data name

前言:后台返回的数据格式有如下两种类型: 1、json格式: codeTypeMap:{     "000":"身份证",     "001":"户口本" }
2、数组格式: codeTypeMapList: [     {code:"000",name:"身份证"},     {code:"000",name:"户口本"} ]   一、普通下拉

1、json格式:
<el-select v-model="form.prpLpayeeInfo.id">
    <el-option
        v-for="key in Object.keys(codeTypeMap)"
        :key="key"
        :label="codeTypeMap[key]"
        :value="key"
    />
</el-select>

2、数组格式:
<el-select v-model="form.prpLpayeeInfo.id">
    <el-option
        v-for="item in codeTypeMapList"
        :key="item.code"
        :label="item.name"
        :value="item.code"
    />
</el-select>
二、远程下拉
1、json格式:
<el-select
    v-model="form.prpLscheduleTask.scheduledComCode"
    filterable
    clearable
    remote
    reserve-keyword
    :remote-method="loadScheduledComCode"
    :loading="selectIsloading"
    placeholder="组号或组名"
>
    <el-option v-for="key in Object.keys(codeTypeMap)" :key="key" :label="codeTypeMap[key]" :value="key">
        {{ key }}-{{ codeTypeMap[key] }}
    </el-option>
</el-select>

loadScheduledComCode(val) {
    if (val == "*") {
        this.comCodeArr = codeTypeMap;
        return true;
    }
    this.selectIsloading = true;
    let data = {};
    Object.keys(codeTypeMap).forEach((item) => {
        if (item.indexOf(val) != -1 || codeTypeMap[item].indexOf(val) != -1) {
            data[item] = codeTypeMap[item];
        }
    });
    this.comCodeArr = data;
    this.selectIsloading = false;
},
2、数组格式:
<el-select
    v-model="form.prpLscheduleTask.scheduledComCode"
    filterable
    clearable
    remote
    reserve-keyword
    :remote-method="loadScheduledComCode"
    :loading="selectIsloading"
    placeholder="组号或组名"
>
    <el-option v-for="item in newList" :key="item.code" :label="item.name" :value="item.code">
        {{ item.code + "-" + item.name }}
    </el-option>
</el-select>
// 组下拉数据
async loadScheduledComCode(query) {
    if (query !== "") {
        this.selectIsloading = true;
        try {
            const { data } = await api.getDcode({
                dwrParam: {
                    cond: {
                        codeType: "GroupTree",
                        type: "inputLoad",
                        extraCond: this.groupTreeExtraCond,
                        language: "C",
                        query: query,
                        riskCode: "PUB"
                    },
                    // 当前登陆人
                    userCodeSession: this.$store.getters.userInfo.userCode,
                    // 当前登陆人所属机构
                    ComCodeSession: this.$store.getters.userInfo.comCode
                }
            });
            // 加工一下后台数据
            const newList = [];
            codeTypeMapList.map((item) => {
                return newList.push({
                    code: item.code,
                    name: item.name
                });
            });
        } catch (err) {
            this.$message.warning(err);
        }
        this.selectIsloading = false;
    }
}

 

标签:vue,option,回显,codeTypeMap,item,code,格式,data,name
From: https://www.cnblogs.com/jervy/p/17808256.html

相关文章

  • Vue源码学习(十四):diff算法patch比对
    好家伙,本篇将会解释要以下效果的实现 1.目标我们要实现以下元素替换的效果gif: 以上例子的代码://创建vnodeletvm1=newVue({data:{name:'张三'}})letrender1=compileToFunction(`<a>{{name}}</a>`)letvnode1=render1.call(vm1)doc......
  • vue 上传照片插件
    Vue是一种流行的JavaScript框架,拥有轻量级、直观且易于学习的特点,并提供丰富的插件集合。其中,上传照片插件是Vue的常用插件之一。上传照片插件能够快速地将照片上传到服务器,支持多图上传、拍照上传和拖拽上传等功能。此外,插件还可以对上传过程进行自定义,如上传时的进度条显示、图......
  • 用vite创建vue3项目
    打算用vite创建vue3项目1.安装npminitvite-app<项目名称>cd<项目名称>npminstallnpmrundev##执行完以上命令,就意味着你的vue3.0项目已经用上了vite了提示  deprecated 改为:npminit@vitejs/app又提示deprecated  改为:npmcreatevite@latest2输......
  • Vue3Router路由传参
    import{useRouter}from'vue-router'//首先在setup中定义constrouter=useRouter()//字符串router.push('home')//对象router.push({path:'home'})//命名的路由router.push({name:'user',params:{userId:'123......
  • vue数据双向绑定的原理是什么?
    Vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。需要Observe的数据对象进行递归遍历,包括子属性对象的属性,都加上setter和getter,这样的话,给这个对象的某个......
  • Vue上传视频组件
    整合上传组件<el-form-itemlabel="上传视频"><el-upload:on-success="handleVodUploadSuccess":on-remove="handleVodRemove":before-remove="beforeVodRemove":on-exceed="h......
  • [vue-router] hash模式与history模式的区别
    单页面应用(SPA)单页面应用程序将所有的活动局限于一个Web页面中,在该Web页面初始化时加载相应的HTML、JavaScript和CSS。一旦页面加载完成,单页面应用不会因为用户的操作而进行页面的重新加载或跳转。取而代之的是利用JavaScript动态的变换HTML的内容,从而实现UI与用户的交互。由......
  • Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8
    本篇作为《Vue+OpenLayers入门教程》和《Vue+OpenLayers实战进阶案例》所有文章的二合一汇总目录,方便查找。本专栏源码是由OpenLayers结合Vue框架编写。本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例,带领大家快速......
  • vue 视频上传组件
    组件:<template><divclass="upload-box"><divclass="avatar-uploader-box"><!--图片预览--><div:key="index"class="video-preview"v-for="(item,index)invideoList"&g......
  • 宝塔 nginx 运行 vue项目
    宝塔安装nginxnginx根目录:/www/server/nginx/html修改nginx配置下滑到70多行,添加server对象内容,内容如下server{listen82;server_nametest2;location/{roothtml/test2;indexindex.htmlindex.htm;......