feat:新增数字滚动
This commit is contained in:
parent
daf5537aea
commit
c03b4c0263
@ -24,7 +24,7 @@
|
|||||||
</CollapseItem>
|
</CollapseItem>
|
||||||
|
|
||||||
<CollapseItem name="动画" :expanded="true">
|
<CollapseItem name="动画" :expanded="true">
|
||||||
<SettingItemBox name="速度">
|
<SettingItemBox name="速度(s)">
|
||||||
<SettingItem>
|
<SettingItem>
|
||||||
<n-input-number
|
<n-input-number
|
||||||
v-model:value="optionData.dur"
|
v-model:value="optionData.dur"
|
||||||
|
@ -1,23 +1,4 @@
|
|||||||
<template>
|
<template>
|
||||||
<CollapseItem name="动画" :expanded="true">
|
|
||||||
<SettingItemBox name="设置">
|
|
||||||
<SettingItem name="速度">
|
|
||||||
<n-input-number
|
|
||||||
v-model:value="optionData.dur"
|
|
||||||
size="small"
|
|
||||||
:step="0.5"
|
|
||||||
:min="0.5"
|
|
||||||
></n-input-number>
|
|
||||||
</SettingItem>
|
|
||||||
<SettingItem>
|
|
||||||
<n-space>
|
|
||||||
<n-text>开启反向</n-text>
|
|
||||||
<n-switch size="small" v-model:value="optionData.reverse" />
|
|
||||||
</n-space>
|
|
||||||
</SettingItem>
|
|
||||||
</SettingItemBox>
|
|
||||||
</CollapseItem>
|
|
||||||
|
|
||||||
<CollapseItem name="边框" :expanded="true">
|
<CollapseItem name="边框" :expanded="true">
|
||||||
<SettingItemBox
|
<SettingItemBox
|
||||||
:name="`颜色-${index + 1}`"
|
:name="`颜色-${index + 1}`"
|
||||||
@ -41,7 +22,24 @@
|
|||||||
</SettingItem>
|
</SettingItem>
|
||||||
</SettingItemBox>
|
</SettingItemBox>
|
||||||
</CollapseItem>
|
</CollapseItem>
|
||||||
|
<CollapseItem name="动画" :expanded="true">
|
||||||
|
<SettingItemBox name="设置">
|
||||||
|
<SettingItem name="速度(s)">
|
||||||
|
<n-input-number
|
||||||
|
v-model:value="optionData.dur"
|
||||||
|
size="small"
|
||||||
|
:step="0.5"
|
||||||
|
:min="0.5"
|
||||||
|
></n-input-number>
|
||||||
|
</SettingItem>
|
||||||
|
<SettingItem>
|
||||||
|
<n-space>
|
||||||
|
<n-switch size="small" v-model:value="optionData.reverse" />
|
||||||
|
<n-text>开启反向</n-text>
|
||||||
|
</n-space>
|
||||||
|
</SettingItem>
|
||||||
|
</SettingItemBox>
|
||||||
|
</CollapseItem>
|
||||||
<CollapseItem name="背景" :expanded="true">
|
<CollapseItem name="背景" :expanded="true">
|
||||||
<SettingItemBox name="颜色">
|
<SettingItemBox name="颜色">
|
||||||
<SettingItem>
|
<SettingItem>
|
||||||
@ -60,14 +58,14 @@ import { PropType } from 'vue'
|
|||||||
import {
|
import {
|
||||||
CollapseItem,
|
CollapseItem,
|
||||||
SettingItemBox,
|
SettingItemBox,
|
||||||
SettingItem
|
SettingItem,
|
||||||
} from '@/components/ChartItemSetting/index'
|
} from '@/components/ChartItemSetting/index'
|
||||||
import { option } from './config'
|
import { option } from './config'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
optionData: {
|
optionData: {
|
||||||
type: Object as PropType<typeof option>,
|
type: Object as PropType<typeof option>,
|
||||||
required: true
|
required: true,
|
||||||
}
|
},
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
</CollapseItem>
|
</CollapseItem>
|
||||||
|
|
||||||
<CollapseItem name="动画" :expanded="true">
|
<CollapseItem name="动画" :expanded="true">
|
||||||
<SettingItemBox name="速度">
|
<SettingItemBox name="速度(s)">
|
||||||
<SettingItem>
|
<SettingItem>
|
||||||
<n-input-number
|
<n-input-number
|
||||||
v-model:value="optionData.dur"
|
v-model:value="optionData.dur"
|
||||||
|
23
src/packages/components/Decorates/Mores/Number/config.ts
Normal file
23
src/packages/components/Decorates/Mores/Number/config.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { publicConfig } from '@/packages/public'
|
||||||
|
import { CreateComponentType } from '@/packages/index.d'
|
||||||
|
import { NumberConfig } from './index'
|
||||||
|
import cloneDeep from 'lodash/cloneDeep'
|
||||||
|
|
||||||
|
export const option = {
|
||||||
|
from: 50000,
|
||||||
|
to: 100000,
|
||||||
|
dur: 3,
|
||||||
|
showSeparator: true,
|
||||||
|
numberSize: 24,
|
||||||
|
numberColor: '#4a9ef8',
|
||||||
|
prefixText: '¥',
|
||||||
|
prefixColor: '#4a9ef8',
|
||||||
|
suffixText: '元',
|
||||||
|
suffixColor: '#4a9ef8',
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class Config extends publicConfig implements CreateComponentType {
|
||||||
|
public key = NumberConfig.key
|
||||||
|
public chartConfig = cloneDeep(NumberConfig)
|
||||||
|
public option = option
|
||||||
|
}
|
@ -1,6 +1,96 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<CollapseItem name="内容" :expanded="true">
|
||||||
|
<SettingItemBox name="数值">
|
||||||
|
<SettingItem name="起始值">
|
||||||
|
<n-input-number
|
||||||
|
v-model:value="optionData.from"
|
||||||
|
size="small"
|
||||||
|
:min="0"
|
||||||
|
></n-input-number>
|
||||||
|
</SettingItem>
|
||||||
|
<SettingItem name="终点值">
|
||||||
|
<n-input-number
|
||||||
|
v-model:value="optionData.to"
|
||||||
|
size="small"
|
||||||
|
:min="1"
|
||||||
|
></n-input-number>
|
||||||
|
</SettingItem>
|
||||||
|
<SettingItem name="大小">
|
||||||
|
<n-input-number
|
||||||
|
v-model:value="optionData.numberSize"
|
||||||
|
size="small"
|
||||||
|
:min="1"
|
||||||
|
></n-input-number>
|
||||||
|
</SettingItem>
|
||||||
|
<SettingItem>
|
||||||
|
<n-space>
|
||||||
|
<n-switch v-model:value="optionData.showSeparator" size="small" />
|
||||||
|
<n-text>展示分割符</n-text>
|
||||||
|
</n-space>
|
||||||
|
</SettingItem>
|
||||||
|
</SettingItemBox>
|
||||||
|
|
||||||
|
<SettingItemBox name="数值">
|
||||||
|
<SettingItem name="前缀">
|
||||||
|
<n-input v-model:value="optionData.prefixText" size="small"></n-input>
|
||||||
|
</SettingItem>
|
||||||
|
<SettingItem name="后缀">
|
||||||
|
<n-input v-model:value="optionData.suffixText" size="small"></n-input>
|
||||||
|
</SettingItem>
|
||||||
|
</SettingItemBox>
|
||||||
|
|
||||||
|
<SettingItemBox name="颜色">
|
||||||
|
<SettingItem name="前缀">
|
||||||
|
<n-color-picker
|
||||||
|
size="small"
|
||||||
|
:modes="['hex']"
|
||||||
|
v-model:value="optionData.suffixColor"
|
||||||
|
></n-color-picker>
|
||||||
|
</SettingItem>
|
||||||
|
<SettingItem name="后缀">
|
||||||
|
<n-color-picker
|
||||||
|
size="small"
|
||||||
|
:modes="['hex']"
|
||||||
|
v-model:value="optionData.suffixColor"
|
||||||
|
></n-color-picker>
|
||||||
|
</SettingItem>
|
||||||
|
<SettingItem name="数值">
|
||||||
|
<n-color-picker
|
||||||
|
size="small"
|
||||||
|
:modes="['hex']"
|
||||||
|
v-model:value="optionData.numberColor"
|
||||||
|
></n-color-picker>
|
||||||
|
</SettingItem>
|
||||||
|
</SettingItemBox>
|
||||||
|
</CollapseItem>
|
||||||
|
|
||||||
|
<CollapseItem name="动画" :expanded="true">
|
||||||
|
<SettingItemBox name="速度(s)">
|
||||||
|
<SettingItem>
|
||||||
|
<n-input-number
|
||||||
|
v-model:value="optionData.dur"
|
||||||
|
size="small"
|
||||||
|
:step="0.5"
|
||||||
|
:min="0.5"
|
||||||
|
></n-input-number>
|
||||||
|
</SettingItem>
|
||||||
|
</SettingItemBox>
|
||||||
|
</CollapseItem>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { PropType } from 'vue'
|
||||||
|
import {
|
||||||
|
CollapseItem,
|
||||||
|
SettingItemBox,
|
||||||
|
SettingItem,
|
||||||
|
} from '@/components/ChartItemSetting/index'
|
||||||
|
import { option } from './config'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
optionData: {
|
||||||
|
type: Object as PropType<typeof option>,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import Configuration from './config.vue'
|
|
||||||
import image from '@/assets/images/chart/decorates/number.png'
|
import image from '@/assets/images/chart/decorates/number.png'
|
||||||
import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
|
import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
|
||||||
import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
|
import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
|
||||||
|
@ -1,13 +1,55 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<n-statistic tabular-nums class="go-decorates-number">
|
||||||
天气
|
<template #prefix>
|
||||||
</div>
|
<span :style="`color:${prefixColor};font-size:${numberSize}px`">
|
||||||
|
{{ prefixText }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<span :style="`color:${numberColor};font-size:${numberSize}px`">
|
||||||
|
<n-number-animation
|
||||||
|
:from="from"
|
||||||
|
:to="to"
|
||||||
|
:duration="dur * 1000"
|
||||||
|
:show-separator="showSeparator"
|
||||||
|
></n-number-animation>
|
||||||
|
</span>
|
||||||
|
<template #suffix>
|
||||||
|
<span :style="`color:${suffixColor};font-size:${numberSize}px`">
|
||||||
|
{{ suffixText }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</n-statistic>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { PropType, toRefs } from 'vue'
|
||||||
|
import { CreateComponentType } from '@/packages/index.d'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
chartConfig: {
|
||||||
|
type: Object as PropType<CreateComponentType>,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const { w, h } = toRefs(props.chartConfig.attr)
|
||||||
|
const {
|
||||||
|
dur,
|
||||||
|
showSeparator,
|
||||||
|
prefixText,
|
||||||
|
prefixColor,
|
||||||
|
suffixText,
|
||||||
|
suffixColor,
|
||||||
|
from,
|
||||||
|
to,
|
||||||
|
numberSize,
|
||||||
|
numberColor,
|
||||||
|
} = toRefs(props.chartConfig.option)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@include go('decorates-number') {
|
||||||
</style>
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -50,6 +50,7 @@ import {
|
|||||||
NElement,
|
NElement,
|
||||||
NTag,
|
NTag,
|
||||||
NNotificationProvider,
|
NNotificationProvider,
|
||||||
|
NNumberAnimation,
|
||||||
NProgress,
|
NProgress,
|
||||||
NDatePicker,
|
NDatePicker,
|
||||||
NGrid,
|
NGrid,
|
||||||
@ -85,6 +86,7 @@ import {
|
|||||||
NTimePicker,
|
NTimePicker,
|
||||||
NBackTop,
|
NBackTop,
|
||||||
NSkeleton,
|
NSkeleton,
|
||||||
|
NStatistic,
|
||||||
NCarousel,
|
NCarousel,
|
||||||
NScrollbar,
|
NScrollbar,
|
||||||
NPopselect,
|
NPopselect,
|
||||||
@ -145,6 +147,7 @@ const naive = create({
|
|||||||
NElement,
|
NElement,
|
||||||
NTag,
|
NTag,
|
||||||
NNotificationProvider,
|
NNotificationProvider,
|
||||||
|
NNumberAnimation,
|
||||||
NProgress,
|
NProgress,
|
||||||
NDatePicker,
|
NDatePicker,
|
||||||
NGrid,
|
NGrid,
|
||||||
@ -180,6 +183,7 @@ const naive = create({
|
|||||||
NTimePicker,
|
NTimePicker,
|
||||||
NBackTop,
|
NBackTop,
|
||||||
NSkeleton,
|
NSkeleton,
|
||||||
|
NStatistic,
|
||||||
NCarousel,
|
NCarousel,
|
||||||
NScrollbar,
|
NScrollbar,
|
||||||
NPopselect,
|
NPopselect,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user