diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts
index 9bf0e104f..a126c2851 100644
--- a/frontend/src/lang/modules/en.ts
+++ b/frontend/src/lang/modules/en.ts
@@ -418,6 +418,8 @@ export default {
image: 'Image',
imagePull: 'Image pull',
imagePush: 'Image push',
+ imageDelete: 'Image delete',
+ imageDeleteTag: 'Image tag delete',
repoName: 'Repo Name',
imageName: 'Image name',
pull: 'Pull',
diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts
index 76c82902b..78fa970d0 100644
--- a/frontend/src/lang/modules/zh.ts
+++ b/frontend/src/lang/modules/zh.ts
@@ -446,6 +446,7 @@ export default {
imagePull: '拉取镜像',
imagePush: '推送镜像',
imageDelete: '删除镜像',
+ imageDeleteTag: '删除 Tag',
repoName: '仓库名',
imageName: '镜像名',
httpRepo: 'http 仓库添加授信需要重启 docker 服务',
diff --git a/frontend/src/views/container/image/build/index.vue b/frontend/src/views/container/image/build/index.vue
index 325f518b9..855cd4d41 100644
--- a/frontend/src/views/container/image/build/index.vue
+++ b/frontend/src/views/container/image/build/index.vue
@@ -129,6 +129,7 @@ const rules = reactive({
dockerfile: [Rules.requiredInput, { validator: varifyPath, trigger: 'change', required: true }],
});
const acceptParams = async () => {
+ logVisiable.value = false;
drawerVisiable.value = true;
form.from = 'path';
form.dockerfile = '';
diff --git a/frontend/src/views/container/image/delete/index.vue b/frontend/src/views/container/image/delete/index.vue
new file mode 100644
index 000000000..e152994e9
--- /dev/null
+++ b/frontend/src/views/container/image/delete/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/container/image/index.vue b/frontend/src/views/container/image/index.vue
index d862177d4..dd71f4fc5 100644
--- a/frontend/src/views/container/image/index.vue
+++ b/frontend/src/views/container/image/index.vue
@@ -69,29 +69,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -107,10 +85,9 @@ import Push from '@/views/container/image/push/index.vue';
import Save from '@/views/container/image/save/index.vue';
import Load from '@/views/container/image/load/index.vue';
import Build from '@/views/container/image/build/index.vue';
-import { searchImage, listImageRepo, imageRemove, loadDockerStatus } from '@/api/modules/container';
+import Delete from '@/views/container/image/delete/index.vue';
+import { searchImage, listImageRepo, loadDockerStatus } from '@/api/modules/container';
import i18n from '@/lang';
-import { ElForm } from 'element-plus';
-import { useDeleteData } from '@/hooks/use-delete-data';
import router from '@/routers';
const loading = ref(false);
@@ -143,12 +120,7 @@ const dialogPushRef = ref();
const dialogLoadRef = ref();
const dialogSaveRef = ref();
const dialogBuildRef = ref();
-
-const deleteVisiable = ref(false);
-const deleteForm = reactive({
- deleteTags: [] as Array,
- tags: [] as Array,
-});
+const dialogDeleteRef = ref();
const search = async () => {
const repoSearch = {
@@ -181,16 +153,6 @@ const onOpenload = () => {
dialogLoadRef.value!.acceptParams();
};
-const batchDelete = async () => {
- let names: Array = [];
- for (const item of deleteForm.deleteTags) {
- names.push(item);
- }
- await useDeleteData(imageRemove, { names: names }, 'commons.msg.delete');
- deleteVisiable.value = false;
- search();
-};
-
const buttons = [
{
label: 'Tag',
@@ -225,9 +187,11 @@ const buttons = [
{
label: i18n.global.t('commons.button.delete'),
click: (row: Container.ImageInfo) => {
- deleteForm.tags = row.tags;
- deleteForm.deleteTags = [];
- deleteVisiable.value = true;
+ let params = {
+ id: row.id,
+ tags: row.tags,
+ };
+ dialogDeleteRef.value!.acceptParams(params);
},
},
];
diff --git a/frontend/src/views/container/image/pull/index.vue b/frontend/src/views/container/image/pull/index.vue
index 809da3e1f..beb3bcb70 100644
--- a/frontend/src/views/container/image/pull/index.vue
+++ b/frontend/src/views/container/image/pull/index.vue
@@ -11,7 +11,7 @@
-
+
{{ $t('container.imageRepo') }}
@@ -100,6 +100,7 @@ interface DialogProps {
const repos = ref();
const acceptParams = async (params: DialogProps): Promise => {
+ logVisiable.value = false;
drawerVisiable.value = true;
form.fromRepo = true;
form.imageName = '';
diff --git a/frontend/src/views/container/image/push/index.vue b/frontend/src/views/container/image/push/index.vue
index 49756add3..d716a4268 100644
--- a/frontend/src/views/container/image/push/index.vue
+++ b/frontend/src/views/container/image/push/index.vue
@@ -108,6 +108,7 @@ const dialogData = ref({
});
const acceptParams = async (params: DialogProps): Promise => {
+ logVisiable.value = false;
drawerVisiable.value = true;
form.tags = params.tags;
form.repoID = 1;