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