diff --git a/src/assets/images/chart/tables/table_scrollboard.png b/src/assets/images/chart/tables/table_scrollboard.png new file mode 100644 index 00000000..355ca73a Binary files /dev/null and b/src/assets/images/chart/tables/table_scrollboard.png differ diff --git a/src/packages/components/Tables/Tables/TableScrollBoard/config.ts b/src/packages/components/Tables/Tables/TableScrollBoard/config.ts index ab9f01b2..b93dfc24 100644 --- a/src/packages/components/Tables/Tables/TableScrollBoard/config.ts +++ b/src/packages/components/Tables/Tables/TableScrollBoard/config.ts @@ -2,28 +2,27 @@ import { publicConfig } from '@/packages/public' import { CreateComponentType } from '@/packages/index.d' import { TableScrollBoardConfig } from './index' import cloneDeep from 'lodash/cloneDeep' -import dataJson from './data.json' +import dataJson from './data' export const option = { header: ['列1', '列2', '列3'], - data: [ - ['行1列1', '行1列2', '行1列3'], - ['行2列1', '行2列2', '行2列3'], - ['行3列1', '行3列2', '行3列3'], - ['行4列1', '行4列2', '行4列3'], - ['行5列1', '行5列2', '行5列3'], - ['行6列1', '行6列2', '行6列3'], - ['行7列1', '行7列2', '行7列3'], - ['行8列1', '行8列2', '行8列3'], - ['行9列1', '行9列2', '行9列3'], - ['行10列1', '行10列2', '行10列3'] - ], + dataset: dataJson, index: true, - columnWidth: [30,100,100], - align: ['center'] + columnWidth: [30, 100, 100], + align: ['center','right','right','right'], + rowNum: 5, + waitTime: 2, + headerHeight: 35, + carousel: 'single', + headerBGC: '#00BAFF', + oddRowBGC: '#003B51', + evenRowBGC: '#0A2732', } -export default class Config extends publicConfig implements CreateComponentType { +export default class Config + extends publicConfig + implements CreateComponentType +{ public key = TableScrollBoardConfig.key public chartConfig = cloneDeep(TableScrollBoardConfig) public option = cloneDeep(option) diff --git a/src/packages/components/Tables/Tables/TableScrollBoard/config.vue b/src/packages/components/Tables/Tables/TableScrollBoard/config.vue index bd7c34c5..85a56595 100644 --- a/src/packages/components/Tables/Tables/TableScrollBoard/config.vue +++ b/src/packages/components/Tables/Tables/TableScrollBoard/config.vue @@ -17,35 +17,67 @@ placeholder="请输入轮播时间" > - - + + + + + + + + + + + + + + + + + - + - + - + @@ -53,7 +85,7 @@ diff --git a/src/packages/components/Tables/Tables/TableScrollBoard/data.json b/src/packages/components/Tables/Tables/TableScrollBoard/data.js similarity index 95% rename from src/packages/components/Tables/Tables/TableScrollBoard/data.json rename to src/packages/components/Tables/Tables/TableScrollBoard/data.js index f9ffeab3..267c2ffc 100644 --- a/src/packages/components/Tables/Tables/TableScrollBoard/data.json +++ b/src/packages/components/Tables/Tables/TableScrollBoard/data.js @@ -1,4 +1,4 @@ -[ +export default [ ['行1列1', '行1列2', '行1列3'], ['行2列1', '行2列2', '行2列3'], ['行3列1', '行3列2', '行3列3'], diff --git a/src/packages/components/Tables/Tables/TableScrollBoard/index.ts b/src/packages/components/Tables/Tables/TableScrollBoard/index.ts index e2070edf..0ceb94bb 100644 --- a/src/packages/components/Tables/Tables/TableScrollBoard/index.ts +++ b/src/packages/components/Tables/Tables/TableScrollBoard/index.ts @@ -1,4 +1,4 @@ -import image from '@/assets/images/chart/tables/tables_list.png' +import image from '@/assets/images/chart/tables/table_scrollboard.png' import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d' import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' diff --git a/src/packages/components/Tables/Tables/TableScrollBoard/index.vue b/src/packages/components/Tables/Tables/TableScrollBoard/index.vue index 93f5e1bb..f029412e 100644 --- a/src/packages/components/Tables/Tables/TableScrollBoard/index.vue +++ b/src/packages/components/Tables/Tables/TableScrollBoard/index.vue @@ -10,7 +10,7 @@
+ :style="`height: ${h - (status.header.length ? status.mergedConfig.headerHeight : 0)}px;`">
${i + 1}` row.unshift(indexTag) return row }) } - data = data.map((ceils, i) => ({ ceils, rowIndex: i })) - const rowLength = data.length + dataset = dataset.map((ceils, i) => ({ ceils, rowIndex: i })) + const rowLength = dataset.length if (rowLength > rowNum && rowLength < 2 * rowNum) { - data = [...data, ...data] + dataset = [...dataset, ...dataset] } - data = data.map((d, i) => ({ ...d, scroll: i })) + dataset = dataset.map((d, i) => ({ ...d, scroll: i })) - status.rowsData = data - status.rows = data + status.rowsData = dataset + status.rows = dataset } const calcWidths = () => { const { mergedConfig, rowsData } = status const { columnWidth, header } = mergedConfig - const usedWidth = columnWidth.reduce((all, w) => all + w, 0) + const usedWidth = columnWidth.reduce((all, ws) => all + ws, 0) let columnNum = 0 if (rowsData[0]) { columnNum = rowsData[0].ceils.length } else if (header.length) { columnNum = header.length } - const avgWidth = (w - usedWidth) / (columnNum - columnWidth.length) + const avgWidth = (w.value - usedWidth) / (columnNum - columnWidth.length) const widths = new Array(columnNum).fill(avgWidth) status.widths = merge(widths, columnWidth) } const calcHeights = (onresize = false) => { const { mergedConfig, header } = status - const { headerHeight, rowNum, data } = mergedConfig - let allHeight = h + const { headerHeight, rowNum, dataset } = mergedConfig + let allHeight = h.value if (header.length) allHeight -= headerHeight const avgHeight = allHeight / rowNum status.avgHeight = avgHeight - if (!onresize) status.heights = new Array(data.length).fill(avgHeight) + if (!onresize) status.heights = new Array(dataset.length).fill(avgHeight) } const calcAligns = () => { @@ -253,13 +244,13 @@ const animation = async (start = false) => { calcHeights() status.needCalc = false } - let { avgHeight, animationIndex, mergedConfig, rowsData, updater } = status const { waitTime, carousel, rowNum } = mergedConfig + const rowLength = rowsData.length if (rowNum >= rowLength) return if (start) { - await new Promise(resolve => setTimeout(resolve, waitTime)) + await new Promise(resolve => setTimeout(resolve, waitTime*1000)) if (updater !== status.updater) return } const animationNum = carousel === 'single' ? 1 : rowNum @@ -274,7 +265,7 @@ const animation = async (start = false) => { const back = animationIndex - rowLength if (back >= 0) animationIndex = back status.animationIndex = animationIndex - status.animationHandler = setTimeout(animation, waitTime - 300) as any + status.animationHandler = setTimeout(animation, waitTime*1000 - 300) as any } const stopAnimation = () => { @@ -303,19 +294,13 @@ watch( } ) -// watch( -// () => rowNum.value, -// () => { -// onRestart() -// } -// ) - // 数据更新 watch( - () => props.chartConfig.option.dataset, + () => props.chartConfig.option, () => { onRestart() - } + }, + {deep:true} ) // 数据更新 (默认更新 dataset,若更新之后有其它操作,可添加回调函数) @@ -348,8 +333,6 @@ onUnmounted(() => { font-size: 15px; .header-item { - .text { - } transition: all 0.3s; } } @@ -361,15 +344,7 @@ onUnmounted(() => { display: flex; font-size: 14px; transition: all 0.3s; - } - - .ceil { - // .text; - } - - .index { - border-radius: 3px; - padding: 0px 10px; + overflow: hidden; } } }