| | |
| | | v-for="(custom, idx) in myTable.tools.custom" |
| | | :key="idx" |
| | | site="tools" |
| | | :type="custom.myType" |
| | | :check-permission="custom.checkPermission" |
| | | :name="custom.name" |
| | | @click="custom.click" |
| | |
| | | :sortable="column.sortable" |
| | | :label="column.title" |
| | | :type="column.type" |
| | | :width="column.width" |
| | | :min-width="column.minWidth" |
| | | :min-width="column.width" |
| | | :align="column.align" |
| | | :header-align="column.align" |
| | | > |
| | |
| | | <template v-else> |
| | | <!--点击弹出单元格内容--> |
| | | <el-popover placement="top-start" trigger="click" :content="getPopoverContent(scope.row, column)"> |
| | | <span slot="reference" class="content-text">{{ scope.row[column.field] }}</span> |
| | | <!-- <span slot="reference" class="content-text">{{ scope.row[column.field] }}</span>--> |
| | | <span slot="reference" class="content-text">{{ splitField(scope.row, column.field) }}</span> |
| | | </el-popover> |
| | | </template> |
| | | </template> |
| | |
| | | v-if="myTable.operation.show" |
| | | label="操作" |
| | | align="center" |
| | | :width="myTable.operation.width" |
| | | :min-width="myTable.operation.width" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import myButtonV2 from '@/views/components/myButtonV2' |
| | | import myButton from '@/views/components/myButton' |
| | | import mySwitch from './mySwitch' |
| | | import request from '@/utils/request' |
| | | import * as valid from '@/utils/validate' |
| | | import previewPicture from '@/views/components/previewPicture' |
| | | export default { |
| | | import myButtonV2 from '@/views/components/myButtonV2' |
| | | import myButton from '@/views/components/myButton' |
| | | import mySwitch from './mySwitch' |
| | | import request from '@/utils/request' |
| | | import * as valid from '@/utils/validate' |
| | | import previewPicture from '@/views/components/previewPicture' |
| | | |
| | | export default { |
| | | components: { myButtonV2, myButton, mySwitch, previewPicture }, |
| | | props: { |
| | | table: { |
| | |
| | | return function(row) { |
| | | const arr = [] |
| | | that.myTable.operation.attr.map(item => { |
| | | console.log(item) |
| | | console.log(!(item.hidden && item.hidden(row)) && item.checkPermission) |
| | | if (!(item.hidden && item.hidden(row)) && item.checkPermission) { |
| | | arr.push(item) |
| | | } |
| | |
| | | this.initTable() |
| | | }, |
| | | methods: { |
| | | /** |
| | | * 解决:field中属性套属性的情况。2023-04-25 |
| | | * @param row |
| | | * @param field |
| | | */ |
| | | splitField(row, field){ |
| | | if(field.indexOf('.') > -1){ |
| | | const arr = field.split('.'); |
| | | let fieldStr = ''; |
| | | for(let i=0, len=arr.length; i<len; i++){ |
| | | if(i == len - 1){ |
| | | fieldStr += arr[i]; |
| | | } else { |
| | | fieldStr += arr[i] + '.'; |
| | | } |
| | | } |
| | | return eval('row.' + fieldStr); |
| | | } else { |
| | | return row[field]; |
| | | } |
| | | }, |
| | | |
| | | initTable() { |
| | | if (this.table !== null) { |
| | | Object.assign(this.myTable, this.table) |
| | |
| | | }) |
| | | ) |
| | | this.myTable.loading = false |
| | | // this.$refs[this.myTable.ref].doLayout() |
| | | }).catch(() => { |
| | | this.myTable.loading = false |
| | | }) |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | >>> .el-table__fixed-right { |
| | | height: 100% !important; |
| | | >>> .el-table__header { |
| | | width: 100% !important; |
| | | } |
| | | >>> .el-table__body { |
| | | width: 100% !important; |
| | | } |
| | | |
| | | /*详情表单*/ |
| | |
| | | text-align: center; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .table-tool-bar{ |
| | | margin-bottom: 20px; |
| | | } |
| | | </style> |