Commit 39b3961e authored by 罗林杰's avatar 罗林杰

Merge remote-tracking branch 'origin/master'

parents d1eb1af4 32556020
<template>
<!-- 添加数据库弹窗 -->
<BasicModal
v-bind="$attrs"
@register="registerModal"
showFooter
:title="getTitle"
width="35%"
@ok="handleSubmit"
>
<BasicForm @register="registerForm"/>
</BasicModal>
</template>
<script lang="ts" setup>
import {ref} from 'vue';
import {BasicForm, useForm} from '@/components/Form';
import {useModal, useModalInner} from '@/components/Modal';
import BasicModal from '@/components/Modal/src/BasicModal.vue';
import {useMessage} from "@/hooks/web/useMessage";
import {
addDataBaseFormSchema,
formSchema,
lookRecordFormSchema,
resetNameFormSchema
} from "@/views/dataSourceManage/connect/connect.data";
defineOptions({name: 'ResetNameModal'});
const emit = defineEmits(['success', 'register']);
const {createMessage} = useMessage();
const [registerLookRecordModal, {openModal: openLookRecordModal}] = useModal();
// 初始化弹窗
const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
resetFields();
setModalProps({
showCancelBtn: false,
showOkBtn: false
});
setFieldsValue({
...data.record
})
});
const [registerForm, {resetFields, setFieldsValue, validate, setProps}] = useForm({
labelWidth: 90,
baseColProps: {span: 24},
schemas: addDataBaseFormSchema,
showActionButtonGroup: false
});
const getTitle = ref('新增数据库');
/** 确认按钮 */
function handleSubmit() {
closeModal()
}
</script>
......@@ -8,7 +8,13 @@
width="35%"
@ok="handleSubmit"
>
<BasicForm @register="registerForm"/>
<BasicForm @register="registerForm">
</BasicForm>
<Alert
show-icon
message=""
description="请确保数据库账号拥有系统表的访问权限"
/>
</BasicModal>
</template>
<script lang="ts" setup>
......@@ -18,6 +24,7 @@ import {useModalInner} from '@/components/Modal';
import BasicModal from '@/components/Modal/src/BasicModal.vue';
import {useMessage} from "@/hooks/web/useMessage";
import {formSchema} from "@/views/dataSourceManage/connect/connect.data";
import { Alert } from 'ant-design-vue';
defineOptions({name: 'ConnectDrawer'});
const emit = defineEmits(['success', 'register']);
......
......@@ -43,7 +43,6 @@ const getTitle = ref('Krb5管理');
/** 确认按钮 */
async function handleSubmit() {
const values = await validate();
createMessage.success('新增成功!')
closeModal()
}
......
<template>
<!-- 查看日志弹窗 -->
<BasicModal
v-bind="$attrs"
@register="registerModal"
showFooter
:title="getTitle"
width="35%"
@ok="handleSubmit"
>
<BasicForm @register="registerForm"/>
</BasicModal>
</template>
<script lang="ts" setup>
import {ref} from 'vue';
import {BasicForm, useForm} from '@/components/Form';
import {useModal, useModalInner} from '@/components/Modal';
import BasicModal from '@/components/Modal/src/BasicModal.vue';
import {useMessage} from "@/hooks/web/useMessage";
import {formSchema, lookRecordFormSchema, resetNameFormSchema} from "@/views/dataSourceManage/connect/connect.data";
defineOptions({name: 'ResetNameModal'});
const emit = defineEmits(['success', 'register']);
const {createMessage} = useMessage();
const [registerLookRecordModal, {openModal: openLookRecordModal}] = useModal();
// 初始化弹窗
const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
resetFields();
setModalProps({
showCancelBtn: false,
showOkBtn: false
});
setFieldsValue({
...data.record
})
});
const [registerForm, {resetFields, setFieldsValue, validate, setProps}] = useForm({
labelWidth: 90,
baseColProps: {span: 24},
schemas: lookRecordFormSchema,
showActionButtonGroup: false
});
const getTitle = ref('查看日志');
/** 确认按钮 */
function handleSubmit() {
closeModal()
}
</script>
<template>
<BasicModal width="50%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<Alert
show-icon
message=""
description="请先按照文件生成规范修改文件,然后上传"
/>
<div style="width: 50%">
<img src="../../../assets/images/offlineExecute.png" style="width: 195%" alt="Logo" />
</div>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleAddButton">新增</a-button>
<BasicUpload
:maxSize="20"
:maxNumber="10"
@change="handleChange"
:api="uploadApi"
class="my-5"
:accept="['image/*']"
/>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
label: '删除',
color: 'error',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleDelete.bind(null, record),
},
},
{
label: '编辑',
onClick: handleEdit.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
<!-- 新增/编辑 弹窗 -->
<AddDataBaseModal @register="registerAddDataBaseModal" @success="handleSuccess"/>
</BasicModal>
</template>
<script lang="ts" setup>
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import {reactive, unref, onDeactivated, onMounted, ref, computed} from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table';
import { useMessage } from '@/hooks/web/useMessage';
import { useModal } from '@/components/Modal';
import {columns, driveFormSchema, searchSchema} from '@/views/dataSourceManage/driveManage/drive.data.ts';
import { driveListData } from '@/views/dataSourceManage/driveManage/driveData.ts';
import DriverModal from "@/views/dataSourceManage/driveManage/DriveModal.vue";
import { Alert } from 'ant-design-vue';
import {offlineExecuteColumns, offlineExecuteSearchSchema} from "@/views/dataSourceManage/connect/connect.data";
import {offlineTableData} from "@/views/dataSourceManage/connect/connectData";
import AddDataBaseModal from "@/views/dataSourceManage/connect/AddDataBaseModal.vue";
import { BasicUpload } from '@/components/Upload';
import { uploadApi } from '@/api/sys/upload';
defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage();
const [registerAddDataBaseModal, { openModal: openAddDataBaseModal }] = useModal();
const searchInfo = reactive<Recordable>({});
const emit = defineEmits(['success', 'register']);
const tableData = ref([])
const getTitle = computed(() => ('执行'));
const [registerTable, { reload, updateTableDataRecord, getSearchInfo,getForm,getRowSelection }] = useTable({
title: '数据库列表',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: tableData.value.length,
code:'',
message:'',
data: tableData,
};
return { ...response, data: tableData };
},
columns:offlineExecuteColumns,
rowSelection: false,
formConfig: {
labelWidth: 100,
schemas: offlineExecuteSearchSchema,
autoSubmitOnEnter: false,
},
useSearchForm: true,
showTableSetting: false,
showIndexColumn: false,
bordered: true,
actionColumn: {
width: 100,
title: '操作',
dataIndex: 'action',
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({ confirmLoading: false,showOkBtn: false,showCancelBtn: false });
});
/** 新增 按钮 */
async function handleAddButton(record: Recordable) {
openAddDataBaseModal(true, {
});
}
/** 删除 按钮 */
async function handleDelete(record: Recordable) {
createMessage.success('删除成功!');
}
/** 编辑 按钮 */
function handleEdit(record: Recordable) {
openDriverModal(true, {
isUpdate: true,
record: record,
});
}
onMounted(() => {
tableData.value = offlineTableData
});
</script>
......@@ -44,7 +44,11 @@ const getTitle = ref('执行');
/** 确认按钮 */
async function handleSubmit() {
const values = await validate();
createMessage.success('新增成功!')
createMessage.info('正在尝试连接:');
setTimeout(() => {
createMessage.success('连接成功');
}, Math.floor(Math.random() * 2000) + 100)
closeModal()
}
</script>
......@@ -17,6 +17,8 @@
</template>
</template>
</BasicTable>
<!-- 查看日志 弹窗 -->
<LookRecordModal @register="registerLookRecordModal" @success="handleSuccess"/>
</template>
<script lang="ts" setup>
import { reactive,unref,onDeactivated,onMounted,ref } from 'vue';
......@@ -31,14 +33,14 @@ import { useFilterStore } from '@/store/modules/filterData';
import { Button, Radio } from 'ant-design-vue';
import {exportUserList} from "@/api/system/user/user";
import {downloadByData} from "@/utils/file/download";
import LookRecordModal from "@/views/dataSourceManage/connect/LookRecordModal.vue";
defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage();
const filterStore = useFilterStore();
const route = useRoute();
const go = useGo();
const [registerModal, { openModal }] = useModal();
const [registerAddUserModal, { openModal:addUserModal }] = useModal();
const [registerMoveUser, { openModal: openMoveUserModal }] = useModal();
const [registerLookRecordModal, { openModal: openLookRecordModal }] = useModal();
const searchInfo = reactive<Recordable>({});
const tableData = ref([])
const show = ref(true); // 默认展示内容
......@@ -82,9 +84,11 @@ function handleDelete(record: Recordable) {
createMessage.success('删除成功!');
}
/** 查看按钮*/
function LookRecordButton() {
/** 查看日志按钮*/
function LookRecordButton(record: Recordable) {
openLookRecordModal(true, {
record
});
}
/** 下载按钮*/
......
......@@ -198,6 +198,7 @@ export const formSchema: FormSchema[any] = [
},
},
]
// 重命名表单
export const resetNameFormSchema: FormSchema[any] = [
{
......@@ -225,7 +226,7 @@ export const kbr5FormSchema: FormSchema[any] = [
field: 'file',
component: 'Upload',
label: 'Kbr5文件',
rules: [{ required: false, message: '请选择上传文件' }],
rules: [{ required: true, message: '请选择上传文件' }],
componentProps: {
api: uploadApi,
},
......@@ -391,6 +392,7 @@ export const onlineCollectionFormSchema: FormSchema[any] = [
component: 'RadioGroup',
label: '执行方式',
required: true,
defaultValue: '1',
componentProps: {
options: [
{
......@@ -409,3 +411,155 @@ export const onlineCollectionFormSchema: FormSchema[any] = [
},
},
]
// 执行离线采集表头
export const offlineExecuteColumns: BasicColumn[any] = [
{
title: '数据库名称',
dataIndex: 'dataBaseName',
width: 150,
},
{
title: '策略',
dataIndex: 'strategy',
width: 150,
},
];
// 执行离线采集搜索表头
export const offlineExecuteSearchSchema: FormSchema[any] = [
{
field: 'dataBaseName',
label: '',
component: 'Input',
colProps: {span: 7},
},
]
// 查看日志详情表单
export const lookRecordFormSchema: FormSchema[any] = [
{
field: 'dataBase',
label: '数据库',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'node',
label: '节点',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'startTime',
label: '开始时间',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'endTime',
label: '结束时间',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'consumeTime',
label: '耗时',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'collectionStatus',
label: '采集状态',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'dataTableNum',
label: '数据库表总数',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'collectionTableNum',
label: '采集表总数',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'addTableNum',
label: '新增表总数',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'deleteTableNum',
label: '删除表总数',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'updateTableNum',
label: '更新表总数',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
{
field: 'noCollectTableNum',
label: '未采集表总数',
component: 'Input',
componentProps: {
readonly: true,
disabled: true,
}
},
]
//添加数据库表单
export const addDataBaseFormSchema: FormSchema[any] = [
{
field: 'dataBaseName',
label: '数据库',
component: 'Input',
required: true,
},
{
field: 'strategy',
label: '策略',
component: 'Input',
required: true,
},
]
......@@ -71,16 +71,16 @@ export const connectListData: any[] = [
"connectType": "ORACLE",
"authStatus": "未认证",
"foundDataSource": 10,
"executionState": "执行成功",
"collectionType": "详细元数据",
"executionState": "-",
"collectionType": "不采集",
"isPeriodicCheck": "0",
"driveVersion": "oracle11",
"delFlag": "0",
"flag": "1",
"createBy": "admin",
"createDate": "2024-10-27 13:07:07",
"createDate": "-",
"updateBy": "admin",
"updateDate": "2024-10-27 13:07:07",
"updateDate": "-",
"hdfsMap":"hive",
"implementor":'admin',
"collectionRate":'正常'
......@@ -92,16 +92,16 @@ export const connectListData: any[] = [
"connectType": "SQLSERVER",
"authStatus": "可连接",
"foundDataSource": 8,
"executionState": "执行成功",
"collectionType": "详细元数据",
"executionState": "-",
"collectionType": "离线采集",
"isPeriodicCheck": "0",
"driveVersion": "sqlserver4",
"delFlag": "0",
"flag": "1",
"createBy": "admin",
"createDate": "2024-10-28 14:08:08",
"createDate": "-",
"updateBy": "admin",
"updateDate": "2024-10-28 14:08:08",
"updateDate": "-",
"hdfsMap":"hive",
"implementor":'admin',
"collectionRate":'正常'
......@@ -290,3 +290,12 @@ export const recordTableData: any[] = [
"noCollectTableNum":'9',
},
];
// 列表数据
export const offlineTableData: any[] = [
{
"id": 1,
"dataBaseName": '',
"strategy": '',
}
];
......@@ -41,16 +41,19 @@
icon: 'ant-design:caret-right-filled',
// label: '执行',
onClick: handleExecute.bind(null, record),
ifShow: record.collectionType !== '不采集',
},
{
icon: 'ant-design:step-forward-filled',
// label: '停止',
onClick: handleStopConnect.bind(null, record),
ifShow: record.collectionType !== '不采集',
},
{
icon: 'ant-design:save-outlined',
// label: '采集详情',
onClick: handleDetails.bind(null, record),
ifShow: record.collectionType !== '不采集',
},
]"
/>
......@@ -69,8 +72,10 @@
<krb5Modal @register="registerKrb5Modal" @success="handleSuccess"/>
<!-- 数据源关联 弹窗 -->
<DataRelativeModal @register="registerDataRelativeModal" @success="handleSuccess"/>
<!-- 在线执行 弹窗 -->
<!-- 在线采集 弹窗 -->
<OnlineExecuteModal @register="registerOnlineExecuteModal" @success="handleSuccess"/>
<!-- 离线采集 弹窗 -->
<OfflineExecuteModal @register="registerOfflineExecuteModal" @success="handleSuccess"/>
</PageWrapper>
</template>
<script lang="ts" setup>
......@@ -93,6 +98,7 @@
import DataRelativeModal from "@/views/dataSourceManage/connect/DataRelativeModal.vue";
import CollectRecordModal from "@/views/dataSourceManage/connect/CollectRecordModal.vue";
import OnlineExecuteModal from "@/views/dataSourceManage/connect/OnlineExecuteModal.vue";
import OfflineExecuteModal from "@/views/dataSourceManage/connect/OfflineExecuteModal.vue";
import {router} from "@/router";
defineOptions({ name: 'AccountManagement' });
......@@ -107,6 +113,7 @@
const [registerKrb5Modal, {openModal: openKrb5Modal}] = useModal();
const [registerDataRelativeModal, {openModal: openDataRelativeModal}] = useModal();
const [registerOnlineExecuteModal, {openModal: openOnlineExecuteModal}] = useModal();
const [registerOfflineExecuteModal, {openModal: openOfflineExecuteModal}] = useModal();
const [registerTable, { reload, updateTableDataRecord, getSearchInfo,getForm,getRowSelection }] = useTable({
title: '',
api: async (params) => {
......@@ -149,11 +156,17 @@
},
});
/** 在线执行 按钮 */
/** 执行 按钮 */
function handleExecute(data) {
openOnlineExecuteModal(true, {
if (data.collectionType === '离线采集'){
openOfflineExecuteModal(true, {
});
});
}else {
openOnlineExecuteModal(true, {
});
}
}
/** Krb5管理 按钮 */
......
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