|
@@ -20,9 +20,10 @@ import { onMounted, onUnmounted, ref } from "vue";
|
|
import { Modal } from "ant-design-vue";
|
|
import { Modal } from "ant-design-vue";
|
|
import { useRouter } from "vue-router";
|
|
import { useRouter } from "vue-router";
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
-import { getStudents, countStudents, getPackages } from "@/api/api";
|
|
|
|
|
|
+import { countStudents, getPackages, getStudentsWithSlice } from "@/api/api";
|
|
import { httpApp } from "@/plugins/axiosApp";
|
|
import { httpApp } from "@/plugins/axiosApp";
|
|
import mustache from "mustache";
|
|
import mustache from "mustache";
|
|
|
|
+const path = require("path");
|
|
|
|
|
|
async function getImageDim(
|
|
async function getImageDim(
|
|
blob: Blob
|
|
blob: Blob
|
|
@@ -79,6 +80,7 @@ let errorCount = ref(0);
|
|
let students = [];
|
|
let students = [];
|
|
|
|
|
|
const config = store.pageInputs["/image-download"];
|
|
const config = store.pageInputs["/image-download"];
|
|
|
|
+console.log("config::", config);
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
const storePassedToNodeJs = JSON.parse(JSON.stringify(store));
|
|
const storePassedToNodeJs = JSON.parse(JSON.stringify(store));
|
|
try {
|
|
try {
|
|
@@ -95,19 +97,19 @@ onMounted(async () => {
|
|
});
|
|
});
|
|
totalCount.value = res.data;
|
|
totalCount.value = res.data;
|
|
let totalImageDownloadTime = 0;
|
|
let totalImageDownloadTime = 0;
|
|
-
|
|
|
|
|
|
+ let curFileIndex = 0;
|
|
for (
|
|
for (
|
|
let pageNumber = 0;
|
|
let pageNumber = 0;
|
|
pageNumber * 10 < totalCount.value;
|
|
pageNumber * 10 < totalCount.value;
|
|
pageNumber++
|
|
pageNumber++
|
|
) {
|
|
) {
|
|
- const resStudents = await getStudents(
|
|
|
|
|
|
+ const resStudents = await getStudentsWithSlice(
|
|
store.env.examId,
|
|
store.env.examId,
|
|
pageNumber + 1,
|
|
pageNumber + 1,
|
|
10,
|
|
10,
|
|
{
|
|
{
|
|
upload: true,
|
|
upload: true,
|
|
- withSheetUrl: true,
|
|
|
|
|
|
+ withSliceUrl: true,
|
|
withScoreDetail: config.watermark,
|
|
withScoreDetail: config.watermark,
|
|
withMarkTrack: config.watermark,
|
|
withMarkTrack: config.watermark,
|
|
withGroupScoreTrack: config.watermark && config.trackMode === "1",
|
|
withGroupScoreTrack: config.watermark && config.trackMode === "1",
|
|
@@ -118,16 +120,16 @@ onMounted(async () => {
|
|
students = resStudents.data;
|
|
students = resStudents.data;
|
|
|
|
|
|
const urls = students.reduce(
|
|
const urls = students.reduce(
|
|
- (accumulator, stu) => accumulator.concat(stu.sheetUrls),
|
|
|
|
|
|
+ (accumulator, stu) => accumulator.concat(stu.sliceUrls),
|
|
[]
|
|
[]
|
|
);
|
|
);
|
|
cacheImages(urls);
|
|
cacheImages(urls);
|
|
|
|
|
|
for (const student of students) {
|
|
for (const student of students) {
|
|
- for (const sheetUrl of student.sheetUrls) {
|
|
|
|
|
|
+ for (const sheetUrl of student.sliceUrls) {
|
|
if (stopSignal) return;
|
|
if (stopSignal) return;
|
|
try {
|
|
try {
|
|
- const index = student.sheetUrls.indexOf(sheetUrl);
|
|
|
|
|
|
+ const index = student.sliceUrls.indexOf(sheetUrl);
|
|
student.index = index + 1;
|
|
student.index = index + 1;
|
|
student.examId = store.env.examId;
|
|
student.examId = store.env.examId;
|
|
// const filePath = window.electron.join(
|
|
// const filePath = window.electron.join(
|
|
@@ -145,7 +147,7 @@ onMounted(async () => {
|
|
// console.log(urls);
|
|
// console.log(urls);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ // console.log("filePath3:", filePath);
|
|
console.debug("start ", sheetUrl);
|
|
console.debug("start ", sheetUrl);
|
|
const imageDownloadStartTime = Date.now();
|
|
const imageDownloadStartTime = Date.now();
|
|
const imageRes = await httpApp.get(sheetUrl, {
|
|
const imageRes = await httpApp.get(sheetUrl, {
|
|
@@ -162,7 +164,20 @@ onMounted(async () => {
|
|
// console.log(imageRes.data);
|
|
// console.log(imageRes.data);
|
|
// console.log(await imageRes.data.arrayBuffer());
|
|
// console.log(await imageRes.data.arrayBuffer());
|
|
// console.log(new Uint8Array(await imageRes.data.arrayBuffer()));
|
|
// console.log(new Uint8Array(await imageRes.data.arrayBuffer()));
|
|
-
|
|
|
|
|
|
+ console.log("curFileIndex:", curFileIndex);
|
|
|
|
+ let folderName = "";
|
|
|
|
+ if (config.fileNumberSplit) {
|
|
|
|
+ folderName = `/${
|
|
|
|
+ Math.floor(curFileIndex / config.fileNumberLimits) *
|
|
|
|
+ config.fileNumberLimits +
|
|
|
|
+ 1
|
|
|
|
+ }~${
|
|
|
|
+ Math.floor(curFileIndex / config.fileNumberLimits) *
|
|
|
|
+ config.fileNumberLimits +
|
|
|
|
+ config.fileNumberLimits
|
|
|
|
+ }`;
|
|
|
|
+ console.log("folderName:", folderName);
|
|
|
|
+ }
|
|
await window.electron.addWatermark(
|
|
await window.electron.addWatermark(
|
|
storePassedToNodeJs,
|
|
storePassedToNodeJs,
|
|
arrayBuffer,
|
|
arrayBuffer,
|
|
@@ -173,8 +188,10 @@ onMounted(async () => {
|
|
index + 1,
|
|
index + 1,
|
|
config.trackMode,
|
|
config.trackMode,
|
|
config.x,
|
|
config.x,
|
|
- config.y
|
|
|
|
|
|
+ config.y,
|
|
|
|
+ folderName
|
|
);
|
|
);
|
|
|
|
+ curFileIndex++;
|
|
} catch (error) {
|
|
} catch (error) {
|
|
errorCount.value += 1;
|
|
errorCount.value += 1;
|
|
if (config.failover) {
|
|
if (config.failover) {
|