1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-01-19 08:19:15 +08:00

fix: 统一删除提示框 (#2711)

This commit is contained in:
ssongliu 2023-10-28 11:11:31 +08:00 committed by GitHub
parent 32c6826496
commit 5e27aa04dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 66 additions and 13 deletions

View File

@ -327,8 +327,8 @@ func (u *SettingService) SystemCleanForCronjob() (string, error) {
}
}
timeNow := time.Now().Format("2006-01-02 15:04:05")
logs += fmt.Sprintf("%s: total clean: %s, total count: %d", timeNow, common.LoadSizeUnit2F(float64(size)), fileCount)
dropFileOrDirWithLog(path.Join(global.CONF.System.BaseDir, dockerLogPath), &logs, &size, &fileCount)
logs += fmt.Sprintf("\n%s: total clean: %s, total count: %d", timeNow, common.LoadSizeUnit2F(float64(size)), fileCount)
_ = settingRepo.Update("LastCleanTime", timeNow)
_ = settingRepo.Update("LastCleanSize", fmt.Sprintf("%v", size))

View File

@ -44,13 +44,15 @@
<fu-table-operations width="230px" :buttons="buttons" :label="$t('commons.table.operate')" fix />
</ComplexTable>
</el-drawer>
<OpDialog ref="opRef" @search="search" />
</div>
</template>
<script lang="ts" setup>
import { reactive, ref } from 'vue';
import OpDialog from '@/components/del-dialog/index.vue';
import { dateFormat, downloadFile } from '@/utils/util';
import { useDeleteData } from '@/hooks/use-delete-data';
import { handleBackup, handleRecover } from '@/api/modules/setting';
import i18n from '@/lang';
import DrawerHeader from '@/components/drawer-header/index.vue';
@ -60,6 +62,7 @@ import { MsgSuccess } from '@/utils/message';
const selects = ref<any>([]);
const loading = ref();
const opRef = ref();
const data = ref();
const paginationConfig = reactive({
@ -153,15 +156,26 @@ const onDownload = async (row: Backup.RecordInfo) => {
const onBatchDelete = async (row: Backup.RecordInfo | null) => {
let ids: Array<number> = [];
let names = [];
if (row) {
ids.push(row.id);
names.push(row.fileName);
} else {
selects.value.forEach((item: Backup.RecordInfo) => {
ids.push(item.id);
names.push(item.fileName);
});
}
await useDeleteData(deleteBackupRecord, { ids: ids }, 'commons.msg.delete');
search();
opRef.value.acceptParams({
names: names,
title: i18n.global.t('commons.button.delete'),
api: deleteBackupRecord,
msg: i18n.global.t('commons.msg.operatorHelper', [
i18n.global.t('commons.button.backup'),
i18n.global.t('commons.button.delete'),
]),
params: { ids: ids },
});
};
const buttons = [

View File

@ -78,13 +78,15 @@
</ComplexTable>
</div>
</el-drawer>
<OpDialog ref="opRef" @search="search" />
</div>
</template>
<script lang="ts" setup>
import { reactive, ref } from 'vue';
import { computeSize } from '@/utils/util';
import { useDeleteData } from '@/hooks/use-delete-data';
import OpDialog from '@/components/del-dialog/index.vue';
import { handleRecoverByUpload } from '@/api/modules/setting';
import i18n from '@/lang';
import { UploadFile, UploadFiles, UploadInstance } from 'element-plus';
@ -99,6 +101,7 @@ const isUpload = ref();
const uploadPercent = ref<number>(0);
const selects = ref<any>([]);
const baseDir = ref();
const opRef = ref();
const data = ref();
const title = ref();
@ -279,15 +282,26 @@ const submitUpload = async (file: any) => {
const onBatchDelete = async (row: File.File | null) => {
let files: Array<string> = [];
let names: Array<string> = [];
if (row) {
files.push(baseDir.value + row.name);
names.push(row.name);
} else {
selects.value.forEach((item: File.File) => {
files.push(baseDir.value + item.name);
names.push(item.name);
});
}
await useDeleteData(BatchDeleteFile, { paths: files, isDir: false }, 'commons.msg.delete');
search();
opRef.value.acceptParams({
title: i18n.global.t('commons.button.delete'),
names: names,
msg: i18n.global.t('commons.msg.operatorHelper', [
i18n.global.t('commons.button.import'),
i18n.global.t('commons.button.delete'),
]),
api: BatchDeleteFile,
params: { paths: files, isDir: false },
});
};
const buttons = [

View File

@ -107,11 +107,13 @@
</ComplexTable>
</el-card>
<OpDialog ref="opRef" @search="search" />
<ConfirmDialog ref="confirmDialogRef" @confirm="onRecover"></ConfirmDialog>
</div>
</template>
<script lang="ts" setup>
import OpDialog from '@/components/del-dialog/index.vue';
import ConfirmDialog from '@/components/confirm-dialog/index.vue';
import { Database } from '@/api/interface/database';
import { redisPersistenceConf, updateRedisPersistenceConf } from '@/api/modules/database';
@ -121,7 +123,6 @@ import { dateFormat } from '@/utils/util';
import i18n from '@/lang';
import { FormInstance } from 'element-plus';
import { reactive, ref } from 'vue';
import { useDeleteData } from '@/hooks/use-delete-data';
import { MsgInfo, MsgSuccess } from '@/utils/message';
import { Backup } from '@/api/interface/backup';
@ -139,6 +140,7 @@ const rules = reactive({
appendfsync: [Rules.requiredSelect],
});
const formRef = ref<FormInstance>();
const opRef = ref();
interface DialogProps {
status: string;
@ -220,15 +222,26 @@ const onRecover = async () => {
const onBatchDelete = async (row: Backup.RecordInfo | null) => {
let ids: Array<number> = [];
let names: Array<string> = [];
if (row) {
ids.push(row.id);
names.push(row.fileName);
} else {
selects.value.forEach((item: Backup.RecordInfo) => {
ids.push(item.id);
names.push(item.fileName);
});
}
await useDeleteData(deleteBackupRecord, { ids: ids }, 'commons.msg.delete');
search();
opRef.value.acceptParams({
title: i18n.global.t('commons.button.delete'),
names: names,
msg: i18n.global.t('commons.msg.operatorHelper', [
i18n.global.t('commons.button.backup'),
i18n.global.t('commons.button.delete'),
]),
api: deleteBackupRecord,
params: { ids: ids },
});
};
const buttons = [

View File

@ -368,19 +368,23 @@
</el-row>
</template>
</LayoutContent>
<OpDialog ref="opRef" @search="search" />
<DialogOperate ref="dialogRef" @search="search" />
</div>
</template>
<script setup lang="ts">
import { dateFormat } from '@/utils/util';
import { onMounted, ref } from 'vue';
import OpDialog from '@/components/del-dialog/index.vue';
import { getBackupList, deleteBackup } from '@/api/modules/setting';
import DialogOperate from '@/views/setting/backup-account/operate/index.vue';
import { Backup } from '@/api/interface/backup';
import { ElForm } from 'element-plus';
import { useDeleteData } from '@/hooks/use-delete-data';
import i18n from '@/lang';
const data = ref();
const opRef = ref();
const reflash = ref(false);
const localData = ref<Backup.BackupInfo>({
id: 0,
@ -531,8 +535,16 @@ const search = async () => {
};
const onDelete = async (row: Backup.BackupInfo) => {
await useDeleteData(deleteBackup, { id: row.id }, 'commons.msg.delete');
search();
opRef.value.acceptParams({
title: i18n.global.t('commons.button.delete'),
names: [row.type],
msg: i18n.global.t('commons.msg.operatorHelper', [
i18n.global.t('setting.backupAccount'),
i18n.global.t('commons.button.delete'),
]),
api: deleteBackup,
params: { id: row.id },
});
};
const dialogRef = ref();