mirror of
https://github.com/palxiao/poster-design.git
synced 2025-07-15 16:02:19 +08:00
rebuilt: store to pinia control store
This commit is contained in:
parent
6196680eec
commit
4b1e9e4108
@ -26,6 +26,8 @@ import { ref, defineComponent, toRefs, reactive, nextTick } from 'vue'
|
|||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import 'cropperjs/dist/cropper.css'
|
import 'cropperjs/dist/cropper.css'
|
||||||
import Cropper from 'cropperjs'
|
import Cropper from 'cropperjs'
|
||||||
|
import { storeToRefs } from 'pinia'
|
||||||
|
import { useControlStore } from '@/pinia'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { ElDialog },
|
components: { ElDialog },
|
||||||
@ -36,6 +38,7 @@ export default defineComponent({
|
|||||||
loading: false,
|
loading: false,
|
||||||
url: '',
|
url: '',
|
||||||
})
|
})
|
||||||
|
const controlStore = useControlStore()
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const imgBox = ref<HTMLImageElement | any>()
|
const imgBox = ref<HTMLImageElement | any>()
|
||||||
let cropData: any = null
|
let cropData: any = null
|
||||||
@ -49,7 +52,8 @@ export default defineComponent({
|
|||||||
item.rawImg = item.rawImg ? item.rawImg : item.imgUrl
|
item.rawImg = item.rawImg ? item.rawImg : item.imgUrl
|
||||||
cropData = data
|
cropData = data
|
||||||
state.url = item.rawImg
|
state.url = item.rawImg
|
||||||
store.commit('setShowMoveable', false)
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
setEdit()
|
setEdit()
|
||||||
@ -86,7 +90,8 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const cancel = () => {
|
const cancel = () => {
|
||||||
store.commit('setShowMoveable', true)
|
// store.commit('setShowMoveable', true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
state.url = ''
|
state.url = ''
|
||||||
cropData = null
|
cropData = null
|
||||||
|
@ -26,6 +26,7 @@ import { ref, reactive, nextTick, toRefs } from 'vue'
|
|||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import 'cropperjs/dist/cropper.css'
|
import 'cropperjs/dist/cropper.css'
|
||||||
import Cropper from 'cropperjs'
|
import Cropper from 'cropperjs'
|
||||||
|
import { useControlStore } from '@/pinia'
|
||||||
|
|
||||||
type TDoneParams = {
|
type TDoneParams = {
|
||||||
newImg: string,
|
newImg: string,
|
||||||
@ -41,6 +42,7 @@ type TOpenItem = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
loading: false,
|
loading: false,
|
||||||
url: '',
|
url: '',
|
||||||
@ -61,7 +63,8 @@ const open = async (item: TOpenItem, data: Cropper.Data) => {
|
|||||||
item.rawImg = item.rawImg ? item.rawImg : item.imgUrl
|
item.rawImg = item.rawImg ? item.rawImg : item.imgUrl
|
||||||
cropData = data
|
cropData = data
|
||||||
state.url = item.rawImg
|
state.url = item.rawImg
|
||||||
store.commit('setShowMoveable', false)
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
setEdit()
|
setEdit()
|
||||||
@ -101,7 +104,8 @@ const ok = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const cancel = () => {
|
const cancel = () => {
|
||||||
store.commit('setShowMoveable', true)
|
// store.commit('setShowMoveable', true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
state.url = ''
|
state.url = ''
|
||||||
cropData = null
|
cropData = null
|
||||||
|
@ -48,6 +48,7 @@ import uploader from '@/components/common/Uploader/index.vue'
|
|||||||
import _dl from '@/common/methods/download'
|
import _dl from '@/common/methods/download'
|
||||||
import ImageExtraction from '../ImageExtraction/index.vue'
|
import ImageExtraction from '../ImageExtraction/index.vue'
|
||||||
import { selectImageFile, uploadCutPhotoToCloud } from './method'
|
import { selectImageFile, uploadCutPhotoToCloud } from './method'
|
||||||
|
import { useControlStore } from '@/pinia'
|
||||||
|
|
||||||
export type TImageCutoutState = {
|
export type TImageCutoutState = {
|
||||||
show: boolean;
|
show: boolean;
|
||||||
@ -62,6 +63,7 @@ export type TImageCutoutState = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
const state = reactive<TImageCutoutState>({
|
const state = reactive<TImageCutoutState>({
|
||||||
show: false,
|
show: false,
|
||||||
rawImage: '',
|
rawImage: '',
|
||||||
@ -87,7 +89,8 @@ const matting = ref<typeof ImageExtraction | null>(null)
|
|||||||
const open = (file: File) => {
|
const open = (file: File) => {
|
||||||
state.loading = false
|
state.loading = false
|
||||||
state.show = true
|
state.show = true
|
||||||
store.commit('setShowMoveable', false)
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
if (file) {
|
if (file) {
|
||||||
handleUploaderLoad(file)
|
handleUploaderLoad(file)
|
||||||
@ -111,7 +114,8 @@ const handleUploaderLoad = (file: File) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
store.commit('setShowMoveable', true)
|
// store.commit('setShowMoveable', true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
const mousemove = (e: MouseEvent) => {
|
const mousemove = (e: MouseEvent) => {
|
||||||
|
@ -18,18 +18,19 @@ import { mapGetters, mapActions, useStore } from 'vuex'
|
|||||||
import useSelecto from './Selecto'
|
import useSelecto from './Selecto'
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useCanvasStore } from '@/pinia'
|
import { useCanvasStore, useControlStore } from '@/pinia'
|
||||||
|
|
||||||
const {
|
const {
|
||||||
dSelectWidgets, dActiveElement, activeMouseEvent,
|
dSelectWidgets, dActiveElement, activeMouseEvent,
|
||||||
showMoveable, showRotatable, dWidgets,
|
showRotatable, dWidgets,
|
||||||
updateRect, updateSelect,
|
updateRect, updateSelect,
|
||||||
} = useSetupMapGetters(['dSelectWidgets', 'dActiveElement', 'activeMouseEvent', 'showMoveable', 'showRotatable', 'dWidgets', 'updateRect', 'updateSelect'])
|
} = useSetupMapGetters(['dSelectWidgets', 'dActiveElement', 'activeMouseEvent', 'showRotatable', 'dWidgets', 'updateRect', 'updateSelect'])
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
const { guidelines } = storeToRefs(useCanvasStore())
|
const { guidelines } = storeToRefs(useCanvasStore())
|
||||||
|
const { showMoveable } = storeToRefs(controlStore)
|
||||||
|
|
||||||
// computed: mapGetters(['dSelectWidgets', 'dActiveElement', 'activeMouseEvent', 'showMoveable', 'showRotatable', 'dWidgets', 'updateRect', 'updateSelect', 'guidelines'])
|
// computed: mapGetters(['dSelectWidgets', 'dActiveElement', 'activeMouseEvent', 'showMoveable', 'showRotatable', 'dWidgets', 'updateRect', 'updateSelect', 'guidelines'])
|
||||||
|
|
||||||
let _target: string = ""
|
let _target: string = ""
|
||||||
let moveable: Moveable | null = null
|
let moveable: Moveable | null = null
|
||||||
let holdPosition: { left: number, top: number } | null = null
|
let holdPosition: { left: number, top: number } | null = null
|
||||||
@ -79,7 +80,9 @@ watch(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
// // End
|
// // End
|
||||||
store.commit('setShowMoveable', true)
|
// controlStore.setShowMoveable(true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
|
|
||||||
// 参考线设置
|
// 参考线设置
|
||||||
if (!moveable.elementGuidelines?.includes(target)) {
|
if (!moveable.elementGuidelines?.includes(target)) {
|
||||||
moveable.elementGuidelines?.push(target)
|
moveable.elementGuidelines?.push(target)
|
||||||
|
@ -36,6 +36,7 @@ import { useStore } from 'vuex'
|
|||||||
import { ElTabPane, ElTabs, TabPaneName } from 'element-plus'
|
import { ElTabPane, ElTabs, TabPaneName } from 'element-plus'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
import { TGetImageListResult } from '@/api/material'
|
import { TGetImageListResult } from '@/api/material'
|
||||||
|
import { useControlStore } from '@/pinia'
|
||||||
|
|
||||||
type TEmits = (event: 'select', data: TGetImageListResult) => void
|
type TEmits = (event: 'select', data: TGetImageListResult) => void
|
||||||
|
|
||||||
@ -50,6 +51,8 @@ type TState = {
|
|||||||
const emits = defineEmits<TEmits>()
|
const emits = defineEmits<TEmits>()
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const state = reactive<TState>({
|
const state = reactive<TState>({
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
imgList: [],
|
imgList: [],
|
||||||
@ -101,11 +104,13 @@ const loadPic = (init?: boolean) => {
|
|||||||
const open = () => {
|
const open = () => {
|
||||||
state.dialogVisible = true
|
state.dialogVisible = true
|
||||||
load()
|
load()
|
||||||
store.commit('setShowMoveable', false)
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
const close = () => {
|
const close = () => {
|
||||||
store.commit('setShowMoveable', true)
|
// store.commit('setShowMoveable', true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectImg = (index: number, list: TGetImageListResult[]) => {
|
const selectImg = (index: number, list: TGetImageListResult[]) => {
|
||||||
|
@ -70,7 +70,7 @@ import getComponentsData from '@/common/methods/DesignFeatures/setComponents'
|
|||||||
import { debounce } from 'throttle-debounce'
|
import { debounce } from 'throttle-debounce'
|
||||||
import { move, moveInit } from '@/mixins/move'
|
import { move, moveInit } from '@/mixins/move'
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import { useCanvasStore, usePageStore } from '@/pinia'
|
import { useCanvasStore, useControlStore, usePageStore } from '@/pinia'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
// 页面设计组件
|
// 页面设计组件
|
||||||
type TProps = {
|
type TProps = {
|
||||||
@ -90,14 +90,16 @@ type TSetting = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
const { pageDesignCanvasId } = defineProps<TProps>()
|
const { pageDesignCanvasId } = defineProps<TProps>()
|
||||||
const {
|
const {
|
||||||
dWidgets,
|
dWidgets,
|
||||||
dActiveElement, dSelectWidgets, dAltDown, dDraging,
|
dActiveElement, dSelectWidgets, dAltDown,
|
||||||
dHoverUuid, showRotatable
|
dHoverUuid, showRotatable
|
||||||
} = useSetupMapGetters(['dWidgets', 'dActiveElement', 'dHoverUuid', 'dSelectWidgets', 'dAltDown', 'dDraging', 'showRotatable'])
|
} = useSetupMapGetters(['dWidgets', 'dActiveElement', 'dHoverUuid', 'dSelectWidgets', 'dAltDown', 'showRotatable'])
|
||||||
const { dPage } = storeToRefs(usePageStore())
|
const { dPage } = storeToRefs(usePageStore())
|
||||||
const { dZoom, dPaddingTop, dScreen } = storeToRefs(useCanvasStore())
|
const { dZoom, dPaddingTop, dScreen } = storeToRefs(useCanvasStore())
|
||||||
|
const { dDraging } = storeToRefs(useControlStore())
|
||||||
|
|
||||||
|
|
||||||
let _dropIn: string | null = ''
|
let _dropIn: string | null = ''
|
||||||
@ -159,7 +161,10 @@ async function drop(e: MouseEvent) {
|
|||||||
const dropIn = _dropIn
|
const dropIn = _dropIn
|
||||||
_dropIn = ''
|
_dropIn = ''
|
||||||
store.dispatch('setDropOver', '-1')
|
store.dispatch('setDropOver', '-1')
|
||||||
store.commit('setShowMoveable', false) // 清理上一次的选择
|
|
||||||
|
// store.commit('setShowMoveable', false) // 清理上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理上一次的选择
|
||||||
|
|
||||||
let lost = eventTarget.className !== 'design-canvas' // className === 'design-canvas' , id: "page-design-canvas"
|
let lost = eventTarget.className !== 'design-canvas' // className === 'design-canvas' , id: "page-design-canvas"
|
||||||
// e.stopPropagation()
|
// e.stopPropagation()
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
@ -215,7 +220,9 @@ async function drop(e: MouseEvent) {
|
|||||||
const uuid = target.getAttribute('data-uuid')
|
const uuid = target.getAttribute('data-uuid')
|
||||||
if (targetType === 'w-mask') {
|
if (targetType === 'w-mask') {
|
||||||
// 容器
|
// 容器
|
||||||
store.commit('setShowMoveable', true) // 恢复选择
|
// store.commit('setShowMoveable', true) // 恢复选择
|
||||||
|
controlStore.setShowMoveable(true) // 恢复选择
|
||||||
|
|
||||||
const widget = dWidgets.value.find((item: {uuid: string}) => item.uuid === uuid)
|
const widget = dWidgets.value.find((item: {uuid: string}) => item.uuid === uuid)
|
||||||
widget.imgUrl = item.value.url
|
widget.imgUrl = item.value.url
|
||||||
// if (e.target.className.baseVal) {
|
// if (e.target.className.baseVal) {
|
||||||
@ -227,7 +234,10 @@ async function drop(e: MouseEvent) {
|
|||||||
const widget = dWidgets.value.find((item: {uuid: string}) => item.uuid == dropIn)
|
const widget = dWidgets.value.find((item: {uuid: string}) => item.uuid == dropIn)
|
||||||
widget.imgUrl = item.value.url
|
widget.imgUrl = item.value.url
|
||||||
console.log('加入+', widget)
|
console.log('加入+', widget)
|
||||||
store.commit('setShowMoveable', true) // 恢复选择
|
|
||||||
|
// store.commit('setShowMoveable', true) // 恢复选择
|
||||||
|
controlStore.setShowMoveable(true) // 恢复选择
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
store.dispatch('addWidget', setting) // 正常加入面板
|
store.dispatch('addWidget', setting) // 正常加入面板
|
||||||
// addWidget(setting) // 正常加入面板
|
// addWidget(setting) // 正常加入面板
|
||||||
|
@ -22,11 +22,13 @@
|
|||||||
// const NAME = 'style-panel'
|
// const NAME = 'style-panel'
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import alignIconList, { AlignListData } from '@/assets/data/AlignListData'
|
import alignIconList, { AlignListData } from '@/assets/data/AlignListData'
|
||||||
import iconItemSelect from '../settings/iconItemSelect.vue'
|
import iconItemSelect, { TIconItemSelectData } from '../settings/iconItemSelect.vue'
|
||||||
import { ref, watch } from 'vue';
|
import { ref, watch } from 'vue';
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters';
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters';
|
||||||
|
import { useControlStore } from '@/pinia';
|
||||||
|
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const activeTab = ref(0)
|
const activeTab = ref(0)
|
||||||
const iconList = ref<AlignListData[]>(alignIconList)
|
const iconList = ref<AlignListData[]>(alignIconList)
|
||||||
@ -51,7 +53,7 @@ function handleCombine() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ...mapActions(['selectWidget', 'updateAlign', 'updateHoverUuid', 'getCombined', 'realCombined', 'ungroup', 'pushHistory']),
|
// ...mapActions(['selectWidget', 'updateAlign', 'updateHoverUuid', 'getCombined', 'realCombined', 'ungroup', 'pushHistory']),
|
||||||
function alignAction(item: AlignListData) {
|
function alignAction(item: TIconItemSelectData) {
|
||||||
const sWidgets = JSON.parse(JSON.stringify(dSelectWidgets.value))
|
const sWidgets = JSON.parse(JSON.stringify(dSelectWidgets.value))
|
||||||
store.dispatch('getCombined').then((group) => {
|
store.dispatch('getCombined').then((group) => {
|
||||||
sWidgets.forEach((element: Record<string, any>) => {
|
sWidgets.forEach((element: Record<string, any>) => {
|
||||||
@ -72,7 +74,9 @@ function alignAction(item: AlignListData) {
|
|||||||
}
|
}
|
||||||
function layerChange(newLayer: Record<string, any>[]) {
|
function layerChange(newLayer: Record<string, any>[]) {
|
||||||
store.commit('setDWidgets', newLayer.toReversed())
|
store.commit('setDWidgets', newLayer.toReversed())
|
||||||
store.commit('setShowMoveable', false)
|
|
||||||
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -60,7 +60,7 @@ import getComponentsData from '@/common/methods/DesignFeatures/setComponents'
|
|||||||
import DragHelper from '@/common/hooks/dragHelper'
|
import DragHelper from '@/common/hooks/dragHelper'
|
||||||
import setItem2Data from '@/common/methods/DesignFeatures/setImage'
|
import setItem2Data from '@/common/methods/DesignFeatures/setImage'
|
||||||
import { TGetCompListResult, TGetTempDetail, TTempDetail } from '@/api/home'
|
import { TGetCompListResult, TGetTempDetail, TTempDetail } from '@/api/home'
|
||||||
import { usePageStore } from '@/pinia'
|
import { useControlStore, usePageStore } from '@/pinia'
|
||||||
|
|
||||||
type TState = {
|
type TState = {
|
||||||
loading: boolean
|
loading: boolean
|
||||||
@ -89,6 +89,7 @@ const state = reactive<TState>({
|
|||||||
showList: [],
|
showList: [],
|
||||||
})
|
})
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
const dPage = usePageStore().dPage
|
const dPage = usePageStore().dPage
|
||||||
const pageOptions = { type: 1, page: 0, pageSize: 20 }
|
const pageOptions = { type: 1, page: 0, pageSize: 20 }
|
||||||
|
|
||||||
@ -197,7 +198,9 @@ const selectItem = async (item: TGetCompListResult) => {
|
|||||||
if (isDrag) {
|
if (isDrag) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
tempDetail = tempDetail || (await getCompDetail({ id: item.id, type: 1 }))
|
tempDetail = tempDetail || (await getCompDetail({ id: item.id, type: 1 }))
|
||||||
// let group = JSON.parse(tempDetail.data)
|
// let group = JSON.parse(tempDetail.data)
|
||||||
const group: any = await getComponentsData(tempDetail.data)
|
const group: any = await getComponentsData(tempDetail.data)
|
||||||
|
@ -48,7 +48,7 @@ import { useStore } from 'vuex'
|
|||||||
import setImageData from '@/common/methods/DesignFeatures/setImage'
|
import setImageData from '@/common/methods/DesignFeatures/setImage'
|
||||||
import DragHelper from '@/common/hooks/dragHelper'
|
import DragHelper from '@/common/hooks/dragHelper'
|
||||||
import { TGetListData } from '@/api/material'
|
import { TGetListData } from '@/api/material'
|
||||||
import { usePageStore } from '@/pinia'
|
import { useControlStore, usePageStore } from '@/pinia'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
@ -81,7 +81,10 @@ const dragHelper = new DragHelper()
|
|||||||
const props = defineProps<TProps>()
|
const props = defineProps<TProps>()
|
||||||
|
|
||||||
const colors = ['#f8704b', '#5b89ff', '#2cc4cc', '#a8ba73', '#f8704b']
|
const colors = ['#f8704b', '#5b89ff', '#2cc4cc', '#a8ba73', '#f8704b']
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const { dPage } = storeToRefs(usePageStore())
|
const { dPage } = storeToRefs(usePageStore())
|
||||||
const state = reactive<TState>({
|
const state = reactive<TState>({
|
||||||
loading: false,
|
loading: false,
|
||||||
@ -186,8 +189,9 @@ async function selectItem(item: TGetListData) {
|
|||||||
if (isDrag) {
|
if (isDrag) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
// this.$store.commit('setShowMoveable', false)
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
let setting = item.type === 'svg' ? JSON.parse(JSON.stringify(wSvg.setting)) : JSON.parse(JSON.stringify(wImageSetting))
|
let setting = item.type === 'svg' ? JSON.parse(JSON.stringify(wSvg.setting)) : JSON.parse(JSON.stringify(wImageSetting))
|
||||||
const img = await setImageData(item)
|
const img = await setImageData(item)
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ import api from '@/api'
|
|||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import setImageData from '@/common/methods/DesignFeatures/setImage'
|
import setImageData from '@/common/methods/DesignFeatures/setImage'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { usePageStore } from '@/pinia'
|
import { useControlStore, usePageStore } from '@/pinia'
|
||||||
import { TGetImageListResult } from '@/api/material'
|
import { TGetImageListResult } from '@/api/material'
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
@ -56,7 +56,10 @@ type TCurrentCategory = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const props = defineProps<TProps>()
|
const props = defineProps<TProps>()
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const { dPage } = storeToRefs(usePageStore())
|
const { dPage } = storeToRefs(usePageStore())
|
||||||
const state = reactive<TState>({
|
const state = reactive<TState>({
|
||||||
recommendImgList: [],
|
recommendImgList: [],
|
||||||
@ -81,7 +84,10 @@ onMounted(async () => {
|
|||||||
|
|
||||||
const selectImg = async (index: number, list: TGetImageListResult[]) => {
|
const selectImg = async (index: number, list: TGetImageListResult[]) => {
|
||||||
const item = list ? list[index] : state.recommendImgList[index]
|
const item = list ? list[index] : state.recommendImgList[index]
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
|
||||||
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
let setting = JSON.parse(JSON.stringify(wImageSetting))
|
let setting = JSON.parse(JSON.stringify(wImageSetting))
|
||||||
const img = await setImageData(item) // await getImage(item.url)
|
const img = await setImageData(item) // await getImage(item.url)
|
||||||
setting.width = img.width
|
setting.width = img.width
|
||||||
|
@ -32,7 +32,7 @@ import useConfirm from '@/common/methods/confirm'
|
|||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import imgWaterFall from './components/imgWaterFall.vue'
|
import imgWaterFall from './components/imgWaterFall.vue'
|
||||||
import { IGetTempListData } from '@/api/home'
|
import { IGetTempListData } from '@/api/home'
|
||||||
import {usePageStore, useUserStore} from '@/pinia'
|
import {useControlStore, usePageStore, useUserStore} from '@/pinia'
|
||||||
|
|
||||||
type TState = {
|
type TState = {
|
||||||
loading: boolean
|
loading: boolean
|
||||||
@ -52,7 +52,10 @@ type TPageOptions = {
|
|||||||
const listRef = ref<HTMLElement | null>(null)
|
const listRef = ref<HTMLElement | null>(null)
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const pageStore = usePageStore()
|
const pageStore = usePageStore()
|
||||||
const state = reactive<TState>({
|
const state = reactive<TState>({
|
||||||
@ -113,7 +116,10 @@ function checkHeight() {
|
|||||||
}
|
}
|
||||||
// ...mapActions(['selectWidget', 'updatePageData', 'setTemplate', 'pushHistory']),
|
// ...mapActions(['selectWidget', 'updatePageData', 'setTemplate', 'pushHistory']),
|
||||||
async function selectItem(item: IGetTempListData) {
|
async function selectItem(item: IGetTempListData) {
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
|
||||||
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择框
|
||||||
|
|
||||||
if (dHistoryParams.value.length > 0) {
|
if (dHistoryParams.value.length > 0) {
|
||||||
const isPass = await useConfirm('提示', '使用模板后,当前页面将会被替换,是否继续', 'warning')
|
const isPass = await useConfirm('提示', '使用模板后,当前页面将会被替换,是否继续', 'warning')
|
||||||
if (!isPass) {
|
if (!isPass) {
|
||||||
|
@ -29,7 +29,7 @@ import { storeToRefs } from 'pinia';
|
|||||||
import { wTextSetting } from '../../widgets/wText/wTextSetting'
|
import { wTextSetting } from '../../widgets/wText/wTextSetting'
|
||||||
|
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import { usePageStore } from '@/pinia';
|
import { useControlStore, usePageStore } from '@/pinia';
|
||||||
|
|
||||||
type TBasicTextData = {
|
type TBasicTextData = {
|
||||||
text: string
|
text: string
|
||||||
@ -38,11 +38,16 @@ type TBasicTextData = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const { dPage } = storeToRefs(usePageStore())
|
const { dPage } = storeToRefs(usePageStore())
|
||||||
|
|
||||||
|
|
||||||
const selectBasicText = (item: TBasicTextData) => {
|
const selectBasicText = (item: TBasicTextData) => {
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
|
||||||
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
let setting = JSON.parse(JSON.stringify(wTextSetting))
|
let setting = JSON.parse(JSON.stringify(wTextSetting))
|
||||||
setting.text = '双击编辑文字' // item.text
|
setting.text = '双击编辑文字' // item.text
|
||||||
setting.width = item.fontSize * setting.text.length
|
setting.width = item.fontSize * setting.text.length
|
||||||
|
@ -33,9 +33,11 @@ import imageCutout from '@/components/business/image-cutout'
|
|||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import { wQrcodeSetting } from '../../widgets/wQrcode/wQrcodeSetting'
|
import { wQrcodeSetting } from '../../widgets/wQrcode/wQrcodeSetting'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { usePageStore } from '@/pinia'
|
import { useControlStore, usePageStore } from '@/pinia'
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
const loadDone = ref(false)
|
const loadDone = ref(false)
|
||||||
@ -61,7 +63,9 @@ onMounted(() => {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
function addQrcode() {
|
function addQrcode() {
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
let setting = JSON.parse(JSON.stringify(wQrcodeSetting))
|
let setting = JSON.parse(JSON.stringify(wQrcodeSetting))
|
||||||
const { width: pW, height: pH } = dPage.value
|
const { width: pW, height: pH } = dPage.value
|
||||||
setting.left = pW / 2 - setting.width / 2
|
setting.left = pW / 2 - setting.width / 2
|
||||||
|
@ -53,7 +53,7 @@ import { TUploadDoneData } from '@/components/common/Uploader/index.vue'
|
|||||||
import { IGetTempListData } from '@/api/home'
|
import { IGetTempListData } from '@/api/home'
|
||||||
import eventBus from '@/utils/plugins/eventBus'
|
import eventBus from '@/utils/plugins/eventBus'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { usePageStore } from '@/pinia'
|
import { useControlStore, usePageStore } from '@/pinia'
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
active?: number
|
active?: number
|
||||||
@ -72,7 +72,10 @@ type TState = {
|
|||||||
const props = defineProps<TProps>()
|
const props = defineProps<TProps>()
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const { dPage } = storeToRefs(usePageStore())
|
const { dPage } = storeToRefs(usePageStore())
|
||||||
const listRef = ref<HTMLElement | null>(null)
|
const listRef = ref<HTMLElement | null>(null)
|
||||||
const imgListRef = ref<typeof photoList | null>(null)
|
const imgListRef = ref<typeof photoList | null>(null)
|
||||||
@ -162,7 +165,10 @@ onMounted(() => {
|
|||||||
|
|
||||||
const selectImg = async (index: number) => {
|
const selectImg = async (index: number) => {
|
||||||
const item = state.imgList[index]
|
const item = state.imgList[index]
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
|
||||||
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
let setting = JSON.parse(JSON.stringify(wImageSetting))
|
let setting = JSON.parse(JSON.stringify(wImageSetting))
|
||||||
const img = await setImageData(item)
|
const img = await setImageData(item)
|
||||||
setting.width = img.width
|
setting.width = img.width
|
||||||
@ -180,7 +186,10 @@ type controlImgParam = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const deleteImg = async ({ i, item }: controlImgParam) => {
|
const deleteImg = async ({ i, item }: controlImgParam) => {
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
|
||||||
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择框
|
||||||
|
|
||||||
const isPass = await useConfirm('警告', '删除后不可找回,已引用资源将会失效,请谨慎操作', 'warning')
|
const isPass = await useConfirm('警告', '删除后不可找回,已引用资源将会失效,请谨慎操作', 'warning')
|
||||||
if (!isPass) {
|
if (!isPass) {
|
||||||
return false
|
return false
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
import {reactive, onMounted, watch } from 'vue'
|
import {reactive, onMounted, watch } from 'vue'
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import colorPicker from '@palxp/color-picker'
|
import colorPicker from '@palxp/color-picker'
|
||||||
|
import { useControlStore } from '@/pinia';
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
label?: string
|
label?: string
|
||||||
@ -53,6 +54,8 @@ const props = withDefaults(defineProps<TProps>(), {
|
|||||||
const emit = defineEmits<TEmits>()
|
const emit = defineEmits<TEmits>()
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const state = reactive<TState>({
|
const state = reactive<TState>({
|
||||||
innerColor: '',
|
innerColor: '',
|
||||||
// colorLength: 0,
|
// colorLength: 0,
|
||||||
@ -116,11 +119,13 @@ const inputBlur = (color: string) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const enter = () => {
|
const enter = () => {
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择框
|
||||||
}
|
}
|
||||||
|
|
||||||
const hide = () => {
|
const hide = () => {
|
||||||
store.commit('setShowMoveable', true) // 恢复上一次的选择框
|
// store.commit('setShowMoveable', true) // 恢复上一次的选择框
|
||||||
|
controlStore.setShowMoveable(true) // 恢复上一次的选择框
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ import PointImg from '@/utils/plugins/pointImg'
|
|||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useCanvasStore } from '@/pinia'
|
import { useCanvasStore, useControlStore } from '@/pinia'
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
params: typeof setting
|
params: typeof setting
|
||||||
@ -82,7 +82,10 @@ const state = reactive<TState>({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const widgetRef = ref<HTMLElement | null>(null)
|
const widgetRef = ref<HTMLElement | null>(null)
|
||||||
const targetRef = ref<HTMLImageElement | null>(null)
|
const targetRef = ref<HTMLImageElement | null>(null)
|
||||||
|
|
||||||
@ -296,9 +299,11 @@ function fixRotate() {
|
|||||||
flipTemp = props.params.flip
|
flipTemp = props.params.flip
|
||||||
props.params.flip = null
|
props.params.flip = null
|
||||||
}
|
}
|
||||||
store.commit('setShowMoveable', false)
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
store.commit('setShowMoveable', true)
|
// store.commit('setShowMoveable', true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
}, 100)
|
}, 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ function finishSliceData(key: string, value: number | number[]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function finish(key: string = "", value: number | number[] | string | null = "") {
|
function finish(key: string = "", value: string | number | (string | number)[] | null = "") {
|
||||||
store.dispatch('updateWidgetData', {
|
store.dispatch('updateWidgetData', {
|
||||||
uuid: dActiveElement.value.uuid,
|
uuid: dActiveElement.value.uuid,
|
||||||
key: key,
|
key: key,
|
||||||
|
@ -73,6 +73,8 @@ import layerIconList from '@/assets/data/LayerIconList'
|
|||||||
import alignIconList from '@/assets/data/AlignListData'
|
import alignIconList from '@/assets/data/AlignListData'
|
||||||
import { wQrcodeSetting, TWQrcodeSetting } from './wQrcodeSetting'
|
import { wQrcodeSetting, TWQrcodeSetting } from './wQrcodeSetting'
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
|
import { storeToRefs } from 'pinia'
|
||||||
|
import { useControlStore } from '@/pinia'
|
||||||
|
|
||||||
type TState = {
|
type TState = {
|
||||||
activeNames: string[]
|
activeNames: string[]
|
||||||
@ -93,10 +95,15 @@ const state = reactive<TState>({
|
|||||||
alignIconList,
|
alignIconList,
|
||||||
localization,
|
localization,
|
||||||
})
|
})
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
|
|
||||||
const {
|
const {
|
||||||
dActiveElement, dMoving, dWidgets
|
dActiveElement, dWidgets
|
||||||
} = useSetupMapGetters(['dActiveElement', 'dMoving', 'dWidgets'])
|
} = useSetupMapGetters(['dActiveElement', 'dWidgets'])
|
||||||
|
const { dMoving } = storeToRefs(useControlStore())
|
||||||
// ...mapGetters(['dActiveElement', 'dMoving', 'dWidgets'])
|
// ...mapGetters(['dActiveElement', 'dMoving', 'dWidgets'])
|
||||||
|
|
||||||
let lastUuid: string | null = null
|
let lastUuid: string | null = null
|
||||||
@ -213,12 +220,16 @@ async function alignAction(item: TIconItemSelectData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function uploadImgDone(img: TUploadDoneData) {
|
async function uploadImgDone(img: TUploadDoneData) {
|
||||||
store.commit('setShowMoveable', false)
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
|
|
||||||
await api.material.addMyPhoto(img)
|
await api.material.addMyPhoto(img)
|
||||||
// this.innerElement.width = img.width
|
// this.innerElement.width = img.width
|
||||||
// this.innerElement.height = img.height * (this.innerElement.width / img.width)
|
// this.innerElement.height = img.height * (this.innerElement.width / img.width)
|
||||||
state.innerElement.url = img.url
|
state.innerElement.url = img.url
|
||||||
store.commit('setShowMoveable', true)
|
|
||||||
|
// store.commit('setShowMoveable', true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -46,6 +46,8 @@ import layerIconList from '@/assets/data/LayerIconList'
|
|||||||
import alignIconList from '@/assets/data/AlignListData'
|
import alignIconList from '@/assets/data/AlignListData'
|
||||||
import { TWSvgSetting, wSvgSetting } from './wSvgSetting'
|
import { TWSvgSetting, wSvgSetting } from './wSvgSetting'
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
|
import { storeToRefs } from 'pinia'
|
||||||
|
import { useControlStore } from '@/pinia'
|
||||||
|
|
||||||
type TState = {
|
type TState = {
|
||||||
activeNames: string[]
|
activeNames: string[]
|
||||||
@ -66,8 +68,9 @@ const state = reactive<TState>({
|
|||||||
})
|
})
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
const {
|
const {
|
||||||
dActiveElement, dMoving
|
dActiveElement
|
||||||
} = useSetupMapGetters(['dActiveElement', 'dMoving'])
|
} = useSetupMapGetters(['dActiveElement'])
|
||||||
|
const { dMoving } = storeToRefs(useControlStore())
|
||||||
|
|
||||||
// ...mapGetters(['dActiveElement', 'dMoving']),
|
// ...mapGetters(['dActiveElement', 'dMoving']),
|
||||||
|
|
||||||
|
@ -66,6 +66,8 @@ import effectWrap from '../../settings/EffectSelect/TextWrap.vue'
|
|||||||
import { useFontStore } from '@/common/methods/fonts'
|
import { useFontStore } from '@/common/methods/fonts'
|
||||||
import usePageFontsFilter from './pageFontsFilter'
|
import usePageFontsFilter from './pageFontsFilter'
|
||||||
import { wTextSetting ,TwTextData } from './wTextSetting';
|
import { wTextSetting ,TwTextData } from './wTextSetting';
|
||||||
|
import { storeToRefs } from 'pinia';
|
||||||
|
import { useControlStore } from '@/pinia';
|
||||||
|
|
||||||
type TState = {
|
type TState = {
|
||||||
activeNames: string[],
|
activeNames: string[],
|
||||||
@ -99,7 +101,9 @@ const state = reactive<TState>({
|
|||||||
alignIconList,
|
alignIconList,
|
||||||
})
|
})
|
||||||
const dActiveElement = computed(() => store.getters.dActiveElement)
|
const dActiveElement = computed(() => store.getters.dActiveElement)
|
||||||
const dMoving = computed(() => store.getters.dMoving)
|
// const dMoving = computed(() => store.getters.dMoving)
|
||||||
|
const { dMoving } = storeToRefs(useControlStore())
|
||||||
|
|
||||||
// const isDraw = computed(() => route.name === 'Draw')
|
// const isDraw = computed(() => route.name === 'Draw')
|
||||||
|
|
||||||
watch(() => dActiveElement.value, () => {
|
watch(() => dActiveElement.value, () => {
|
||||||
|
@ -20,12 +20,14 @@ import { getImage } from '@/common/methods/getImgDetail'
|
|||||||
import wImageSetting from '@/components/modules/widgets/wImage/wImageSetting'
|
import wImageSetting from '@/components/modules/widgets/wImage/wImageSetting'
|
||||||
import { wTextSetting } from '@/components/modules/widgets/wText/wTextSetting'
|
import { wTextSetting } from '@/components/modules/widgets/wText/wTextSetting'
|
||||||
import eventBus from '@/utils/plugins/eventBus'
|
import eventBus from '@/utils/plugins/eventBus'
|
||||||
import { usePageStore } from '@/pinia'
|
import { useControlStore, usePageStore } from '@/pinia'
|
||||||
// import wText from '@/components/modules/widgets/wText/wText.vue'
|
// import wText from '@/components/modules/widgets/wText/wText.vue'
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
return new Promise<void>((resolve) => {
|
return new Promise<void>((resolve) => {
|
||||||
const pageStore = usePageStore()
|
const pageStore = usePageStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
navigator.clipboard
|
navigator.clipboard
|
||||||
.read()
|
.read()
|
||||||
.then(async (dataTransfer: any) => {
|
.then(async (dataTransfer: any) => {
|
||||||
@ -46,7 +48,9 @@ export default () => {
|
|||||||
// 刷新用户列表
|
// 刷新用户列表
|
||||||
eventBus.emit('refreshUserImages')
|
eventBus.emit('refreshUserImages')
|
||||||
// 添加图片到画布中
|
// 添加图片到画布中
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
const setting = JSON.parse(JSON.stringify(wImageSetting))
|
const setting = JSON.parse(JSON.stringify(wImageSetting))
|
||||||
setting.width = width
|
setting.width = width
|
||||||
setting.height = height
|
setting.height = height
|
||||||
@ -67,7 +71,9 @@ export default () => {
|
|||||||
}, 100)
|
}, 100)
|
||||||
break
|
break
|
||||||
} else if (item.types.toString().indexOf('text') !== -1) {
|
} else if (item.types.toString().indexOf('text') !== -1) {
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择
|
||||||
|
|
||||||
const setting = JSON.parse(JSON.stringify(wTextSetting))
|
const setting = JSON.parse(JSON.stringify(wTextSetting))
|
||||||
setting.text = await navigator.clipboard.readText()
|
setting.text = await navigator.clipboard.readText()
|
||||||
store.dispatch('addWidget', setting)
|
store.dispatch('addWidget', setting)
|
||||||
|
@ -5,10 +5,13 @@
|
|||||||
* @LastEditors: ShawnPhang <https://m.palxp.cn>
|
* @LastEditors: ShawnPhang <https://m.palxp.cn>
|
||||||
* @LastEditTime: 2023-11-30 10:09:55
|
* @LastEditTime: 2023-11-30 10:09:55
|
||||||
*/
|
*/
|
||||||
|
import { useControlStore } from '@/pinia'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
|
|
||||||
export default function keyCodeOptions(e: any, params: any) {
|
export default function keyCodeOptions(e: any, params: any) {
|
||||||
const { f } = params
|
const { f } = params
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
switch (e.keyCode) {
|
switch (e.keyCode) {
|
||||||
case 38:
|
case 38:
|
||||||
udlr('top', -1 * f, e)
|
udlr('top', -1 * f, e)
|
||||||
@ -34,7 +37,7 @@ export default function keyCodeOptions(e: any, params: any) {
|
|||||||
|
|
||||||
if (type === 'w-text') {
|
if (type === 'w-text') {
|
||||||
// 不在编辑状态则执行删除
|
// 不在编辑状态则执行删除
|
||||||
!editable && store.getters.showMoveable && store.dispatch('deleteWidget')
|
!editable && controlStore.showMoveable && store.dispatch('deleteWidget')
|
||||||
} else store.dispatch('deleteWidget')
|
} else store.dispatch('deleteWidget')
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
@ -16,7 +16,12 @@ type TControlState = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type TControlAction = {
|
type TControlAction = {
|
||||||
|
setdMoving: (isMoving: boolean) => void
|
||||||
|
setDraging: (isDraging: boolean) => void
|
||||||
|
setdResizeing: (isResizing: boolean) => void
|
||||||
|
showRefLine: (isRefLine: boolean) => void
|
||||||
|
setShowMoveable: (isShowMoveable: boolean) => void
|
||||||
|
setShowRotatable: (isShowRotatable: boolean) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineStore<"controlStore", TControlState, {}, TControlAction>("controlStore", {
|
export default defineStore<"controlStore", TControlState, {}, TControlAction>("controlStore", {
|
||||||
|
@ -25,10 +25,10 @@ const all = {
|
|||||||
x: 0, // 鼠标按下时的横坐标
|
x: 0, // 鼠标按下时的横坐标
|
||||||
y: 0, // 鼠标按下时的纵坐标
|
y: 0, // 鼠标按下时的纵坐标
|
||||||
},
|
},
|
||||||
dMoving: false, // 是否正在移动组件
|
// dMoving: false, // 是否正在移动组件
|
||||||
dDraging: false, // 是否正在抓取组件
|
// dDraging: false, // 是否正在抓取组件
|
||||||
dResizeing: false, // 是否正在调整组件宽高
|
// dResizeing: false, // 是否正在调整组件宽高
|
||||||
dShowRefLine: true, // 是否显示参考线
|
// dShowRefLine: true, // 是否显示参考线
|
||||||
dResizeWH: {
|
dResizeWH: {
|
||||||
// 初始化调整大小时组件的宽高
|
// 初始化调整大小时组件的宽高
|
||||||
width: 0,
|
width: 0,
|
||||||
@ -75,7 +75,7 @@ const all = {
|
|||||||
dGroupJson: {}, // 组合的json数据
|
dGroupJson: {}, // 组合的json数据
|
||||||
selectItem: { data: null }, // 记录当前选择的元素, data
|
selectItem: { data: null }, // 记录当前选择的元素, data
|
||||||
activeMouseEvent: null, // 正在活动的鼠标事件
|
activeMouseEvent: null, // 正在活动的鼠标事件
|
||||||
showMoveable: false, // 全局控制选择框的显示
|
// showMoveable: false, // 全局控制选择框的显示
|
||||||
showRotatable: true, // 是否显示moveable的旋转按钮
|
showRotatable: true, // 是否显示moveable的旋转按钮
|
||||||
zoomScreenChange: null, // 画布强制刷新适应度
|
zoomScreenChange: null, // 画布强制刷新适应度
|
||||||
updateRect: null, // 强制刷新操作框
|
updateRect: null, // 强制刷新操作框
|
||||||
@ -105,12 +105,12 @@ const all = {
|
|||||||
dMouseXY(state) {
|
dMouseXY(state) {
|
||||||
return state.dMouseXY
|
return state.dMouseXY
|
||||||
},
|
},
|
||||||
dMoving(state) {
|
// dMoving(state) {
|
||||||
return state.dMoving
|
// return state.dMoving
|
||||||
},
|
// },
|
||||||
dDraging(state) {
|
// dDraging(state) {
|
||||||
return state.dDraging
|
// return state.dDraging
|
||||||
},
|
// },
|
||||||
dActiveElement(state) {
|
dActiveElement(state) {
|
||||||
return state.dActiveElement
|
return state.dActiveElement
|
||||||
},
|
},
|
||||||
@ -129,12 +129,12 @@ const all = {
|
|||||||
dHoverUuid(state) {
|
dHoverUuid(state) {
|
||||||
return state.dHoverUuid
|
return state.dHoverUuid
|
||||||
},
|
},
|
||||||
dResizeing(state) {
|
// dResizeing(state) {
|
||||||
return state.dResizeing
|
// return state.dResizeing
|
||||||
},
|
// },
|
||||||
dShowRefLine(state) {
|
// dShowRefLine(state) {
|
||||||
return state.dShowRefLine
|
// return state.dShowRefLine
|
||||||
},
|
// },
|
||||||
dCopyElement(state) {
|
dCopyElement(state) {
|
||||||
return state.dCopyElement
|
return state.dCopyElement
|
||||||
},
|
},
|
||||||
@ -147,9 +147,9 @@ const all = {
|
|||||||
activeMouseEvent(state: any) {
|
activeMouseEvent(state: any) {
|
||||||
return state.activeMouseEvent
|
return state.activeMouseEvent
|
||||||
},
|
},
|
||||||
showMoveable(state: any) {
|
// showMoveable(state: any) {
|
||||||
return state.showMoveable
|
// return state.showMoveable
|
||||||
},
|
// },
|
||||||
showRotatable(state: any) {
|
showRotatable(state: any) {
|
||||||
return state.showRotatable
|
return state.showRotatable
|
||||||
},
|
},
|
||||||
|
@ -73,7 +73,7 @@ import ProgressLoading from '@/components/common/ProgressLoading/index.vue'
|
|||||||
import { processPSD2Page } from '@/utils/plugins/psd'
|
import { processPSD2Page } from '@/utils/plugins/psd'
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import { wTextSetting } from '@/components/modules/widgets/wText/wTextSetting'
|
import { wTextSetting } from '@/components/modules/widgets/wText/wTextSetting'
|
||||||
import { useCanvasStore, usePageStore } from '@/pinia'
|
import { useCanvasStore, useControlStore, usePageStore } from '@/pinia'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
|
|
||||||
type TState = {
|
type TState = {
|
||||||
@ -93,6 +93,8 @@ const state = reactive<TState>({
|
|||||||
cancelText: '',
|
cancelText: '',
|
||||||
})
|
})
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
// const { dZoom } = useSetupMapGetters(['dZoom'])
|
// const { dZoom } = useSetupMapGetters(['dZoom'])
|
||||||
@ -158,7 +160,9 @@ async function clear() {
|
|||||||
pageStore.setDPage(Object.assign(pageStore.dPage, { width: 1920, height: 1080, backgroundColor: '#ffffff', backgroundImage: '' }))
|
pageStore.setDPage(Object.assign(pageStore.dPage, { width: 1920, height: 1080, backgroundColor: '#ffffff', backgroundImage: '' }))
|
||||||
// store.commit('setDPage', Object.assign(store.getters.dPage, { width: 1920, height: 1080, backgroundColor: '#ffffff', backgroundImage: '' }))
|
// store.commit('setDPage', Object.assign(store.getters.dPage, { width: 1920, height: 1080, backgroundColor: '#ffffff', backgroundImage: '' }))
|
||||||
|
|
||||||
store.commit('setShowMoveable', false)
|
// store.commit('setShowMoveable', false)
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
|
|
||||||
await nextTick()
|
await nextTick()
|
||||||
state.isDone = false
|
state.isDone = false
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ import _config from '@/config'
|
|||||||
import useConfirm from '@/common/methods/confirm'
|
import useConfirm from '@/common/methods/confirm'
|
||||||
// import wGroup from '@/components/modules/widgets/wGroup/wGroup.vue'
|
// import wGroup from '@/components/modules/widgets/wGroup/wGroup.vue'
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import { usePageStore, useUserStore } from '@/pinia/index'
|
import { useControlStore, usePageStore, useUserStore } from '@/pinia/index'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
@ -69,6 +69,8 @@ const {
|
|||||||
dWidgets, tempEditing, dHistory, dPageHistory
|
dWidgets, tempEditing, dHistory, dPageHistory
|
||||||
} = useSetupMapGetters(['dWidgets', 'tempEditing', 'dHistory', 'dPageHistory'])
|
} = useSetupMapGetters(['dWidgets', 'tempEditing', 'dHistory', 'dPageHistory'])
|
||||||
const pageStore = usePageStore()
|
const pageStore = usePageStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const { dPage } = storeToRefs(pageStore)
|
const { dPage } = storeToRefs(pageStore)
|
||||||
|
|
||||||
|
|
||||||
@ -84,7 +86,10 @@ async function save(hasCover: boolean = false) {
|
|||||||
if (dHistory.value.length <= 0) {
|
if (dHistory.value.length <= 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
|
||||||
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择框
|
||||||
|
|
||||||
// console.log(proxy?.dPage, proxy?.dWidgets)
|
// console.log(proxy?.dPage, proxy?.dWidgets)
|
||||||
const { id, tempid } = route.query
|
const { id, tempid } = route.query
|
||||||
const cover = hasCover ? await draw() : undefined
|
const cover = hasCover ? await draw() : undefined
|
||||||
@ -92,7 +97,9 @@ async function save(hasCover: boolean = false) {
|
|||||||
const { id: newId, stat, msg } = await api.home.saveWorks({ cover, id: (id as string), title: state.title || '未命名设计', data: JSON.stringify({ page: dPage.value, widgets }), temp_id: (tempid as string), width: dPage.value.width, height: dPage.value.height })
|
const { id: newId, stat, msg } = await api.home.saveWorks({ cover, id: (id as string), title: state.title || '未命名设计', data: JSON.stringify({ page: dPage.value, widgets }), temp_id: (tempid as string), width: dPage.value.width, height: dPage.value.height })
|
||||||
stat !== 0 ? useNotification('保存成功', '可在"我的作品"中查看') : useNotification('保存失败', msg, { type: 'error' })
|
stat !== 0 ? useNotification('保存成功', '可在"我的作品"中查看') : useNotification('保存失败', msg, { type: 'error' })
|
||||||
!id && router.push({ path: '/home', query: { id: newId }, replace: true })
|
!id && router.push({ path: '/home', query: { id: newId }, replace: true })
|
||||||
store.commit('setShowMoveable', true)
|
|
||||||
|
// store.commit('setShowMoveable', true)
|
||||||
|
controlStore.setShowMoveable(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存模板
|
// 保存模板
|
||||||
@ -187,7 +194,9 @@ async function load(id: number, tempId: number, type: number, cb: () => void) {
|
|||||||
const data = JSON.parse(content)
|
const data = JSON.parse(content)
|
||||||
state.stateBollean = !!_state
|
state.stateBollean = !!_state
|
||||||
state.title = title
|
state.title = title
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
||||||
|
controlStore.setShowMoveable(false)
|
||||||
|
|
||||||
// this.$store.commit('setDWidgets', [])
|
// this.$store.commit('setDWidgets', [])
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
// 加载文字组合组件
|
// 加载文字组合组件
|
||||||
|
@ -22,7 +22,7 @@ import { useFontStore } from '@/common/methods/fonts'
|
|||||||
import _config from '@/config'
|
import _config from '@/config'
|
||||||
import github from '@/api/github'
|
import github from '@/api/github'
|
||||||
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
|
||||||
import { usePageStore } from '@/pinia'
|
import { useControlStore, usePageStore } from '@/pinia'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
@ -56,7 +56,9 @@ const emit = defineEmits<TEmits>()
|
|||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
const controlStore = useControlStore()
|
||||||
|
|
||||||
const canvasImage = ref<typeof SaveImage | null>(null)
|
const canvasImage = ref<typeof SaveImage | null>(null)
|
||||||
const state = reactive<TState>({
|
const state = reactive<TState>({
|
||||||
@ -88,7 +90,9 @@ let widgets: { type: string, imgUrl: string }[] = []
|
|||||||
let page: Record<string, any> = {}
|
let page: Record<string, any> = {}
|
||||||
|
|
||||||
async function prepare() {
|
async function prepare() {
|
||||||
store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
// store.commit('setShowMoveable', false) // 清理掉上一次的选择框
|
||||||
|
controlStore.setShowMoveable(false) // 清理掉上一次的选择框
|
||||||
|
|
||||||
addition = 0
|
addition = 0
|
||||||
lenCount = 0
|
lenCount = 0
|
||||||
widgets = dWidgets.value
|
widgets = dWidgets.value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user