Commit 6a4694ea authored by 罗林杰's avatar 罗林杰

Merge remote-tracking branch 'origin/master'

parents 99860068 15526b48
...@@ -3,19 +3,19 @@ ...@@ -3,19 +3,19 @@
* @Description: Multi-language switching component * @Description: Multi-language switching component
--> -->
<template> <template>
<Dropdown <!-- <Dropdown-->
placement="bottom" <!-- placement="bottom"-->
:trigger="['click']" <!-- :trigger="['click']"-->
:dropMenuList="localeList" <!-- :dropMenuList="localeList"-->
:selectedKeys="selectedKeys" <!-- :selectedKeys="selectedKeys"-->
@menu-event="handleMenuEvent" <!-- @menu-event="handleMenuEvent"-->
overlayClassName="app-locale-picker-overlay" <!-- overlayClassName="app-locale-picker-overlay"-->
> <!-- >-->
<span class="cursor-pointer flex items-center"> <!-- <span class="cursor-pointer flex items-center">-->
<Icon icon="ion:language" /> <!-- <Icon icon="ion:language" />-->
<span v-if="showText" class="ml-1">{{ getLocaleText }}</span> <!-- <span v-if="showText" class="ml-1">{{ getLocaleText }}</span>-->
</span> <!-- </span>-->
</Dropdown> <!-- </Dropdown>-->
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import type { LocaleType } from '#/config'; import type { LocaleType } from '#/config';
......
...@@ -8,26 +8,26 @@ ...@@ -8,26 +8,26 @@
export default defineComponent({ export default defineComponent({
name: 'AppSearch', name: 'AppSearch',
setup() { setup() {
const showModal = ref(false); // const showModal = ref(false);
const { t } = useI18n(); // const { t } = useI18n();
//
// function changeModal(show: boolean) {
// showModal.value = show;
// }
function changeModal(show: boolean) { // return () => {
showModal.value = show; // return (
} // <div class="p-1" onClick={changeModal.bind(null, true)}>
// <Tooltip>
return () => { // {{
return ( // title: () => t('common.searchText'),
<div class="p-1" onClick={changeModal.bind(null, true)}> // default: () => <SearchOutlined />,
<Tooltip> // }}
{{ // </Tooltip>
title: () => t('common.searchText'), // <AppSearchModal onClose={changeModal.bind(null, false)} visible={unref(showModal)} />
default: () => <SearchOutlined />, // </div>
}} // );
</Tooltip> // };
<AppSearchModal onClose={changeModal.bind(null, false)} visible={unref(showModal)} />
</div>
);
};
}, },
}); });
</script> </script>
...@@ -44,8 +44,9 @@ ...@@ -44,8 +44,9 @@
<a-button type="primary" @click="handleSelect(4)" style="margin-right: 10px">{{ <a-button type="primary" @click="handleSelect(4)" style="margin-right: 10px">{{
t('layout.header.model4') t('layout.header.model4')
}}</a-button> }}</a-button>
<a-button type="primary" @click="handleClick">{{ <!-- 前往体验新版-->
t('layout.header.upgrade-prompt.ok-text') <!-- <a-button type="primary" @click="handleClick">{{-->
}}</a-button> <!-- t('layout.header.upgrade-prompt.ok-text')-->
<!-- }}</a-button>-->
</div> </div>
</template> </template>
<template> <template>
<div :class="prefixCls"> <div :class="prefixCls">
<Popover title="" trigger="click" :overlayClassName="`${prefixCls}__overlay`"> <!-- <Popover title="" trigger="click" :overlayClassName="`${prefixCls}__overlay`">-->
<Badge :count="count" dot :numberStyle="numberStyle"> <!-- <Badge :count="count" dot :numberStyle="numberStyle">-->
<BellOutlined /> <!-- <BellOutlined />-->
</Badge> <!-- </Badge>-->
<template #content> <!-- <template #content>-->
<Tabs> <!-- <Tabs>-->
<template v-for="item in listData" :key="item.key"> <!-- <template v-for="item in listData" :key="item.key">-->
<Tabs.TabPane> <!-- <Tabs.TabPane>-->
<template #tab> <!-- <template #tab>-->
{{ item.name }} <!-- {{ item.name }}-->
<span v-if="item.list.length !== 0">({{ item.list.length }})</span> <!-- <span v-if="item.list.length !== 0">({{ item.list.length }})</span>-->
</template> <!-- </template>-->
<!-- 绑定title-click事件的通知列表中标题是“可点击”的--> <!-- &lt;!&ndash; 绑定title-click事件的通知列表中标题是“可点击”的&ndash;&gt;-->
<NoticeList :list="item.list" v-if="item.key === '1'" @title-click="onNoticeClick" /> <!-- <NoticeList :list="item.list" v-if="item.key === '1'" @title-click="onNoticeClick" />-->
<NoticeList :list="item.list" v-else /> <!-- <NoticeList :list="item.list" v-else />-->
</Tabs.TabPane> <!-- </Tabs.TabPane>-->
</template> <!-- </template>-->
</Tabs> <!-- </Tabs>-->
</template> <!-- </template>-->
</Popover> <!-- </Popover>-->
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
......
...@@ -11,25 +11,25 @@ ...@@ -11,25 +11,25 @@
<template #overlay> <template #overlay>
<Menu @click="handleMenuClick"> <Menu @click="handleMenuClick">
<MenuItem <!-- <MenuItem-->
key="doc" <!-- key="doc"-->
:text="t('layout.header.dropdownItemDoc')" <!-- :text="t('layout.header.dropdownItemDoc')"-->
icon="ion:document-text-outline" <!-- icon="ion:document-text-outline"-->
v-if="getShowDoc" <!-- v-if="getShowDoc"-->
/> <!-- />-->
<Menu.Divider v-if="getShowDoc" /> <Menu.Divider v-if="getShowDoc" />
<MenuItem <!-- <MenuItem-->
v-if="getShowApi" <!-- v-if="getShowApi"-->
key="api" <!-- key="api"-->
:text="t('layout.header.dropdownChangeApi')" <!-- :text="t('layout.header.dropdownChangeApi')"-->
icon="ant-design:swap-outlined" <!-- icon="ant-design:swap-outlined"-->
/> <!-- />-->
<MenuItem <!-- <MenuItem-->
v-if="getUseLockPage" <!-- v-if="getUseLockPage"-->
key="lock" <!-- key="lock"-->
:text="t('layout.header.tooltipLock')" <!-- :text="t('layout.header.tooltipLock')"-->
icon="ion:lock-closed-outline" <!-- icon="ion:lock-closed-outline"-->
/> <!-- />-->
<MenuItem <MenuItem
key="logout" key="logout"
:text="t('layout.header.dropdownItemLoginOut')" :text="t('layout.header.dropdownItemLoginOut')"
......
<template>
<BasicModal
width="40%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<!-- <div class="modal_top">
<div><Icon icon="ant-design:hdd-outlined" :size="30" :color="'#1091FE'" /></div>
<div>
<div class="title">{{ formParams.fieldName }}</div>
<div class="path">{{ formParams.path }}</div>
</div>
</div> -->
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { formSchema } from './classificationAndGrading.data';
import Icon from '@/components/Icon/Icon.vue';
import { useMessage } from '@/hooks/web/useMessage';
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const rowId = ref('');
const formParams = ref('');
const title = ref();
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 24, md: 24 },
schemas: formSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
isUpdate.value = data.isUpdate;
if (data.isUpdate === false) {
title.value = '新增分类分级';
updateSchema([
{ field: 'sensitiveState', required: true, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: true, componentProps: { disabled: false } },
{ field: 'level', required: true, componentProps: { disabled: false } },
]);
} else {
title.value = '编辑分类分级';
updateSchema([
{ field: 'sensitiveState', required: false, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: false, componentProps: { disabled: false } },
{ field: 'level', required: false, componentProps: { disabled: false } },
]);
}
setModalProps({ confirmLoading: false });
formParams.value = data.record;
setFieldsValue({
...data.record,
});
});
async function handleSubmit() {
try {
const values = await validate();
setModalProps({ confirmLoading: true });
// TODO custom api
closeModal();
if (isUpdate.value) {
createMessage.success('编辑成功');
}
emit('success', { isUpdate: unref(isUpdate), values: { ...values, id: rowId.value } });
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>
<style lang="scss" scoped>
.modal_top {
display: flex;
align-items: center;
padding: 0 0 20px 20px;
.title {
font-size: 16px;
font-weight: 500;
}
}
</style>
<template>
<BasicModal
width="40%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<!-- <div class="modal_top">
<div><Icon icon="ant-design:hdd-outlined" :size="30" :color="'#1091FE'" /></div>
<div>
<div class="title">{{ formParams.fieldName }}</div>
<div class="path">{{ formParams.path }}</div>
</div>
</div> -->
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { formSchema } from './classificationAndGrading.data';
import Icon from '@/components/Icon/Icon.vue';
import { useMessage } from '@/hooks/web/useMessage';
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const rowId = ref('');
const formParams = ref('');
const title = ref();
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 24, md: 24 },
schemas: formSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
isUpdate.value = data.isUpdate;
if (data.isUpdate === false) {
title.value = '新增分类分级';
updateSchema([
{ field: 'sensitiveState', required: true, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: true, componentProps: { disabled: false } },
{ field: 'level', required: true, componentProps: { disabled: false } },
]);
} else {
title.value = '编辑分类分级';
updateSchema([
{ field: 'sensitiveState', required: false, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: false, componentProps: { disabled: false } },
{ field: 'level', required: false, componentProps: { disabled: false } },
]);
}
setModalProps({ confirmLoading: false });
formParams.value = data.record;
setFieldsValue({
...data.record,
});
});
async function handleSubmit() {
try {
const values = await validate();
setModalProps({ confirmLoading: true });
// TODO custom api
closeModal();
if (isUpdate.value) {
createMessage.success('编辑成功');
}
emit('success', { isUpdate: unref(isUpdate), values: { ...values, id: rowId.value } });
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>
<style lang="scss" scoped>
.modal_top {
display: flex;
align-items: center;
padding: 0 0 20px 20px;
.title {
font-size: 16px;
font-weight: 500;
}
}
</style>
<template>
<BasicModal
width="40%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<!-- <div class="modal_top">
<div><Icon icon="ant-design:hdd-outlined" :size="30" :color="'#1091FE'" /></div>
<div>
<div class="title">{{ formParams.fieldName }}</div>
<div class="path">{{ formParams.path }}</div>
</div>
</div> -->
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { formSchema } from './classificationAndGrading.data';
import Icon from '@/components/Icon/Icon.vue';
import { useMessage } from '@/hooks/web/useMessage';
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const rowId = ref('');
const formParams = ref('');
const title = ref();
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 24, md: 24 },
schemas: formSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
isUpdate.value = data.isUpdate;
if (data.isUpdate === false) {
title.value = '新增分类分级';
updateSchema([
{ field: 'sensitiveState', required: true, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: true, componentProps: { disabled: false } },
{ field: 'level', required: true, componentProps: { disabled: false } },
]);
} else {
title.value = '编辑分类分级';
updateSchema([
{ field: 'sensitiveState', required: false, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: false, componentProps: { disabled: false } },
{ field: 'level', required: false, componentProps: { disabled: false } },
]);
}
setModalProps({ confirmLoading: false });
formParams.value = data.record;
setFieldsValue({
...data.record,
});
});
async function handleSubmit() {
try {
const values = await validate();
setModalProps({ confirmLoading: true });
// TODO custom api
closeModal();
if (isUpdate.value) {
createMessage.success('编辑成功');
}
emit('success', { isUpdate: unref(isUpdate), values: { ...values, id: rowId.value } });
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>
<style lang="scss" scoped>
.modal_top {
display: flex;
align-items: center;
padding: 0 0 20px 20px;
.title {
font-size: 16px;
font-weight: 500;
}
}
</style>
<template>
<BasicModal
width="40%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<!-- <div class="modal_top">
<div><Icon icon="ant-design:hdd-outlined" :size="30" :color="'#1091FE'" /></div>
<div>
<div class="title">{{ formParams.fieldName }}</div>
<div class="path">{{ formParams.path }}</div>
</div>
</div> -->
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { formSchema } from './classificationAndGrading.data';
import Icon from '@/components/Icon/Icon.vue';
import { useMessage } from '@/hooks/web/useMessage';
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const rowId = ref('');
const formParams = ref('');
const title = ref();
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 24, md: 24 },
schemas: formSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
isUpdate.value = data.isUpdate;
if (data.isUpdate === false) {
title.value = '新增分类分级';
updateSchema([
{ field: 'sensitiveState', required: true, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: true, componentProps: { disabled: false } },
{ field: 'level', required: true, componentProps: { disabled: false } },
]);
} else {
title.value = '编辑分类分级';
updateSchema([
{ field: 'sensitiveState', required: false, componentProps: { disabled: false } },
{ field: 'sensitiveType', required: false, componentProps: { disabled: false } },
{ field: 'level', required: false, componentProps: { disabled: false } },
]);
}
setModalProps({ confirmLoading: false });
formParams.value = data.record;
setFieldsValue({
...data.record,
});
});
async function handleSubmit() {
try {
const values = await validate();
setModalProps({ confirmLoading: true });
// TODO custom api
closeModal();
if (isUpdate.value) {
createMessage.success('编辑成功');
}
emit('success', { isUpdate: unref(isUpdate), values: { ...values, id: rowId.value } });
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>
<style lang="scss" scoped>
.modal_top {
display: flex;
align-items: center;
padding: 0 0 20px 20px;
.title {
font-size: 16px;
font-weight: 500;
}
}
</style>
...@@ -7,6 +7,10 @@ export const tableList: any[] = [ ...@@ -7,6 +7,10 @@ export const tableList: any[] = [
ip: '127.0.0.1', ip: '127.0.0.1',
protectAction: '阻断', protectAction: '阻断',
markTime: '2023-12-08 15:27:07', markTime: '2023-12-08 15:27:07',
fieldName: 'user',
featureTraffic: '1000',
api: 'login',
url: 'https://www.badu.com',
}, },
{ {
id: '2', id: '2',
...@@ -14,6 +18,10 @@ export const tableList: any[] = [ ...@@ -14,6 +18,10 @@ export const tableList: any[] = [
ip: '127.0.0.1', ip: '127.0.0.1',
protectAction: '阻断', protectAction: '阻断',
markTime: '2023-12-08 15:06:44', markTime: '2023-12-08 15:06:44',
fieldName: 'user',
featureTraffic: '1000',
api: 'login',
url: 'https://www.badu.com',
}, },
{ {
id: '3', id: '3',
...@@ -21,6 +29,10 @@ export const tableList: any[] = [ ...@@ -21,6 +29,10 @@ export const tableList: any[] = [
ip: '127.0.0.1', ip: '127.0.0.1',
protectAction: '阻断', protectAction: '阻断',
markTime: '2023-12-08 15:48:56', markTime: '2023-12-08 15:48:56',
fieldName: 'user',
featureTraffic: '1000',
api: 'login',
url: 'https://www.badu.com',
}, },
{ {
id: '4', id: '4',
...@@ -28,5 +40,9 @@ export const tableList: any[] = [ ...@@ -28,5 +40,9 @@ export const tableList: any[] = [
ip: '127.0.0.1', ip: '127.0.0.1',
protectAction: '阻断', protectAction: '阻断',
markTime: '2023-12-08 15:27:07', markTime: '2023-12-08 15:27:07',
fieldName: 'user',
featureTraffic: '1000',
api: 'login',
url: 'https://www.badu.com',
}, },
]; ];
This diff is collapsed.
<template>
<PageWrapper>
<BasicTable @register="registerTable" />
</PageWrapper>
</template>
<script lang="ts" setup>
import PageWrapper from '@/components/Page/src/PageWrapper.vue';
import BasicTable from '@/components/Table/src/BasicTable.vue';
import { useTable } from '@/components/Table';
import { IPTableList } from './viewData';
import { IPColumns } from './view.data';
const [
registerTable,
{ reload, updateTableDataRecord, getSearchInfo, getForm, getRowSelection },
] = useTable({
scroll: { y: 500 },
api: async (params) => {
const response = {
pageNu: '1',
pageSize: '10',
pages: '1',
total: IPTableList.length,
code: '',
message: '',
data: IPTableList,
};
return { ...response };
},
rowKey: 'businessId',
rowSelection: false,
pagination: false,
showIndexColumn: false,
columns: IPColumns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
});
</script>
<style scoped></style>
<template>
<PageWrapper>
<BasicTable @register="registerTable" />
</PageWrapper>
</template>
<script lang="ts" setup>
import PageWrapper from '@/components/Page/src/PageWrapper.vue';
import BasicTable from '@/components/Table/src/BasicTable.vue';
import { useTable } from '@/components/Table';
import { useByTableList } from './viewData';
import { useByColumns } from './view.data';
const [
registerTable,
{ reload, updateTableDataRecord, getSearchInfo, getForm, getRowSelection },
] = useTable({
scroll: { y: 500 },
api: async (params) => {
const response = {
pageNu: '1',
pageSize: '10',
pages: '1',
total: useByTableList.length,
code: '',
message: '',
data: useByTableList,
};
return { ...response };
},
rowKey: 'businessId',
rowSelection: false,
pagination: false,
showIndexColumn: false,
columns: useByColumns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
}) ;
</script>
<style scoped></style>
<template>
<PageWrapper>
<BasicTable @register="registerTable" />
</PageWrapper>
</template>
<script lang="ts" setup>
import PageWrapper from '@/components/Page/src/PageWrapper.vue';
import BasicTable from '@/components/Table/src/BasicTable.vue';
import { useTable } from '@/components/Table';
import { errorTableList } from './viewData';
import { errorColumns } from './view.data';
const [
registerTable,
{ reload, updateTableDataRecord, getSearchInfo, getForm, getRowSelection },
] = useTable({
scroll: { y: 500 },
api: async (params) => {
const response = {
pageNu: '1',
pageSize: '10',
pages: '1',
total: errorTableList.length,
code: '',
message: '',
data: errorTableList,
};
return { ...response };
},
rowKey: 'businessId',
rowSelection: false,
pagination: false,
showIndexColumn: false,
columns: errorColumns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
}) ;
</script>
<style scoped></style>
<template>
<PageWrapper>
<BasicTable @register="registerTable" />
</PageWrapper>
</template>
<script lang="ts" setup>
import PageWrapper from '@/components/Page/src/PageWrapper.vue';
import BasicTable from '@/components/Table/src/BasicTable.vue';
import { useTable } from '@/components/Table';
import { totalTableList } from './viewData';
import { totalColumns } from './view.data';
const [
registerTable,
{ reload, updateTableDataRecord, getSearchInfo, getForm, getRowSelection },
] = useTable({
scroll: { y: 500 },
api: async (params) => {
const response = {
pageNu: '1',
pageSize: '10',
pages: '1',
total: totalTableList.length,
code: '',
message: '',
data: totalTableList,
};
return { ...response };
},
rowKey: 'businessId',
rowSelection: false,
pagination: false,
showIndexColumn: false,
columns: totalColumns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
}) ;
</script>
<style scoped></style>
export const totalColumns = [
{
title: '排名',
dataIndex: 'ranking',
},
{
title: 'API名称',
dataIndex: 'apiName',
},
{
title: '调用次数',
dataIndex: 'useNum',
},
{
title: '响应时间',
dataIndex: 'responseTime',
},
];
export const errorColumns = [
{
title: '排名',
dataIndex: 'ranking',
},
{
title: 'API名称',
dataIndex: 'apiName',
},
{
title: '调用次数',
dataIndex: 'useNum',
},
{
title: '调用失败率',
dataIndex: 'useError',
},
{
title: '响应时间',
dataIndex: 'responseTime',
},
];
export const useByColumns = [
{
title: '排名',
dataIndex: 'ranking',
},
{
title: '调用方',
dataIndex: 'useBy',
},
{
title: '调用次数',
dataIndex: 'useNum',
},
];
export const IPColumns = [
{
title: '排名',
dataIndex: 'ranking',
},
{
title: 'IP地址',
dataIndex: 'ipAddress',
},
{
title: '调用次数',
dataIndex: 'useNum',
},
];
export const totalTableList = [
{
ranking: '1',
apiName: 'oracle_sql',
useNum: '1次',
responseTime: '2030ms',
},{
ranking: '2',
apiName: 'test',
useNum: '2次',
responseTime: '12ms',
},
];
export const errorTableList = [
{
ranking: '1',
apiName: 'oracle_sql',
useNum: '1次',
useError: '100%',
responseTime: '2030ms',
},{
ranking: '2',
apiName: 'test',
useNum: '2次',
useError: '0%',
responseTime: '12ms',
},
];
export const useByTableList = [
{
ranking: '1',
useBy: 'admin',
useNum: '2',
},
{
ranking: '2',
useBy: 'user',
useNum: '1',
},
];
export const IPTableList = [
{
ranking: '1',
ipAddress: '172.26.5.31',
useNum: '2',
},
{
ranking: '2',
ipAddress: '172.18.30.18',
useNum: '1',
},
];
<template> <template>
<PageWrapper title="供电单位用电量" contentFullHeight fixedHeight > <PageWrapper title="供电单位用电量" fixedHeight>
<template #extra> <template #extra>
<a-button type="primary" @click="handleLog">调用日志</a-button> <a-button type="primary" @click="handleLog">调用日志</a-button>
</template> </template>
...@@ -9,7 +8,11 @@ ...@@ -9,7 +8,11 @@
<ModelTree class="w-1/4 xl:w-1/5" @select="handleSelect" /> <ModelTree class="w-1/4 xl:w-1/5" @select="handleSelect" />
<div class="w-3/4 xl:w-4/5"> <div class="w-3/4 xl:w-4/5">
<div style="display: flex; flex-direction: column"> <div style="display: flex; flex-direction: column">
<BasicTable @register="registerTable" :searchInfo="searchInfo" :rowSelection="rowSelection"> <BasicTable
@register="registerTable"
:searchInfo="searchInfo"
:rowSelection="rowSelection"
>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
...@@ -50,7 +53,6 @@ ...@@ -50,7 +53,6 @@
</div> </div>
</div> </div>
</div> </div>
</template> </template>
</PageWrapper> </PageWrapper>
</template> </template>
...@@ -80,7 +82,7 @@ ...@@ -80,7 +82,7 @@
const APIRate = ref('375'); const APIRate = ref('375');
const [ const [
registerTable, registerTable,
{ reload, updateTableDataRecord, getSearchInfo, getForm, getRowSelection }, { reload, updateTableDataRecord, setTableData, getSearchInfo, getForm, getRowSelection },
] = useTable({ ] = useTable({
title: '执行中请求', title: '执行中请求',
scroll: { y: 500 }, scroll: { y: 500 },
...@@ -125,27 +127,12 @@ ...@@ -125,27 +127,12 @@
}, },
}); });
function handleImport() {
openImportModal(true, {});
}
function handleLog() { function handleLog() {
router.push({ router.push({
path: '/dataService/serviceMonitor/useLog', path: '/dataService/serviceMonitor/useLog',
}); });
} }
function handleDeleteIds() {
createConfirm({
iconType: 'warning',
title: '确认删除',
content: '确认批量删除选中数据吗?',
onOk() {
createMessage.success('批量删除成功!');
},
});
}
/** 部门树的select*/ /** 部门树的select*/
function handleSelect(key) { function handleSelect(key) {
if (key !== null && key !== undefined) { if (key !== null && key !== undefined) {
......
...@@ -7,7 +7,7 @@ export const searchFormSchema: FormSchema[] = [ ...@@ -7,7 +7,7 @@ export const searchFormSchema: FormSchema[] = [
field: 'APIName', field: 'APIName',
label: '调用方', label: '调用方',
component: 'Select', component: 'Select',
colProps: { span: 4 }, colProps: { span: 8 },
componentProps: { componentProps: {
options: [ options: [
{ value: 'admin', label: 'admin' }, { value: 'admin', label: 'admin' },
...@@ -21,7 +21,7 @@ export const searchFormSchema: FormSchema[] = [ ...@@ -21,7 +21,7 @@ export const searchFormSchema: FormSchema[] = [
field: 'callTime', field: 'callTime',
label: '调用时间', label: '调用时间',
component: 'RangePicker', component: 'RangePicker',
colProps: { span: 4 }, colProps: { span: 8 },
defaultValue: [moment().subtract(7, 'days').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')], defaultValue: [moment().subtract(7, 'days').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')],
componentProps: { componentProps: {
...@@ -31,7 +31,7 @@ export const searchFormSchema: FormSchema[] = [ ...@@ -31,7 +31,7 @@ export const searchFormSchema: FormSchema[] = [
field: 'callUseTime', field: 'callUseTime',
label: '调用有效期', label: '调用有效期',
component: 'DatePicker', component: 'DatePicker',
colProps: { span: 4 }, colProps: { span: 8 },
}, },
]; ];
......
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