下拉列表column-select.vue组件内容:

<template>
<div class="column-select-wrapper">
<div v-show="!selectShow" class="column-text-container">
{{modalLabel}}
</div>
<Select v-show="selectShow" label-in-value :value="initValue" @on-change="valCHange">
<Option v-for="(item, index) in options" :key="index" :value="item[valueKey]">{{item[labelKey]}}</Option>
</Select>
</div>
</template> <script type="text/ecmascript-6">
/**
* 表行select组件
*/
export default {
name: 'column-select',
data() {
return {
}
},
props: {
initValue: {
type: [String, Number],
default: ''
},
options: {
type: Array,
required: true
},
//0显示状态 1编辑状态
status: {
type: Number,
default: 1
},
valueKey: {
type: String,
default: 'value'
},
labelKey: {
type: String,
default: 'label'
}
},
computed: {
selectShow() {
return this.status === 1;
},
modelLabel() {
let node = this.options.find((item) => {
return item[this.valueKey] === this.initValue;
});
if(node) {
return node[this.labelKey];
} else {
return '';
}
}
},
methods: {
valChange(selectOption) {
if(selectOption) {
this.$emit('update', selectOption.value);
}
}
}
}
<script> <style scoped lang="less">
.column-select-wrapper {
.column-text-container {
height: .36rem;
line-height: .36rem;
width: 100%;
}
/deep/ .ivu-select {
position: static;
}
}
</script>

调用column-select.vue文件的list.config.js文件内容(表格列表文件):

import columnSelect from './column-select';

export default (ctx) => {
return {
title: '序号',
align: 'center',
key: 'number'
},{
title: '列表',
align: 'center',
render(h, { row }) {
return h(columnSelect, {
props: {
initValue: row.teamCode,
status: row.status,
options: ctx.list,
labelKey: 'teamName',
valueKey: 'teamCode'
},
on: {
update(teamCode) {
ctx.updateRow(row, 'teamCode', teamCOde);
}
}
});
}
}
]
};

调用list.config.js文件的表格显示文件index.vue:

<template>
<div class="list-container">
<Table :columns="column" :data="listData" stripe />
</div>
</template> <script>
import column from './list.config.js';
export default {
data() {
return {
teamTypeList: [{
teamCode: "1",
teamName: "aaa"
},{
teamCode: "2",
teamName: "bbb"
},{
teamCode: "3",
teamName: "ccc"
},{
teamCode: "4",
teamName: "ddd"
}],
listData: [{
teamCode: '12',
teamName: 'qqq'
}]
}
},
methods: {
//更新该行数据字段
updateRow(row, key, value) {
this.listData[row._index][key] = value;
}
}
}
</script>

Vue 表格里的下拉列表的更多相关文章

  1. vue element-ui表格里时间戳转换成时间显示

    工作中遇到后台给的表格数据里时间是一个13位的时间戳,需要转换成时间显示在表格里, 可以用element-ui表格自带的:formatter函数,来格式化表格内容: // 时间戳转换成时间 // 使用 ...

  2. 脚手架搭建的vue项目里引入jquery和bootstrap

    引入jquery: 1.在cmd输入:npm install jquery,回车,等待.. 2.在webpack.base.conf.js里进行如下操作: 3.在webpack.prod.conf.j ...

  3. 如何让一个json文件显示在表格里

    <body> //首先得把架子搭起来 <table id = "tb" border="1"> <tr></tr> ...

  4. 如何在HTML表格里定位到一行数据

    业务需求: 在这样一个表格里,通过点击"确认"按钮,收集该行数据,向后台发送请求 解决办法 以该button为锚获取父节点,再由父节点获取各个元素的值 获取子元素又有很多办法,包括 ...

  5. 想在已创建的Vue工程里引入vux组件

    <1>. 在项目里安装vux npm install vux --save <2>. 安装vux-loader (这个vux文档似乎没介绍,当初没安装结果报了一堆错误) npm ...

  6. vue render里面的nativeOn

    vue render里面的nativeOn的解释官方的解释是:// 仅对于组件,用于监听原生事件,而不是组件内部使用 `vm.$emit` 触发的事件. 官方的解释比较抽象 个人理解: 父组件要在子组 ...

  7. 如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件

    copy内容的网址: https://segmentfault.com/a/1190000007020623 使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要 ...

  8. Excel2010表格里设置每页打印时都有表头

    在打印Excel表格时常常会出现如果存在多页打印时,往往从第二页开始就会出现没有表头的情况,导致到后面都不清楚对应的是哪个数据,查看时也很麻烦,下面就将为大家介绍如何在Excel表格里设置每页打印时都 ...

  9. webpack单独构建scss文件与.vue组件里构建scss的一个坑

    在入口main.js里构建scss是通过引入模块的方式 import './assets/_reset.scss'; import './assets/_flex.scss'; import './a ...

随机推荐

  1. 代码中设置color的selector

    //应该用getColorStateList这种方式 xml中设置时直接color引用就可以了 textView.setTextColor(getResources().getColorStateLi ...

  2. linux中的baff/cache占用大量内存,如何清理?

    执行命令echo 3 > /proc/sys/vm/drop_caches,即可清空buff/cache 参考http://blog.csdn.net/kevins_lee/article/de ...

  3. linux文件查找find命令

    linux文件查找find命令 1.文件查找 基本介绍 在文件系统上查找符合条件的文件 linux上常见的文件查找工具:find命令 查找分类 实时查找 精确查找 基本语法 find  [option ...

  4. Windows Server 2012配置iis遇到的问题

    发布网站访问时报500 - 内部服务器错误,经排查是Windows Server 2012上的iis配置有问题,有些需要的功能没有配置. 在重新配置iis时总是安装失败,提示存储空间不足. 在网上查找 ...

  5. Jquery图集

  6. APNs

    生成推送证书: 1. 登陆开发者中心:https://developer.apple.com2. 点开 certificates.identifiers 和 proversionprofiles 里面 ...

  7. 渗透测试学习 三、Linux基础

    Linux发行版本  内核+应用程序  打包在一起 一.优点: 完全免费 完全兼容POSIX 1.0标准 多用户,多任务 良好的界面 可靠安全稳定的性能 支持多种平台 丰富的网络功能 安全性更好(针对 ...

  8. 跨域访问技术CORS(Cross-Origin Resource Sharing)简介

    为什么要用CORS? CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttp ...

  9. VS2017 C/C++输入密码显示*星号

    VS2017  C/C++输入密码显示*星号 _getch()函数使用时遇到的坑 参考: https://blog.csdn.net/guin_guo/article/details/46237905 ...

  10. 关于pycharm中导入自己写的模块没有智能提示的解决办法

    在pycharm界面中右击py文件所在的文件夹,选择Make Directory as文件,选择其中一个即可