diff --git a/components.d.ts b/components.d.ts
index eaefd98..94929a0 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -26,6 +26,7 @@ declare module 'vue' {
AImage: typeof import('ant-design-vue/es')['Image']
AImagePreviewGroup: typeof import('ant-design-vue/es')['ImagePreviewGroup']
AInput: typeof import('ant-design-vue/es')['Input']
+ AInputGroup: typeof import('ant-design-vue/es')['InputGroup']
AInputPassword: typeof import('ant-design-vue/es')['InputPassword']
Alert: typeof import('./src/components/MyUI/Alert/Alert.vue')['default']
AList: typeof import('ant-design-vue/es')['List']
@@ -187,5 +188,7 @@ declare module 'vue' {
Video: typeof import('./src/components/MyUI/Video/Video.vue')['default']
VueCompareImage: typeof import('./src/components/VueCompareImage/VueCompareImage.vue')['default']
WarningOutlined: typeof import('@ant-design/icons-vue')['WarningOutlined']
+ Waterfall: typeof import('./src/views/Photograph/WaterfallList/Waterfall.vue')['default']
+ WaterfallList: typeof import('./src/views/Photograph/WaterfallList/WaterfallList.vue')['default']
}
}
diff --git a/package.json b/package.json
index 745dba8..c0a4bf1 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"@types/json-stringify-safe": "^5.0.3",
"@types/node": "^22.13.1",
"@types/nprogress": "^0.2.3",
- "@vladmandic/face-api": "^1.7.14",
+ "@vladmandic/face-api": "^1.7.15",
"@vuepic/vue-datepicker": "^11.0.1",
"@vueuse/core": "^12.5.0",
"@vueuse/integrations": "^12.5.0",
@@ -44,7 +44,7 @@
"buffer": "^6.0.3",
"crypto-js": "^4.2.0",
"echarts": "^5.6.0",
- "eslint": "9.19.0",
+ "eslint": "9.20.0",
"exifr": "^7.1.3",
"go-captcha-vue": "^2.0.5",
"gsap": "^3.12.7",
@@ -66,28 +66,28 @@
"vite-plugin-node-polyfills": "^0.23.0",
"vue": "^3.5.13",
"vue-dompurify-html": "^5.2.0",
- "vue-i18n": "^11.1.0",
+ "vue-i18n": "^11.1.1",
"vue-router": "^4.5.0",
- "vue-waterfall-plugin-next": "^2.6.5",
+ "vue3-justified-layout": "^0.0.6",
"ws": "^8.18.0"
},
"devDependencies": {
- "@eslint/js": "^9.19.0",
+ "@eslint/js": "^9.20.0",
"@vitejs/plugin-vue": "^5.2.1",
"eslint-plugin-vue": "^9.32.0",
"globals": "^15.14.0",
- "sass": "^1.83.4",
+ "sass": "^1.84.0",
"typescript": "^5.7.3",
"typescript-eslint": "^8.23.0",
"unplugin-vue-components": "^28.0.0",
- "vite": "^6.0.11",
+ "vite": "^6.1.0",
"vite-plugin-bundle-obfuscator": "1.4.1",
"vite-plugin-chunk-split": "^0.5.0",
"vue-tsc": "2.2.0"
},
"overrides": {
"vite-plugin-chunk-split": {
- "vite": "^6.0.11"
+ "vite": "^6.1.0"
}
}
}
diff --git a/src/api/storage/index.ts b/src/api/storage/index.ts
index 1c90e54..c93c4a3 100644
--- a/src/api/storage/index.ts
+++ b/src/api/storage/index.ts
@@ -1,11 +1,16 @@
import {service} from "@/utils/alova/service.ts";
+/**
+ * 上传文件
+ * @param formData
+ */
export const uploadFile = (formData) => {
return service.Post('/api/auth/storage/uploads', formData, {
meta: {
ignoreToken: false,
signature: false,
- }
+ },
+ name: "upload-file",
});
};
@@ -24,7 +29,8 @@ export const getFaceSamplesList = (type: number) => {
meta: {
ignoreToken: false,
signature: false,
- }
+ },
+ hitSource: ["modify-face-sample-name", "modify-face-sample-type"],
});
};
/**
@@ -40,7 +46,8 @@ export const modifyFaceSampleName = (id: number, face_name: string) => {
meta: {
ignoreToken: false,
signature: false,
- }
+ },
+ name: "modify-face-sample-name",
});
};
/**
@@ -56,7 +63,101 @@ export const modifyFaceTypeBatch = (ids: number[], face_type: number) => {
meta: {
ignoreToken: false,
signature: false,
- }
+ },
+ name: "modify-face-sample-type"
+ });
+};
+/**
+ * 创建相册
+ * @param name
+ */
+export const createAlbumApi = (name: string) => {
+ return service.Post('/api/auth/storage/album/create', {
+ name: name,
+ }, {
+ meta: {
+ ignoreToken: false,
+ signature: false,
+ },
+ name: "create-album",
+ });
+};
+/**
+ * 获取相册列表
+ * @param type
+ * @param sort
+ */
+export const albumListApi = (type: string, sort: boolean) => {
+ return service.Post('/api/auth/storage/album/list', {
+ type: type,
+ sort: sort,
+ }, {
+ cacheFor: {
+ expire: 60 * 60 * 24 * 7,
+ mode: "restore",
+ },
+ meta: {
+ ignoreToken: false,
+ signature: false,
+ },
+ hitSource: ["create-album", "rename-album", "delete-album"],
});
};
+/**
+ * 重命名相册
+ * @param id
+ * @param name
+ */
+export const renameAlbumApi = (id: number, name: string) => {
+ return service.Post('/api/auth/storage/album/rename', {
+ id: id,
+ name: name,
+ }, {
+ meta: {
+ ignoreToken: false,
+ signature: false,
+ },
+ name: "rename-album",
+ });
+};
+/**
+ * 删除相册
+ * @param id
+ */
+export const deleteAlbumApi = (id: number) => {
+ return service.Post('/api/auth/storage/album/delete', {
+ id: id,
+ }, {
+ meta: {
+ ignoreToken: false,
+ signature: false,
+ },
+ name: "delete-album",
+ });
+};
+/**
+ * 获取所有照片列表
+ * @param type
+ * @param sort
+ * @param provider
+ * @param bucket
+ */
+export const queryAllImagesApi = (type: string, sort: boolean, provider: string, bucket: string) => {
+ return service.Post('/api/auth/storage/image/all/list', {
+ type: type,
+ sort: sort,
+ provider: provider,
+ bucket: bucket,
+ }, {
+ cacheFor: {
+ expire: 60 * 60 * 24 * 7,
+ mode: "restore",
+ },
+ meta: {
+ ignoreToken: false,
+ signature: false,
+ },
+ hitSource: ["upload-file"],
+ });
+};
diff --git a/src/assets/images/default-cover.png b/src/assets/images/default-cover.png
new file mode 100644
index 0000000..1aef613
Binary files /dev/null and b/src/assets/images/default-cover.png differ
diff --git a/src/components/MyUI/CheckCard/CheckCard.vue b/src/components/MyUI/CheckCard/CheckCard.vue
index 0b276b6..1f85f09 100644
--- a/src/components/MyUI/CheckCard/CheckCard.vue
+++ b/src/components/MyUI/CheckCard/CheckCard.vue
@@ -89,7 +89,7 @@ function toggleSelection() {
diff --git a/src/views/Photograph/AllPhoto/AllPhoto.vue b/src/views/Photograph/AllPhoto/AllPhoto.vue
index 3ce99b3..7af7260 100644
--- a/src/views/Photograph/AllPhoto/AllPhoto.vue
+++ b/src/views/Photograph/AllPhoto/AllPhoto.vue
@@ -63,54 +63,44 @@
-
-
-
2024年12月27日 星期日
-
-
-
-
-
-
-
-
-
+
+
+
+
{{ itemList.date }}
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -120,64 +110,36 @@