Vue 表格里的下拉列表
下拉列表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 表格里的下拉列表的更多相关文章
- vue element-ui表格里时间戳转换成时间显示
工作中遇到后台给的表格数据里时间是一个13位的时间戳,需要转换成时间显示在表格里, 可以用element-ui表格自带的:formatter函数,来格式化表格内容: // 时间戳转换成时间 // 使用 ...
- 脚手架搭建的vue项目里引入jquery和bootstrap
引入jquery: 1.在cmd输入:npm install jquery,回车,等待.. 2.在webpack.base.conf.js里进行如下操作: 3.在webpack.prod.conf.j ...
- 如何让一个json文件显示在表格里
<body> //首先得把架子搭起来 <table id = "tb" border="1"> <tr></tr> ...
- 如何在HTML表格里定位到一行数据
业务需求: 在这样一个表格里,通过点击"确认"按钮,收集该行数据,向后台发送请求 解决办法 以该button为锚获取父节点,再由父节点获取各个元素的值 获取子元素又有很多办法,包括 ...
- 想在已创建的Vue工程里引入vux组件
<1>. 在项目里安装vux npm install vux --save <2>. 安装vux-loader (这个vux文档似乎没介绍,当初没安装结果报了一堆错误) npm ...
- vue render里面的nativeOn
vue render里面的nativeOn的解释官方的解释是:// 仅对于组件,用于监听原生事件,而不是组件内部使用 `vm.$emit` 触发的事件. 官方的解释比较抽象 个人理解: 父组件要在子组 ...
- 如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
copy内容的网址: https://segmentfault.com/a/1190000007020623 使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要 ...
- Excel2010表格里设置每页打印时都有表头
在打印Excel表格时常常会出现如果存在多页打印时,往往从第二页开始就会出现没有表头的情况,导致到后面都不清楚对应的是哪个数据,查看时也很麻烦,下面就将为大家介绍如何在Excel表格里设置每页打印时都 ...
- webpack单独构建scss文件与.vue组件里构建scss的一个坑
在入口main.js里构建scss是通过引入模块的方式 import './assets/_reset.scss'; import './assets/_flex.scss'; import './a ...
随机推荐
- 小程序之hover-class
hover-class 属性主要是用来来指定元素的点击态效果.但是在在使用中要注意,大部分组件是不支持该属性的. 目前支持 hover-class 属性的组件有三个:view.button.navig ...
- 浅析URL(接口测试必备知识)
笔者最近在开始接触接口测试的工作,接口测试必须了解http协议,但前提是必须要了解URL URL的定义 url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标 ...
- dee
窗口居中def center(self): screen = QDesktopWidget().screenGeometry() size = self.geometry() self.move((s ...
- PHP之魔术方法
PHP中的魔术方法: PHP的魔术方法主要是在特定的条件下执行相应的魔术方法.这和很多框架中的钩子函数有些类似,不同的是,钩子函数是在生命周期的某个周期内自动执行,而魔术方法是在触发某种条件下自动 ...
- SimpleDateFormat将月/日/年 时分秒转换为年-月-日 时:分:秒
String expirTime = ”12 / 27 / 2018 12: 00: 00 AM”;SimpleDateFormat in = new SimpleDateFormat("M ...
- 搭建开发环境1)安装VMware Tools
1.安装Vmware Tools 安装VMware Tools ,在虚拟机中装Linux 一般都不是默认全屏这个就需要安装VMware Tools的插件或者写个脚本文件每次启动的时候自动调整分辨率的大 ...
- maven 使用axis2 client 需要导入的依赖
<dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2</artif ...
- day1||python
测试题: 0. Python 是什么类型的语言? Python是一种面向对象.解释型.动态类型计算机程序设计语言解释型:程序无需编译成二进制代码,而是在执行时对语句一条一条编译动态类型:在程序执行过程 ...
- python基础——1、python背景及特点——(YZ)
在之前的两种编程语言(C.Java)的学习之后,迎来新的一种编程语言的学习,但毕竟本着学一样一定要认真学的精神(期望是这样)首先,最最最少不了的是了解编程语言的背景.范围.特点.功能,等等.经过阅读资 ...
- jquery案例
调用js成员 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>& ...