Commit f6b1fa48 authored by LiXuyang's avatar LiXuyang

任务流设置

parent e99aaa06
<template>
<BasicModal
width="40%"
v-bind="$attrs"
@register="registerModal"
:title="getTitle"
@ok="handleSubmit"
>
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { computed, defineEmits } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import {addNewFolderFormSchema} from "@/views/taskScheduling/taskFlow/taskFlow.data";
// 初始化
const emit = defineEmits(['success']);
const getTitle = computed(() => '新建文件夹');
// 数据
/**
* 方法
*/
// 确定按钮
async function handleSubmit() {
await validate();
emit('success');
closeModal();
}
/**
* 表单
*/
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { span: 24 },
schemas: addNewFolderFormSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
/**
* 弹窗
*/
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
await resetFields();
setModalProps({ confirmLoading: false });
const formData = {
taskId: '100',
};
// 塞值
await setFieldsValue({
...formData,
});
});
</script>
...@@ -6,33 +6,36 @@ ...@@ -6,33 +6,36 @@
:title="getTitle" :title="getTitle"
@ok="handleSubmit" @ok="handleSubmit"
> >
<BasicTable @register="registerTable" ref="selectTable"> <BasicTable @register="registerTable" ref="selectTable" />
</BasicTable>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { BasicModal, useModalInner } from '@/components/Modal'; import { BasicModal, useModalInner } from '@/components/Modal';
import {BasicTable, useTable} from "@/components/Table"; import { BasicTable, useTable } from '@/components/Table';
import {checkColumn} from "@/views/taskScheduling/taskFlow/taskFlow.data"; import { checkColumn } from '@/views/taskScheduling/taskFlow/taskFlow.data';
import {TableData} from "./mock"; import { TableData } from './mock';
const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => { import {defineEmits} from "vue";
setModalProps({
confirmLoading: false, const emit = defineEmits(['success']);
okText: '忽略并继续执行', const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({
confirmLoading: false,
okText: '忽略并继续执行',
});
});
const [registerTable] = useTable({
dataSource: TableData,
columns: checkColumn,
pagination: false,
showIndexColumn: false,
scroll: { y: 300 },
showSummary: true,
}); });
});
const [registerTable] = useTable({
dataSource: TableData,
columns: checkColumn,
pagination: false,
showIndexColumn: false,
scroll: {y: 300},
showSummary: true,
});
const getTitle = '检查'; const getTitle = '检查';
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
closeModal(); emit('success');
} closeModal();
}
</script> </script>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</a-button> </a-button>
</div> </div>
<div> <div>
<a-button type="link" :disabled="checkDisabled()"> <a-button type="link" :disabled="checkDisabled()" @click="handleUpload">
<Icon icon="ant-design:send-outlined" size="24" /> <Icon icon="ant-design:send-outlined" size="24" />
<p style="color: black">发布</p> <p style="color: black">发布</p>
</a-button> </a-button>
...@@ -27,13 +27,13 @@ ...@@ -27,13 +27,13 @@
</a-button> </a-button>
</div> </div>
<div> <div>
<a-button type="link" :disabled="checkDisabled()"> <a-button type="link" :disabled="checkDisabled()" @click="handleCopy">
<Icon icon="ant-design:reconciliation-outlined" size="24" /> <Icon icon="ant-design:reconciliation-outlined" size="24" />
<p style="color: black">复制到</p> <p style="color: black">复制到</p>
</a-button> </a-button>
</div> </div>
<div> <div>
<a-button type="link" :disabled="checkDisabled()"> <a-button type="link" :disabled="checkDisabled()" @click="handleDelete">
<Icon <Icon
icon="ant-design:delete-outlined" icon="ant-design:delete-outlined"
:style="{ color: checkDisabled() ? null : 'red' }" :style="{ color: checkDisabled() ? null : 'red' }"
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</a-button> </a-button>
</div> </div>
<div> <div>
<a-button type="link" :disabled="checkDisabled()"> <a-button type="link" :disabled="checkDisabled()" @click="handleMove">
<Icon icon="ant-design:folder-open-outlined" size="24" /> <Icon icon="ant-design:folder-open-outlined" size="24" />
<p style="color: black">移动</p> <p style="color: black">移动</p>
</a-button> </a-button>
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
</a-button> </a-button>
</div> </div>
<div> <div>
<a-button type="link"> <a-button type="link" @click="handleNewFolder">
<Icon icon="ant-design:folder-add-outlined" size="24" /> <Icon icon="ant-design:folder-add-outlined" size="24" />
<p style="color: black">新建文件夹</p> <p style="color: black">新建文件夹</p>
</a-button> </a-button>
...@@ -142,12 +142,12 @@ ...@@ -142,12 +142,12 @@
{ {
icon: 'ant-design:delete-outlined', icon: 'ant-design:delete-outlined',
label: '删除', label: '删除',
onClick: apiDetail.bind(null, record), onClick: handleDelete.bind(null, record),
}, },
{ {
icon: 'ant-design:folder-open-outlined', icon: 'ant-design:folder-open-outlined',
label: '移动', label: '移动',
onClick: apiDetail.bind(null, record), onClick: handleMove.bind(null, record),
}, },
]" ]"
/> />
...@@ -166,7 +166,10 @@ ...@@ -166,7 +166,10 @@
</div> </div>
</template> </template>
<CopyModal @register="copyModal" /> <CopyModal @register="copyModal" />
<CheckModal @register="checkModal" /> <MoveModal @register="moveModal" @success="moveSuccess" />
<CheckModal @register="checkModal" @success="checkSuccess" />
<AddNewFolder @register="addNewFolder" @success="AddNewFolderSuccess" />
<UploadModel @register="uploadModel" @success="uploadSuccess" />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -183,7 +186,10 @@ ...@@ -183,7 +186,10 @@
import ModelTree from '@/views/taskScheduling/taskFlowDesign/ModelTree.vue'; import ModelTree from '@/views/taskScheduling/taskFlowDesign/ModelTree.vue';
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import CopyModal from '@/views/taskScheduling/taskFlowDesign/copyModal.vue'; import CopyModal from '@/views/taskScheduling/taskFlowDesign/copyModal.vue';
import MoveModal from '@/views/taskScheduling/taskFlow/moveModal.vue';
import CheckModal from '@/views/taskScheduling/taskFlow/CheckModal.vue'; import CheckModal from '@/views/taskScheduling/taskFlow/CheckModal.vue';
import AddNewFolder from './addNewFolder.vue';
import UploadModel from '@/views/taskScheduling/taskFlowDesign/uploadModel.vue';
defineOptions({ name: 'SafetyLevelManage' }); defineOptions({ name: 'SafetyLevelManage' });
const { createMessage, createConfirm } = useMessage(); const { createMessage, createConfirm } = useMessage();
...@@ -192,7 +198,10 @@ ...@@ -192,7 +198,10 @@
const tableData = ref([]); const tableData = ref([]);
const searchInfo = reactive<Recordable>({}); const searchInfo = reactive<Recordable>({});
const [copyModal, { openModal: openCopyModal }] = useModal(); const [copyModal, { openModal: openCopyModal }] = useModal();
const [moveModal, { openModal: openMoveModal }] = useModal();
const [checkModal, { openModal: openCheckModal }] = useModal(); const [checkModal, { openModal: openCheckModal }] = useModal();
const [addNewFolder, { openModal: openAddNewFolder }] = useModal();
const [uploadModel, { openModal: openUploadModel }] = useModal();
const [registerTable, { getRowSelection, getSelectRows, setTableData, setSelectedRows }] = const [registerTable, { getRowSelection, getSelectRows, setTableData, setSelectedRows }] =
useTable({ useTable({
/* title: '任务流',*/ /* title: '任务流',*/
...@@ -309,15 +318,14 @@ ...@@ -309,15 +318,14 @@
record.releaseStatus = '运行中跳运维'; record.releaseStatus = '运行中跳运维';
} }
/**api详情按钮*/
function apiDetail() {}
function flowPublish(record) { function flowPublish(record) {
handleUpload();
record.releaseStatus = '已发布'; record.releaseStatus = '已发布';
} }
/**下线按钮*/ /**下线按钮*/
function handleOffline(record) { function handleOffline(record) {
batchOffline(record);
record.releaseStatus = '未发布'; record.releaseStatus = '未发布';
} }
...@@ -345,8 +353,17 @@ ...@@ -345,8 +353,17 @@
/** 删除按钮*/ /** 删除按钮*/
function handleDelete(record: Recordable) { function handleDelete(record: Recordable) {
const rowSelection = getRowSelection().selectedRowKeys; createConfirm({
createMessage.success('删除成功!'); iconType: 'warning',
title: '确认删除',
content: '确认批量删除选中的数据吗?',
onOk() {
createMessage.success('删除成功!');
},
});
}
function handleNewFolder() {
openAddNewFolder(true, {});
} }
const rightTable = ref(); const rightTable = ref();
function checkDisabled() { function checkDisabled() {
...@@ -356,6 +373,26 @@ ...@@ -356,6 +373,26 @@
return true; return true;
} }
} }
function AddNewFolderSuccess() {
createMessage.success('创建成功!');
}
function handleUpload() {
openUploadModel(true, {
isUpdate: false,
});
}
function uploadSuccess() {
createMessage.success('版本发布成功!');
}
function checkSuccess() {
createMessage.success('下线成功!');
}
function handleMove() {
openMoveModal(true, {});
}
function moveSuccess() {
createMessage.success('移动成功!');
}
onMounted(() => {}); onMounted(() => {});
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>
<template>
<BasicModal
width="40%"
v-bind="$attrs"
@register="registerModal"
:title="getTitle"
@ok="handleSubmit"
>
<BasicForm @register="registerForm">
<template #path="{ field, model }">
<InputSearch v-model:value="model[field]" enter-button="选择" @search="handleSearch" />
</template>
</BasicForm>
</BasicModal>
</template>
<script lang="ts" setup>
import {defineEmits, ref, unref} from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { copyFormSchema } from '@/views/taskScheduling/taskFlowDesign/design.data';
import { BaseFormatProps } from 'vue-i18n';
import { InputSearch } from 'ant-design-vue';
const emit = defineEmits(['success']);
const isUpdate = ref(false);
const isMove = ref(false);
const rowId = ref('');
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 24, md: 24 },
schemas: copyFormSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
} as BaseFormatProps);
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
await resetFields();
setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove;
if (unref(isUpdate)) {
// 获取行数据的id
rowId.value = data.record.businessId;
// 塞值
await setFieldsValue({
...data.record,
});
}
});
const getTitle = '移动';
function handleSearch() {}
/**确定按钮*/
async function handleSubmit() {
await validate();
closeModal();
emit('success');
}
</script>
import {BasicColumn, FormSchema} from "@/components/Table"; import { BasicColumn, FormSchema } from '@/components/Table';
import {TreeItem} from "@/components/Tree"; import { TreeItem } from '@/components/Tree';
import { TreeProps } from 'ant-design-vue/es/tree/Tree';
/** 列表展示字段*/ /** 列表展示字段*/
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
...@@ -60,7 +61,7 @@ export const searchFormSchema: FormSchema[] = [ ...@@ -60,7 +61,7 @@ export const searchFormSchema: FormSchema[] = [
field: 'name', field: 'name',
label: '', label: '',
component: 'InputSearch', component: 'InputSearch',
colProps: { span: 20}, colProps: { span: 20 },
componentProps: { componentProps: {
placeholder: '输入关键字搜索', placeholder: '输入关键字搜索',
onChange: (e: any) => { onChange: (e: any) => {
...@@ -102,3 +103,22 @@ export const taskTreeData: TreeItem[] = [ ...@@ -102,3 +103,22 @@ export const taskTreeData: TreeItem[] = [
], ],
}, },
]; ];
export const addNewFolderFormSchema: FormSchema[] = [
{
label: '文件夹路径',
field: 'path',
component: 'TreeSelect',
componentProps: {
fieldNames: {
value: 'key',
},
treeData: taskTreeData,
} as TreeProps,
},
{
label: '文件夹名称',
field: 'name',
required: true,
component: 'Input',
},
];
...@@ -6,11 +6,7 @@ ...@@ -6,11 +6,7 @@
:title="getTitle" :title="getTitle"
@ok="handleSubmit" @ok="handleSubmit"
> >
<BasicForm @register="registerForm"> <BasicForm @register="registerForm" />
<template #path="{ field, model }">
<InputSearch v-model:value="model[field]" enter-button="选择" @search="handleSearch" />
</template>
</BasicForm>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -19,7 +15,6 @@ ...@@ -19,7 +15,6 @@
import { BasicForm, useForm } from '@/components/Form'; import { BasicForm, useForm } from '@/components/Form';
import { copyFormSchema } from '@/views/taskScheduling/taskFlowDesign/design.data'; import { copyFormSchema } from '@/views/taskScheduling/taskFlowDesign/design.data';
import { BaseFormatProps } from 'vue-i18n'; import { BaseFormatProps } from 'vue-i18n';
import { InputSearch } from 'ant-design-vue';
const isUpdate = ref(false); const isUpdate = ref(false);
const isMove = ref(false); const isMove = ref(false);
...@@ -54,7 +49,6 @@ ...@@ -54,7 +49,6 @@
const getTitle = '复制到'; const getTitle = '复制到';
function handleSearch() {}
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
await validate(); await validate();
......
...@@ -173,7 +173,7 @@ ...@@ -173,7 +173,7 @@
<UpstreamModel @register="upstreamTaskModel" /> <UpstreamModel @register="upstreamTaskModel" />
<DependModel @register="dependModel" /> <DependModel @register="dependModel" />
<TaskConfigModel @register="taskConfigModel" /> <TaskConfigModel @register="taskConfigModel" />
<UploadModel @register="uploadModel" @set-upload-flag="setUploadFlag" /> <UploadModel @register="uploadModel" @success="uploadSuccess" />
<VersionModel @register="versionModel" @set-version="setVersion" @show-dag="showDag" /> <VersionModel @register="versionModel" @set-version="setVersion" @show-dag="showDag" />
<DeleteModel @register="deleteModel" @success="handleDelelte" /> <DeleteModel @register="deleteModel" @success="handleDelelte" />
<OfflineModel @register="offlineModel" @set-upload-flag="setUploadFlag" /> <OfflineModel @register="offlineModel" @set-upload-flag="setUploadFlag" />
...@@ -435,7 +435,10 @@ ...@@ -435,7 +435,10 @@
function setUploadFlag(flag) { function setUploadFlag(flag) {
uploadFlag.value = flag; uploadFlag.value = flag;
} }
function uploadSuccess() {
createMessage.success('版本发布成功!');
uploadFlag.value = true;
}
function handleOffline() { function handleOffline() {
openOfflineModel(true, { openOfflineModel(true, {
isUpdate: false, isUpdate: false,
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
const getTitle = '发布新版本'; const getTitle = '发布新版本';
const emit = defineEmits(['setUploadFlag']); const emit = defineEmits(['success']);
//初始化弹框 //初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({ confirmLoading: false }); setModalProps({ confirmLoading: false });
...@@ -49,8 +49,7 @@ ...@@ -49,8 +49,7 @@
/**确定按钮*/ /**确定按钮*/
const { createMessage } = useMessage(); const { createMessage } = useMessage();
async function handleSubmit() { async function handleSubmit() {
createMessage.success('版本发布成功!');
closeModal(); closeModal();
emit('setUploadFlag', true); emit('success');
} }
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment