mirror of
https://github.com/palxiao/poster-design.git
synced 2025-07-15 16:02:19 +08:00
fix: pointImg.ts convert problem
This commit is contained in:
parent
e27f493c43
commit
1adf609b35
34376
package-lock.json
generated
34376
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -17,6 +17,7 @@
|
||||
"@palxp/color-picker": "^1.5.5",
|
||||
"@palxp/image-extraction": "^1.2.4",
|
||||
"@scena/guides": "^0.18.1",
|
||||
"@types/cropperjs": "^1.3.0",
|
||||
"@webtoon/psd": "^0.4.0",
|
||||
"axios": "^0.21.1",
|
||||
"core-js": "^3.6.5",
|
||||
@ -41,11 +42,11 @@
|
||||
"@types/node": "^20.11.24",
|
||||
"@types/throttle-debounce": "^2.1.0",
|
||||
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
||||
"@typescript-eslint/parser": "^7.1.0",
|
||||
"@typescript-eslint/parser": "^7.1.1",
|
||||
"@vitejs/plugin-vue": "^5.0.4",
|
||||
"autoprefixer": "^10.3.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^7.29.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-alloy": "~4.1.0",
|
||||
"eslint-plugin-vue": "^7.12.1",
|
||||
"less": "^4.1.1",
|
||||
|
@ -9,7 +9,7 @@
|
||||
<div></div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
<script lang="ts" setup>
|
||||
import { watch, defineProps } from 'vue'
|
||||
import { useStore } from 'vuex'
|
||||
import Guides, { GuideOptions } from '@scena/guides'
|
||||
@ -30,7 +30,9 @@ type TSameParams = {
|
||||
|
||||
type TGuidesData = Guides & GuideOptions
|
||||
|
||||
const props = defineProps<TProps>()
|
||||
const props = withDefaults(defineProps<TProps>(), {
|
||||
show: false
|
||||
})
|
||||
|
||||
const store = useStore()
|
||||
const container = 'page-design' // page-design out-page
|
||||
|
@ -5,6 +5,7 @@
|
||||
* @LastEditors: ShawnPhang
|
||||
* @LastEditTime: 2021-08-09 11:13:09
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div v-if="dActiveElement.record && dActiveElement.uuid !== '-1'" id="size-control">
|
||||
<!-- 上左 -->
|
||||
@ -99,73 +100,74 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters, mapActions } from 'vuex'
|
||||
// import { mapGetters, mapActions } from 'vuex'
|
||||
|
||||
// 组件大小控制器
|
||||
const NAME = 'size-control'
|
||||
// // 组件大小控制器
|
||||
// const NAME = 'size-control'
|
||||
|
||||
export default {
|
||||
name: NAME,
|
||||
data() {
|
||||
return {
|
||||
dirs: [],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['dActiveElement', 'dWidgets']),
|
||||
left() {
|
||||
return parseInt(this.dActiveElement.left)
|
||||
},
|
||||
top() {
|
||||
return parseInt(this.dActiveElement.top)
|
||||
},
|
||||
width() {
|
||||
return parseInt(this.dActiveElement.record.width)
|
||||
},
|
||||
height() {
|
||||
return parseInt(this.dActiveElement.record.height)
|
||||
},
|
||||
},
|
||||
watch: {},
|
||||
methods: {
|
||||
...mapActions(['dResize', 'initDResize', 'dResize', 'stopDResize']),
|
||||
handlemousedown(e, dirs) {
|
||||
e.stopPropagation()
|
||||
this.dirs = dirs.split('-')
|
||||
this.initDResize({
|
||||
startX: e.pageX,
|
||||
startY: e.pageY,
|
||||
originX: this.dActiveElement.left,
|
||||
originY: this.dActiveElement.top,
|
||||
width: this.width,
|
||||
height: this.height,
|
||||
})
|
||||
// export default {
|
||||
// name: NAME,
|
||||
// data() {
|
||||
// return {
|
||||
// dirs: [],
|
||||
// }
|
||||
// },
|
||||
// computed: {
|
||||
// ...mapGetters(['dActiveElement', 'dWidgets']),
|
||||
// left() {
|
||||
// return parseInt(this.dActiveElement.left)
|
||||
// },
|
||||
// top() {
|
||||
// return parseInt(this.dActiveElement.top)
|
||||
// },
|
||||
// width() {
|
||||
// return parseInt(this.dActiveElement.record.width)
|
||||
// },
|
||||
// height() {
|
||||
// return parseInt(this.dActiveElement.record.height)
|
||||
// },
|
||||
// },
|
||||
// watch: {},
|
||||
// methods: {
|
||||
// ...mapActions(['dResize', 'initDResize', 'dResize', 'stopDResize']),
|
||||
// handlemousedown(e, dirs) {
|
||||
// e.stopPropagation()
|
||||
// this.dirs = dirs.split('-')
|
||||
// this.initDResize({
|
||||
// startX: e.pageX,
|
||||
// startY: e.pageY,
|
||||
// originX: this.dActiveElement.left,
|
||||
// originY: this.dActiveElement.top,
|
||||
// width: this.width,
|
||||
// height: this.height,
|
||||
// })
|
||||
|
||||
document.addEventListener('mousemove', this.handlemousemove, true)
|
||||
document.addEventListener('mouseup', this.handlemouseup, true)
|
||||
},
|
||||
// document.addEventListener('mousemove', this.handlemousemove, true)
|
||||
// document.addEventListener('mouseup', this.handlemouseup, true)
|
||||
// },
|
||||
|
||||
handlemousemove(e) {
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
// handlemousemove(e) {
|
||||
// e.stopPropagation()
|
||||
// e.preventDefault()
|
||||
|
||||
this.dResize({
|
||||
x: e.pageX,
|
||||
y: e.pageY,
|
||||
dirs: this.dirs,
|
||||
})
|
||||
},
|
||||
// this.dResize({
|
||||
// x: e.pageX,
|
||||
// y: e.pageY,
|
||||
// dirs: this.dirs,
|
||||
// })
|
||||
// },
|
||||
|
||||
handlemouseup() {
|
||||
document.removeEventListener('mousemove', this.handlemousemove, true)
|
||||
document.removeEventListener('mouseup', this.handlemouseup, true)
|
||||
this.stopDResize()
|
||||
},
|
||||
},
|
||||
}
|
||||
// handlemouseup() {
|
||||
// document.removeEventListener('mousemove', this.handlemousemove, true)
|
||||
// document.removeEventListener('mouseup', this.handlemouseup, true)
|
||||
// this.stopDResize()
|
||||
// },
|
||||
// },
|
||||
// }
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
/*
|
||||
#size-control {
|
||||
position: absolute;
|
||||
.square {
|
||||
@ -178,4 +180,5 @@ export default {
|
||||
z-index: 999;
|
||||
}
|
||||
}
|
||||
*/
|
||||
</style>
|
||||
|
0
src/components/modules/layout/zoomControl/data.ts
Normal file
0
src/components/modules/layout/zoomControl/data.ts
Normal file
@ -9,7 +9,7 @@ export default class PointImg {
|
||||
private canvas: HTMLCanvasElement | undefined
|
||||
private cvs: CanvasRenderingContext2D | null | undefined
|
||||
|
||||
constructor(img: any) {
|
||||
constructor(img: HTMLImageElement) {
|
||||
if (img.src) {
|
||||
try {
|
||||
this.canvas = document.createElement('canvas')
|
||||
@ -33,7 +33,7 @@ export default class PointImg {
|
||||
*/
|
||||
const color: Record<string, string> = {}
|
||||
try {
|
||||
if (!this.cvs) return
|
||||
if (this.cvs) {
|
||||
const obj = this.cvs.getImageData(x, y, 1, 1)
|
||||
const arr = obj.data.toString().split(',')
|
||||
|
||||
@ -51,6 +51,7 @@ export default class PointImg {
|
||||
|
||||
color['rgba'] = 'rgba(' + arr.join(',') + ',' + last + ')'
|
||||
color['#'] = '#' + first + second + third
|
||||
}
|
||||
} catch (error) {
|
||||
// console.log('此为解析图片点位异常')
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ import Preload from '@/utils/plugins/preload'
|
||||
import FontFaceObserver from 'fontfaceobserver'
|
||||
import { fontWithDraw, font2style } from '@/utils/widgets/loadFontRule'
|
||||
import designBoard from '@/components/modules/layout/designBoard.vue'
|
||||
import zoomControl from '@/components/modules/layout/zoomControl.vue'
|
||||
import zoomControl from '@/components/modules/layout/zoomControl/index.vue'
|
||||
|
||||
export default defineComponent({
|
||||
components: { designBoard, zoomControl },
|
||||
|
@ -59,7 +59,7 @@ import { mapActions, mapGetters } from 'vuex'
|
||||
import RightClickMenu from '@/components/business/right-click-menu/RcMenu.vue'
|
||||
import Moveable from '@/components/business/moveable/Moveable.vue'
|
||||
import designBoard from '@/components/modules/layout/designBoard.vue'
|
||||
import zoomControl from '@/components/modules/layout/zoomControl.vue'
|
||||
import zoomControl from '@/components/modules/layout/zoomControl/index.vue'
|
||||
import lineGuides from '@/components/modules/layout/lineGuides.vue'
|
||||
|
||||
import shortcuts from '@/mixins/shortcuts'
|
||||
|
@ -53,7 +53,7 @@ import wImage from '@/components/modules/widgets/wImage/wImage.vue'
|
||||
import useLoading from '@/common/methods/loading'
|
||||
import uploader from '@/components/common/Uploader/index.vue'
|
||||
import designBoard from '@/components/modules/layout/designBoard.vue'
|
||||
import zoomControl from '@/components/modules/layout/zoomControl.vue'
|
||||
import zoomControl from '@/components/modules/layout/zoomControl/index.vue'
|
||||
import HeaderOptions from './components/UploadTemplate.vue'
|
||||
import ProgressLoading from '@/components/common/ProgressLoading/index.vue'
|
||||
// import MyWorker from '@/utils/plugins/webWorker'
|
||||
|
Loading…
x
Reference in New Issue
Block a user