Commit 7306134b authored by liwei's avatar liwei

任务流运维页面

parent a3617092
......@@ -26,7 +26,7 @@
<RangePicker v-model:value="value1" />
</div>
<div style="margin-right: 10px">
<RadioGroup v-model:value="selectRadio">
<RadioGroup v-model:value="selectRadio" button-style="solid">
<RadioButton value="1">展示所有批次</RadioButton>
<RadioButton value="2">过滤有差异批次</RadioButton>
</RadioGroup>
......
<template>
<BasicModal width="40%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<textarea style="width: 100%;margin-top:20px;background-color: rgb(89, 96, 116);color: white" readonly rows="22" v-model="textAreaData"/>
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive} from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { useMessage } from '@/hooks/web/useMessage';
defineOptions({ name: 'AccountModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const getTitle = computed(() => ('查看日志'));
const textAreaData = ref('\n' +
' 源端发生DDL事件,DDL处理策略为自动变更,自动启动源端')
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({ confirmLoading: false,showOkBtn:false,cancelText:'关闭' });
});
/**确定按钮*/
async function handleSubmit() {
closeModal()
}
</script>
<template>
<div style="width: 100%;height: 100%;background-color: white">
<div style="width: 100%;height:35%">
<div class="TopClass1">
<div class="eventCenterTitle">
所有任务流
</div>
<div class="selectCss">
<BasicForm @register="registerForm1"/>
</div>
</div>
<div class="TopClass2">
<div class="selectCss">
<BasicForm @register="registerForm2"/>
</div>
</div>
<Tabs style="margin-left: 30px" defaultActiveKey="任务流统计信息" @change="handleChangeTab">
<TabPane tab="任务流统计信息" key="任务流统计信息">
<div class="homePage_module">
<Row :gutter="16" class="homePage_left">
<Col :span="24" style="display: flex;justify-content: center">
<div class="card_content1">
<Col :span="4">
<div class="card_item">
<div class="card_itemInfo">
<div ref="chartRef1" style="width:100%;height: 100%"></div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(1)" :class="{ 'listItemClass': selectedItem === 1 }">
<div class="card_item">
<Icon icon="eos-icons:database" :size="30" :color="'#1091FE'" />
<div class="card_itemInfo">
<div class="dataNum">9</div>
<div class="dataTitle">执行记录</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(2)" :class="{ 'listItemClass': selectedItem === 2 }">
<div class="card_item">
<Icon icon="ri:hourglass-fill" :size="30" :color="'rgb(108, 99, 178)'" />
<div class="card_itemInfo">
<div class="dataNum">1</div>
<div class="dataTitle">等待</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(3)" :class="{ 'listItemClass': selectedItem === 3 }">
<div class="card_item">
<Icon icon="line-md:loading-twotone-loop" :size="30" :color="'rgb(26, 139, 236)'" />
<div class="card_itemInfo">
<div class="dataNum">1</div>
<div class="dataTitle">进行中</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(4)" :class="{ 'listItemClass': selectedItem === 4 }">
<div class="card_item">
<Icon icon="line-md:close-circle-filled" :size="30" :color="'rgb(54, 189, 143)'" />
<div class="card_itemInfo">
<div class="dataNum">5</div>
<div class="dataTitle">成功</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(5)" :class="{ 'listItemClass': selectedItem === 5 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(234, 150, 0)'" />
<div class="card_itemInfo">
<div class="dataNum">0</div>
<div class="dataTitle">成功(置成功)</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(6)" :class="{ 'listItemClass': selectedItem === 6 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(234, 150, 0)'" />
<div class="card_itemInfo">
<div class="dataNum">1</div>
<div class="dataTitle">失败</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(7)" :class="{ 'listItemClass': selectedItem === 7 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(234, 150, 0)'" />
<div class="card_itemInfo">
<div class="dataNum">1</div>
<div class="dataTitle">阻塞</div>
</div>
</div>
</Col>
</div>
</Col>
</Row>
</div>
</TabPane>
<TabPane tab="任务统计信息" key="任务统计信息">
<div class="homePage_module">
<Row :gutter="16" class="homePage_left">
<Col :span="24" style="display: flex;justify-content: center">
<div class="card_content2">
<Col :span="4">
<div class="card_item">
<div class="card_itemInfo">
<div ref="chartRef2" style="width:100%;height: 100%"></div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(1)" :class="{ 'listItemClass': selectedItem === 1 }">
<div class="card_item">
<Icon icon="eos-icons:database" :size="30" :color="'#1091FE'" />
<div class="card_itemInfo">
<div class="dataNum">9</div>
<div class="dataTitle">执行记录</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(2)" :class="{ 'listItemClass': selectedItem === 2 }">
<div class="card_item">
<Icon icon="ri:hourglass-fill" :size="30" :color="'rgb(147, 140, 206)'" />
<div class="card_itemInfo">
<div class="dataNum">2</div>
<div class="dataTitle">等待</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(3)" :class="{ 'listItemClass': selectedItem === 3 }">
<div class="card_item">
<Icon icon="line-md:loading-twotone-loop" :size="30" :color="'rgb(81, 160, 248)'" />
<div class="card_itemInfo">
<div class="dataNum">1</div>
<div class="dataTitle">进行中</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(4)" :class="{ 'listItemClass': selectedItem === 4 }">
<div class="card_item">
<Icon icon="line-md:close-circle-filled" :size="30" :color="'rgb(54, 189, 143)'" />
<div class="card_itemInfo">
<div class="dataNum">1</div>
<div class="dataTitle">成功</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(5)" :class="{ 'listItemClass': selectedItem === 5 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(210, 93, 95)'" />
<div class="card_itemInfo">
<div class="dataNum">2</div>
<div class="dataTitle">失败</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(6)" :class="{ 'listItemClass': selectedItem === 6 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(225, 178, 79)'" />
<div class="card_itemInfo">
<div class="dataNum">0</div>
<div class="dataTitle">已取消</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(7)" :class="{ 'listItemClass': selectedItem === 7 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(137, 137, 137)'" />
<div class="card_itemInfo">
<div class="dataNum">01</div>
<div class="dataTitle">跳过</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(8)" :class="{ 'listItemClass': selectedItem === 8 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(238, 129, 43)'" />
<div class="card_itemInfo">
<div class="dataNum">0</div>
<div class="dataTitle">阻塞</div>
</div>
</div>
</Col>
<Col :span="4" @click="clickButton(9)" :class="{ 'listItemClass': selectedItem === 9 }">
<div class="card_item">
<Icon icon="line-md:minus-circle-filled" :size="30" :color="'rgb(85, 190, 50)'" />
<div class="card_itemInfo">
<div class="dataNum">0</div>
<div class="dataTitle">过滤</div>
</div>
</div>
</Col>
</div>
</Col>
</Row>
</div>
</TabPane>
</Tabs>
</div>
<div style="width: 100%;height:65%;display: flex;margin-top: 10px">
<div style="width: 25%;">
<BasicTree
toolbar
search
title=" "
:checkable="true"
:treeData="treeData2"
v-model:checkedKeys="myCheckedKeys"
@select="handleSelect"
:beforeRightClick="getRightMenuList"
:actionList="actionList"
>
<template #title="{ title, key, desc,icons,color }">
<div style="display: flex">
<div style="display: flex;align-items: center;">
<Icon :icon="icons" :style="{color:color}"></Icon>
</div>
<div style="margin-left: 10px">
<span style="font-weight: bold">{{ title }}</span><br>
<span>{{desc}}</span>
</div>
</div>
</template>
</BasicTree>
</div>
<div style="width: 75%;">
<div style="display: flex;justify-content: space-between; align-items: center;margin-bottom: 10px;">
<div style="margin-top: 10px;display: flex;margin-left: 10px;align-items: center">
<div>
<Icon icon="material-symbols:sync" :size="25" :color="'rgb(121, 74, 235)'" />
</div>
<div>
<div style="font-weight: bold;font-size: 20px;">orsadas-ter</div>
<div>/共享工作区/gxx/DDL验证</div>
</div>
</div>
<div style="margin-top: 10px;">
<a-button style="margin-right: 10px;border: none" @click="reloadButton"><Icon icon="mynaui:refresh"/></a-button>
<a-button style="margin-right: 10px;border: none" @click="reloadButton"><Icon icon="ant-design:caret-right-filled"/></a-button>
<a-button style="margin-right: 10px;border: none" @click="reloadButton"><Icon icon="line-md:edit"/></a-button>
</div>
</div>
<BasicForm @register="registerForm3"/>
<Divider/>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" :disabled="getRowSelection().selectedRowKeys <= 0" @click="handleDeleteIds">置成功</a-button>
<a-button type="primary" :disabled="getRowSelection().selectedRowKeys <= 0" @click="handleCreateFile">重跑</a-button>
<a-button type="primary" :disabled="getRowSelection().selectedRowKeys <= 0" @click="handleCreateModel">错误恢复</a-button>
<a-button type="primary" :disabled="getRowSelection().selectedRowKeys <= 0" @click="handleCreateModel">取消执行</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
label: '跳转任务运维',
onClick: toTaskMaintenanceButton.bind(null, record),
},
{
label: '查看日志',
onClick: lookLogButton.bind(null, record),
ifShow: record.eventType === '系统异常',
},
]"
/>
</template>
</template>
</BasicTable>
</div>
</div>
<!-- 查看日志 弹窗-->
<LookLogModal @register="registerLookLogModal" @success="handleSuccess" />
</div>
</template>
<script lang="ts" setup>
import { Card, Tabs, TabPane, Col, Row,RangePicker,RadioGroup,RadioButton,Tag,List} from 'ant-design-vue';
import Icon from '@/components/Icon/Icon.vue';
import {reactive, unref, onDeactivated, onMounted, ref, watch, Ref, h} from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table';
import { PageWrapper } from '@/components/Page';
import { useMessage } from '@/hooks/web/useMessage';
import { useModal } from '@/components/Modal';
import { useGo } from '@/hooks/web/usePage';
import { useRoute } from 'vue-router';
import { router } from '@/router';
import {columns, topFormSchema2, topFormSchema1, mainFormSchema3} from './taskFlowMaintenance.data';
import { tableData,TreeData,treeData2 } from './taskFlowMaintenanceData'
import { BasicForm, useForm } from '@/components/Form';
import { useECharts } from '@/hooks/web/useECharts';
import LookLogModal from './LookLogModal.vue'
import {EllipsisOutlined} from "@ant-design/icons-vue";
import {EventDataNode} from "ant-design-vue/es/vc-tree/interface";
import {BasicTree, ContextMenuItem, TreeActionType, TreeItem} from '@/components/Tree';
import { Divider } from 'ant-design-vue';
defineOptions({ name: 'AccountManagement' });
const chartRef1 = ref<HTMLDivElement | null>(null);
const { setOptions:setOptions1 } = useECharts(chartRef1 as Ref<HTMLDivElement>);
const chartRef2 = ref<HTMLDivElement | null>(null);
const { setOptions:setOptions2 } = useECharts(chartRef2 as Ref<HTMLDivElement>);
const { createMessage, createConfirm } = useMessage();
const route = useRoute();
const go = useGo();
const searchInfo = ref('');
const treeData = ref([])
//分页相关
const pagination = {
showTotal: (total: number) => `共 ${total} 条`,
total: 8,
show: true,
pageSize: 8,
};
/** 执行统计echarts渲染*/
function getEchartsData1() {
setOptions1({
tooltip: {
trigger: 'item',
formatter: '{b}: {c} ({d}%)',
},
legend: {
bottom: '1%',
left: 'center',
show: false,
},
series: [
{
color: ['rgb(236, 103, 102)', 'rgb(82, 114, 196)', 'rgb(250, 199, 94)', 'rgb(148, 203, 121)'],
name: '事件中心',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 0,
borderColor: '#fff',
borderWidth: 2,
},
label: {
show: false,
position: 'center',
},
emphasis: {
label: {
show: true,
fontSize: '12',
fontWeight: 'bold',
},
},
labelLine: {
show: false,
},
data: [
{ value: 1, name: '系统异常' },
{ value: 1, name: '数据异常' },
{ value: 6, name: '状态切换'},
{ value: 1, name: '策略告警'},
],
animationType: 'scale',
animationEasing: 'exponentialInOut',
animationDelay: function () {
return Math.random() * 100;
},
},
],
});
}
/** 执行统计echarts渲染*/
function getEchartsData2() {
setOptions2({
tooltip: {
trigger: 'item',
formatter: '{b}: {c} ({d}%)',
},
legend: {
bottom: '1%',
left: 'center',
show: false,
},
series: [
{
color: ['rgb(236, 103, 102)', 'rgb(82, 114, 196)', 'rgb(250, 199, 94)', 'rgb(148, 203, 121)'],
name: '事件中心',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 0,
borderColor: '#fff',
borderWidth: 2,
},
label: {
show: false,
position: 'center',
},
emphasis: {
label: {
show: true,
fontSize: '12',
fontWeight: 'bold',
},
},
labelLine: {
show: false,
},
data: [
{ value: 1, name: '系统异常' },
{ value: 1, name: '数据异常' },
{ value: 6, name: '状态切换'},
{ value: 1, name: '策略告警'},
],
animationType: 'scale',
animationEasing: 'exponentialInOut',
animationDelay: function () {
return Math.random() * 100;
},
},
],
});
}
const [registerLookLogModal, { openModal: openLookLogModal }] = useModal();
const [registerTable, { reload,getForm,getRowSelection }] = useTable({
title: '执行记录',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: tableData.length,
code:'',
message:'',
data: [],
};
return { ...response,data: tableData };
},
columns,
rowKey: 'id',
rowSelection:true,
useSearchForm: false,
showTableSetting: false,
showIndexColumn:false,
bordered: true,
actionColumn: {
width: 150,
title: '操作',
dataIndex: 'action',
},
});
const [registerForm1, { updateSchema:updateSchema1 }] = useForm({
labelWidth: 100,
schemas: topFormSchema1,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
const [registerForm2, { updateSchema:updateSchema2 }] = useForm({
labelWidth: 100,
schemas: topFormSchema2,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
const [registerForm3, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 80,
baseColProps: { lg: 12, md: 24 },
schemas: mainFormSchema3,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
/**跳转任务运维 按钮*/
function toTaskMaintenanceButton(record){
router.push({
path: '/realTimeSync/taskOperationsMaintenance/index',
query: {}
});
}
/**查看日志 按钮*/
function lookLogButton(record){
openLookLogModal(true,{})
}
/**标签切换*/
function handleChangeTab(key: string) {
getEchartsData1()
getEchartsData2()
}
/** 转成树 */
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
// 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
// 循环所有项
const treeData = cloneData.filter(father => {
const branchArr = cloneData.filter(child => {
// 返回每一项的子级数组
return father[id] === child[parentId]
})
branchArr.length > 0 ? father.children = branchArr : ''
// 返回第一层
return father[parentId] === rootId
})
return treeData !== '' ? treeData : data
}
// 树的操作列表
const actionList = [
{
//全部操作按钮
render: (node) => {
return h(EllipsisOutlined, {
class: 'ml-2',
onClick: () => {
getRightMenuList(node)
},
});
},
},
];
function getRightMenuList(node: EventDataNode): Promise<ContextMenuItem[]> {
const menu = [
{
label: '手动执行',
handler: () => {
handleOpen(node)
},
},
{
label: '重跑',
handler: () => {
handleOpen(node)
},
},
{
label: '错误恢复',
handler: () => {
handleOpen(node)
},
},
{
label: '取消执行',
handler: () => {
handleOpen(node)
},
},
{
label: '置成功',
handler: () => {
handleOpen(node)
},
},
];
return new Promise((resolve) => {
resolve(menu);
});
}
function handleOpen(node){
}
onMounted(() => {
getEchartsData1()
const treeData = handleTree(TreeData, 'businessId',undefined,undefined,undefined)
updateSchema1([
{
field: 'tree',
componentProps: {
treeData: treeData
},
},
]);
});
</script>
<style lang="less" scoped>
.selectCss{
margin-left: 30px;
::v-deep(.ant-select){
width:200px!important;
}
}
.homePage_module {
margin-top: 20px;
::v-deep(.ant-card-body) {
display: flex;
justify-content: center;
height: 180px;
}
.homePage_left {
.card_content1 {
width: 70%;
display: flex;
justify-content: center;
align-items: center;
.card_item {
padding-left: 20px;
display: flex;
align-items: center;
width: 100px;
height: 80px;
border-radius: 10px;
.card_itemInfo {
padding-left: 7px;
.dataNum {
font-size: 20px;
line-height: 26px;
font-weight: bold;
}
.dataTitle {
font-size: 12px;
line-height: 12px;
}
}
}
}
.card_content2 {
width: 50%;
display: flex;
justify-content: center;
align-items: center;
.card_item {
padding-left: 20px;
display: flex;
align-items: center;
width: 100px;
height: 80px;
border-radius: 10px;
.card_itemInfo {
padding-left: 7px;
.dataNum {
font-size: 20px;
line-height: 26px;
font-weight: bold;
}
.dataTitle {
font-size: 12px;
line-height: 12px;
}
}
}
}
}
}
.listItemClass{
background-color: rgb(230, 243, 255);
}
.icon {
font-size: 20px !important;
}
.listClass{
::v-deep(.ant-list-item){
padding: 5px 24px 5px 10px!important;
}
::v-deep(.ant-list-item-meta-title){
margin-bottom: -5px!important;
}
}
.titleClass{
height: 40px;
background-color: rgb(233, 236, 247);
font-weight: bold;
font-size: 13px;
display: flex;
align-items: center
}
.inputSearchClass{
width: 200px;
height:40px;
margin-left: 10px;
display: flex;
align-items: center
}
.TopClass1{
display: flex;
height: 30px;
margin-left: 30px;
margin-top: 10px;
.eventCenterTitle{
display: flex;
align-items: center;
font-weight: bold;
font-size: 20px
}
}
.TopClass2{
display: flex;
height: 30px;
margin-top: 10px;
.eventCenterTitle{
display: flex;
align-items: center;
font-weight: bold;
font-size: 20px
}
}
::v-deep(.ant-divider){
margin:0px 0px!important;
background-color: rgb(221, 225, 240)!important;
}
</style>
import {getAllRoleList} from '@/api/system/role/role';
import { BasicColumn, FormSchema } from '@/components/Table';
import {h} from "vue";
import {Input, Select, Tag} from "ant-design-vue";
import { Switch } from 'ant-design-vue';
import {useMessage} from "@/hooks/web/useMessage";
import {changeFlagApi} from "@/api/system/user/user";
import {DescItem} from "@/components/Description";
import {uploadApi} from "@/api/sys/upload"; // 引入开关组件
type CheckedType = boolean | string | number;
/**首页-table列表*/
export const columns: BasicColumn[] = [
{
title: '调度时间',
dataIndex: 'schedulingTime',
width: 120
},
{
title: '执行时间',
dataIndex: 'executionTime',
width: 120
},
{
title: '执行时长',
dataIndex: 'executionDuration',
width: 120
},
{
title: '运行状态',
dataIndex: 'runningStatus',
width: 120
},
{
title: '执行条件',
dataIndex: 'executionCondition',
width: 120
},
{
title: '执行模式',
dataIndex: 'executionMode',
width: 120
},
{
title: '执行版本',
dataIndex: 'executionVersion',
width: 120
},
{
title: '执行信息',
dataIndex: 'executionInfo',
width: 120
},
{
title: '执行ID',
dataIndex: 'executionId',
width: 120
}
];
/**首页-搜索表单*/
export const searchFormSchema: FormSchema[] = [
{
field: 'taskName',
label: '',
component: 'Input',
rules: [
{
required: true,
message: '请输入关键字搜索',
},
],
componentProps: {
placeholder: '请输入关键字搜索',
}
},
];
/**首页-表单1*/
export const topFormSchema1: FormSchema[] = [
{
field: 'tree',
label: '',
component: 'TreeSelect',
colProps: { span: 10 },
componentProps: {
maxTagCount:1,//最大tag数量
showArrow: true,//箭头
treeCheckable: true,
fieldNames: {
label: 'treeName',
value: 'businessId',
},
getPopupContainer: () => document.body,
},
},
];
/**首页-表单2*/
export const topFormSchema2: FormSchema[] = [
{
field: 'agreement',
component: 'RadioButtonGroup',
label: '',
defaultValue: '1',
componentProps: {
options: [
{
label: '调度时间',
value: '1',
},
{
label: '执行时间',
value: '2',
},
],
},
},
{
field: '[startDate, endDate]',
label: ' ',
labelWidth:20,
component: 'RangePicker',
componentProps: {
format: 'YYYY-MM-DD',
placeholder: ['开始日期', '结束日期'],
},
},
{
field: 'eventType',
label: '调度类型',
component: 'Select',
componentProps: {
placeholder: '类型',
options: [
{
label: '全部',
value: '全部',
},
],
},
},
{
field: 'eventType',
label: '发布状态',
component: 'Select',
componentProps: {
placeholder: '类型',
options: [
{
label: '全部',
value: '全部',
},
],
},
},
];
/**首页-表单3*/
export const mainFormSchema3: FormSchema[] = [
{
field: 'schedulingCycle',
label: '调度周期',
component: 'Input',
defaultValue: '0 0 0 ? * * *',
labelWidth:120,
componentProps: {
style: {
border: 'none',
},
readonly: true,
placeholder: '请输入调度周期',
},
colProps: { lg: 5, md: 24 },
},
{
field: 'publishState',
label: '发布状态',
component: 'Input',
defaultValue: '已发布',
componentProps: {
style: {
border: 'none',
},
readonly: true,
placeholder: '请输入发布状态',
},
colProps: { lg: 5, md: 24 },
},
{
field: 'approvalState',
label: '审批状态',
component: 'Input',
defaultValue: '-',
componentProps: {
style: {
border: 'none',
},
readonly: true,
placeholder: '请输入审批状态',
},
colProps: { lg: 5, md: 24 },
},
{
field: 'uuid',
label: '任务流UUID',
component: 'Input',
defaultValue: '4467f504c263466db3b752dc97d51d42',
componentProps: {
style: {
border: 'none',
},
readonly: true,
placeholder: '请输入任务流UUID',
},
colProps: { lg: 8, md: 24 },
},
];
import {getAllRoleList} from '@/api/system/role/role';
import { BasicColumn, FormSchema } from '@/components/Table';
import {h} from "vue";
import {Tag} from "ant-design-vue";
import { Switch } from 'ant-design-vue';
import {useMessage} from "@/hooks/web/useMessage";
import {changeFlagApi} from "@/api/system/user/user";
import {relatedQualityColumns} from "@/views/dataStandards/basicStandards/basicStandards.data";
import {GrowCardItem} from "@/views/dashboard/analysis/data"; // 引入开关组件
type CheckedType = boolean | string | number;
/**主页面树/列表 数据*/
export const TreeData: any[] = [
{
businessId: 100,
treeName: '全选',
anotherName: '全选',
parentId: 0,
},
{
businessId: 201,
treeName: '共享工作区',
anotherName: '共享工作区',
parentId: 100,
},
{
businessId: 202,
treeName: '商城工作区',
anotherName: '商城工作区',
parentId: 100,
},
{
businessId: 203,
treeName: 'admin个人工作区',
anotherName: 'admin个人工作区',
parentId: 100,
},
];
/**主页面列表 数据*/
export const tableData: any[] =[
{
id:1,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:2,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:3,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:4,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:5,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:6,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:7,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:8,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
{
id:9,
schedulingTime:'2023-06-28 20:29:48',
executionTime:'2023-06-28 20:30:48',
executionDuration:'28s 636ms',
runningStatus:'失败',
executionCondition:'-',
executionMode:'系统调度',
executionVersion:'V5',
executionInfo:'-',
executionId:'49027'
},
]
/**主页面 左侧List*/
export const treeData2:any[] = [
{
key: 2,
desc: 'gxx/jira/test',
title: 'test',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
{
key: 3,
desc: 'gxx/jira/90017-4',
title: '90017-4',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
{
key: 4,
desc: 'gxx/jira/字段映射',
title: '字段映射',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
{
key: 5,
desc: 'gxx/jira/wuqi_test',
title: 'wuqi_test',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
{
key: 6,
desc: 'gxx/jira/目标端规则顺序生效问题',
title: '目标端规则顺序生效问题',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
{
key: 7,
desc: 'gxx/jira/oracle-argo-吞如-单表-test',
title: 'oracle-argo-吞如-单表-test',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
{
key: 8,
desc: 'admin-个人工作区/xuekai/多个映射规则配置',
title: '多个映射规则配置',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
{
key: 9,
desc: 'gxx/jira/oracle-mysql',
title: 'oracle-mysql',
icons: 'pepicons-pop:rewind-time',
color: 'rgb(138, 101, 235)',
},
]
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