|
@@ -20,7 +20,7 @@
|
|
|
class="tw-flex tw-gap-2 tw-my-4"
|
|
|
>
|
|
|
<a-button type="primary" @click="newProject">新增</a-button>
|
|
|
- <a-button @click="handleDeleteProjects(selectIds)"> 批量删除 </a-button>
|
|
|
+ <a-button @click="handleDeleteProjects(selectIds)">批量删除</a-button>
|
|
|
</div>
|
|
|
|
|
|
<div class="tw-bg-white tw-p-5 tw-rounded-xl">
|
|
@@ -70,7 +70,8 @@
|
|
|
record.status === 'FINISH' &&
|
|
|
store.isGreaterThanEqualRootOrgAdmin
|
|
|
"
|
|
|
- @click="handleRestartProject(record.id)"
|
|
|
+ @click="selectRestartProject(record)"
|
|
|
+ :class="[record.needCompute && 'need-compute']"
|
|
|
>
|
|
|
重新计算
|
|
|
</a-button>
|
|
@@ -118,6 +119,25 @@
|
|
|
</a-form-item>
|
|
|
</a-form>
|
|
|
</a-modal>
|
|
|
+
|
|
|
+ <a-modal
|
|
|
+ v-model:visible="showRestartModalVisible"
|
|
|
+ title="重新计算"
|
|
|
+ @ok="handleRestartProject"
|
|
|
+ ok-text="确定"
|
|
|
+ cancel-text="取消"
|
|
|
+ >
|
|
|
+ <ul class="tw-ml-4 tw-list-disc">
|
|
|
+ <li v-if="selectedProject.changeInfo?.ITEM1">单科线</li>
|
|
|
+ <li v-if="selectedProject.changeInfo?.ITEM2">题型分布</li>
|
|
|
+ <li v-if="selectedProject.changeInfo?.ITEM3">试题难度分组分段分布</li>
|
|
|
+ <li v-if="selectedProject.changeInfo?.ITEM4">客观题高低分组</li>
|
|
|
+ <li v-if="selectedProject.changeInfo?.ITEM5">科目分数线分组分段</li>
|
|
|
+ <li v-if="selectedProject.changeInfo?.ITEM6">
|
|
|
+ 本科目成绩占初试总分权重分段
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </a-modal>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -132,7 +152,6 @@ import {
|
|
|
} from "@/api/projectManagementPage";
|
|
|
import router from "@/router";
|
|
|
import { useMainStore } from "@/store";
|
|
|
-import { goBack } from "@/utils/utils";
|
|
|
import { message, Modal } from "ant-design-vue";
|
|
|
import { watch, onMounted, ref, reactive, toRaw } from "vue-demi";
|
|
|
|
|
@@ -163,6 +182,10 @@ async function fetchData() {
|
|
|
pageNo,
|
|
|
});
|
|
|
// console.log(res);
|
|
|
+ res.data.content = res.data.content.map((p: any) => {
|
|
|
+ p.changeInfo = JSON.parse(p.changeInfo || "{}");
|
|
|
+ return p;
|
|
|
+ });
|
|
|
data = res.data.content;
|
|
|
pageNo = res.data.pageNo;
|
|
|
pageSize = res.data.pageSize;
|
|
@@ -287,15 +310,22 @@ async function handleCancelProject(id: number) {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-async function handleRestartProject(id: number) {
|
|
|
+let showRestartModalVisible = $ref(false);
|
|
|
+let selectedProject = reactive({ id: 0 });
|
|
|
+function selectRestartProject(p: any) {
|
|
|
+ Object.assign(selectedProject, p);
|
|
|
+ showRestartModalVisible = true;
|
|
|
+}
|
|
|
+async function handleRestartProject() {
|
|
|
Modal.confirm({
|
|
|
title: "提示",
|
|
|
content: "确认重新计算?",
|
|
|
cancelText: "取消",
|
|
|
okText: "确定",
|
|
|
onOk: async () => {
|
|
|
- await restartProject(id);
|
|
|
+ await restartProject(selectedProject.id);
|
|
|
await search();
|
|
|
+ showRestartModalVisible = false;
|
|
|
message.success({ content: "操作成功" });
|
|
|
},
|
|
|
});
|
|
@@ -322,3 +352,19 @@ async function goAllAnalysis(projectId: number) {
|
|
|
router.push(`/project/allAnalysis/${projectId}`);
|
|
|
}
|
|
|
</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+.need-compute span {
|
|
|
+ color: red;
|
|
|
+ animation: 1s ease-in-out 1s infinite alternate scale_text;
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes scale_text {
|
|
|
+ from {
|
|
|
+ transform: scale(1);
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ transform: scale(1.1);
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|