style: 优化移动端样式 (#6448)

pull/6451/head
ssongliu 3 months ago committed by GitHub
parent f4623664d5
commit ab7efea8c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -2,19 +2,14 @@
<div> <div>
<div class="app-status" v-if="data.isExist"> <div class="app-status" v-if="data.isExist">
<el-card> <el-card>
<div class="flex items-center justify-between gap-2 sm:gap-10 sm:justify-start"> <div class="flex w-full flex-col gap-4 md:flex-row">
<div class="flex items-center justify-center gap-2 sm:flex-row"> <div class="flex flex-wrap gap-4">
<div> <el-tag effect="dark" type="success">{{ data.app }}</el-tag>
<el-tag effect="dark" type="success">{{ data.app }}</el-tag> <Status :key="refresh" :status="data.status"></Status>
</div> <el-tag>{{ $t('app.version') }}:{{ data.version }}</el-tag>
<div>
<Status :key="refresh" :status="data.status"></Status>
</div>
<div>
<el-tag>{{ $t('app.version') }}:{{ data.version }}</el-tag>
</div>
</div> </div>
<div class="grid grid-cols-4 sm:flex sm:flex-row">
<div class="mt-0.5">
<el-button <el-button
type="primary" type="primary"
v-if="data.status != 'Running'" v-if="data.status != 'Running'"

@ -2,29 +2,22 @@
<div v-loading="loading"> <div v-loading="loading">
<div class="app-status" style="margin-top: 20px"> <div class="app-status" style="margin-top: 20px">
<el-card> <el-card>
<div class="flex flex-col gap-2 sm:flex-row sm:justify-between"> <div class="flex w-full flex-col gap-4 md:flex-row">
<div class="flex"> <div class="flex flex-wrap gap-4">
<el-tag style="float: left" effect="dark" type="success">Docker</el-tag> <el-tag style="float: left" effect="dark" type="success">Docker</el-tag>
<el-tag round class="status-content" v-if="form.status === 'Running'" type="success"> <el-tag round v-if="form.status === 'Running'" type="success">
{{ $t('commons.status.running') }} {{ $t('commons.status.running') }}
</el-tag> </el-tag>
<el-tag round class="status-content" v-if="form.status === 'Stopped'" type="info"> <el-tag round v-if="form.status === 'Stopped'" type="info">
{{ $t('commons.status.stopped') }} {{ $t('commons.status.stopped') }}
</el-tag> </el-tag>
<el-tag class="status-content">{{ $t('app.version') }}: {{ form.version }}</el-tag> <el-tag>{{ $t('app.version') }}: {{ form.version }}</el-tag>
</div> </div>
<div class="flex justify-start" v-if="form.status === 'Running'"> <div class="mt-0.5">
<el-button type="primary" @click="onOperator('stop')" link> <el-button type="primary" v-if="form.status === 'Running'" @click="onOperator('stop')" link>
{{ $t('container.stop') }} {{ $t('container.stop') }}
</el-button> </el-button>
<el-divider direction="vertical" /> <el-button type="primary" v-if="form.status === 'Stopped'" @click="onOperator('start')" link>
<el-button type="primary" @click="onOperator('restart')" link>
{{ $t('container.restart') }}
</el-button>
</div>
<div clsas="flex justify-start" v-if="form.status === 'Stopped'" class="buttons">
<el-button type="primary" @click="onOperator('start')" link>
{{ $t('container.start') }} {{ $t('container.start') }}
</el-button> </el-button>
<el-divider direction="vertical" /> <el-divider direction="vertical" />

@ -2,32 +2,39 @@
<div v-if="recordShow" v-loading="loading"> <div v-if="recordShow" v-loading="loading">
<div class="app-status p-mt-20"> <div class="app-status p-mt-20">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-popover <div class="flex flex-wrap gap-4">
v-if="dialogData.rowData.name.length >= 15" <el-popover
placement="top-start" v-if="dialogData.rowData.name.length >= 15"
trigger="hover" placement="top-start"
width="250" trigger="hover"
:content="$t('cronjob.' + dialogData.rowData.type) + ' - ' + dialogData.rowData.name" width="250"
> :content="$t('cronjob.' + dialogData.rowData.type) + ' - ' + dialogData.rowData.name"
<template #reference> >
<el-tag style="float: left" effect="dark" type="success"> <template #reference>
{{ $t('cronjob.' + dialogData.rowData.type) }} - <el-tag style="float: left" effect="dark" type="success">
{{ dialogData.rowData.name.substring(0, 12) }}... {{ $t('cronjob.' + dialogData.rowData.type) }} -
</el-tag> {{ dialogData.rowData.name.substring(0, 12) }}...
</template> </el-tag>
</el-popover> </template>
<el-tag v-if="dialogData.rowData.name.length < 15" class="float-left" effect="dark" type="success"> </el-popover>
{{ $t('cronjob.' + dialogData.rowData.type) }} - {{ dialogData.rowData.name }} <el-tag
</el-tag> v-if="dialogData.rowData.name.length < 15"
class="float-left"
effect="dark"
type="success"
>
{{ $t('cronjob.' + dialogData.rowData.type) }} - {{ dialogData.rowData.name }}
</el-tag>
<el-tag v-if="dialogData.rowData.status === 'Enable'" round class="status-content" type="success"> <el-tag v-if="dialogData.rowData.status === 'Enable'" round type="success">
{{ $t('commons.status.running') }} {{ $t('commons.status.running') }}
</el-tag> </el-tag>
<el-tag v-if="dialogData.rowData.status === 'Disable'" round class="status-content" type="info"> <el-tag v-if="dialogData.rowData.status === 'Disable'" round type="info">
{{ $t('commons.status.stopped') }} {{ $t('commons.status.stopped') }}
</el-tag> </el-tag>
<span class="buttons"> </div>
<div class="mt-0.5">
<el-button type="primary" @click="onHandle(dialogData.rowData)" link> <el-button type="primary" @click="onHandle(dialogData.rowData)" link>
{{ $t('commons.button.handle') }} {{ $t('commons.button.handle') }}
</el-button> </el-button>
@ -52,7 +59,7 @@
<el-button :disabled="!hasRecords" type="primary" @click="onClean" link> <el-button :disabled="!hasRecords" type="primary" @click="onClean" link>
{{ $t('commons.button.clean') }} {{ $t('commons.button.clean') }}
</el-button> </el-button>
</span> </div>
</div> </div>
</el-card> </el-card>
</div> </div>

@ -2,11 +2,13 @@
<div v-loading="loading"> <div v-loading="loading">
<div class="app-status" style="margin-top: 20px" v-if="currentDB?.from === 'remote'"> <div class="app-status" style="margin-top: 20px" v-if="currentDB?.from === 'remote'">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag style="float: left" effect="dark" type="success"> <div class="flex flex-wrap gap-4">
{{ currentDB?.type === 'mysql' ? 'Mysql' : 'MariaDB' }} <el-tag style="float: left" effect="dark" type="success">
</el-tag> {{ currentDB?.type === 'mysql' ? 'Mysql' : 'MariaDB' }}
<el-tag class="status-content">{{ $t('app.version') }}: {{ currentDB?.version }}</el-tag> </el-tag>
<el-tag>{{ $t('app.version') }}: {{ currentDB?.version }}</el-tag>
</div>
</div> </div>
</el-card> </el-card>
</div> </div>

@ -2,9 +2,11 @@
<div v-loading="loading"> <div v-loading="loading">
<div class="app-status" style="margin-top: 20px" v-if="currentDB?.from === 'remote'"> <div class="app-status" style="margin-top: 20px" v-if="currentDB?.from === 'remote'">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag style="float: left" effect="dark" type="success">PostgreSQL</el-tag> <div class="flex flex-wrap gap-4">
<el-tag class="status-content">{{ $t('app.version') }}: {{ currentDB?.version }}</el-tag> <el-tag style="float: left" effect="dark" type="success">PostgreSQL</el-tag>
<el-tag>{{ $t('app.version') }}: {{ currentDB?.version }}</el-tag>
</div>
</div> </div>
</el-card> </el-card>
</div> </div>

@ -2,9 +2,11 @@
<div v-loading="loading"> <div v-loading="loading">
<div class="app-status" style="margin-top: 20px" v-if="currentDB && currentDB.from === 'remote'"> <div class="app-status" style="margin-top: 20px" v-if="currentDB && currentDB.from === 'remote'">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag style="float: left" effect="dark" type="success">Redis</el-tag> <div class="flex flex-wrap gap-4">
<el-tag class="status-content">{{ $t('app.version') }}: {{ currentDB?.version }}</el-tag> <el-tag style="float: left" effect="dark" type="success">Redis</el-tag>
<el-tag>{{ $t('app.version') }}: {{ currentDB?.version }}</el-tag>
</div>
</div> </div>
</el-card> </el-card>
</div> </div>

@ -2,33 +2,34 @@
<div> <div>
<div class="app-status" style="margin-top: 20px"> <div class="app-status" style="margin-top: 20px">
<el-card> <el-card>
<div class="flex flex-row flex-wrap gap-2 sm:justify-between items-center"> <div class="flex w-full flex-col gap-4 md:flex-row">
<div class="flex flex-row flex-wrap"> <div class="flex flex-wrap gap-4">
<el-tag effect="dark" type="success">{{ baseInfo.name }}</el-tag> <el-tag effect="dark" type="success">{{ baseInfo.name }}</el-tag>
<el-tag round class="status-content" v-if="baseInfo.status === 'running'" type="success"> <el-tag round v-if="baseInfo.status === 'running'" type="success">
{{ $t('commons.status.running') }} {{ $t('commons.status.running') }}
</el-tag> </el-tag>
<el-tag round class="status-content" v-if="baseInfo.status === 'not running'" type="info"> <el-tag round v-if="baseInfo.status === 'not running'" type="info">
{{ $t('commons.status.stopped') }} {{ $t('commons.status.stopped') }}
</el-tag> </el-tag>
<el-tag class="status-content">{{ $t('app.version') }}: {{ baseInfo.version }}</el-tag> <el-tag>{{ $t('app.version') }}: {{ baseInfo.version }}</el-tag>
</div> </div>
<div class="flex flex-wrap items-center"> <div class="mt-0.5">
<div v-if="baseInfo.status === 'running'"> <el-button type="primary" v-if="baseInfo.status === 'running'" @click="onOperate('stop')" link>
<el-button type="primary" @click="onOperate('stop')" link> {{ $t('commons.button.stop') }}
{{ $t('commons.button.stop') }} </el-button>
</el-button> <el-button
</div> type="primary"
<div v-if="baseInfo.status === 'not running'"> v-if="baseInfo.status === 'not running'"
<el-button type="primary" @click="onOperate('start')" link> @click="onOperate('start')"
{{ $t('commons.button.start') }} link
</el-button> >
</div> {{ $t('commons.button.start') }}
</el-button>
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-button type="primary" @click="onOperate('restart')" link> <el-button type="primary" @click="onOperate('restart')" link>
{{ $t('container.restart') }} {{ $t('container.restart') }}
</el-button> </el-button>
<div v-if="onPing !== 'None'"> <span v-if="onPing !== 'None'">
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-button type="primary" link>{{ $t('firewall.noPing') }}</el-button> <el-button type="primary" link>{{ $t('firewall.noPing') }}</el-button>
<el-switch <el-switch
@ -39,7 +40,7 @@
@change="onPingOperate" @change="onPingOperate"
v-model="onPing" v-model="onPing"
/> />
</div> </span>
</div> </div>
</div> </div>
</el-card> </el-card>

@ -4,25 +4,27 @@
<div class="app-status" style="margin-top: 20px"> <div class="app-status" style="margin-top: 20px">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag style="float: left" effect="dark" type="success">SSH</el-tag> <div class="flex flex-wrap gap-4">
<el-tag round class="status-content" v-if="form.status === 'Enable'" type="success"> <el-tag style="float: left" effect="dark" type="success">SSH</el-tag>
{{ $t('commons.status.running') }} <el-tag round v-if="form.status === 'Enable'" type="success">
</el-tag> {{ $t('commons.status.running') }}
<el-popover </el-tag>
v-if="form.status === 'Disable'" <el-popover
placement="top-start" v-if="form.status === 'Disable'"
trigger="hover" placement="top-start"
width="450" trigger="hover"
:content="form.message" width="450"
> :content="form.message"
<template #reference> >
<el-tag round class="status-content" v-if="form.status === 'Disable'" type="info"> <template #reference>
{{ $t('commons.status.stopped') }} <el-tag round v-if="form.status === 'Disable'" type="info">
</el-tag> {{ $t('commons.status.stopped') }}
</template> </el-tag>
</el-popover> </template>
<span class="buttons"> </el-popover>
</div>
<div class="mt-0.5">
<el-button v-if="form.status === 'Enable'" type="primary" @click="onOperate('stop')" link> <el-button v-if="form.status === 'Enable'" type="primary" @click="onOperate('stop')" link>
{{ $t('commons.button.stop') }} {{ $t('commons.button.stop') }}
</el-button> </el-button>
@ -45,7 +47,7 @@
@change="onOperate(autoStart)" @change="onOperate(autoStart)"
v-model="autoStart" v-model="autoStart"
/> />
</span> </div>
</div> </div>
</el-card> </el-card>
</div> </div>

@ -31,6 +31,7 @@
<LogFile <LogFile
ref="logRef" ref="logRef"
:config="logConfig" :config="logConfig"
v-if="showLog"
:default-button="false" :default-button="false"
v-model:loading="loading" v-model:loading="loading"
v-model:hasContent="hasContent" v-model:hasContent="hasContent"

@ -1,17 +1,19 @@
<template> <template>
<div> <div>
<div class="app-status tool-status" v-if="data.isExist"> <div class="app-status" v-if="data.isExist">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag class="w-17" effect="dark" type="success">ClamAV</el-tag> <div class="flex flex-wrap gap-4">
<el-tag round class="status-content" v-if="data.isActive" type="success"> <el-tag effect="dark" type="success">ClamAV</el-tag>
{{ $t('commons.status.running') }} <el-tag round v-if="data.isActive" type="success">
</el-tag> {{ $t('commons.status.running') }}
<el-tag round class="status-content" v-if="!data.isActive" type="info"> </el-tag>
{{ $t('commons.status.stopped') }} <el-tag round v-if="!data.isActive" type="info">
</el-tag> {{ $t('commons.status.stopped') }}
<el-tag class="status-content w-24">{{ $t('app.version') }}:{{ data.version }}</el-tag> </el-tag>
<span class="buttons"> <el-tag class="w-24">{{ $t('app.version') }}:{{ data.version }}</el-tag>
</div>
<div class="mt-0.5">
<el-button type="primary" v-if="!data.isActive" link @click="onOperate('ClamAV', 'start')"> <el-button type="primary" v-if="!data.isActive" link @click="onOperate('ClamAV', 'start')">
{{ $t('app.start') }} {{ $t('app.start') }}
</el-button> </el-button>
@ -33,18 +35,20 @@
<el-button type="primary" v-if="!showFresh" link @click="changeShow(true)"> <el-button type="primary" v-if="!showFresh" link @click="changeShow(true)">
{{ $t('toolbox.clam.showFresh') }} {{ $t('toolbox.clam.showFresh') }}
</el-button> </el-button>
</span> </div>
</div> </div>
<div class="mt-4" v-if="showFresh"> <div v-if="showFresh" class="flex w-full flex-col gap-4 md:flex-row mt-5">
<el-tag class="w-16" effect="dark" type="success">FreshClam</el-tag> <div class="flex flex-wrap gap-4">
<el-tag round class="status-content" v-if="data.freshIsActive" type="success"> <el-tag class="w-16" effect="dark" type="success">FreshClam</el-tag>
{{ $t('commons.status.running') }} <el-tag round v-if="data.freshIsActive" type="success">
</el-tag> {{ $t('commons.status.running') }}
<el-tag round class="status-content" v-if="!data.freshIsActive" type="info"> </el-tag>
{{ $t('commons.status.stopped') }} <el-tag round v-if="!data.freshIsActive" type="info">
</el-tag> {{ $t('commons.status.stopped') }}
<el-tag class="status-content w-24">{{ $t('app.version') }}:{{ data.freshVersion }}</el-tag> </el-tag>
<span class="buttons"> <el-tag class="w-24">{{ $t('app.version') }}:{{ data.freshVersion }}</el-tag>
</div>
<div class="mt-0.5">
<el-button <el-button
type="primary" type="primary"
v-if="!data.freshIsActive" v-if="!data.freshIsActive"
@ -65,7 +69,7 @@
<el-button type="primary" link @click="onOperate('FreshClam', 'restart')"> <el-button type="primary" link @click="onOperate('FreshClam', 'restart')">
{{ $t('app.restart') }} {{ $t('app.restart') }}
</el-button> </el-button>
</span> </div>
</div> </div>
</el-card> </el-card>
</div> </div>

@ -2,16 +2,18 @@
<div v-loading="loading"> <div v-loading="loading">
<div class="app-status" style="margin-top: 20px"> <div class="app-status" style="margin-top: 20px">
<el-card v-if="form.isExist"> <el-card v-if="form.isExist">
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag effect="dark" type="success">Fail2ban</el-tag> <div class="flex flex-wrap gap-4">
<el-tag round class="status-content" v-if="form.isActive" type="success"> <el-tag effect="dark" type="success">Fail2ban</el-tag>
{{ $t('commons.status.running') }} <el-tag round v-if="form.isActive" type="success">
</el-tag> {{ $t('commons.status.running') }}
<el-tag round class="status-content" v-if="!form.isActive" type="info"> </el-tag>
{{ $t('commons.status.stopped') }} <el-tag round v-if="!form.isActive" type="info">
</el-tag> {{ $t('commons.status.stopped') }}
<el-tag class="status-content">{{ form.version }}</el-tag> </el-tag>
<span class="buttons"> <el-tag>{{ form.version }}</el-tag>
</div>
<div class="mt-0.5">
<el-button v-if="form.isActive" type="primary" @click="onOperate('stop')" link> <el-button v-if="form.isActive" type="primary" @click="onOperate('stop')" link>
{{ $t('commons.button.stop') }} {{ $t('commons.button.stop') }}
</el-button> </el-button>
@ -34,7 +36,7 @@
@change="onOperate(autoStart)" @change="onOperate(autoStart)"
v-model="autoStart" v-model="autoStart"
/> />
</span> </div>
</div> </div>
</el-card> </el-card>
</div> </div>
@ -42,16 +44,16 @@
<div v-if="form.isExist"> <div v-if="form.isExist">
<LayoutContent title="Fail2ban" :divider="true"> <LayoutContent title="Fail2ban" :divider="true">
<template #toolbar> <template #toolbar>
<el-row> <div class="flex w-full flex-col gap-4 md:justify-between md:flex-row">
<el-col :span="16"> <div class="flex flex-wrap gap-4">
<el-button :disabled="!form.isActive" type="primary" plain @click="onLoadList('ignore')"> <el-button :disabled="!form.isActive" type="primary" plain @click="onLoadList('ignore')">
{{ $t('toolbox.fail2ban.ignoreIP') }} {{ $t('toolbox.fail2ban.ignoreIP') }}
</el-button> </el-button>
<el-button :disabled="!form.isActive" type="primary" plain @click="onLoadList('banned')"> <el-button :disabled="!form.isActive" type="primary" plain @click="onLoadList('banned')">
{{ $t('toolbox.fail2ban.bannedIP') }} {{ $t('toolbox.fail2ban.bannedIP') }}
</el-button> </el-button>
</el-col> </div>
</el-row> </div>
</template> </template>
<template #main> <template #main>
<el-radio-group v-model="confShowType" @change="changeMode"> <el-radio-group v-model="confShowType" @change="changeMode">

@ -2,15 +2,17 @@
<div> <div>
<div class="app-status" style="margin-top: 20px"> <div class="app-status" style="margin-top: 20px">
<el-card v-if="form.isExist"> <el-card v-if="form.isExist">
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag effect="dark" type="success">FTP</el-tag> <div class="flex flex-wrap gap-4">
<el-tag round class="status-content" v-if="form.isActive" type="success"> <el-tag effect="dark" type="success">FTP</el-tag>
{{ $t('commons.status.running') }} <el-tag round v-if="form.isActive" type="success">
</el-tag> {{ $t('commons.status.running') }}
<el-tag round class="status-content" v-if="!form.isActive" type="info"> </el-tag>
{{ $t('commons.status.stopped') }} <el-tag round v-if="!form.isActive" type="info">
</el-tag> {{ $t('commons.status.stopped') }}
<span class="buttons"> </el-tag>
</div>
<div class="mt-0.5">
<el-button v-if="form.isActive" type="primary" @click="onOperate('stop')" link> <el-button v-if="form.isActive" type="primary" @click="onOperate('stop')" link>
{{ $t('commons.button.stop') }} {{ $t('commons.button.stop') }}
</el-button> </el-button>
@ -21,7 +23,7 @@
<el-button type="primary" @click="onOperate('restart')" link> <el-button type="primary" @click="onOperate('restart')" link>
{{ $t('container.restart') }} {{ $t('container.restart') }}
</el-button> </el-button>
</span> </div>
</div> </div>
</el-card> </el-card>
</div> </div>

@ -2,11 +2,13 @@
<div> <div>
<div class="app-status tool-status" v-if="data.isExist"> <div class="app-status tool-status" v-if="data.isExist">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag effect="dark" type="success">{{ 'Supervisor' }}</el-tag> <div class="flex flex-wrap gap-4">
<Status class="status-content" :key="data.status" :status="data.status"></Status> <el-tag effect="dark" type="success">{{ 'Supervisor' }}</el-tag>
<el-tag class="status-content">{{ $t('app.version') }}:{{ data.version }}</el-tag> <Status :key="data.status" :status="data.status"></Status>
<span class="buttons" v-if="!data.init"> <el-tag>{{ $t('app.version') }}:{{ data.version }}</el-tag>
</div>
<div class="mt-0.5" v-if="!data.init">
<el-button type="primary" v-if="data.status != 'running'" link @click="onOperate('start')"> <el-button type="primary" v-if="data.status != 'running'" link @click="onOperate('start')">
{{ $t('app.start') }} {{ $t('app.start') }}
</el-button> </el-button>
@ -21,7 +23,7 @@
<el-button type="primary" link @click="setting"> <el-button type="primary" link @click="setting">
{{ $t('commons.button.set') }} {{ $t('commons.button.set') }}
</el-button> </el-button>
</span> </div>
<span class="buttons" v-else> <span class="buttons" v-else>
<el-button type="primary" link @click="init"> <el-button type="primary" link @click="init">
{{ $t('commons.button.init') }} {{ $t('commons.button.init') }}

@ -1,20 +1,22 @@
<template> <template>
<div class="app-status"> <div class="app-status">
<el-card> <el-card>
<div> <div class="flex w-full flex-col gap-4 md:flex-row">
<el-tag effect="dark" type="success">{{ props.primaryDomain }}</el-tag> <div class="flex flex-wrap gap-4">
<span class="status-content"> <el-tag effect="dark" type="success">{{ props.primaryDomain }}</el-tag>
<Status class="span-font" :key="props.status" :status="props.status"></Status> <span>
</span> <Status class="span-font" :key="props.status" :status="props.status"></Status>
<span class="status-content"> </span>
<el-tag type="info"> <span>
{{ $t('website.expireDate') }}: <el-tag type="info">
<span v-if="isEver(props.expireDate)"> {{ $t('website.expireDate') }}:
{{ $t('website.neverExpire') }} <span v-if="isEver(props.expireDate)">
</span> {{ $t('website.neverExpire') }}
<span v-else>{{ dateFormatSimple(props.expireDate) }}</span> </span>
</el-tag> <span v-else>{{ dateFormatSimple(props.expireDate) }}</span>
</span> </el-tag>
</span>
</div>
</div> </div>
</el-card> </el-card>
</div> </div>

Loading…
Cancel
Save