build: 升级2.1.2

This commit is contained in:
奔跑的面条
2022-12-31 20:55:12 +08:00
11 changed files with 193 additions and 24 deletions
@@ -111,9 +111,13 @@ watch(
}
)
const calcData = (data: any) => {
const calcData = (data: any, type?: string) => {
mergeConfig(props.chartConfig.option)
calcCapsuleLengthAndLabelData()
if (type == 'preview') {
calcCapsuleLengthAndLabelData(data)
} else {
calcCapsuleLengthAndLabelData(state.mergedConfig.dataset)
}
}
const mergeConfig = (data: any) => {
@@ -121,8 +125,8 @@ const mergeConfig = (data: any) => {
}
// 数据解析
const calcCapsuleLengthAndLabelData = () => {
const { source } = state.mergedConfig.dataset
const calcCapsuleLengthAndLabelData = (dataset: any) => {
const { source } = dataset
if (!source.length) return
state.capsuleItemHeight = numberSizeHandle(state.mergedConfig.itemHeight)
@@ -151,7 +155,7 @@ onMounted(() => {
// 预览
useChartDataFetch(props.chartConfig, useChartEditStore, (newData: any) => {
calcData(newData)
calcData(newData, 'preview')
})
</script>
+4 -1
View File
@@ -14,7 +14,8 @@ export enum ChartLayoutStoreEnum {
DETAILS = 'details',
Chart_TYPE = 'chartType',
LAYER_TYPE = 'layerType',
PERCENTAGE = 'percentage'
PERCENTAGE = 'percentage',
RE_POSITION_CANVAS = 'rePositionCanvas'
}
export interface ChartLayoutType {
@@ -30,4 +31,6 @@ export interface ChartLayoutType {
[ChartLayoutStoreEnum.LAYER_TYPE]: LayerModeEnum
// 当前正在加载的数量
[ChartLayoutStoreEnum.PERCENTAGE]: number
// 是否重置当前画布位置
[ChartLayoutStoreEnum.RE_POSITION_CANVAS]: boolean
}
@@ -26,6 +26,8 @@ export const useChartLayoutStore = defineStore({
layerType: LayerModeEnum.THUMBNAIL,
// 当前加载数量
percentage: 0,
// 是否重置当前画布位置
rePositionCanvas: false,
// 防止值不存在
...storageChartLayout
}),
@@ -47,6 +49,9 @@ export const useChartLayoutStore = defineStore({
},
getPercentage(): number {
return this.percentage
},
getRePositionCanvas(): boolean {
return this.rePositionCanvas
}
},
actions: {
@@ -54,7 +59,10 @@ export const useChartLayoutStore = defineStore({
this.$patch(state => {
state[key] = value
})
// 存储本地
setLocalStorage(GO_CHART_LAYOUT_STORE, this.$state)
// 这里需要标记重置画布位置
this.rePositionCanvas = true;
// 重新计算拖拽区域缩放比例
setTimeout(() => {
chartEditStore.computedScale()
@@ -35,8 +35,12 @@ import { ref, reactive, onMounted, toRefs, watch, onUnmounted, computed } from '
import { listen } from 'dom-helpers'
import { useDesignStore } from '@/store/modules/designStore/designStore'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { useChartLayoutStore } from '@/store/modules/chartLayoutStore/chartLayoutStore'
import { ChartLayoutStoreEnum } from '@/store/modules/chartLayoutStore/chartLayoutStore.d'
import throttle from 'lodash/throttle'
const chartEditStore = useChartEditStore()
const chartLayoutStore = useChartLayoutStore()
const designStore = useDesignStore()
const thick = 20
@@ -84,6 +88,7 @@ const themeColor = computed(() => {
return designStore.getAppTheme
})
// 处理鼠标拖动
const handleWheel = (e: any) => {
if (e.ctrlKey || e.metaKey) {
e.preventDefault()
@@ -102,6 +107,7 @@ const handleWheel = (e: any) => {
}
}
// 滚动条处理
const handleScroll = () => {
if (!$app.value) return
const screensRect = $app.value.getBoundingClientRect()
@@ -111,6 +117,7 @@ const handleScroll = () => {
startY.value = (screensRect.top + thick - canvasRect.top) / scale.value
}
// 拖拽处理
const dragCanvas = (e: any) => {
e.preventDefault()
e.stopPropagation()
@@ -148,6 +155,7 @@ const dragCanvas = (e: any) => {
})
}
// 计算画布大小
const canvasBox = () => {
const layoutDom = document.getElementById('go-chart-edit-layout')
if (layoutDom) {
@@ -162,7 +170,7 @@ const canvasBox = () => {
}
}
// 在位置不动的情况下重绘标尺
// 重绘标尺
const reDraw = () => {
sketchRuleReDraw.value = false
setTimeout(() => {
@@ -170,13 +178,6 @@ const reDraw = () => {
}, 10)
}
watch(
() => designStore.getDarkTheme,
() => {
reDraw()
}
)
// 滚动居中
const canvasPosCenter = () => {
const { width: containerWidth, height: containerHeight } = $container.value.getBoundingClientRect()
@@ -186,20 +187,32 @@ const canvasPosCenter = () => {
$app.value.scrollTop = containerHeight / 2 - height / 2
}
// 处理标尺重制大小
// 处理主题变化
watch(
() => designStore.getDarkTheme,
() => {
reDraw()
}
)
// // 处理标尺重制大小
watch(
() => scale.value,
(newValue, oldValue) => {
if (oldValue !== newValue) {
if (oldValue !== newValue && chartLayoutStore.getRePositionCanvas) {
chartLayoutStore.setItemUnHandle(ChartLayoutStoreEnum.RE_POSITION_CANVAS, false)
handleScroll()
chartEditStore.setScale(newValue)
setTimeout(() => {
canvasPosCenter()
}, 500)
reDraw()
}, 400)
} else {
throttle(reDraw, 20)
}
}
)
// 处理鼠标样式
watch(
() => isPressSpace.value,
newValue => {
@@ -93,7 +93,7 @@ watch(
position: absolute;
width: 100%;
height: 100%;
border-radius: 10px;
border-radius: 5px;
overflow: hidden;
}
.select-border {
@@ -107,7 +107,7 @@ watch(
.select-background {
top: 2px;
left: 2px;
opacity: 0.03;
opacity: 0.2;
background-color: v-bind('themeColor');
}
}
@@ -152,7 +152,7 @@ export const mousedownBoxSelect = (e: MouseEvent, item?: CreateComponentType | C
}
}
})
}, 20)
}, 30)
// 鼠标抬起
const mouseup = () => {
@@ -2,7 +2,7 @@
<div
class="chart-item"
v-for="(item, index) in localStorageInfo.componentList"
:class="animationsClass(item.styles.animations)"
:class="[animationsClass(item.styles.animations), !item.isGroup && 'hidden']"
:key="item.id"
:style="{
...getComponentAttrStyle(item.attr, index),
@@ -78,6 +78,8 @@ onMounted(() => {
<style lang="scss" scoped>
.chart-item {
position: absolute;
overflow: hidden;
&.hidden {
overflow: hidden;
}
}
</style>