12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <template>
- <div>
- <el-table ref="table" :row-class-name="tableClassName" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" :height="height" @row-click="rowClick" style="width:100%;min-height:300px" border>
- <el-table-column v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width === 0 ? 150 : col.width" :fixed="fixedName ? fixedName.indexOf(col.columnname)!= -1?'right':false : ''">
- <template slot-scope="scope">
- <!-- 自定义表格显示内容 -->
- <slot v-if="custom" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>
- <!-- 否则就是默认 -->
- <span v-else>{{scope.row[col.columnname]}}</span>
- <!-- 操作结构内容 -->
- <slot v-if="col.columnname === 'operation'" name="opreation" :data="scope.row"></slot>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </template>
- <script>
- import {mapGetters} from "vuex"
- export default {
- /*
- layout:表结构数据;
- data:表渲染数据;
- custom:是否启用自定义结构;
- opwidth:操作列宽度
- */
- props:['layout','data','custom','height','fixedName'],
- data () {
- return {
- list:[],
- }
- },
- computed:{
- ...mapGetters({
- loading:'loading'
- })
- },
- methods:{
- rowClick (row) {
- this.$emit('rowClick',row)
- },
- tableClassName ({row,rowIndex}) {
- row.index = rowIndex
- }
- },
- mounted () {
- }
- }
- </script>
- <style>
- </style>
|