优化 监控中心 前台页面
This commit is contained in:
@@ -149,7 +149,7 @@ export const formSchema = [
|
|||||||
component: 'NsInput',
|
component: 'NsInput',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请输入',
|
placeholder: '请输入',
|
||||||
maxLength: 32,
|
maxLength: 20,
|
||||||
},
|
},
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
@@ -410,25 +410,26 @@ export const tableConfigCal = (
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
isCarbon
|
{
|
||||||
? {
|
label: '关联因子值',
|
||||||
label: '关联因子值',
|
name: 'SetFactor',
|
||||||
name: 'SetFactor',
|
type: 'primary',
|
||||||
type: 'primary',
|
dynamicDisabled: (data: any) => {
|
||||||
dynamicDisabled: (data: any) => {
|
return data.list.length === 0;
|
||||||
return data.list.length === 0;
|
},
|
||||||
},
|
ifShow: (data: any) => {
|
||||||
handle: ({ list }) => {
|
return isCarbon;
|
||||||
// 过滤出 id 大于 0 的项
|
},
|
||||||
const filteredList = list.filter(({ id }) => id > 0);
|
handle: ({ list }) => {
|
||||||
|
// 过滤出 id 大于 0 的项
|
||||||
|
const filteredList = list.filter(({ id }) => id > 0);
|
||||||
|
|
||||||
// 提取出 id 值
|
// 提取出 id 值
|
||||||
const ids = filteredList.map(({ id }) => id);
|
const ids = filteredList.map(({ id }) => id);
|
||||||
|
|
||||||
setFactorRef.value.toggle(ids);
|
setFactorRef.value.toggle(ids);
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
: {},
|
|
||||||
{
|
{
|
||||||
label: '批量删除',
|
label: '批量删除',
|
||||||
name: 'GroupPointDelete',
|
name: 'GroupPointDelete',
|
||||||
@@ -518,10 +519,29 @@ export const tableConfigCal = (
|
|||||||
actions: [
|
actions: [
|
||||||
{
|
{
|
||||||
label: '关联因子',
|
label: '关联因子',
|
||||||
|
// label: (record) => {
|
||||||
|
// // 根据record的某个字段值判断显示'关联因子'或'修改因子'
|
||||||
|
// return record.emissionFactor ? '修改因子' : '关联因子';
|
||||||
|
// },
|
||||||
name: 'SetFactor',
|
name: 'SetFactor',
|
||||||
dynamicDisabled: (record) => {
|
ifShow: (record) => {
|
||||||
// 这里根据record的某个字段值判断是否禁用删除按钮
|
// 这里根据record的某个字段值判断是否禁用删除按钮
|
||||||
return record.id < 0;
|
return isCarbon && record.id >= 0 && !record.emissionFactor;
|
||||||
|
},
|
||||||
|
handle: (row) => {
|
||||||
|
setFactorRef.value.toggle([row.id]);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '修改关联',
|
||||||
|
// label: (record) => {
|
||||||
|
// // 根据record的某个字段值判断显示'关联因子'或'修改因子'
|
||||||
|
// return record.emissionFactor ? '修改因子' : '关联因子';
|
||||||
|
// },
|
||||||
|
name: 'SetFactor',
|
||||||
|
ifShow: (record) => {
|
||||||
|
// 这里根据record的某个字段值判断是否禁用删除按钮
|
||||||
|
return isCarbon && record.id >= 0 && record.emissionFactor;
|
||||||
},
|
},
|
||||||
handle: (row) => {
|
handle: (row) => {
|
||||||
setFactorRef.value.toggle([row.id]);
|
setFactorRef.value.toggle([row.id]);
|
||||||
@@ -530,9 +550,9 @@ export const tableConfigCal = (
|
|||||||
{
|
{
|
||||||
label: '删除',
|
label: '删除',
|
||||||
name: 'GroupPointDelete',
|
name: 'GroupPointDelete',
|
||||||
dynamicDisabled: (record) => {
|
ifShow: (record) => {
|
||||||
// 这里根据record的某个字段值判断是否禁用删除按钮
|
// 这里根据record的某个字段值判断是否禁用删除按钮
|
||||||
return record.id < 0;
|
return record.id >= 0;
|
||||||
},
|
},
|
||||||
dynamicParams: isCarbon
|
dynamicParams: isCarbon
|
||||||
? {
|
? {
|
||||||
@@ -797,7 +817,7 @@ export const editCarbonEquipmentConfig = (orgId) => {
|
|||||||
],
|
],
|
||||||
params: {},
|
params: {},
|
||||||
},
|
},
|
||||||
// pagination: { pageSizeOptions: false },
|
pagination: true,
|
||||||
rowKey: 'deviceInfoCode',
|
rowKey: 'deviceInfoCode',
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@@ -9,7 +9,9 @@
|
|||||||
:cancel="() => (visible = false)"
|
:cancel="() => (visible = false)"
|
||||||
placement="right">
|
placement="right">
|
||||||
<div class="drawerContainer">
|
<div class="drawerContainer">
|
||||||
<ns-tree-api v-bind="config" @select="treeSelect" />
|
<div style="padding: 10px; border: 1px solid #d9d9d9; border-radius: 4px">
|
||||||
|
<ns-tree-api v-bind="config" @select="treeSelect" />
|
||||||
|
</div>
|
||||||
<a-transfer
|
<a-transfer
|
||||||
v-model:target-keys="targetKeys"
|
v-model:target-keys="targetKeys"
|
||||||
:data-source="dataSource"
|
:data-source="dataSource"
|
||||||
|
@@ -120,4 +120,7 @@
|
|||||||
right: 50px; /* Adjust based on your modal's positioning */
|
right: 50px; /* Adjust based on your modal's positioning */
|
||||||
// z-index: 1050; /* Ensure it's above the modal's backdrop */
|
// z-index: 1050; /* Ensure it's above the modal's backdrop */
|
||||||
}
|
}
|
||||||
|
::v-deep .ant-table-pagination.ant-pagination {
|
||||||
|
margin: 26px 0 !important; /* 根据需要调整 padding 大小 */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -22,7 +22,9 @@
|
|||||||
? 'fenzujiedian'
|
? 'fenzujiedian'
|
||||||
: 'jisuanjiedian'
|
: 'jisuanjiedian'
|
||||||
" />
|
" />
|
||||||
<span style="padding-left: 8px">{{ data.pointName }}</span>
|
<span style="padding-left: 8px" :title="data.pointName">
|
||||||
|
{{ truncatedName(data.pointName) }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<a-dropdown>
|
<a-dropdown>
|
||||||
<ns-icon name="actionMore" size="14" class="actionMore" />
|
<ns-icon name="actionMore" size="14" class="actionMore" />
|
||||||
@@ -52,15 +54,7 @@
|
|||||||
v-show="!defaultType && isCarbon"
|
v-show="!defaultType && isCarbon"
|
||||||
class="table"
|
class="table"
|
||||||
v-bind="configCarbon"
|
v-bind="configCarbon"
|
||||||
ref="tableCalRef">
|
ref="tableCalRef" />
|
||||||
<!-- <template #bodyCell="{ column, record }">
|
|
||||||
<template v-if="column.title === '操作'">
|
|
||||||
<a-button type="link" @click="setStandard(record)" v-if="record.id != selectedKey[0]"
|
|
||||||
>设为目标值</a-button
|
|
||||||
>
|
|
||||||
</template>
|
|
||||||
</template> -->
|
|
||||||
</ns-view-list-table>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
@@ -208,6 +202,12 @@
|
|||||||
const res = actions.filter(({ key, name }) => list.includes(key) && checkAllPermission(name));
|
const res = actions.filter(({ key, name }) => list.includes(key) && checkAllPermission(name));
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
const truncatedName = (name) => {
|
||||||
|
if (name.length > 8) {
|
||||||
|
return name.substring(0, 8) + '...';
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
};
|
||||||
const actionList = [
|
const actionList = [
|
||||||
{ title: '新增子节点', name: 'GroupAdd', key: 'addNodeSon', func: (data) => addNodeSon(data) },
|
{ title: '新增子节点', name: 'GroupAdd', key: 'addNodeSon', func: (data) => addNodeSon(data) },
|
||||||
{ title: '编辑', name: 'GroupEdit', key: 'editNode', func: (data) => editNode(data) },
|
{ title: '编辑', name: 'GroupEdit', key: 'editNode', func: (data) => editNode(data) },
|
||||||
|
@@ -155,7 +155,7 @@
|
|||||||
chartInstance.setOption(option);
|
chartInstance.setOption(option);
|
||||||
};
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// draw();
|
draw();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 下载图表
|
// 下载图表
|
||||||
|
@@ -32,9 +32,9 @@
|
|||||||
<ns-icon :name="iconName" size="18" style="margin-right: 10px" @click="change" />
|
<ns-icon :name="iconName" size="18" style="margin-right: 10px" @click="change" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span style="padding-left: 10px; line-height: 20px"
|
<span style="padding-left: 10px; line-height: 20px">
|
||||||
><ns-icon name="title" size="11" style="margin-right: 3px" />统计数据</span
|
<ns-icon name="title" size="11" style="margin-right: 3px" />统计数据
|
||||||
>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="activeKey == '1'" style="height: 72%; width: 100%">
|
<div v-if="activeKey == '1'" style="height: 72%; width: 100%">
|
||||||
|
@@ -171,7 +171,7 @@
|
|||||||
// 日期类型
|
// 日期类型
|
||||||
const dateTypeValue = ref();
|
const dateTypeValue = ref();
|
||||||
|
|
||||||
const frequencyValue = ref();
|
const frequencyValue = ref(0);
|
||||||
|
|
||||||
const activeKey = ref('1');
|
const activeKey = ref('1');
|
||||||
|
|
||||||
@@ -284,13 +284,13 @@
|
|||||||
const getSelectGraph = (key: any) => {
|
const getSelectGraph = (key: any) => {
|
||||||
if (key) {
|
if (key) {
|
||||||
activeKey.value = key;
|
activeKey.value = key;
|
||||||
if (
|
// if (
|
||||||
pageData.graphTableList.length > 0 &&
|
// pageData.graphTableList.length > 0 &&
|
||||||
pageData.graphTableColumns.length > 0 &&
|
// pageData.graphTableColumns.length > 0 &&
|
||||||
pageData.graphGraphList.length > 0
|
// pageData.graphGraphList.length > 0
|
||||||
) {
|
// ) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
let startTime = '';
|
let startTime = '';
|
||||||
@@ -364,9 +364,9 @@
|
|||||||
const getSelectAnalyse = (key: any) => {
|
const getSelectAnalyse = (key: any) => {
|
||||||
if (key) {
|
if (key) {
|
||||||
activeKey.value = key;
|
activeKey.value = key;
|
||||||
if (pageData.analysisGraphList.length > 0 && pageData.analysisTableList.length > 0) {
|
// if (pageData.analysisGraphList.length > 0 && pageData.analysisTableList.length > 0) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
let startTime = '';
|
let startTime = '';
|
||||||
let endTime = '';
|
let endTime = '';
|
||||||
|
@@ -811,6 +811,26 @@
|
|||||||
lineHeight: 20,
|
lineHeight: 20,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
dataZoom: [
|
||||||
|
{
|
||||||
|
show: true,
|
||||||
|
type: 'slider',
|
||||||
|
zoomLock: true,
|
||||||
|
startValue: 0, // 从头开始。
|
||||||
|
endValue: 23,
|
||||||
|
bottom: 20,
|
||||||
|
height: 10,
|
||||||
|
showDetail: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
show: true,
|
||||||
|
type: 'inside',
|
||||||
|
xAxisIndex: 0,
|
||||||
|
zoomOnMouseWheel: false, // 滚轮是否触发缩放
|
||||||
|
moveOnMouseMove: true, // 鼠标滚轮触发滚动
|
||||||
|
moveOnMouseWheel: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
visualMap: {
|
visualMap: {
|
||||||
show: false,
|
show: false,
|
||||||
min: min,
|
min: min,
|
||||||
|
@@ -4,10 +4,14 @@ export const tableColumns = [
|
|||||||
customRender: (text: any) => {
|
customRender: (text: any) => {
|
||||||
return text.index + 1;
|
return text.index + 1;
|
||||||
},
|
},
|
||||||
|
width: 150,
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '时间',
|
title: '时间',
|
||||||
dataIndex: 'time',
|
dataIndex: 'time',
|
||||||
|
width: 150,
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: '温度(℃)',
|
// title: '温度(℃)',
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
bordered
|
bordered
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
style="height: 75%"
|
style="height: 75%"
|
||||||
:scroll="{ x: 100, y: 450 }">
|
:scroll="{ x: 200, y: 450 }">
|
||||||
<template #title>
|
<template #title>
|
||||||
<div
|
<div
|
||||||
style="display: flex; align-items: center; justify-content: space-between; width: 100%">
|
style="display: flex; align-items: center; justify-content: space-between; width: 100%">
|
||||||
@@ -84,6 +84,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
const x = ref(1200);
|
||||||
|
|
||||||
const typeList = ref();
|
const typeList = ref();
|
||||||
// 采集频率
|
// 采集频率
|
||||||
@@ -181,8 +182,11 @@
|
|||||||
tableColumnsB.push({
|
tableColumnsB.push({
|
||||||
title: headerList[i],
|
title: headerList[i],
|
||||||
dataIndex: headerList[i],
|
dataIndex: headerList[i],
|
||||||
|
width: 150,
|
||||||
|
align: 'center',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
x.value = 300 + headerList.length * 150;
|
||||||
let columnA: any[] = [...tableColumnsA];
|
let columnA: any[] = [...tableColumnsA];
|
||||||
columnA.push(...tableColumnsB);
|
columnA.push(...tableColumnsB);
|
||||||
tableColumns.value = columnA;
|
tableColumns.value = columnA;
|
||||||
@@ -222,7 +226,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
::v-deep .ant-table-container {
|
::v-deep .ant-table-container {
|
||||||
padding: 0px 16px;
|
margin: 0px 16px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -233,4 +237,7 @@
|
|||||||
::v-deep .ant-table.ant-table-bordered > .ant-table-title {
|
::v-deep .ant-table.ant-table-bordered > .ant-table-title {
|
||||||
border: none !important;
|
border: none !important;
|
||||||
}
|
}
|
||||||
|
/* ::v-deep .ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {
|
||||||
|
display: none !important;
|
||||||
|
} */
|
||||||
</style>
|
</style>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
bordered
|
bordered
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
:height="500"
|
:height="500"
|
||||||
:scroll="{ x: 3000, y: 440 }">
|
:scroll="{ x: x, y: 440 }">
|
||||||
<template #title>
|
<template #title>
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
@@ -123,6 +123,8 @@
|
|||||||
const tableColumnsA: TableColumnType[] = [
|
const tableColumnsA: TableColumnType[] = [
|
||||||
{
|
{
|
||||||
title: '序号',
|
title: '序号',
|
||||||
|
width: 50,
|
||||||
|
align: 'center',
|
||||||
customRender: ({ record, index }) => {
|
customRender: ({ record, index }) => {
|
||||||
// 自定义单元格内容,这里返回序号
|
// 自定义单元格内容,这里返回序号
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
@@ -159,6 +161,7 @@
|
|||||||
title: '区域名称',
|
title: '区域名称',
|
||||||
dataIndex: 'location',
|
dataIndex: 'location',
|
||||||
width: 100,
|
width: 100,
|
||||||
|
align: 'center',
|
||||||
customCell: (record, rowIndex) => {
|
customCell: (record, rowIndex) => {
|
||||||
if (rowIndex == undefined) {
|
if (rowIndex == undefined) {
|
||||||
return {
|
return {
|
||||||
@@ -182,6 +185,7 @@
|
|||||||
title: '点位',
|
title: '点位',
|
||||||
dataIndex: 'pointName',
|
dataIndex: 'pointName',
|
||||||
width: 100,
|
width: 100,
|
||||||
|
align: 'center',
|
||||||
customCell: (record, rowIndex) => {
|
customCell: (record, rowIndex) => {
|
||||||
if (rowIndex == undefined) {
|
if (rowIndex == undefined) {
|
||||||
return {
|
return {
|
||||||
@@ -209,6 +213,7 @@
|
|||||||
title: '日期',
|
title: '日期',
|
||||||
dataIndex: 'time',
|
dataIndex: 'time',
|
||||||
width: 110,
|
width: 110,
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -236,6 +241,7 @@
|
|||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
});
|
});
|
||||||
const orgId = ref('');
|
const orgId = ref('');
|
||||||
|
const x = ref(2000);
|
||||||
const result = JSON.parse(sessionStorage.getItem('ORGID')!);
|
const result = JSON.parse(sessionStorage.getItem('ORGID')!);
|
||||||
orgId.value = result;
|
orgId.value = result;
|
||||||
|
|
||||||
@@ -310,8 +316,11 @@
|
|||||||
tableColumnsB.push({
|
tableColumnsB.push({
|
||||||
title: headerList[i],
|
title: headerList[i],
|
||||||
dataIndex: headerList[i],
|
dataIndex: headerList[i],
|
||||||
|
width: 60,
|
||||||
|
align: 'center',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
x.value = 360 + headerList.length * 60;
|
||||||
let columnA: any[] = [...tableColumnsA];
|
let columnA: any[] = [...tableColumnsA];
|
||||||
columnA.push(...tableColumnsB);
|
columnA.push(...tableColumnsB);
|
||||||
tableColumns.value = columnA;
|
tableColumns.value = columnA;
|
||||||
@@ -370,7 +379,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
::v-deep .ant-table-container {
|
::v-deep .ant-table-container {
|
||||||
padding: 0px 16px;
|
margin: 0px 16px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@@ -381,4 +390,7 @@
|
|||||||
::v-deep .ant-table.ant-table-bordered > .ant-table-title {
|
::v-deep .ant-table.ant-table-bordered > .ant-table-title {
|
||||||
border: none !important;
|
border: none !important;
|
||||||
}
|
}
|
||||||
|
::v-deep .ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -40,7 +40,7 @@
|
|||||||
@ok="handleOk"
|
@ok="handleOk"
|
||||||
@cancel="closeOpenUpload">
|
@cancel="closeOpenUpload">
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<div style="width: 15%">
|
<div style="width: 15%; height: 100%; position: sticky; top: 0; align-self: flex-start">
|
||||||
<a-tabs
|
<a-tabs
|
||||||
v-model:activeKey="typeValue"
|
v-model:activeKey="typeValue"
|
||||||
tab-position="left"
|
tab-position="left"
|
||||||
@@ -76,25 +76,6 @@
|
|||||||
">
|
">
|
||||||
<div style="display: flex; align-items: center; width: 85%">
|
<div style="display: flex; align-items: center; width: 85%">
|
||||||
<div style="width: 10%">数据列表</div>
|
<div style="width: 10%">数据列表</div>
|
||||||
<!-- <a-select
|
|
||||||
v-model:value="typeValue"
|
|
||||||
placeholder="请选择环境参数"
|
|
||||||
style="width: 15%"
|
|
||||||
:options="typeList" /> -->
|
|
||||||
<!-- <a-tree-select
|
|
||||||
v-model:value="quyuvalue"
|
|
||||||
style="width: 35%; margin-left: 10px"
|
|
||||||
:tree-data="treeData2"
|
|
||||||
:field-names="{
|
|
||||||
children: 'childList',
|
|
||||||
label: 'name',
|
|
||||||
value: 'id',
|
|
||||||
}"
|
|
||||||
tree-checkable
|
|
||||||
allow-clear
|
|
||||||
placeholder="请选择区域"
|
|
||||||
tree-node-filter-prop="label"
|
|
||||||
:maxTagCount="1" /> -->
|
|
||||||
<a-cascader
|
<a-cascader
|
||||||
:options="treeData2"
|
:options="treeData2"
|
||||||
v-model:value="quyuvalue"
|
v-model:value="quyuvalue"
|
||||||
@@ -115,18 +96,11 @@
|
|||||||
v-model:value="areaName"
|
v-model:value="areaName"
|
||||||
placeholder="请输入设备名称"
|
placeholder="请输入设备名称"
|
||||||
style="width: 20%; margin-left: 1%" />
|
style="width: 20%; margin-left: 1%" />
|
||||||
<!-- <a-select
|
|
||||||
v-model:value="frequencyValue"
|
|
||||||
placeholder="请选择采集频率"
|
|
||||||
style="width: 15%; margin-left: 10px"
|
|
||||||
:options="frequencyOptions" /> -->
|
|
||||||
<!-- <a-date-picker style="width: 15%; margin-left: 10px" v-model:value="timeValue" /> -->
|
|
||||||
<a-button style="margin-left: 10px" @click="resetting"> 重置 </a-button>
|
<a-button style="margin-left: 10px" @click="resetting"> 重置 </a-button>
|
||||||
<a-button type="primary" style="margin-left: 10px" @click="queryDeviceInfoListPage">
|
<a-button type="primary" style="margin-left: 10px" @click="queryDeviceInfoListPage">
|
||||||
搜索
|
搜索
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
<!-- <a-button type="primary"> 导出 </a-button> -->
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<a-divider />
|
<a-divider />
|
||||||
|
Reference in New Issue
Block a user