mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-09-08 08:57:24 +08:00
move stop button into dialog
This commit is contained in:
@@ -0,0 +1,61 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
modal-class="runing-overlay__modal"
|
||||||
|
:model-value="runingTaskInfo"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
:show-close="false"
|
||||||
|
>
|
||||||
|
<div flex justify-between items-center w-full>
|
||||||
|
<div>任务运行中!</div>
|
||||||
|
<div>
|
||||||
|
<slot name="op-buttons" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { useTaskManagerStore } from '@renderer/store'
|
||||||
|
import { computed } from 'vue'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
workerId: {
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const taskManagerStore = useTaskManagerStore()
|
||||||
|
const runingTaskInfo = computed(() => {
|
||||||
|
return taskManagerStore.runningTasks?.find(it => {
|
||||||
|
return it.workerId === props.workerId
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.el-overlay.runing-overlay__modal {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
backdrop-filter: blur(5px);
|
||||||
|
|
||||||
|
.el-overlay-dialog {
|
||||||
|
position: absolute;
|
||||||
|
pointer-events: all;
|
||||||
|
}
|
||||||
|
.el-dialog {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
.el-dialog__header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.el-dialog__body {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -14,5 +14,5 @@ import { computed } from 'vue'
|
|||||||
import TaskManagerItem from './Item.vue'
|
import TaskManagerItem from './Item.vue'
|
||||||
|
|
||||||
const taskManagerStore = useTaskManagerStore()
|
const taskManagerStore = useTaskManagerStore()
|
||||||
const runningTasks = computed(() => taskManagerStore.runningTasks?.workers || [])
|
const runningTasks = computed(() => taskManagerStore.runningTasks || [])
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
|
class="geek-auto-start-run-with-boss__wrap"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="main__wrap"
|
||||||
:style="{
|
:style="{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
flexDirection: 'column'
|
flexDirection: 'column'
|
||||||
@@ -997,6 +1001,7 @@
|
|||||||
pr50px
|
pr50px
|
||||||
pb30px
|
pb30px
|
||||||
class="no-active-definition-text-slider"
|
class="no-active-definition-text-slider"
|
||||||
|
|
||||||
:format-tooltip="
|
:format-tooltip="
|
||||||
(v) =>
|
(v) =>
|
||||||
typeof noActiveDefinitionMarks[v] === 'string'
|
typeof noActiveDefinitionMarks[v] === 'string'
|
||||||
@@ -1049,10 +1054,20 @@
|
|||||||
<el-button @click="handleSave">仅保存配置</el-button>
|
<el-button @click="handleSave">仅保存配置</el-button>
|
||||||
<el-button type="primary" @click="handleSubmit"> 保存配置,并开始求职! </el-button>
|
<el-button type="primary" @click="handleSubmit"> 保存配置,并开始求职! </el-button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<el-button @click="handleStopButtonClick">结束任务</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
class="runing-overlay__wrap"
|
||||||
|
:style="{
|
||||||
|
pointerEvents: 'none'
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<RuningOverlay worker-id="geekAutoStartWithBossMain">
|
||||||
|
<template #op-buttons>
|
||||||
|
<el-button @click="handleStopButtonClick">结束任务</el-button>
|
||||||
|
</template>
|
||||||
|
</RuningOverlay>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -1085,6 +1100,7 @@ import CityChooser from './components/CityChooser.vue'
|
|||||||
import conditions from '@geekgeekrun/geek-auto-start-chat-with-boss/internal-config/job-filter-conditions-20241002.json'
|
import conditions from '@geekgeekrun/geek-auto-start-chat-with-boss/internal-config/job-filter-conditions-20241002.json'
|
||||||
import JobSourceDragOrderer from '../../../features/JobSourceDragOrderer/index.vue'
|
import JobSourceDragOrderer from '../../../features/JobSourceDragOrderer/index.vue'
|
||||||
import expectJobFilterTemplateList from './expectJobFilterTemplateList'
|
import expectJobFilterTemplateList from './expectJobFilterTemplateList'
|
||||||
|
import RuningOverlay from '@renderer/features/RunningOverlay/index.vue'
|
||||||
|
|
||||||
const gtagRenderer = (name, params?: object) => {
|
const gtagRenderer = (name, params?: object) => {
|
||||||
return baseGtagRenderer(name, {
|
return baseGtagRenderer(name, {
|
||||||
@@ -1840,8 +1856,13 @@ const handleStopButtonClick = async () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.form-wrap {
|
.geek-auto-start-run-with-boss__wrap {
|
||||||
|
position: relative;
|
||||||
|
.main__wrap {
|
||||||
|
position: relative;
|
||||||
|
z-index: 0;
|
||||||
max-height: 100vh;
|
max-height: 100vh;
|
||||||
|
.form-wrap {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
@@ -1887,6 +1908,8 @@ const handleStopButtonClick = async () => {
|
|||||||
--el-slider-button-size: 18px;
|
--el-slider-button-size: 18px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@@ -1920,4 +1943,9 @@ const handleStopButtonClick = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.runing-overlay__wrap {
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div class="read-no-reply-reminder__wrap">
|
||||||
<div class="form-wrap">
|
<div class="form-wrap">
|
||||||
<el-form
|
<el-form
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
@@ -216,14 +217,24 @@
|
|||||||
>
|
>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item class="last-form-item">
|
<el-form-item class="last-form-item" flex>
|
||||||
<el-button type="primary" @click="handleSubmit">开始提醒</el-button>
|
<el-button type="primary" @click="handleSubmit">开始提醒</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div>
|
|
||||||
<el-button @click="handleStopButtonClick">结束任务</el-button>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
class="runing-overlay__wrap"
|
||||||
|
:style="{
|
||||||
|
pointerEvents: 'none'
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<RuningOverlay worker-id="readNoReplyAutoReminderMain">
|
||||||
|
<template #op-buttons>
|
||||||
|
<el-button @click="handleStopButtonClick">结束任务</el-button>
|
||||||
|
</template>
|
||||||
|
</RuningOverlay>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@@ -237,6 +248,7 @@ import {
|
|||||||
import { gtagRenderer as baseGtagRenderer } from '@renderer/utils/gtag'
|
import { gtagRenderer as baseGtagRenderer } from '@renderer/utils/gtag'
|
||||||
import mittBus from '../../utils/mitt'
|
import mittBus from '../../utils/mitt'
|
||||||
import { QuestionFilled } from '@element-plus/icons-vue'
|
import { QuestionFilled } from '@element-plus/icons-vue'
|
||||||
|
import RuningOverlay from '@renderer/features/RunningOverlay/index.vue'
|
||||||
const gtagRenderer = (name, params?: object) => {
|
const gtagRenderer = (name, params?: object) => {
|
||||||
return baseGtagRenderer(name, {
|
return baseGtagRenderer(name, {
|
||||||
scene: 'rnrr-config',
|
scene: 'rnrr-config',
|
||||||
@@ -595,22 +607,29 @@ const handleStopButtonClick = async () => {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style lang="scss">
|
||||||
|
.read-no-reply-reminder__wrap {
|
||||||
|
position: relative;
|
||||||
.form-wrap {
|
.form-wrap {
|
||||||
max-height: 100vh;
|
max-height: 100vh;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
:deep(.el-form) {
|
.el-form {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
max-width: 1000px;
|
max-width: 1000px;
|
||||||
padding-top: 8px;
|
padding-top: 8px;
|
||||||
}
|
}
|
||||||
.last-form-item {
|
.last-form-item {
|
||||||
:deep(.el-form-item__content) {
|
.el-form-item__content {
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.runing-overlay__wrap {
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export const useTaskManagerStore = defineStore('taskManager', () => {
|
|||||||
function getRunningTasks() {
|
function getRunningTasks() {
|
||||||
const { ipcRenderer } = electron
|
const { ipcRenderer } = electron
|
||||||
ipcRenderer.invoke('get-task-manager-list').then(res => {
|
ipcRenderer.invoke('get-task-manager-list').then(res => {
|
||||||
runningTasks.value = res
|
runningTasks.value = res.workers ?? []
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const throttledGetRunningTasks = throttle(getRunningTasks, 2000)
|
const throttledGetRunningTasks = throttle(getRunningTasks, 2000)
|
||||||
|
|||||||
Reference in New Issue
Block a user