lcw
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
<!--全息档案展示组件 -->
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" :title="title" :width="width" @close="close" top="5vh" append-to-body>
|
||||
<el-dialog :model-value="modelValue" :title="title" :width="width" @close="close" top="5vh" append-to-body>
|
||||
<div class="archive-container">
|
||||
<!-- 基本信息卡片 -->
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" :title="title" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" :title="title" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="重点群体" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" title="重点群体" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="重点人总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" title="重点人总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="预警总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" title="预警总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="警情总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" title="警情总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" :title="title" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" :title="title" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="线索总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" title="线索总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<!--预警指派展示组件 -->
|
||||
<template>
|
||||
<el-dialog :draggable="true" v-model="modelValue" :title="title" :width="width" @close="close" append-to-body>
|
||||
<el-dialog :draggable="true" :model-value="modelValue" :title="title" :width="width" @close="close" append-to-body>
|
||||
<div class="archive-container">
|
||||
<FormMessage :formList="formData" v-model="listQuery" ref="elform" :rules="rules" :labelWidth="90">
|
||||
</FormMessage>
|
||||
|
||||
@ -5,13 +5,13 @@
|
||||
import * as echarts from "echarts";
|
||||
import { onMounted, ref, reactive, defineProps, onUnmounted, watch, nextTick } from "vue";
|
||||
const props = defineProps({
|
||||
echartsId:{
|
||||
type:String,
|
||||
default:'3DbarId'
|
||||
echartsId: {
|
||||
type: String,
|
||||
default: '3DbarId'
|
||||
},
|
||||
data:{
|
||||
type:Array,
|
||||
default:[]
|
||||
data: {
|
||||
type: Object,
|
||||
default: () => { }
|
||||
}
|
||||
});
|
||||
|
||||
@ -25,48 +25,96 @@ const handleResize = () => {
|
||||
}
|
||||
};
|
||||
|
||||
// 组织数据
|
||||
const setData = function (data, constData, showData) {
|
||||
data.filter(function (item) {
|
||||
if (item) {
|
||||
constData.push(1);
|
||||
showData.push(item);
|
||||
} else {
|
||||
constData.push(0);
|
||||
showData.push({
|
||||
value: 1,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
borderColor: "rgba(0,0,0,0)",
|
||||
borderWidth: 2,
|
||||
color: "rgba(0,0,0,0)",
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 组织颜色
|
||||
const setColor = function (colorArr) {
|
||||
let color = {
|
||||
type: "linear",
|
||||
x: 0,
|
||||
x2: 1,
|
||||
y: 0,
|
||||
y2: 0,
|
||||
colorStops: [{
|
||||
offset: 0,
|
||||
color: colorArr[0],
|
||||
},
|
||||
{
|
||||
offset: 0.5,
|
||||
color: colorArr[0],
|
||||
},
|
||||
{
|
||||
offset: 0.5,
|
||||
color: colorArr[1],
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: colorArr[1],
|
||||
},
|
||||
],
|
||||
};
|
||||
return color
|
||||
}
|
||||
|
||||
function chartFn() {
|
||||
// 如果已有实例,先销毁
|
||||
if (myChart.value) {
|
||||
myChart.value.dispose();
|
||||
}
|
||||
|
||||
|
||||
// 创建新实例
|
||||
myChart.value = echarts.init(document.getElementById(props.echartsId));
|
||||
|
||||
// 处理数据
|
||||
const sideData1 = props.data.map(v => {
|
||||
return {
|
||||
value: v.value * 1.2,
|
||||
itemStyle: {
|
||||
color: v.color || '#1bd6c2'
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
const topData1 = props.data.map(v => {
|
||||
return {
|
||||
value: v.value + 0.1,
|
||||
itemStyle: {
|
||||
color: v.color || '#1bd6c2'
|
||||
}
|
||||
};
|
||||
});
|
||||
// 处理数据
|
||||
const barWidth = 30;
|
||||
const constData = [];
|
||||
const showData = [];
|
||||
const values = props.data.list && Array.isArray(props.data.list) ? props.data.list.map(v => v.val || v.value) : [];
|
||||
|
||||
if (Array.isArray(values)) {
|
||||
setData(values, constData, showData);
|
||||
}
|
||||
|
||||
// 处理颜色
|
||||
const colorArr = props.data.colors || ["#345A8B", "#387ABD", "#51C0DB"];
|
||||
const color = setColor(colorArr);
|
||||
|
||||
// 安全获取标签数据
|
||||
const labels = props.data.list && Array.isArray(props.data.list) ? props.data.list.map(v => v.label) : [];
|
||||
console.log(labels);
|
||||
|
||||
const option = {
|
||||
grid: {
|
||||
top: '8%',
|
||||
top: '15%',
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '12%',
|
||||
bottom: '15%',
|
||||
containLabel: true
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
lineStyle: {
|
||||
color: '#ddd'
|
||||
}
|
||||
type: 'shadow'
|
||||
},
|
||||
backgroundColor: 'rgba(255,255,255,1)',
|
||||
padding: [5, 10],
|
||||
@ -77,81 +125,89 @@ function chartFn() {
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: props.data.map(v => v.label),
|
||||
axisTick: {
|
||||
show: false
|
||||
data: labels,
|
||||
axisLabel: {
|
||||
color: '#FFFFFF'
|
||||
},
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
color: '#fff',
|
||||
interval: 0
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
splitLine: {
|
||||
show: true,
|
||||
show: false,
|
||||
lineStyle: {
|
||||
type: 'dashed',
|
||||
color: 'rgba(14,95,255,0.5)'
|
||||
color: '#1B3F66'
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
show: true
|
||||
}, axisLabel: {
|
||||
interval: 0 // 控制标签的显示间隔,0 表示全部显示,可以根据需要调整为其他值,例如 1 表示每隔一个显示一个标签。
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
type: "value",
|
||||
splitLine: {
|
||||
show:true ,
|
||||
lineStyle: {
|
||||
type:'dashed',
|
||||
color: "rgba(14,95,255,0.5)"
|
||||
}
|
||||
},
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
}
|
||||
axisTick: { show: false },
|
||||
axisLine: { show: false },
|
||||
axisLabel: { color: props.color },
|
||||
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'bar',
|
||||
data: props.data.map(v => v.value),
|
||||
barWidth: '22', // 柱子的宽度
|
||||
z: 1,
|
||||
itemStyle: {
|
||||
color: '#004056' // 底部柱子的颜色
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'bar',
|
||||
data: sideData1,
|
||||
barWidth: '22', // 柱子的宽度
|
||||
z: 2,
|
||||
name: '柱子',
|
||||
barWidth: barWidth,
|
||||
itemStyle: {
|
||||
color: function(params) {
|
||||
return params.data.itemStyle.color || '#1bd6c2';
|
||||
}
|
||||
}
|
||||
borderRadius: [0, 0, 0, 0],
|
||||
color: color
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
},
|
||||
data: values
|
||||
},
|
||||
{
|
||||
type: 'scatter',
|
||||
data: topData1,
|
||||
z: 2,
|
||||
name: '柱子底部',
|
||||
type: "pictorialBar",
|
||||
data: constData,
|
||||
symbol: "diamond",
|
||||
symbolOffset: ["0%", "50%"],
|
||||
symbolSize: [barWidth - 4, 10],
|
||||
itemStyle: {
|
||||
borderWidth: 1,
|
||||
borderColor: '#fff',
|
||||
color: function(params) {
|
||||
return params.data.itemStyle.color || '#1bd6c2';
|
||||
}
|
||||
normal: {
|
||||
color: color
|
||||
},
|
||||
},
|
||||
symbol: 'path://M 0,0 l 90,0 l -60,60 l -90,0 z',
|
||||
symbolSize: ['22', '12'],
|
||||
symbolOffset: ['-0', '-6'],
|
||||
symbolRotate: -30,
|
||||
symbolPosition: 'end',
|
||||
barGap: 0,
|
||||
data: sideData1,
|
||||
|
||||
},
|
||||
{
|
||||
z: 3,
|
||||
name: '柱子顶部',
|
||||
type: "pictorialBar",
|
||||
symbolPosition: "end",
|
||||
data: showData,
|
||||
|
||||
symbol: "diamond",
|
||||
symbolOffset: ["0%", "-50%"],
|
||||
symbolSize: [barWidth - 4, 10],
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: colorArr[2]
|
||||
},
|
||||
},
|
||||
tooltip: {
|
||||
show: false,
|
||||
},
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
|
||||
option && myChart.value.setOption(option);
|
||||
}
|
||||
|
||||
@ -176,6 +232,4 @@ onUnmounted(() => {
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
@ -9,11 +9,11 @@ const props = defineProps({
|
||||
type:String,
|
||||
default:'lineId'
|
||||
},
|
||||
color:{
|
||||
color:{
|
||||
type:String,
|
||||
default:'#fff'
|
||||
},
|
||||
data:{
|
||||
data:{
|
||||
type:Array,
|
||||
default:[]
|
||||
}
|
||||
@ -34,7 +34,7 @@ function chartFn() {
|
||||
if (myChart.value) {
|
||||
myChart.value.dispose();
|
||||
}
|
||||
|
||||
|
||||
// 创建新实例
|
||||
myChart.value = echarts.init(document.getElementById(props.echartsId));
|
||||
var option = {
|
||||
@ -64,7 +64,7 @@ function chartFn() {
|
||||
data:props.data.map(v=>{return v.label}),
|
||||
axisTick: { show: false },
|
||||
axisLine: { show: false },
|
||||
axisLabel: {
|
||||
axisLabel: {
|
||||
show: true,
|
||||
color: props.color,
|
||||
interval: 0, // 强制显示所有标签
|
||||
@ -141,4 +141,4 @@ onUnmounted(()=>{
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -21,10 +21,17 @@ const props = defineProps({
|
||||
interval:0, //横坐标间隔
|
||||
isVertical:false,//是否竖排垂直展示
|
||||
}
|
||||
},
|
||||
dataZoom:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},rotate:{
|
||||
type:Number,
|
||||
default:0
|
||||
}
|
||||
});
|
||||
watch(()=>props.data,val=>{
|
||||
nextTick(()=>{
|
||||
nextTick(()=>{
|
||||
init(val)
|
||||
})
|
||||
},{immediate:true,deep:true})
|
||||
@ -88,16 +95,19 @@ function chartFn(series) {
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
data:props.data.xData,
|
||||
axisTick: { show: false },
|
||||
data: props.data.xData,
|
||||
// axisTick: { show: false, alignWithLabel: false },// 使得刻度线与标签对齐 },
|
||||
axisTick: { alignWithLabel: true },
|
||||
axisLine: { show: false },
|
||||
axisLabel: {
|
||||
rotate:props.rotate, // 设置标签旋转角度为45度
|
||||
show: true,
|
||||
color: props.data.labelColor || "#fff",
|
||||
interval: props.data.interval || 0, // 强制显示所有标签
|
||||
rotate: props.data.rotate || 0, // 标签旋转角度
|
||||
// rotate: props.data.rotate || 0, // 标签旋转角度
|
||||
formatter: function(value) { return props.data.isVertical ? value.split("").join("\n") : value}
|
||||
}
|
||||
|
||||
},
|
||||
yAxis: {
|
||||
type: "value",
|
||||
@ -112,6 +122,16 @@ function chartFn(series) {
|
||||
axisLine: { show: false },
|
||||
axisLabel: { color: props.data.labelColor || "#fff", },
|
||||
},
|
||||
// dataZoom: [{
|
||||
// disabled: props.dataZoom,
|
||||
// type: 'slider',
|
||||
// show: true,
|
||||
// xAxisIndex: [0],
|
||||
// bottom: 10,
|
||||
// height: 15,
|
||||
// start: 0,
|
||||
// end: 100
|
||||
// }],
|
||||
series:series
|
||||
};
|
||||
option && myChart.setOption(option);
|
||||
@ -123,4 +143,4 @@ function chartFn(series) {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<!-- 左边 -->
|
||||
|
||||
<!-- 右边 -->
|
||||
|
||||
|
||||
<!-- 中间 -->
|
||||
<div class="home-center">
|
||||
<div class="middle-top">
|
||||
@ -40,7 +40,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@ -234,7 +234,7 @@ onMounted(() => {
|
||||
bnTimer.value = setInterval(()=>{
|
||||
// makerCenter()
|
||||
},10000)
|
||||
|
||||
|
||||
})
|
||||
|
||||
// 布控预警上图
|
||||
|
||||
@ -270,6 +270,8 @@ const makerCenter = () => {
|
||||
|
||||
|
||||
allDep.value = list;
|
||||
console.log( allDep.value);
|
||||
|
||||
emitter.emit("addPointArea", { coords:list, icon: dw, flag: "hm", size: '14px', showTitle: false, offset: [0, -25] });
|
||||
})
|
||||
}
|
||||
@ -417,6 +419,7 @@ const mouseLeave = () => {
|
||||
timing.value = setInterval(() => {
|
||||
reversalPush()
|
||||
reversal()
|
||||
changeModel()
|
||||
}, 30000)
|
||||
}
|
||||
|
||||
|
||||
@ -74,9 +74,9 @@
|
||||
<ul class="rightIcon">
|
||||
<div class="flex align-center">
|
||||
<img class="mr10" src="@/assets/images/icon_046.png" alt="" />
|
||||
<div class="f14">
|
||||
<div class="f14 user-info">
|
||||
<div :style="{color:isRed ? '#ff5500' : '#fff',fontWeight:isRed ? 'bold' : 'normal'}">{{ userName }}</div>
|
||||
<div>{{ dept }}</div>
|
||||
<div class="dept-text" :title="dept">{{ dept }}</div>
|
||||
</div>
|
||||
|
||||
<el-popover popper-class="zdy-meuns-popover" placement="bottom" width="400" :append-to-body="true"
|
||||
@ -278,6 +278,17 @@ onUnmounted(() => {
|
||||
.tqItem {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.user-info {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.dept-text {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div style="height: 100%;">
|
||||
<div class="comom-title" @click="calendarPush">
|
||||
<span class="title">敏感节点</span>
|
||||
<div class="comom-title" >
|
||||
<span class="title" @click="calendarPush">敏感节点</span><span class="title switchover " @click="getFestival">直通区厅</span>
|
||||
</div>
|
||||
<el-calendar ref="calendar" v-model="currentDate">
|
||||
<template #header="{ date }">
|
||||
@ -253,6 +253,10 @@ const getAllFestivals = (date,boolean=false) => {
|
||||
|
||||
}
|
||||
}
|
||||
const getFestival = () => {
|
||||
window.open('http://10.188.45.108:8081/uaac-server/login', '_blank');
|
||||
// window.location.href = '';
|
||||
}
|
||||
const calendarPush = () => {
|
||||
router.push('/calendar')
|
||||
}
|
||||
@ -490,4 +494,11 @@ const calendarPush = () => {
|
||||
background-color: rgb(76, 243, 93);
|
||||
color: #ffffff;
|
||||
}
|
||||
.switchover{
|
||||
cursor: pointer;
|
||||
font-size: 14px !important;
|
||||
margin-left: 20%;
|
||||
|
||||
color: rgb(255, 146, 4);
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="情报列表" width="70%" @close="closeDialog" destroy-on-close>
|
||||
<el-dialog :model-value="modelValue" title="情报列表" width="70%" @close="closeDialog" destroy-on-close>
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<MyTable customClass="zdy_peo_table" :tableData="pageData.tableData" :tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger"
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
</el-popover> -->
|
||||
</div>
|
||||
<div class="comom-cnt qxsbBox">
|
||||
<LineEcharts echartsId="qbsbEcharts" :data="dataList"></LineEcharts>
|
||||
<LineEcharts echartsId="qbsbEcharts" :data="dataList" :dataZoom="false" :rotate="-25"></LineEcharts >
|
||||
</div>
|
||||
<Intelligence v-model="visible" :dict="{D_BZ_QBSBLY}"/>
|
||||
</template>
|
||||
@ -29,8 +29,8 @@ import Intelligence from "@/views/home/model/mesgSwitch/intelligence.vue";
|
||||
import { reactive, onMounted, ref, } from 'vue';
|
||||
// import TimeData from '@/views/home/model/mesgSwitch/timeData.vue'
|
||||
|
||||
const dataList = reactive({
|
||||
xData: ['巴宜区', '工布江达县', '米林县', '墨脱县', '波密县', '察隅县', '朗县'],
|
||||
const dataList = ref({
|
||||
xData: [],
|
||||
color: ['#0386FB', '#00FFFF'],
|
||||
list: [
|
||||
{ label: '总数', val: [0, 0, 0, 0, 0, 0, 0] },
|
||||
@ -48,9 +48,9 @@ const getCount = () => {
|
||||
endTime: listQuery.value?.endTime || ""
|
||||
}
|
||||
qcckPost(promes, '/mosty-gsxt/qbcj/getXscjTjForQx').then(res => {
|
||||
dataList.xDate = res ? res.ycz.map(v => v.org_name) : [];
|
||||
dataList.list[0].val = res ? res.zs.map(v => v.count) : [];
|
||||
dataList.list[1].val = res ? res.ycz.map(v => v.count) : [];
|
||||
dataList.value.xData = res ? res.ycz.map(v => v.org_jc) : [];
|
||||
dataList.value.list[0].val = res ? res.zs.map(v => v.count) : [];
|
||||
dataList.value.list[1].val = res ? res.ycz.map(v => v.count) : [];
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user