|
@@ -10,6 +10,7 @@ import { TextData } from "@/core/components/text";
|
|
|
import { ImageData } from "@/core/components/image";
|
|
|
import { Transform } from "konva/lib/Util";
|
|
|
import { TabCover } from "../../req";
|
|
|
+import { paperConfigs } from "@/example/components/slide/actions";
|
|
|
|
|
|
const setCoverPosition = (
|
|
|
size: Size,
|
|
@@ -71,8 +72,20 @@ const setCoverScaleTextPosition = (cover: ImageData, title: TextData) => {
|
|
|
title.mat[5] = y;
|
|
|
};
|
|
|
|
|
|
+export const getCoverPaperScale = (cover: ImageData, paperKey: string) => {
|
|
|
+ let pixelScale =
|
|
|
+ (cover.widthRaw! / cover.width) * cover.proportion!.scale;
|
|
|
+ const realPixelScale = paperConfigs[paperKey as "a4"].scale;
|
|
|
+ return Math.round(realPixelScale * pixelScale);
|
|
|
+}
|
|
|
+export const setCoverPaperScale = (cover: ImageData, paperKey: string, scale: number) => {
|
|
|
+ const realPixelScale = paperConfigs[paperKey as "a4"].scale;
|
|
|
+ cover.width = cover.widthRaw! / ((scale / realPixelScale) /cover.proportion!.scale)
|
|
|
+ cover.height = (cover.heightRaw! / cover.widthRaw!) * cover.width
|
|
|
+ console.log(cover.width / cover.height)
|
|
|
+}
|
|
|
|
|
|
-const genDefaultCover = async (cover: TabCover) => {
|
|
|
+const genDefaultCover = async (cover: TabCover, paperKey: string) => {
|
|
|
const image = await getImage(cover.url);
|
|
|
const rectScale = image.width / image.height
|
|
|
const tableCoverScale = tableCoverWidth / tableCoverHeight
|
|
@@ -85,19 +98,13 @@ const genDefaultCover = async (cover: TabCover) => {
|
|
|
height = tableCoverHeight;
|
|
|
width = rectScale * height;
|
|
|
}
|
|
|
-
|
|
|
- // 缩放比例默认给10的倍数
|
|
|
- let wScale = cover.width / width
|
|
|
- let scale = Math.round((wScale * cover.proportion.scale) / 10) * 10
|
|
|
- width = cover.width / (scale / cover.proportion.scale)
|
|
|
- height = width / rectScale;
|
|
|
+ console.log(width / height, rectScale, cover.width / cover.height)
|
|
|
|
|
|
const coverData = {
|
|
|
...getBaseItem(),
|
|
|
cornerRadius: 0,
|
|
|
strokeWidth: 0,
|
|
|
url: cover.url,
|
|
|
- // lock: true,
|
|
|
key: tableCoverKey,
|
|
|
proportion: cover.proportion,
|
|
|
disableTransformer: true,
|
|
@@ -109,6 +116,10 @@ const genDefaultCover = async (cover: TabCover) => {
|
|
|
height,
|
|
|
mat: [1, 0, 0, 1, 0, 0],
|
|
|
};
|
|
|
+
|
|
|
+ // 缩放比例默认给10的倍数
|
|
|
+ let wScale = getCoverPaperScale(coverData, paperKey)
|
|
|
+ setCoverPaperScale(coverData, paperKey, Math.round(wScale / 10) * 10)
|
|
|
return coverData;
|
|
|
};
|
|
|
|
|
@@ -142,7 +153,6 @@ const genDefaultTable = () => {
|
|
|
|
|
|
const data = {
|
|
|
...getBaseItem(),
|
|
|
- lock: true,
|
|
|
content: [
|
|
|
[{ ...nameColl, content: "案发时间" }, valueColl],
|
|
|
[{ ...nameColl, content: "案发地点" }, valueColl],
|
|
@@ -162,7 +172,6 @@ export const genDefaultTitle = () => {
|
|
|
return {
|
|
|
...getBaseItem(),
|
|
|
content: "默认标题",
|
|
|
- lock: true,
|
|
|
width: 300,
|
|
|
heihgt: 42,
|
|
|
fontSize: 38,
|
|
@@ -176,6 +185,7 @@ export const getRepTabulationStore = async (
|
|
|
store: StoreData,
|
|
|
size: Size,
|
|
|
margin: number | number[],
|
|
|
+ paperKey: string,
|
|
|
cover?: TabCover | null,
|
|
|
place = true
|
|
|
) => {
|
|
@@ -190,7 +200,7 @@ export const getRepTabulationStore = async (
|
|
|
layer = { text: [titleData], table: [tableData] };
|
|
|
|
|
|
if (cover) {
|
|
|
- const imageData = await genDefaultCover(cover);
|
|
|
+ const imageData = await genDefaultCover(cover, paperKey);
|
|
|
setCoverPosition(size, margin, imageData);
|
|
|
layer.image = [imageData];
|
|
|
layer.text!.push(genDefaultCoverScaleText(imageData))
|
|
@@ -206,7 +216,7 @@ export const getRepTabulationStore = async (
|
|
|
);
|
|
|
|
|
|
if (cover) {
|
|
|
- const imageData = await genDefaultCover(cover);
|
|
|
+ const imageData = await genDefaultCover(cover, paperKey);
|
|
|
const imageScaleData = genDefaultCoverScaleText(imageData)
|
|
|
if (!~coverNdx) {
|
|
|
setCoverPosition(size, margin, imageData);
|
|
@@ -223,7 +233,6 @@ export const getRepTabulationStore = async (
|
|
|
if (!~coverScaleNdx) {
|
|
|
setCoverScaleTextPosition(imageData, imageScaleData)
|
|
|
} else {
|
|
|
- console.log(imageScaleData)
|
|
|
layer.text[coverScaleNdx].content = imageScaleData.content
|
|
|
setCoverScaleTextPosition(imageData, layer.text[coverScaleNdx])
|
|
|
}
|