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 @@