From 9a61e46d96536f3299e57f7259ae1c9972256ec6 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 30 九月 2025 09:42:09 +0800
Subject: [PATCH] 1. 隐藏未完成的账户匹配页面 2. 根据第三方新的接口文档修改接口url地址
---
src/components/bg-task/FYBgTaskCard.vue | 290 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 145 insertions(+), 145 deletions(-)
diff --git a/src/components/bg-task/FYBgTaskCard.vue b/src/components/bg-task/FYBgTaskCard.vue
index 0c50ec5..7c38efa 100644
--- a/src/components/bg-task/FYBgTaskCard.vue
+++ b/src/components/bg-task/FYBgTaskCard.vue
@@ -1,175 +1,175 @@
<template>
- <el-card class="m-b-8" shadow="always" :body-style="{ padding: '8px' }">
- <el-row>
- <el-col :span="4">
- <div class="status-btn">
- <el-icon v-if="waiting" color="var(--el-color-info)" :size="50"><VideoPlay /></el-icon>
- <el-icon v-else-if="running" color="var(--el-color-primary)" :size="50" class="is-loading"
- ><Loading
- /></el-icon>
- <el-icon v-else-if="success" color="var(--el-color-success)" :size="50"
- ><CircleCheck
- /></el-icon>
- <el-icon v-else-if="fail" color="var(--el-color-error)" :size="50"
- ><CircleClose
- /></el-icon>
- <el-icon v-else color="var(--el-color-warning)" :size="50"><Warning /></el-icon>
- <el-text type="info" size="small" style="position: absolute; bottom: 0">{{
- nameToLabel(model.status)
- }}</el-text>
+ <el-card shadow="never" :body-style="{ padding: 0 }">
+ <template #header>
+ <el-row justify="space-between">
+ <div>
+ <div><el-text tag="b" size="large">鍚庡彴浠诲姟</el-text></div>
+ <el-text size="small" type="info"
+ >鏄剧ず褰撳墠姝e湪杩涜鐨勫悗鍙拌�楁椂浠诲姟鐘舵��</el-text
+ >
</div>
- </el-col>
- <el-col :span="20" class="p-l-8">
- <el-row justify="space-between">
- <el-text class="m-l-4px w-150px" tag="b" size="large" truncated>{{ model.name }}</el-text>
- <el-tag>{{ nameToLabel(model.type) }}</el-tag>
- </el-row>
- <el-row class="p-v-8" align="bottom">
- <el-col :span="12">
- <span class="timer">{{ time }}</span>
- <el-text type="info" size="small" tag="div">杩愯鏃堕暱</el-text>
- </el-col>
- <el-col :span="12">
- <el-text type="default" size="default" tag="div"
- >寮�濮嬶細{{ $fm.formatYMDH(model.startTime) }}</el-text
- >
- <el-text type="default" size="default" tag="div"
- >缁撴潫锛歿{ $fm.formatYMDH(model.endTime) }}</el-text
- >
- </el-col>
- </el-row>
- <el-row justify="end" align="bottom">
- <!-- <span class="f-s color-i">ID锛歿{ model.id }}</span> -->
- <el-row>
- <FYReconfrimButton v-if="waiting" @confirm="startTask" v-model="startConfirm">
- <el-button
- plain
- icon="VideoPlay"
- type="primary"
- size="small"
- :loading="false"
- @click="startConfirm = true"
- >寮�濮嬩换鍔�</el-button
- >
- </FYReconfrimButton>
- <FYReconfrimButton v-if="running" @confirm="stopTask" v-model="stopConfirm">
- <el-button
- icon="VideoPause"
- plain
- type="danger"
- size="small"
- :loading="false"
- @click="stopConfirm = true"
- >寮哄埗缁撴潫</el-button
- >
- </FYReconfrimButton>
- <FYReconfrimButton v-if="!running" @confirm="removeTask" v-model="removeConfirm">
- <el-button
- icon="Delete"
- plain
- type="danger"
- size="small"
- :loading="false"
- @click="removeConfirm = true"
- >绉婚櫎浠诲姟</el-button
- >
- </FYReconfrimButton>
- <el-button
- v-if="success"
- plain
- type="success"
- size="small"
- :loading="false"
- @click="gotoResult"
- >鏌ョ湅缁撴灉<el-icon class="m-l-4"><Right /></el-icon
- ></el-button>
- </el-row>
- </el-row>
- </el-col>
- </el-row>
+ <el-button
+ icon="Refresh"
+ type="primary"
+ size="default"
+ :loading="loading"
+ @click="fetchTask"
+ >鍒锋柊浠诲姟</el-button
+ >
+ </el-row>
+ <!-- <el-row>
+ <el-button type="default" size="default" @click="newTestTask">鏂板娴嬭瘯浠诲姟</el-button>
+ <el-button type="default" size="default" @click="startNewTestTask"
+ >鏂板缓骞惰繍琛屼竴涓祴璇曚换鍔�</el-button
+ >
+ <el-button type="default" size="default" @click="shutDownTask"
+ >寮哄埗鍏抽棴鎵�鏈夋祴璇曚换鍔�</el-button
+ >
+ </el-row> -->
+ </template>
+ <el-scrollbar height="70vh" class="scrollbar">
+ <template v-for="(v, i) in taskList" :key="i">
+ <FYBgTaskItem
+ :model="v"
+ :index="i"
+ @start="startTask"
+ @shutDown="shutDownTask"
+ @remove="removeTask"
+ @gotoResult="gotoResult"
+ ></FYBgTaskItem>
+ </template>
+ </el-scrollbar>
</el-card>
</template>
<script>
-import { nTlBgTask, BG_TASK_STATUS } from '@/enum/bgTask';
-import { useTimer } from '../../composables/timer';
+/**
+ * 鑷姩璇勪及浠诲姟绠$悊
+ */
+import { useFetchData } from '@/composables/fetchData';
+import bgtaskApi from '@/api/fysp/bgtaskApi';
+import { enumBgTask, BG_TASK_TYPE, BG_TASK_STATUS } from '@/enum/bgTask';
+import { useBgtaskStore } from '@/stores/bgtaskStore';
export default {
setup() {
- const { time, startTimer, pauseTimer, stopTimer } = useTimer();
- return { time, startTimer, pauseTimer, stopTimer };
+ const { loading, fetchData } = useFetchData();
+ const { registerOnFetchTask } = useBgtaskStore();
+ return { loading, fetchData, registerOnFetchTask };
},
props: {
- model: Object,
- index: Number
+ modelValue: Number
},
- emits: ['start', 'shutDown', 'remove', 'gotoResult'],
+ emits: ['update:modelValue'],
data() {
return {
- startConfirm: false,
- stopConfirm: false,
- removeConfirm: false
+ taskList: [],
+ taskIndex: 0
};
},
- computed: {
- waiting() {
- return this.model.status == BG_TASK_STATUS.WAITING.name;
- },
- running() {
- return this.model.status == BG_TASK_STATUS.RUNNING.name;
- },
- success() {
- return this.model.status == BG_TASK_STATUS.SUCCESS.name;
- },
- fail() {
- return this.model.status == BG_TASK_STATUS.FAIL.name;
- },
- shutdown() {
- return this.model.status == BG_TASK_STATUS.SHUTDOWN.name;
+ watch: {
+ taskList: {
+ handler(nV) {
+ let count = 0;
+ for (const e of nV) {
+ if (e.status == BG_TASK_STATUS.RUNNING.name) {
+ count++;
+ }
+ }
+ this.$emit('update:modelValue', count);
+ },
+ deep: true
}
},
methods: {
- nameToLabel(name) {
- const t = nTlBgTask(name);
- return t.label;
- },
- startTask() {
- this.$emit('start', this.index, (res) => {
- if (res) {
- this.startTimer();
- }
+ addTask() {},
+ newTestTask() {
+ this.fetchData((page, pageSize) => {
+ return bgtaskApi
+ .newTestTask(`Test-Task-${++this.taskIndex}`)
+ .then((res) => {
+ this.taskList.push(res.data);
+ });
});
},
- stopTask() {
- this.$emit('shutDown', this.index, (res) => {
- if (res) {
- this.stopTimer();
- }
+ startNewTestTask() {
+ this.fetchData((page, pageSize) => {
+ return bgtaskApi
+ .startNewTestTask(`Test-Task-${++this.taskIndex}`)
+ .then((res) => {
+ this.taskList.push(res.data);
+ });
});
},
- removeTask() {
- this.$emit('remove', this.index, (res) => {
- if (res) {
- // this.stopTimer();
- }
+
+ _getParam(taskStatus) {
+ return {
+ type: taskStatus.type,
+ id: taskStatus.id
+ };
+ },
+ fetchTask() {
+ this.fetchData((page, pageSize) => {
+ return bgtaskApi
+ .fetchTaskStatus({
+ // type: BG_TASK_TYPE.AUTO_SCORE.name
+ })
+ .then((res) => {
+ this.taskList = res.data;
+ });
});
},
- gotoResult() {
- this.$emit('gotoResult', this.index);
- }
+ startTask(index, callback) {
+ this.fetchData((page, pageSize) => {
+ const param = this._getParam(this.taskList[index]);
+ return bgtaskApi.startTask(param).then((res) => {
+ this.taskList[index] = res.data;
+ callback(true);
+ });
+ });
+ },
+ shutDownTask(index, callback) {
+ this.fetchData((page, pageSize) => {
+ const param = this._getParam(this.taskList[index]);
+ return bgtaskApi.shutDownTask(param).then((res) => {
+ if (index && res.data && res.data.length == 1) {
+ this.taskList[index] = res.data[0];
+ } else {
+ res.data.forEach((e) => {
+ let v = this.taskList.find((value) => {
+ return value.id == e.id;
+ });
+ const i = this.taskList.indexOf(v);
+ this.taskList[i] = e;
+ });
+ }
+ callback(true);
+ });
+ });
+ },
+ removeTask(index, callback) {
+ this.fetchData((page, pageSize) => {
+ const param = this._getParam(this.taskList[index]);
+ return bgtaskApi.removeTask(param).then((res) => {
+ if (res.data) {
+ this.taskList.splice(index, 1);
+ callback(true);
+ }
+ });
+ });
+ },
+ gotoResult(index) {}
+ },
+ mounted() {
+ this.fetchTask();
+ this.registerOnFetchTask(this.fetchTask);
+ // setInterval(() => {
+ // this.fetchTask();
+ // }, 10000);
}
};
</script>
<style scoped>
-.status-btn {
- width: 100%;
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- border: var(--el-border);
- border-radius: var(--el-border-radius-base);
-}
-.timer {
- font-size: 30px;
+.scrollbar {
+ padding: 8px;
}
</style>
--
Gitblit v1.9.3