feat: 迁移工作流
This commit is contained in:
parent
dbf24798cf
commit
22e2c22b43
@ -281,6 +281,10 @@ const local: App.I18n.Schema = {
|
|||||||
workflow: 'Workflow',
|
workflow: 'Workflow',
|
||||||
workflow_task: 'Workflow Task',
|
workflow_task: 'Workflow Task',
|
||||||
workflow_batch: 'Workflow Batch',
|
workflow_batch: 'Workflow Batch',
|
||||||
|
workflow_form: 'Workflow',
|
||||||
|
workflow_form_copy: 'Copy Workflow',
|
||||||
|
workflow_form_detail: 'Workflow Detail',
|
||||||
|
workflow_form_edit: 'Edit Workflow',
|
||||||
job: 'Schedule Task Management',
|
job: 'Schedule Task Management',
|
||||||
job_task: 'Schedule Task List',
|
job_task: 'Schedule Task List',
|
||||||
job_batch: 'Schedule Task Batch List',
|
job_batch: 'Schedule Task Batch List',
|
||||||
|
@ -282,6 +282,10 @@ const local: App.I18n.Schema = {
|
|||||||
workflow: '工作流',
|
workflow: '工作流',
|
||||||
workflow_task: '任务管理',
|
workflow_task: '任务管理',
|
||||||
workflow_batch: '执行批次',
|
workflow_batch: '执行批次',
|
||||||
|
workflow_form: '工作流',
|
||||||
|
workflow_form_copy: '复制工作流',
|
||||||
|
workflow_form_detail: '工作流详情',
|
||||||
|
workflow_form_edit: '编辑工作流',
|
||||||
job: '定时任务',
|
job: '定时任务',
|
||||||
job_task: '任务管理',
|
job_task: '任务管理',
|
||||||
job_batch: '执行批次',
|
job_batch: '执行批次',
|
||||||
|
@ -50,5 +50,8 @@ export const views: Record<LastLevelRouteKey, RouteComponent | (() => Promise<Ro
|
|||||||
"user-center": () => import("@/views/user-center/index.vue"),
|
"user-center": () => import("@/views/user-center/index.vue"),
|
||||||
user_manager: () => import("@/views/user/manager/index.vue"),
|
user_manager: () => import("@/views/user/manager/index.vue"),
|
||||||
workflow_batch: () => import("@/views/workflow/batch/index.vue"),
|
workflow_batch: () => import("@/views/workflow/batch/index.vue"),
|
||||||
|
workflow_form_copy: () => import("@/views/workflow/form/copy/index.vue"),
|
||||||
|
workflow_form_detail: () => import("@/views/workflow/form/detail/index.vue"),
|
||||||
|
workflow_form_edit: () => import("@/views/workflow/form/edit/index.vue"),
|
||||||
workflow_task: () => import("@/views/workflow/task/index.vue"),
|
workflow_task: () => import("@/views/workflow/task/index.vue"),
|
||||||
};
|
};
|
||||||
|
@ -544,6 +544,47 @@ export const generatedRoutes: GeneratedRoute[] = [
|
|||||||
icon: 'carbon:batch-job'
|
icon: 'carbon:batch-job'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'workflow_form',
|
||||||
|
path: '/workflow/form',
|
||||||
|
meta: {
|
||||||
|
title: 'workflow_form',
|
||||||
|
hideInMenu: true,
|
||||||
|
i18nKey: 'route.workflow_form'
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
name: 'workflow_form_copy',
|
||||||
|
path: '/workflow/form/copy',
|
||||||
|
component: 'view.workflow_form_copy',
|
||||||
|
meta: {
|
||||||
|
title: 'workflow_form_copy',
|
||||||
|
hideInMenu: true,
|
||||||
|
i18nKey: 'route.workflow_form_copy'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'workflow_form_detail',
|
||||||
|
path: '/workflow/form/detail',
|
||||||
|
component: 'view.workflow_form_detail',
|
||||||
|
meta: {
|
||||||
|
title: 'workflow_form_detail',
|
||||||
|
hideInMenu: true,
|
||||||
|
i18nKey: 'route.workflow_form_detail'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'workflow_form_edit',
|
||||||
|
path: '/workflow/form/edit',
|
||||||
|
component: 'view.workflow_form_edit',
|
||||||
|
meta: {
|
||||||
|
title: 'workflow_form_edit',
|
||||||
|
hideInMenu: true,
|
||||||
|
i18nKey: 'route.workflow_form_edit'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'workflow_task',
|
name: 'workflow_task',
|
||||||
path: '/workflow/task',
|
path: '/workflow/task',
|
||||||
|
@ -202,6 +202,10 @@ const routeMap: RouteMap = {
|
|||||||
"user-center": "/user-center",
|
"user-center": "/user-center",
|
||||||
"workflow": "/workflow",
|
"workflow": "/workflow",
|
||||||
"workflow_batch": "/workflow/batch",
|
"workflow_batch": "/workflow/batch",
|
||||||
|
"workflow_form": "/workflow/form",
|
||||||
|
"workflow_form_copy": "/workflow/form/copy",
|
||||||
|
"workflow_form_detail": "/workflow/form/detail",
|
||||||
|
"workflow_form_edit": "/workflow/form/edit",
|
||||||
"workflow_task": "/workflow/task"
|
"workflow_task": "/workflow/task"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
17
src/views/workflow/form/copy/index.vue
Normal file
17
src/views/workflow/form/copy/index.vue
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import WorkFlowIframe from '../modules/workflow-iframe.vue';
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: 'WorkFlowCopy'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="iframe"><WorkFlowIframe value="wA4wN1nZ" /></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.iframe {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
</style>
|
17
src/views/workflow/form/detail/index.vue
Normal file
17
src/views/workflow/form/detail/index.vue
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import WorkFlowIframe from '../modules/workflow-iframe.vue';
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: 'WorkFlowDetail'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="iframe"><WorkFlowIframe value="kaxC8Iml" /></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.iframe {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
</style>
|
17
src/views/workflow/form/edit/index.vue
Normal file
17
src/views/workflow/form/edit/index.vue
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import WorkFlowIframe from '../modules/workflow-iframe.vue';
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: 'WorkFlowEdit'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="iframe"><WorkFlowIframe value="D7Rzd7Oe" /></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.iframe {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
</style>
|
88
src/views/workflow/form/modules/workflow-iframe.vue
Normal file
88
src/views/workflow/form/modules/workflow-iframe.vue
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { onActivated, onMounted, ref } from 'vue';
|
||||||
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: 'WorkFlowIframe'
|
||||||
|
});
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
value: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
defineProps<Props>();
|
||||||
|
|
||||||
|
const iframeRef = ref();
|
||||||
|
const route = useRoute();
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
const id = route.query.id as string;
|
||||||
|
const spinning = ref(true);
|
||||||
|
const mode = import.meta.env.MODE;
|
||||||
|
const baseUrl = import.meta.env.BASE_URL;
|
||||||
|
|
||||||
|
function save() {
|
||||||
|
window.removeEventListener('message', handleMessage);
|
||||||
|
window.$message?.info('工作流新增成功');
|
||||||
|
router.push({ path: '/job/workflow/list' });
|
||||||
|
}
|
||||||
|
|
||||||
|
function cancel() {
|
||||||
|
window.removeEventListener('message', handleMessage);
|
||||||
|
router.push({ path: '/job/workflow/list' });
|
||||||
|
}
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
window.$message?.info('工作流修改成功');
|
||||||
|
router.push({ path: '/job/workflow/list' });
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleMessage(e: MessageEvent) {
|
||||||
|
if (typeof e.data === 'object') {
|
||||||
|
if (e.data.code === 'SV5ucvLBhvFkOftb') {
|
||||||
|
save();
|
||||||
|
} else if (e.data.code === 'kb4DO9h6WIiqFhbp') {
|
||||||
|
cancel();
|
||||||
|
} else if (e.data.code === '8Rr3XPtVVAHfduQg') {
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function iframeLoad() {
|
||||||
|
// 处理兼容行问题 兼容IE
|
||||||
|
if (iframeRef.value.attachEvent) {
|
||||||
|
iframeRef.value.attachEvent('onload', () => {
|
||||||
|
// iframe加载完毕以后执行操作
|
||||||
|
spinning.value = false;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
iframeRef.value.onload = () => {
|
||||||
|
// iframe加载完毕以后执行操作
|
||||||
|
spinning.value = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('message', handleMessage, false);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
iframeLoad();
|
||||||
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
|
window.removeEventListener('message', handleMessage);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<NSpin :show="spinning" size="large" description="工作流加载中" class="h-full" content-class="h-full">
|
||||||
|
<iframe
|
||||||
|
ref="iframeRef"
|
||||||
|
class="size-full"
|
||||||
|
:src="`${mode === 'prod' ? baseUrl : ''}/lib/index.html?id=${id}&mode=${mode}&x1c2Hdd6=${value}`"
|
||||||
|
/>
|
||||||
|
</NSpin>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
@ -1,5 +1,6 @@
|
|||||||
<script setup lang="tsx">
|
<script setup lang="tsx">
|
||||||
import { NButton, NPopconfirm, NTag } from 'naive-ui';
|
import { NButton, NPopconfirm, NTag } from 'naive-ui';
|
||||||
|
import { useRouter } from 'vue-router';
|
||||||
import { fetchGetWorkflowPageList } from '@/service/api';
|
import { fetchGetWorkflowPageList } from '@/service/api';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
import { useAppStore } from '@/store/modules/app';
|
import { useAppStore } from '@/store/modules/app';
|
||||||
@ -7,6 +8,7 @@ import { useTable, useTableOperate } from '@/hooks/common/table';
|
|||||||
import { enableStatusNumberRecord, triggerTypeRecord } from '@/constants/business';
|
import { enableStatusNumberRecord, triggerTypeRecord } from '@/constants/business';
|
||||||
import WorkflowSearch from './modules/workflow-search.vue';
|
import WorkflowSearch from './modules/workflow-search.vue';
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
|
||||||
const { columns, columnChecks, data, getData, loading, mobilePagination, searchParams, resetSearchParams } = useTable({
|
const { columns, columnChecks, data, getData, loading, mobilePagination, searchParams, resetSearchParams } = useTable({
|
||||||
@ -123,7 +125,6 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
|
|||||||
});
|
});
|
||||||
|
|
||||||
const {
|
const {
|
||||||
handleAdd,
|
|
||||||
handleEdit,
|
handleEdit,
|
||||||
checkedRowKeys,
|
checkedRowKeys,
|
||||||
onBatchDeleted,
|
onBatchDeleted,
|
||||||
@ -148,6 +149,10 @@ function handleDelete(id: string) {
|
|||||||
function edit(id: string) {
|
function edit(id: string) {
|
||||||
handleEdit(id);
|
handleEdit(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleAdd() {
|
||||||
|
router.push({ path: '/workflow/form/edit' });
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
Loading…
Reference in New Issue
Block a user