dblclickText(e)"
>
-
+
-
+
-
diff --git a/src/components/modules/widgets/wText/wTextSetting.ts b/src/components/modules/widgets/wText/wTextSetting.ts
new file mode 100644
index 0000000..840f9e7
--- /dev/null
+++ b/src/components/modules/widgets/wText/wTextSetting.ts
@@ -0,0 +1,101 @@
+import { StyleValue } from "vue"
+
+export type TwTextData = {
+ name: string
+ type: string
+ uuid: number
+ editable: boolean,
+ left: number
+ top: number
+ transform: string
+ lineHeight: number
+ letterSpacing: number
+ fontSize: number
+ zoom: number
+ fontClass: {
+ alias: string
+ id: number
+ value: string
+ url: string
+ },
+ fontFamily: string
+ fontWeight: string
+ fontStyle: string
+ writingMode: StyleProperty.WritingMode
+ textDecoration: string
+ color: string
+ textAlign: StyleProperty.TextAlign
+ text: string
+ opacity: number
+ backgroundColor: string
+ parent: string
+ record: {
+ width: number
+ height: number
+ minWidth: number
+ minHeight: number
+ dir: string
+ },
+ textEffects?: {
+ filling: {
+ enable: boolean
+ type: number
+ color: string
+ }
+ stroke: {
+ enable: boolean
+ width: number
+ color: string
+ }
+ shadow: {
+ enable: boolean
+ offsetY: number
+ offsetX: number
+ blur: number
+ color: string
+ }
+ offset: {
+ enable: boolean
+ x: number
+ y: number
+ }
+ }[]
+}
+
+export const wTextSetting: TwTextData = {
+ name: '文本',
+ type: 'w-text',
+ uuid: -1,
+ editable: false,
+ left: 0,
+ top: 0,
+ transform: '',
+ lineHeight: 1.5,
+ letterSpacing: 0,
+ fontSize: 24,
+ zoom: 1,
+ fontClass: {
+ alias: '站酷快乐体',
+ id: 543,
+ value: 'zcool-kuaile-regular',
+ url: 'https://lib.baomitu.com/fonts/zcool-kuaile/zcool-kuaile-regular.woff2',
+ },
+ fontFamily: 'SourceHanSansSC-Regular',
+ fontWeight: 'normal',
+ fontStyle: 'normal',
+ writingMode: 'horizontal-tb',
+ textDecoration: 'none',
+ color: '#000000ff',
+ textAlign: 'left',
+ text: '',
+ opacity: 1,
+ backgroundColor: '',
+ parent: '-1',
+ record: {
+ width: 0,
+ height: 0,
+ minWidth: 0,
+ minHeight: 0,
+ dir: 'horizontal',
+ },
+}
\ No newline at end of file
diff --git a/src/mixins/methods/dealWithCtrl.ts b/src/mixins/methods/dealWithCtrl.ts
index e7a1df0..e71e727 100644
--- a/src/mixins/methods/dealWithCtrl.ts
+++ b/src/mixins/methods/dealWithCtrl.ts
@@ -3,7 +3,7 @@
* @Date: 2022-03-09 16:29:54
* @Description: 处理和ctrl建相关的操作
* @LastEditors: ShawnPhang
- * @LastEditTime: 2023-10-09 09:49:54
+ * @LastEditTime: 2024-03-15 17:34:51
*/
import store from '@/store'
import handlePaste from './handlePaste'
diff --git a/src/mixins/methods/handlePaste.ts b/src/mixins/methods/handlePaste.ts
index 037e264..a5821f5 100644
--- a/src/mixins/methods/handlePaste.ts
+++ b/src/mixins/methods/handlePaste.ts
@@ -3,7 +3,7 @@
* @Date: 2023-10-09 09:47:40
* @Description: 处理剪贴板
* @LastEditors: ShawnPhang
- * @LastEditTime: 2023-10-09 10:35:21
+ * @LastEditTime: 2024-03-15 17:35:18
*/
// window.addEventListener('paste', (e: any) => {
diff --git a/src/types/global.d.ts b/src/types/global.d.ts
index c4e324d..b93528d 100644
--- a/src/types/global.d.ts
+++ b/src/types/global.d.ts
@@ -63,3 +63,14 @@ interface MouseEvent {
layerY: number
}
+interface Document {
+ selection?: Selection
+}
+
+interface HTMLElement {
+ createTextRange(): {
+ moveToElementText(el: HTMLElement): void
+ select(): void
+ }
+}
+
diff --git a/src/types/style.d.ts b/src/types/style.d.ts
new file mode 100644
index 0000000..ba171d8
--- /dev/null
+++ b/src/types/style.d.ts
@@ -0,0 +1,6 @@
+
+
+namespace StyleProperty {
+ type TextAlign = "center" | "end" | "left" | "right" | "start";
+ type WritingMode = Globals | "horizontal-tb" | "sideways-lr" | "sideways-rl" | "vertical-lr" | "vertical-rl";
+}
\ No newline at end of file
diff --git a/src/views/Psd.vue b/src/views/Psd.vue
index 21f8c03..4d12f2e 100644
--- a/src/views/Psd.vue
+++ b/src/views/Psd.vue
@@ -60,7 +60,7 @@ import { useStore } from 'vuex'
import RightClickMenu from '@/components/business/right-click-menu/RcMenu.vue'
import Moveable from '@/components/business/moveable/Moveable.vue'
import shortcuts from '@/mixins/shortcuts'
-import wText from '@/components/modules/widgets/wText/wText.vue'
+// import wText from '@/components/modules/widgets/wText/wText.vue'
import wImage from '@/components/modules/widgets/wImage/wImage.vue'
import useLoading from '@/common/methods/loading'
import uploader from '@/components/common/Uploader/index.vue'
@@ -71,6 +71,7 @@ import ProgressLoading from '@/components/common/ProgressLoading/index.vue'
// import MyWorker from '@/utils/plugins/webWorker'
import { processPSD2Page } from '@/utils/plugins/psd'
import { useSetupMapGetters } from '@/common/hooks/mapGetters'
+import { wTextSetting } from '@/components/modules/widgets/wText/wTextSetting'
type TState = {
isDone: boolean
@@ -124,7 +125,7 @@ async function loadPSD(file: File) {
setTimeout(async () => {
const types: any = {
- text: wText.setting,
+ text: wTextSetting,
image: wImage.setting,
}
for (let i = 0; i < data.clouds.length; i++) {