|
|
@@ -7,8 +7,19 @@ import {
|
|
|
PropType, computed, defineComponent, ref, onMounted, toRefs, Teleport, cloneVNode
|
|
|
} from 'vue'
|
|
|
|
|
|
+//
|
|
|
+// ['export', { key: 'export', label: '新增' }]
|
|
|
+const opraMap = new Map([
|
|
|
+ ['add', { key: 'add', label: '新增' }],
|
|
|
+ ['reload', { key: 'reload', label: '刷新' }],
|
|
|
+ ['pure', { key: 'pure', label: '新增' }]
|
|
|
+])
|
|
|
+
|
|
|
+Array.from(opraMap, ([key, value]) => ({ ...value }))
|
|
|
+
|
|
|
/**
|
|
|
* @description Table Pro 超级table 将各种业务与操作融合起来
|
|
|
+ *
|
|
|
*/
|
|
|
const TablePro = defineComponent({
|
|
|
props: {
|
|
|
@@ -73,7 +84,6 @@ const TablePro = defineComponent({
|
|
|
loading.value = false
|
|
|
paginationRef.value.total = sum
|
|
|
dataSource.value = data
|
|
|
- console.log('data:', data)
|
|
|
}
|
|
|
|
|
|
const onChangePage = (page: number, pageSize: number) => {
|
|
|
@@ -88,6 +98,7 @@ const TablePro = defineComponent({
|
|
|
service && dispatchRequest()
|
|
|
})
|
|
|
|
|
|
+ // 放大图表
|
|
|
const pure = () => {
|
|
|
pureVisible.value = false
|
|
|
|
|
|
@@ -103,7 +114,10 @@ const TablePro = defineComponent({
|
|
|
|
|
|
const opraMeun = (
|
|
|
<Menu>
|
|
|
- { hiddenMeunKeys.value.includes('add') ? null : <Menu.Item key={0} onClick={() => ctx.emit('add')} > 新增 </Menu.Item> }
|
|
|
+ {/* {
|
|
|
+ Array.from(opraMap, ([key, value]) => ({...value})).map( item => Menu.Item key={1} onClick={() => pure()} > 放大 </Menu.Item> )
|
|
|
+ } */}
|
|
|
+ { hiddenMeunKeys.value.includes('add') ? null : <Menu.Item key={0} onClick={() => ctx.emit('add')} > 新增 </Menu.Item> }
|
|
|
<Menu.Item key={1} onClick={() => pure()} > 放大 </Menu.Item>
|
|
|
</Menu>
|
|
|
)
|
|
|
@@ -153,21 +167,21 @@ const TablePro = defineComponent({
|
|
|
</Col>
|
|
|
<Col span={24} >
|
|
|
|
|
|
- <Teleport disabled={pureVisible.value} to="#teleport-full-container" >
|
|
|
- <Table
|
|
|
- style={{ marginTop: '20px', width: pureVisible.value ? '100%' : '100vw', cursor: pureVisible.value ? 'normal' : 'not-allowed' }}
|
|
|
- columns={columnsPro.value.filter(item => item._active)}
|
|
|
- loading={loading.value}
|
|
|
- pagination={ typeof pagination === 'boolean' ? pagination : { ...paginationRef.value, onChange: onChangePage }}
|
|
|
- dataSource={columnsPro.value.filter(item => item._active).length ? dataSource.value : []}
|
|
|
- v-slots={{
|
|
|
- bodyCell (scope) {
|
|
|
- return ctx.slots.render?.({ column: scope.column, record: scope.record })
|
|
|
- }
|
|
|
- }}
|
|
|
- >
|
|
|
- </Table>
|
|
|
- </Teleport>
|
|
|
+ <Teleport disabled={pureVisible.value} to="#teleport-full-container" >
|
|
|
+ <Table
|
|
|
+ style={{ marginTop: '20px', width: pureVisible.value ? '100%' : '100vw', cursor: pureVisible.value ? 'normal' : 'not-allowed' }}
|
|
|
+ columns={columnsPro.value.filter(item => item._active)}
|
|
|
+ loading={loading.value}
|
|
|
+ pagination={ typeof pagination === 'boolean' ? pagination : { ...paginationRef.value, onChange: onChangePage }}
|
|
|
+ dataSource={columnsPro.value.filter(item => item._active).length ? dataSource.value : []}
|
|
|
+ v-slots={{
|
|
|
+ bodyCell (scope) {
|
|
|
+ return ctx.slots.render?.({ column: scope.column, record: scope.record })
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ </Table>
|
|
|
+ </Teleport>
|
|
|
</Col>
|
|
|
</Row>
|
|
|
|