| | |
| | | |
| | | <template> |
| | | <div class="value-table"> |
| | | <div class="table"> |
| | | <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" tooltip-effect="dark" border |
| | | <div class="table" :style="data.isPage!=undefined&&data.isPage!=true?'height:100%':''"> |
| | | <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" |
| | | tooltip-effect="dark" border |
| | | @selection-change="selectChange" @select="select" v-loading="loading" @sort-change="sortChange" |
| | | @row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" |
| | | :summary-method="getSummaries" :row-class-name="tableRowClassName"> |
| | | :summary-method="getSummaries" :row-class-name="tableRowClassName" |
| | | :row-key="record=>record.id" :current-row-key="data.currentId" |
| | | highlight-current-row |
| | | :span-method="spanMethod"> |
| | | <el-table-column type="selection" width="65" v-if="data.showSelect" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column type="index" align="center" label="序号" width="70" v-if="data.isIndex" :key="Math.random()"> |
| | | <el-table-column type="index" align="center" label="序号" width="65" v-if="data.isIndex" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column :prop="a.label" :label="a.value" :sortable="data.sort==false?false:'custom'" |
| | | v-for="(a, ai) in tableHead" :key="ai" show-overflow-tooltip min-width="160"> |
| | | v-for="(a, ai) in tableHead" :key="ai" show-overflow-tooltip min-width="155"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="showType(a.label, data.tagField) != null"> |
| | | <template v-if="typeof(scope.row[a.label]) == 'object'"> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="page"> |
| | | <div class="page" v-if="data.isPage==undefined||data.isPage"> |
| | | <el-pagination @size-change="sizeChange" @current-change="currentChange" :current-page="page.current" |
| | | :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | :total="total" > |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog title="编辑" :visible.sync="upDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'"> |
| | |
| | | import { |
| | | Page |
| | | } from 'iview'; |
| | | import { data } from 'jquery'; |
| | | export default { |
| | | props: { |
| | | tableRowClassName: { |
| | |
| | | showSelect: false, |
| | | select: true, |
| | | row: 1, |
| | | isPage:true,// |
| | | do: [{ |
| | | font: '删除', |
| | | type: 'text' |
| | | }], |
| | | type: [], |
| | | uploadStr: "" |
| | | uploadStr: "", |
| | | currentId:'',//当前高亮的ID |
| | | }, |
| | | tableHead: [], |
| | | tableData: [], |
| | |
| | | uploadDia: false, |
| | | token: null, |
| | | fileList: [], |
| | | init: true |
| | | init: true, |
| | | testArr: [], |
| | | testPosition: 0, |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | rowspan(spanArr, position, spanName) { |
| | | this.tableData.forEach((item, index) => { |
| | | if (index === 0) { |
| | | spanArr.push(1); |
| | | position = 0; |
| | | } else { |
| | | if ( |
| | | this.tableData[index][spanName] === |
| | | this.tableData[index - 1][spanName] |
| | | ) { |
| | | spanArr[position] += 1; |
| | | spanArr.push(0); |
| | | } else { |
| | | spanArr.push(1); |
| | | position = index; |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | spanMethod({ row, column, rowIndex, columnIndex }){ |
| | | if(this.data.spanConfig!=undefined&&this.data.spanConfig.rows){ |
| | | if (columnIndex === this.data.spanConfig.rows.index) { |
| | | const _row = this.testArr[rowIndex]; |
| | | const _col = _row > 0 ? 1 : 0; |
| | | return { |
| | | rowspan: _row, |
| | | colspan: _col, |
| | | }; |
| | | } |
| | | } |
| | | }, |
| | | selectChange(val) { |
| | | if (this.data.select) { |
| | | this.multipleSelection = val; |
| | | } else { |
| | | this.multipleSelection = val[val.length - 1]; |
| | | } |
| | | if(this.data.selectMethod!=undefined){ |
| | | if(this.$parent.$el.className.indexOf('el-')==0){ |
| | | this.$parent.$parent[this.data.selectMethod](val) |
| | | }else{ |
| | | this.$parent[this.data.selectMethod](val) |
| | | } |
| | | } |
| | | }, |
| | | select(val, row) { |
| | | if (!this.data.select) { |
| | |
| | | }, |
| | | selectList() { |
| | | this.loading = true |
| | | if(this.data.isPage!=undefined&&this.data.isPage!=true){ |
| | | this.page = { |
| | | current: -1, |
| | | size: -1, |
| | | } |
| | | } |
| | | this.$axios.post(this.url, { |
| | | page: this.page, |
| | | entity: this.data.entity |
| | |
| | | }) |
| | | } |
| | | } |
| | | if(this.data.spanConfig!=undefined&&this.data.spanConfig.rows){ |
| | | this.testArr = [] |
| | | this.testPosition = 0 |
| | | this.rowspan(this.testArr, this.testPosition, this.data.spanConfig.rows.name); |
| | | } |
| | | this.loading = false |
| | | }).catch(e => { |
| | | this.loading = false |