From 0f3c4b558028224f83e814bcfdbeeb7b55034b3a Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 25 Oct 2022 16:03:24 +0800 Subject: [PATCH 1/8] =?UTF-8?q?perf(=E8=A7=86=E5=9B=BE-=E5=9C=B0=E5=9B=BE)?= =?UTF-8?q?:=20=E5=88=86=E7=A6=BB=E6=B8=90=E5=8F=98=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/GradientColorSelector/base.js | 71 +++++++++++++- .../GradientColorSelector/index.vue | 97 +++++++++++++------ frontend/src/lang/en.js | 3 + frontend/src/lang/tw.js | 3 + frontend/src/lang/zh.js | 3 + 5 files changed, 149 insertions(+), 28 deletions(-) diff --git a/frontend/src/components/GradientColorSelector/base.js b/frontend/src/components/GradientColorSelector/base.js index 557047a9a5..bf88a65f75 100644 --- a/frontend/src/components/GradientColorSelector/base.js +++ b/frontend/src/components/GradientColorSelector/base.js @@ -86,7 +86,7 @@ export const colorCases = [ export const gradientColorCases = [ { name: '渐变色1', - value: 'gradient1', + value: 'gradient1_continuous_gradient', colors: [ ['rgba(144,202,249,0.5)', 'rgba(1,87,155,0.9)'], ['rgba(127,222,234,1)', 'rgba(0,77,65,1)'], @@ -101,3 +101,72 @@ export const gradientColorCases = [ export const isGradientValue = value => { return value && gradientColorCases.some(item => item.value === value) } + +export const getColorType = value => { + if (value.endsWith('_split_gradient')) { + return 'split_gradient' + } + const cloneColorCases = JSON.parse(JSON.stringify(colorCases)) + if (cloneColorCases.some(item => item.value === value)) { + return 'simple' + } + return 'gradient' +} + +export const getMapColorCases = () => { + const cloneColorCases = JSON.parse(JSON.stringify(colorCases)) + return cloneColorCases.map(colorItem => { + const curColors = colorItem.colors + const len = curColors.length + const start = curColors[0] + const end = curColors[len - 1] + const itemResult = { + name: colorItem.name, + value: colorItem.value + '_split_gradient', + baseColors: [start, end], + colors: stepsColor(start, end, 9, 1) + } + return itemResult + }) +} + +export function stepsColor(start, end, steps, gamma) { + var i; var j; var ms; var me; var output = []; var so = [] + gamma = gamma || 1 + var normalize = function(channel) { + return Math.pow(channel / 255, gamma) + } + start = parseColor(start).map(normalize) + end = parseColor(end).map(normalize) + for (i = 0; i < steps; i++) { + ms = (steps - 1) === 0 ? 0 : (i / (steps - 1)) + me = 1 - ms + for (j = 0; j < 3; j++) { + so[j] = pad( + Math.round( + Math.pow(start[j] * me + end[j] * ms, 1 / gamma) * 255 + ).toString(16) + ) + } + output.push('#' + so.join('')) + } + function parseColor(hexStr) { + return hexStr.length === 4 + ? hexStr + .substr(1) + .split('') + .map(function(s) { + return 0x11 * parseInt(s, 16) + }) + : [hexStr.substr(1, 2), hexStr.substr(3, 2), hexStr.substr(5, 2)].map( + function(s) { + return parseInt(s, 16) + } + ) + } + function pad(s) { + return s.length === 1 ? '0' + s : s + } + return output +} + diff --git a/frontend/src/components/GradientColorSelector/index.vue b/frontend/src/components/GradientColorSelector/index.vue index 48da711b0d..6acae31b81 100644 --- a/frontend/src/components/GradientColorSelector/index.vue +++ b/frontend/src/components/GradientColorSelector/index.vue @@ -20,7 +20,7 @@ @@ -38,7 +38,7 @@
@@ -47,7 +47,7 @@ @tab-click="handleClick" > - + + @@ -132,7 +139,7 @@ diff --git a/frontend/src/components/canvas/components/Editor/DateFormat.vue b/frontend/src/components/canvas/components/Editor/DateFormat.vue index af04e16a9a..840b8c1154 100644 --- a/frontend/src/components/canvas/components/Editor/DateFormat.vue +++ b/frontend/src/components/canvas/components/Editor/DateFormat.vue @@ -130,7 +130,7 @@ export default { } }, computed: { - curCanvasScaleSelf(){ + curCanvasScaleSelf() { return this.curCanvasScaleMap[this.canvasId] }, ...mapState([ diff --git a/frontend/src/components/canvas/components/Editor/DeEditor.vue b/frontend/src/components/canvas/components/Editor/DeEditor.vue index 04f8c99dec..82c04bbbd2 100644 --- a/frontend/src/components/canvas/components/Editor/DeEditor.vue +++ b/frontend/src/components/canvas/components/Editor/DeEditor.vue @@ -13,8 +13,15 @@ @scroll="canvasScroll" > - - + + - + - + - + [] }, canvasId: { type: String, @@ -890,18 +905,18 @@ export default { moveTabCollisionActive() { return this.tabCollisionActiveId }, - pointShadowShow(){ - return this.canvasId==='canvas-main' - && this.curComponent - && this.curComponent.canvasId !== 'canvas-main' - && this.tabMoveOutComponentId + pointShadowShow() { + return this.canvasId === 'canvas-main' && + this.curComponent && + this.curComponent.canvasId !== 'canvas-main' && + this.tabMoveOutComponentId }, shadowShow() { - return ((this.curComponent - && this.curComponent.auxiliaryMatrix - && this.curComponent.canvasId === this.canvasId - && (this.curComponent.optStatus.dragging || this.curComponent.optStatus.resizing)) - || (this.dragComponentInfo && this.dragComponentInfo.canvasId ===this.canvasId )) && !this.tabMoveInActive + return ((this.curComponent && + this.curComponent.auxiliaryMatrix && + this.curComponent.canvasId === this.canvasId && + (this.curComponent.optStatus.dragging || this.curComponent.optStatus.resizing)) || + (this.dragComponentInfo && this.dragComponentInfo.canvasId === this.canvasId)) && !this.tabMoveInActive }, tabMoveInActive() { return this.tabMoveInActiveId @@ -925,7 +940,9 @@ export default { } }, // 挤占式画布设计 + // eslint-disable-next-line coordinates() { + // eslint-disable-next-line return this.coordinates }, customStyle() { @@ -1482,7 +1499,7 @@ export default { } }, handleDragOver(e) { - console.log('handleDragOver--x='+e.pageX+';y='+e.pageY) + console.log('handleDragOver--x=' + e.pageX + ';y=' + e.pageY) this.dragComponentInfo.shadowStyle.x = e.pageX - 220 this.dragComponentInfo.shadowStyle.y = e.pageY - 90 + this.scrollTop this.dragComponentInfo.style.left = this.dragComponentInfo.shadowStyle.x / this.scalePointWidth @@ -1628,7 +1645,7 @@ export default { let newY = Math.round((item.style.top * this.scalePointHeight) / this.matrixStyle.height) + 1 newX = newX > 0 ? newX : 1 newY = newY > 0 ? newY : 1 - console.log("moveTabCollisionActive="+this.moveTabCollisionActive) + console.log('moveTabCollisionActive=' + this.moveTabCollisionActive) if (this.moveTabCollisionActive) { return } diff --git a/frontend/src/components/canvas/components/Editor/EditBar.vue b/frontend/src/components/canvas/components/Editor/EditBar.vue index d111132bc2..1340650372 100644 --- a/frontend/src/components/canvas/components/Editor/EditBar.vue +++ b/frontend/src/components/canvas/components/Editor/EditBar.vue @@ -319,7 +319,7 @@ export default { miniWidth() { return this.mobileLayoutStatus ? 1 : 4 }, - curCanvasScaleSelf(){ + curCanvasScaleSelf() { return this.curCanvasScaleMap[this.canvasId] }, ...mapState([ diff --git a/frontend/src/components/canvas/components/Editor/PGrid.vue b/frontend/src/components/canvas/components/Editor/PGrid.vue index c2df81e89b..f1fba8b94c 100644 --- a/frontend/src/components/canvas/components/Editor/PGrid.vue +++ b/frontend/src/components/canvas/components/Editor/PGrid.vue @@ -6,8 +6,8 @@ class="outer-class" >
diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue index 8cbdc8b2ba..1cf1a3f83f 100644 --- a/frontend/src/components/canvas/components/Editor/Preview.vue +++ b/frontend/src/components/canvas/components/Editor/Preview.vue @@ -67,16 +67,14 @@ import { uuid } from 'vue-uuid' import { deepCopy, imgUrlTrans } from '@/components/canvas/utils/utils' import eventBus from '@/components/canvas/utils/eventBus' import elementResizeDetectorMaker from 'element-resize-detector' -import UserViewDialog from '@/components/canvas/custom-component/UserViewDialog' import CanvasOptBar from '@/components/canvas/components/Editor/CanvasOptBar' -import UserViewMobileDialog from '@/components/canvas/custom-component/UserViewMobileDialog' import bus from '@/utils/bus' import { buildFilterMap, buildViewKeyMap, formatCondition, valueValid, viewIdMatch } from '@/utils/conditionUtil' import { hasDataPermission } from '@/utils/permission' const erd = elementResizeDetectorMaker() export default { - components: { UserViewMobileDialog, ComponentWrapper, UserViewDialog, CanvasOptBar }, + components: { ComponentWrapper, CanvasOptBar }, model: { prop: 'show', event: 'change' @@ -141,10 +139,10 @@ export default { }, data() { return { - previewDomId: 'preview-'+this.canvasId, - previewRefId: 'preview-ref-'+this.canvasId, - previewTempDomId: 'preview-temp-'+this.canvasId, - previewTempRefId: 'preview-temp-ref-'+this.canvasId, + previewDomId: 'preview-' + this.canvasId, + previewRefId: 'preview-ref-' + this.canvasId, + previewTempDomId: 'preview-temp-' + this.canvasId, + previewTempRefId: 'preview-temp-ref-' + this.canvasId, isShowPreview: false, panelId: '', needToChangeHeight: [ diff --git a/frontend/src/components/canvas/components/Editor/PreviewMobile.vue b/frontend/src/components/canvas/components/Editor/PreviewMobile.vue index 866a97716e..5a5eac8c9d 100644 --- a/frontend/src/components/canvas/components/Editor/PreviewMobile.vue +++ b/frontend/src/components/canvas/components/Editor/PreviewMobile.vue @@ -46,11 +46,10 @@ import { uuid } from 'vue-uuid' import { deepCopy, imgUrlTrans } from '@/components/canvas/utils/utils' import eventBus from '@/components/canvas/utils/eventBus' import elementResizeDetectorMaker from 'element-resize-detector' -import UserViewDialog from '@/components/canvas/custom-component/UserViewDialog' import CanvasOptBar from '@/components/canvas/components/Editor/CanvasOptBar' export default { - components: { ComponentWrapper, UserViewDialog, CanvasOptBar }, + components: { ComponentWrapper, CanvasOptBar }, model: { prop: 'show', event: 'change' diff --git a/frontend/src/components/canvas/components/TextAttr.vue b/frontend/src/components/canvas/components/TextAttr.vue index ab657a25fa..7e3b2e874e 100644 --- a/frontend/src/components/canvas/components/TextAttr.vue +++ b/frontend/src/components/canvas/components/TextAttr.vue @@ -319,7 +319,10 @@ style="width: 20px;float: left;margin-top: 2px;margin-left: 10px;" > - +
@@ -601,7 +604,7 @@ export default { showVertical() { return !['textSelectGridWidget', 'numberSelectGridWidget'].includes(this.curComponent.serviceName) }, - curCanvasScaleSelf(){ + curCanvasScaleSelf() { return this.curCanvasScaleMap[this.canvasId] }, ...mapState([ diff --git a/frontend/src/components/canvas/utils/utils.js b/frontend/src/components/canvas/utils/utils.js index 319232a686..d3ab9c2e14 100644 --- a/frontend/src/components/canvas/utils/utils.js +++ b/frontend/src/components/canvas/utils/utils.js @@ -136,7 +136,6 @@ export function panelDataPrepare(componentData, componentStyle, callback) { // 增加所属画布ID(canvasId)当前所在画布的父ID(canvasPid) 主画布ID为main-canvas, PID = 0 表示当前所属canvas为最顶层 item.canvasId = (item.canvasId || 'canvas-main') item.canvasPid = (item.canvasPid || '0') - }) // 初始化密度为最高密度 componentStyle.aidedDesign.matrixBase = 4 @@ -149,7 +148,7 @@ export function panelDataPrepare(componentData, componentStyle, callback) { export function resetID(data) { if (data) { data.forEach(item => { - item.type !== 'custom' && item.type !== 'de-tabs'&& (item.id = uuid.v1()) + item.type !== 'custom' && item.type !== 'de-tabs' && (item.id = uuid.v1()) }) } return data @@ -229,6 +228,6 @@ export function imgUrlTrans(url) { } } -export function getNowCanvasComponentData(canvasId){ - return store.state.componentData.filter(item => item.canvasId===canvasId) +export function getNowCanvasComponentData(canvasId) { + return store.state.componentData.filter(item => item.canvasId === canvasId) } diff --git a/frontend/src/components/dataease/DeOutWidget.vue b/frontend/src/components/dataease/DeOutWidget.vue index 46aa53326e..d813136234 100644 --- a/frontend/src/components/dataease/DeOutWidget.vue +++ b/frontend/src/components/dataease/DeOutWidget.vue @@ -58,7 +58,6 @@