| | |
| | | .body { |
| | | overflow-x: hidden; |
| | | } |
| | | |
| | | .handleBtn{ |
| | | border: none; |
| | | padding: 0; |
| | | color: #409EFF; |
| | | background: transparent; |
| | | } |
| | | |
| | | .handleBtn:hover{ |
| | | background: transparent; |
| | | } |
| | | |
| | | .handleBtn.is-disabled{ |
| | | color: #C0C4CC; |
| | | } |
| | | |
| | | </style> |
| | | <style> |
| | | /* .value-table .highlight-warning-row-border td { |
| | |
| | | .value-table .el-upload-dragger { |
| | | width: 100%; |
| | | } |
| | | |
| | | .handleBtn.is-disabled .el-upload:focus{ |
| | | color: #C0C4CC !important; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | |
| | | @row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" |
| | | :summary-method="getSummaries" :row-class-name="tableRowClassName" |
| | | :row-key="record=>record.id" :current-row-key="data.currentId" |
| | | highlight-current-row> |
| | | :highlight-current-row="data.highlight===undefined||data.highlight" |
| | | :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'"> |
| | |
| | | <template slot-scope="scope"> |
| | | <el-button v-for="(a, ai) in data.do" :key="ai" :type="a.type" |
| | | :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" |
| | | @click="main(scope.row, a)">{{a.font}}</el-button> |
| | | @click="main(scope.row, a)" class="handleBtn"> |
| | | <span v-if="a.type!='upload'">{{a.font}}</span> |
| | | <el-upload |
| | | :action="javaApi+a.uploadConfig.url+'?id='+scope.row.id" |
| | | v-else |
| | | :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" |
| | | :on-success="handleSuccessUp" |
| | | :show-file-list="false" |
| | | :headers="token" |
| | | name="file" |
| | | :accept='a.uploadConfig.accept' |
| | | :on-error="onError" |
| | | ref='upload' |
| | | style="background: transparent;"> |
| | | <span>{{a.font}}</span> |
| | | </el-upload> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | uploadDia: false, |
| | | token: null, |
| | | fileList: [], |
| | | init: true |
| | | init: true, |
| | | spanList:[ |
| | | // { |
| | | // arr:[], |
| | | // position:0 |
| | | // } |
| | | ], |
| | | specialSpanList:[ |
| | | // { |
| | | // arr:[], |
| | | // position: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&&this.data.spanConfig.rows.length>0){ |
| | | let i = null; |
| | | let obj = this.data.spanConfig.rows.find((item,index)=>{ |
| | | i = index; |
| | | return item.index==columnIndex |
| | | }) |
| | | if(obj){ |
| | | const _row = this.spanList[i].arr[rowIndex]; |
| | | const _col = _row > 0 ? 1 : 0; |
| | | return { |
| | | rowspan: _row, |
| | | colspan: _col, |
| | | }; |
| | | } |
| | | } |
| | | // 特殊的合并行 |
| | | if(this.data.spanConfig!=undefined&&this.data.spanConfig.special&&this.data.spanConfig.special.main&&this.data.spanConfig.special.rows&&this.data.spanConfig.special.rows.length>0){ |
| | | let i = null; |
| | | let obj = this.data.spanConfig.special.rows.find((item,index)=>{ |
| | | i = index; |
| | | return item.index==columnIndex |
| | | }) |
| | | if(obj){ |
| | | const _row = this.specialSpanList[i].arr[rowIndex]; |
| | | const _col = _row > 0 ? 1 : 0; |
| | | return { |
| | | rowspan: _row, |
| | | colspan: _col, |
| | | }; |
| | | } |
| | | } |
| | | }, |
| | | selectChange(val) { |
| | | if (this.data.select) { |
| | | this.multipleSelection = val; |
| | |
| | | }) |
| | | } |
| | | } |
| | | // 一般的合并行 |
| | | if(this.data.spanConfig!=undefined&&this.data.spanConfig.rows&&this.data.spanConfig.rows.length>0){ |
| | | this.spanList = []; |
| | | this.data.spanConfig.rows.forEach((item,index)=>{ |
| | | this.spanList.push({ |
| | | arr:[], |
| | | position:0 |
| | | }) |
| | | this.rowspan(this.spanList[index].arr, this.spanList[index].position, item.name); |
| | | }) |
| | | } |
| | | // 特殊的合并行 |
| | | if(this.data.spanConfig!=undefined&&this.data.spanConfig.special&&this.data.spanConfig.special.main&&this.data.spanConfig.special.rows&&this.data.spanConfig.special.rows.length>0){ |
| | | this.specialSpanList = [] |
| | | this.data.spanConfig.special.rows.forEach((item,index)=>{ |
| | | this.specialSpanList.push({ |
| | | arr:[], |
| | | position:0 |
| | | }) |
| | | this.rowspan(this.specialSpanList[index].arr, this.specialSpanList[index].position, this.data.spanConfig.special.main); |
| | | }) |
| | | } |
| | | this.loading = false |
| | | }).catch(e => { |
| | | this.loading = false |
| | |
| | | count += a.font.length |
| | | }) |
| | | return count * 15 + 60 + 'px' |
| | | } |
| | | }, |
| | | handleSuccessUp(response){ |
| | | if(response.code==200){ |
| | | this.$message.success('上传成功') |
| | | this.selectList() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |