|
@@ -21,9 +21,14 @@
|
|
|
>
|
|
|
</template>
|
|
|
</qm-low-form>
|
|
|
- <my-modal v-model:open="showProgressDialog" title="考生导入进度">
|
|
|
+ <my-modal
|
|
|
+ v-model:open="showProgressDialog"
|
|
|
+ title="考生导入进度"
|
|
|
+ @cancel="progressClose"
|
|
|
+ >
|
|
|
<p>{{ curFileName }}</p>
|
|
|
<a-progress :percent="progress" :status="progressStatus" />
|
|
|
+ <p class="color-warning">{{ errMsg }}</p>
|
|
|
</my-modal>
|
|
|
</my-modal>
|
|
|
</template>
|
|
@@ -41,6 +46,7 @@ const progressStatus = ref<
|
|
|
"active" | "success" | "normal" | "exception" | undefined
|
|
|
>("active"); // 'exception' 'normal' 'success'
|
|
|
const progress = ref(0);
|
|
|
+const errMsg = ref("");
|
|
|
const curFileName = ref("");
|
|
|
const emit = defineEmits(["success"]);
|
|
|
|
|
@@ -66,10 +72,35 @@ const submitHandle = () => {
|
|
|
let taskId = res.taskId;
|
|
|
showProgressDialog.value = true;
|
|
|
// visible.value = false;
|
|
|
+ watchProgress({ taskId });
|
|
|
}
|
|
|
);
|
|
|
});
|
|
|
};
|
|
|
+const watchProgress = (obj: { taskId: string }) => {
|
|
|
+ if (!showProgressDialog.value) return;
|
|
|
+ importStuProgress(obj).then((res: any) => {
|
|
|
+ if (res?.progress == 100 && res?.success) {
|
|
|
+ progressStatus.value = "success";
|
|
|
+ errMsg.value = "";
|
|
|
+ window.$message.success("导入成功");
|
|
|
+ } else {
|
|
|
+ if (res?.errMsg) {
|
|
|
+ progressStatus.value = "exception";
|
|
|
+ errMsg.value = res?.errMsg;
|
|
|
+ } else {
|
|
|
+ setTimeout(() => {
|
|
|
+ watchProgress(obj);
|
|
|
+ }, 3000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+const progressClose = () => {
|
|
|
+ if (progressStatus.value === "success") {
|
|
|
+ visible.value = false;
|
|
|
+ }
|
|
|
+};
|
|
|
const downloadTpl = () => {
|
|
|
exportStu({ examId: userStore.curExam?.id });
|
|
|
};
|