18 changed files with 161 additions and 159 deletions
@ -1,8 +0,0 @@ |
|||
export enum ToolbarEnum { |
|||
SELECT_ALL, |
|||
UN_SELECT_ALL, |
|||
EXPAND_ALL, |
|||
UN_EXPAND_ALL, |
|||
CHECK_STRICTLY, |
|||
CHECK_UN_STRICTLY, |
|||
} |
|||
@ -1 +1,4 @@ |
|||
export { default as BasicUpload } from './src/BasicUpload.vue'; |
|||
import { withInstall } from '/@/utils'; |
|||
import basicUpload from './src/BasicUpload.vue'; |
|||
|
|||
export const BasicUpload = withInstall(basicUpload); |
|||
|
|||
@ -1,31 +0,0 @@ |
|||
.file-table { |
|||
width: 100%; |
|||
border-collapse: collapse; |
|||
|
|||
.center { |
|||
text-align: center; |
|||
} |
|||
|
|||
.left { |
|||
text-align: left; |
|||
} |
|||
|
|||
.right { |
|||
text-align: right; |
|||
} |
|||
|
|||
&-th, |
|||
&-td { |
|||
padding: 12px 8px; |
|||
} |
|||
|
|||
thead { |
|||
background-color: @background-color-light; |
|||
} |
|||
|
|||
table, |
|||
td, |
|||
th { |
|||
border: 1px solid @border-color-base; |
|||
} |
|||
} |
|||
@ -1,72 +0,0 @@ |
|||
import { defineComponent, CSSProperties, watch, nextTick } from 'vue'; |
|||
import { fileListProps } from './props'; |
|||
import { isFunction } from '/@/utils/is'; |
|||
import './FileList.less'; |
|||
import { useModalContext } from '/@/components/Modal/src/hooks/useModalContext'; |
|||
|
|||
export default defineComponent({ |
|||
name: 'FileList', |
|||
props: fileListProps, |
|||
setup(props) { |
|||
const modalFn = useModalContext(); |
|||
watch( |
|||
() => props.dataSource, |
|||
() => { |
|||
nextTick(() => { |
|||
modalFn?.redoModalHeight?.(); |
|||
}); |
|||
} |
|||
); |
|||
return () => { |
|||
const { columns, actionColumn, dataSource } = props; |
|||
const columnList = [...columns, actionColumn]; |
|||
return ( |
|||
<table class="file-table"> |
|||
<colgroup> |
|||
{columnList.map((item) => { |
|||
const { width = 0, dataIndex } = item; |
|||
|
|||
const style: CSSProperties = { |
|||
width: `${width}px`, |
|||
minWidth: `${width}px`, |
|||
}; |
|||
|
|||
return <col style={width ? style : {}} key={dataIndex} />; |
|||
})} |
|||
</colgroup> |
|||
<thead> |
|||
<tr class="file-table-tr"> |
|||
{columnList.map((item) => { |
|||
const { title = '', align = 'center', dataIndex } = item; |
|||
return ( |
|||
<th class={['file-table-th', align]} key={dataIndex}> |
|||
{title} |
|||
</th> |
|||
); |
|||
})} |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
{dataSource.map((record = {}, index) => { |
|||
return ( |
|||
<tr class="file-table-tr" key={`${index + record.name || ''}`}> |
|||
{columnList.map((item) => { |
|||
const { dataIndex = '', customRender, align = 'center' } = item; |
|||
const render = customRender && isFunction(customRender); |
|||
return ( |
|||
<td class={['file-table-td', align]} key={dataIndex}> |
|||
{render |
|||
? customRender?.({ text: record[dataIndex], record }) |
|||
: record[dataIndex]} |
|||
</td> |
|||
); |
|||
})} |
|||
</tr> |
|||
); |
|||
})} |
|||
</tbody> |
|||
</table> |
|||
); |
|||
}; |
|||
}, |
|||
}); |
|||
@ -0,0 +1,104 @@ |
|||
<script lang="tsx"> |
|||
import { defineComponent, CSSProperties, watch, nextTick } from 'vue'; |
|||
import { fileListProps } from './props'; |
|||
import { isFunction } from '/@/utils/is'; |
|||
import { useModalContext } from '/@/components/Modal/src/hooks/useModalContext'; |
|||
|
|||
export default defineComponent({ |
|||
name: 'FileList', |
|||
props: fileListProps, |
|||
setup(props) { |
|||
const modalFn = useModalContext(); |
|||
watch( |
|||
() => props.dataSource, |
|||
() => { |
|||
nextTick(() => { |
|||
modalFn?.redoModalHeight?.(); |
|||
}); |
|||
} |
|||
); |
|||
return () => { |
|||
const { columns, actionColumn, dataSource } = props; |
|||
const columnList = [...columns, actionColumn]; |
|||
return ( |
|||
<table class="file-table"> |
|||
<colgroup> |
|||
{columnList.map((item) => { |
|||
const { width = 0, dataIndex } = item; |
|||
const style: CSSProperties = { |
|||
width: `${width}px`, |
|||
minWidth: `${width}px`, |
|||
}; |
|||
return <col style={width ? style : {}} key={dataIndex} />; |
|||
})} |
|||
</colgroup> |
|||
<thead> |
|||
<tr class="file-table-tr"> |
|||
{columnList.map((item) => { |
|||
const { title = '', align = 'center', dataIndex } = item; |
|||
return ( |
|||
<th class={['file-table-th', align]} key={dataIndex}> |
|||
{title} |
|||
</th> |
|||
); |
|||
})} |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
{dataSource.map((record = {}, index) => { |
|||
return ( |
|||
<tr class="file-table-tr" key={`${index + record.name || ''}`}> |
|||
{columnList.map((item) => { |
|||
const { dataIndex = '', customRender, align = 'center' } = item; |
|||
const render = customRender && isFunction(customRender); |
|||
return ( |
|||
<td class={['file-table-td', align]} key={dataIndex}> |
|||
{render |
|||
? customRender?.({ text: record[dataIndex], record }) |
|||
: record[dataIndex]} |
|||
</td> |
|||
); |
|||
})} |
|||
</tr> |
|||
); |
|||
})} |
|||
</tbody> |
|||
</table> |
|||
); |
|||
}; |
|||
}, |
|||
}); |
|||
</script> |
|||
<style lang="less"> |
|||
.file-table { |
|||
width: 100%; |
|||
border-collapse: collapse; |
|||
|
|||
.center { |
|||
text-align: center; |
|||
} |
|||
|
|||
.left { |
|||
text-align: left; |
|||
} |
|||
|
|||
.right { |
|||
text-align: right; |
|||
} |
|||
|
|||
&-th, |
|||
&-td { |
|||
padding: 12px 8px; |
|||
} |
|||
|
|||
thead { |
|||
background-color: @background-color-light; |
|||
} |
|||
|
|||
table, |
|||
td, |
|||
th { |
|||
border: 1px solid @border-color-base; |
|||
} |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue