1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import { Component } from '@angular/core';
- interface Photo {
- id: number;
- url: string;
- tags: string[];
- }
- @Component({
- selector: 'app-tab1',
- templateUrl: 'tab1.page.html',
- styleUrls: ['tab1.page.scss'],
- })
- export class Tab1Page {
- photos: Photo[] = [
- { id: 1, url: 'assets/photos/photo1.jpg', tags: ['赛马娘', '东商改革'] },
- { id: 2, url: 'assets/photos/photo2.jpg', tags: ['赛马娘', '东海帝皇', '目白麦昆'] },
- { id: 3, url: 'assets/photos/photo3.jpg', tags: ['赛马娘', '东海帝皇'] },
- { id: 4, url: 'assets/photos/photo4.jpg', tags: ['赛马娘', '目白麦昆'] },
- { id: 5, url: 'assets/photos/photo5.jpg', tags: ['赛马娘', '草上飞'] },
- { id: 6, url: 'assets/photos/photo6.jpg', tags: ['赛马娘', '北部玄驹'] },
- // 添加更多照片
- ];
- displayedPhotos: Photo[] = [];
- newPhotoTags: string = '';
- constructor() {
- this.displayedPhotos = [...this.photos]; // 初始显示所有照片
- }
- onSearch(event: CustomEvent) {
- const searchTerm = (event.target as HTMLInputElement).value.toLowerCase().trim();
- if (searchTerm === '') {
- this.displayedPhotos = [...this.photos]; // 重置显示所有照片
- } else {
- this.displayedPhotos = this.photos.filter(photo =>
- photo.tags.some(tag => tag.toLowerCase().includes(searchTerm))
- );
- }
- }
- openFullscreen(imageUrl: string) {
- window.open(imageUrl, '_blank');
- }
- // 打开文件选择器
- openFilePicker() {
- const input = document.createElement('input');
- input.type = 'file';
- input.accept = 'image/*';
- input.onchange = (event: Event) => this.handleFileSelect(event);
- input.click();
- }
- // 处理文件选择和标签输入
- handleFileSelect(event: Event) {
- const input = event.target as HTMLInputElement;
- if (input.files && input.files.length > 0) {
- const file = input.files[0];
- const reader = new FileReader();
- reader.readAsDataURL(file);
- reader.onload = () => {
- const imageUrl = reader.result as string;
- const newTags = this.newPhotoTags.split(',').map(tag => tag.trim());
- const newPhoto: Photo = {
- id: this.photos.length + 1,
- url: imageUrl,
- tags: newTags,
- };
- this.photos.push(newPhoto);
- this.displayedPhotos = [...this.photos]; // 更新显示的照片列表
- this.newPhotoTags = ''; // 清空标签输入框
- };
- reader.onerror = error => {
- console.error('FileReader error:', error);
- };
- }
- }
- }
|