Browse Source

commit 优化pdf快捷翻页

Hai Lin 1 week ago
parent
commit
0b6f041768

+ 11 - 14
app.py

@@ -643,17 +643,8 @@ def parse_pdf(pdf_id):
             doc = fitz.open(temp_pdf_path)
             page_count = doc.page_count
 
-            # 获取当前最大页码
-            conn = get_db_connection()
+            # 每个PDF的页码从1开始计算
             max_page = 0
-            try:
-                with conn.cursor() as cursor:
-                    cursor.execute("SELECT MAX(page_number) as max_page FROM genealogy_records")
-                    result = cursor.fetchone()
-                    if result and result['max_page']:
-                        max_page = result['max_page']
-            finally:
-                conn.close()
 
             # 逐页处理
             for i in range(page_count):
@@ -663,8 +654,11 @@ def parse_pdf(pdf_id):
                 pix.save(image_path)
 
                 # 上传图片到OSS
-                with open(image_path, 'rb') as f:
-                    image_oss_url = upload_to_oss(f, f"{pdf_info['file_name']}_page_{i+1}.png")
+                image_oss_url = upload_to_oss(image_path, f"{pdf_info['file_name']}_page_{i+1}.png")
+                
+                # 检查上传是否成功
+                if not image_oss_url:
+                    raise Exception(f"Failed to upload image to OSS: {image_path}")
 
                 # 保存到genealogy_records表
                 conn = get_db_connection()
@@ -747,6 +741,7 @@ def index():
         
     page = request.args.get('page', 1, type=int)
     version = request.args.get('version', '').strip()
+    print(f"Received version parameter: '{version}'")
     source = request.args.get('source', '').strip()
     person = request.args.get('person', '').strip()
     file_type = request.args.get('file_type', '').strip()
@@ -1182,7 +1177,8 @@ def add_member():
                 'family_rank': request.form.get('family_rank'),
                 'tags': request.form.get('tags'),
                 'notes': request.form.get('notes'),
-                'source_record_id': request.form.get('source_record_id') or None  # Save source record ID
+                'source_record_id': request.form.get('source_record_id') or None,  # Save source record ID
+                'create_uid': session['user_id']  # 记录当前操作人
             }
             
             # ... (rest of logic) ...
@@ -1340,7 +1336,8 @@ def edit_member(member_id):
                 'family_rank': request.form.get('family_rank'),
                 'tags': request.form.get('tags'),
                 'notes': request.form.get('notes'),
-                'source_record_id': request.form.get('source_record_id') or None
+                'source_record_id': request.form.get('source_record_id') or None,
+                'create_uid': session['user_id']  # 记录当前操作人
             }
             
             # 关系数据

+ 13 - 0
check_genealogy_records.py

@@ -0,0 +1,13 @@
+import pymysql
+from app import get_db_connection
+
+conn = get_db_connection()
+cursor = conn.cursor()
+
+print('genealogy_records表结构:')
+cursor.execute('DESCRIBE genealogy_records')
+for row in cursor:
+    print(row)
+
+cursor.close()
+conn.close()

+ 14 - 0
check_genealogy_records_data.py

@@ -0,0 +1,14 @@
+import pymysql
+from app import get_db_connection
+
+conn = get_db_connection()
+cursor = conn.cursor()
+
+print('genealogy_records表数据(前10条):')
+cursor.execute('SELECT id, file_name, genealogy_version FROM genealogy_records LIMIT 10')
+records = cursor.fetchall()
+for record in records:
+    print(f"ID: {record['id']}, File Name: {record['file_name']}, Genealogy Version: {record['genealogy_version']}")
+
+cursor.close()
+conn.close()

+ 24 - 0
check_genealogy_records_version.py

@@ -0,0 +1,24 @@
+import pymysql
+from app import get_db_connection
+
+conn = get_db_connection()
+cursor = conn.cursor()
+
+print('genealogy_records表中genealogy_version字段的值:')
+cursor.execute('SELECT DISTINCT genealogy_version FROM genealogy_records')
+versions = cursor.fetchall()
+for version in versions:
+    print(f"Genealogy Version: {version['genealogy_version']}")
+
+print('\n搜索卷四的记录数量:')
+cursor.execute('SELECT COUNT(*) as count FROM genealogy_records WHERE genealogy_version LIKE %s', ('%卷四%',))
+count = cursor.fetchone()['count']
+print(f"卷四记录数量: {count}")
+
+print('\n搜索卷五的记录数量:')
+cursor.execute('SELECT COUNT(*) as count FROM genealogy_records WHERE genealogy_version LIKE %s', ('%卷五%',))
+count = cursor.fetchone()['count']
+print(f"卷五记录数量: {count}")
+
+cursor.close()
+conn.close()

+ 13 - 0
check_table_structure.py

@@ -0,0 +1,13 @@
+import pymysql
+from app import get_db_connection
+
+conn = get_db_connection()
+cursor = conn.cursor()
+
+print('family_member_info表结构:')
+cursor.execute('DESCRIBE family_member_info')
+for row in cursor:
+    print(row)
+
+cursor.close()
+conn.close()

+ 30 - 7
templates/add_member.html

@@ -1071,16 +1071,32 @@
     }
 
     function nextImage() {
-        if (currentIndex < images.length - 1) {
-            currentIndex++;
-            updateDisplay();
+        if (images.length === 0) return;
+        
+        const currentVersion = images[currentIndex].genealogy_version;
+        
+        // 从当前索引开始,寻找下一个相同版本的图片
+        for (let i = currentIndex + 1; i < images.length; i++) {
+            if (images[i].genealogy_version === currentVersion) {
+                currentIndex = i;
+                updateDisplay();
+                return;
+            }
         }
     }
 
     function prevImage() {
-        if (currentIndex > 0) {
-            currentIndex--;
-            updateDisplay();
+        if (images.length === 0) return;
+        
+        const currentVersion = images[currentIndex].genealogy_version;
+        
+        // 从当前索引开始,寻找上一个相同版本的图片
+        for (let i = currentIndex - 1; i >= 0; i--) {
+            if (images[i].genealogy_version === currentVersion) {
+                currentIndex = i;
+                updateDisplay();
+                return;
+            }
         }
     }
 
@@ -1088,7 +1104,14 @@
         const val = document.getElementById('pageInput').value;
         if (!val) return;
         const page = parseInt(val);
-        const index = images.findIndex(img => img.page === page);
+        
+        if (images.length === 0) {
+            alert('未找到该页码对应的图片');
+            return;
+        }
+        
+        const currentVersion = images[currentIndex].genealogy_version;
+        const index = images.findIndex(img => img.page === page && img.genealogy_version === currentVersion);
         if (index !== -1) {
             currentIndex = index;
             updateDisplay();