From 59b14f4026e5f09cd8f154060ed08646c6455875 Mon Sep 17 00:00:00 2001
From: dshclm <3321914460@qq.com>
Date: Tue, 27 May 2025 15:32:15 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../pdf/controller/LeavePdfController.java    |  65 ++
 .../controller/pdf/dto/PdfFormRequest.java    |  13 -
 .../pdf/service/LeavePdfService.java          | 177 ++++
 .../resources/static/file/pdf/smrylzlgspb.pdf | Bin 0 -> 65654 bytes
 .../system/newdev/abroad/editAbroad.html      |  11 +-
 .../system/newdev/apply/editFile.html         |   9 +-
 .../system/newdev/audit/editAudit.html        |   7 +-
 .../system/newdev/leave/leaveFile.html        | 818 ++++++++++++++++++
 .../system/newdev/leaveAudit/leaveAudit.html  |  10 +
 .../system/newdev/onduty/editDuty.html        |   9 +-
 .../system/newdev/person/detail.html          |   7 +-
 .../system/newdev/promise/editPromise.html    |   9 +-
 .../system/newdev/train/training.html         |   9 +-
 13 files changed, 1118 insertions(+), 26 deletions(-)
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/controller/LeavePdfController.java
 delete mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/dto/PdfFormRequest.java
 create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/service/LeavePdfService.java
 create mode 100644 ruoyi-admin/src/main/resources/static/file/pdf/smrylzlgspb.pdf
 create mode 100644 ruoyi-admin/src/main/resources/templates/system/newdev/leave/leaveFile.html
 create mode 100644 ruoyi-admin/src/main/resources/templates/system/newdev/leaveAudit/leaveAudit.html

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/controller/LeavePdfController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/controller/LeavePdfController.java
new file mode 100644
index 00000000..0d0dd110
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/controller/LeavePdfController.java
@@ -0,0 +1,65 @@
+package com.ruoyi.web.controller.pdf.controller;
+
+
+import com.ruoyi.web.controller.pdf.service.LeavePdfService;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayOutputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/LeavePdf")
+public class LeavePdfController {
+
+    private final LeavePdfService LeavePdfService;
+
+    public LeavePdfController(LeavePdfService LeavePdfService) {
+        this.LeavePdfService = LeavePdfService;
+    }
+
+    @PostMapping(value = "/LeaveFill", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public ResponseEntity<byte[]> fillPdfForm(
+            @RequestParam(required = false) String  name,
+            @RequestParam(required = false) String  political,
+            @RequestParam(required = false) String  phone,
+            @RequestParam(required = false) String  positionCapacity,
+            @RequestParam(required = false) String  smPost,
+            @RequestParam(required = false) String  smGrade,
+            @RequestParam(required = false) MultipartFile photo) throws Exception {
+
+        // 构建表单数据
+        Map<String, String> formData = new HashMap<>();
+        if (name != null) formData.put("姓名", name);
+        if (political != null) formData.put("政治面貌", political);
+        if (phone != null) formData.put("联系电话", phone);
+        if (positionCapacity != null) formData.put("职务职级", positionCapacity);
+        if (smPost != null) formData.put("涉密岗位", smPost);
+        if (smGrade != null) formData.put("涉密等级", smGrade);
+
+        // 构建图片数据
+        Map<String, MultipartFile> imageData = new HashMap<>();
+        if (photo != null && !photo.isEmpty()) {
+            imageData.put("照片", photo);
+        }
+
+        // 生成PDF
+        ByteArrayOutputStream outputStream = LeavePdfService.fillForm(formData, imageData);
+
+        // 返回PDF文件
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_PDF);
+        headers.setContentDispositionFormData("attachment", "output.pdf");
+
+        return ResponseEntity.ok()
+                .headers(headers)
+                .body(outputStream.toByteArray());
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/dto/PdfFormRequest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/dto/PdfFormRequest.java
deleted file mode 100644
index 5b0457e7..00000000
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/dto/PdfFormRequest.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.ruoyi.web.controller.pdf.dto;
-
-import lombok.Data;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@Data
-public class PdfFormRequest {
-    private Map<String, String> formData = new HashMap<>();
-    private Map<String, MultipartFile> imageData = new HashMap<>();
-}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/service/LeavePdfService.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/service/LeavePdfService.java
new file mode 100644
index 00000000..0377c8b7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/pdf/service/LeavePdfService.java
@@ -0,0 +1,177 @@
+package com.ruoyi.web.controller.pdf.service;
+
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.PDPageContentStream;
+import org.apache.pdfbox.pdmodel.font.PDType0Font;
+import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
+import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
+import org.apache.pdfbox.pdmodel.interactive.form.PDField;
+import org.apache.pdfbox.pdmodel.interactive.form.PDTextField;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+
+@Service
+public class LeavePdfService {
+
+    // 定义最大和最小字体大小,用于动态调整
+    private static final float MAX_FONT_SIZE = 14;
+    private static final float MIN_FONT_SIZE = 8;
+    // 需要特殊处理的字段列表
+    private static final String[] AUTO_WRAP_FIELDS = {
+
+    };
+
+    public ByteArrayOutputStream fillForm(Map<String, String> formData,
+                                          Map<String, MultipartFile> imageData) throws IOException {
+        // 禁用系统字体扫描,只使用自定义字体
+        System.setProperty("org.apache.pdfbox.rendering.UseSystemFonts", "false");
+        // 提高字体解析警告的日志级别
+        System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
+        System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.fontbox", "ERROR");
+
+        PDDocument document = null;
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+
+        try {
+            // 加载模板PDF
+            ClassLoader classLoader = getClass().getClassLoader();
+            File templateFile = new File(classLoader.getResource("static/file/pdf/smrylzlgspb.pdf").getFile());
+            document = PDDocument.load(templateFile);
+            PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();
+
+            if (acroForm == null) {
+                throw new IOException("PDF不包含表单域");
+            }
+
+            // 加载中文字体
+            PDType0Font font = PDType0Font.load(document,
+                    new File(classLoader.getResource("static/file/pdf/STSONG.TTF").getFile()));
+
+            // 设置需要更新表单外观
+            acroForm.setNeedAppearances(true);
+
+            // 填充文本表单
+            for (Map.Entry<String, String> entry : formData.entrySet()) {
+                String fieldName = entry.getKey();
+                String fieldValue = entry.getValue();
+                PDField field = acroForm.getField(fieldName);
+                if (field != null) {
+                    // 设置表单域为不可编辑
+                    field.setReadOnly(true);
+                    // 设置表单域不高亮显示
+//                    for (PDAnnotationWidget widget : field.getWidgets()) {
+//                        widget.setHighlightMode(PDAnnotationWidget.HIGHLIGHT_MODE_NONE);
+//                    }
+                    if (fieldValue != null &&!fieldValue.isEmpty()) {
+                        field.setValue(fieldValue);
+                        if (field instanceof PDTextField) {
+                            PDTextField textField = (PDTextField) field;
+                            if (isAutoWrapField(fieldName)) {
+                                textField.setMultiline(true);
+                                float fontSize = calculateFontSize(fieldValue);
+                                textField.setDefaultAppearance("/" + font.getName() + " " + fontSize + " Tf 0 g");
+                            } else {
+                                textField.setDefaultAppearance("/" + font.getName() + " 12 Tf 0 g");
+                            }
+                        }
+                    } else {
+                        // 无内容时,也设置默认外观
+                        if (field instanceof PDTextField) {
+                            ((PDTextField) field).setDefaultAppearance("/" + font.getName() + " 12 Tf 0 g");
+                        }
+                    }
+                }
+            }
+
+            // 插入图片
+            insertImages(document, acroForm, imageData);
+
+            // 保存到输出流
+            document.save(outputStream);
+
+        } catch (Exception e) {
+            e.printStackTrace(); // 打印异常信息,方便调试
+            throw new IOException("处理PDF时出错", e);
+        } finally {
+            if (document != null) {
+                document.close();
+            }
+        }
+
+        return outputStream;
+    }
+
+    private void insertImages(PDDocument document, PDAcroForm acroForm,
+                              Map<String, MultipartFile> imageData) throws IOException {
+        for (Map.Entry<String, MultipartFile> entry : imageData.entrySet()) {
+            String fieldName = entry.getKey();
+            MultipartFile file = entry.getValue();
+
+            PDField refField = acroForm.getField(fieldName);
+            // 设置表单域为不可编辑
+            if (refField != null) {
+                refField.setReadOnly(true);
+            }
+            if (refField != null &&!file.isEmpty()) {
+                // 假设图片插入到第一页,你可以根据实际情况修改
+                PDPage page = document.getPage(0);
+
+                // 手动指定图片插入位置
+                float x = 440; // 可以根据实际情况调整2
+                float y = 650; // 可以根据实际情况调整
+
+                PDImageXObject image = null;
+                PDPageContentStream contentStream = null;
+                try {
+                    // 从上传的文件创建图片对象
+                    image = PDImageXObject.createFromByteArray(document, file.getBytes(), file.getOriginalFilename());
+
+                    // 计算图片尺寸(按比例缩放)
+                    float imageWidth = image.getWidth();
+                    float imageHeight = image.getHeight();
+                    float maxWidth = 100;
+                    float maxHeight = 100;
+
+                    float scale = Math.min(maxWidth / imageWidth, maxHeight / imageHeight);
+                    imageWidth *= scale;
+                    imageHeight *= scale;
+
+                    // 在指定位置绘制图片
+                    contentStream = new PDPageContentStream(
+                            document, page, PDPageContentStream.AppendMode.APPEND, true);
+                    contentStream.drawImage(image, x, y, imageWidth, imageHeight);
+                } finally {
+                    if (contentStream != null) {
+                        contentStream.close();
+                    }
+                }
+            }
+        }
+    }
+
+    // 判断是否是需要自动换行的字段
+    private boolean isAutoWrapField(String fieldName) {
+        for (String autoWrapField : AUTO_WRAP_FIELDS) {
+            if (autoWrapField.equals(fieldName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    // 计算适应字段的字体大小(仅用于需要特殊处理的字段)
+    private float calculateFontSize(String fieldValue) {
+        int textLength = fieldValue.length();
+        float fontSize = 10;
+        if (textLength > 30) {
+            fontSize = Math.max(MIN_FONT_SIZE, 10 - ((textLength - 30) / 5));
+        }
+        return fontSize;
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/static/file/pdf/smrylzlgspb.pdf b/ruoyi-admin/src/main/resources/static/file/pdf/smrylzlgspb.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..fa88de72bb9a892f24ce14aca94140581f367b1c
GIT binary patch
literal 65654
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
H62t!kqE)S&

literal 0
HcmV?d00001

diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/abroad/editAbroad.html b/ruoyi-admin/src/main/resources/templates/system/newdev/abroad/editAbroad.html
index 868c6a4a..3bfff693 100644
--- a/ruoyi-admin/src/main/resources/templates/system/newdev/abroad/editAbroad.html
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/abroad/editAbroad.html
@@ -571,10 +571,10 @@
                                 fileName: file.name,
                                 fileSize: file.size,
                                 fileType: file.type,
-                                fileUrl: file.filePath,
+                                fileUrl: response.data.data.filePath,
                                 uploadTime: new Date().toISOString()
                             };
-                            this.uploadedFiles[index].push(fileInfo);
+                            this.$set(this.uploadedFiles, index, [...this.uploadedFiles[index], fileInfo]);
 
                             // 重置选择框
                             document.getElementById(`fileUpload${index}`).value = '';
@@ -695,7 +695,12 @@
             previewFile(file) {
                 let extension = file.fileName.split('.').pop().toLowerCase();
                 if (extension === 'pdf') {
-                    window.open(file.fileUrl);
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
                     return
                 }
                 this.previewingFile = file;
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/apply/editFile.html b/ruoyi-admin/src/main/resources/templates/system/newdev/apply/editFile.html
index 2f325358..339999c2 100644
--- a/ruoyi-admin/src/main/resources/templates/system/newdev/apply/editFile.html
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/apply/editFile.html
@@ -609,7 +609,7 @@
                                 fileName: file.name,
                                 fileSize: file.size,
                                 fileType: file.type,
-                                fileUrl: file.filePath,
+                                fileUrl: response.data.data.filePath,
                                 uploadTime: new Date().toISOString()
                             };
                             this.uploadedFiles.push(fileInfo);
@@ -737,7 +737,12 @@
             previewFile(file) {
                 let extension = file.fileName.split('.').pop().toLowerCase();
                 if (extension === 'pdf') {
-                    window.open(file.fileUrl);
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
                     return
                 }
                 this.previewingFile = file;
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/audit/editAudit.html b/ruoyi-admin/src/main/resources/templates/system/newdev/audit/editAudit.html
index a1b70445..0cfb05a1 100644
--- a/ruoyi-admin/src/main/resources/templates/system/newdev/audit/editAudit.html
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/audit/editAudit.html
@@ -512,7 +512,12 @@
             previewFile(file) {
                 let extension = file.fileName.split('.').pop().toLowerCase();
                 if (extension === 'pdf') {
-                    window.open(file.fileUrl);
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
                     return
                 }
                 this.previewingFile = file;
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/leave/leaveFile.html b/ruoyi-admin/src/main/resources/templates/system/newdev/leave/leaveFile.html
new file mode 100644
index 00000000..fb4de920
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/leave/leaveFile.html
@@ -0,0 +1,818 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <th:block th:include="include :: header('材料上传')"/>
+    <th:block th:include="include :: select2-css"/>
+    <th:block th:include="include :: jasny-bootstrap-css"/>
+    <th:block th:include="include :: element-css"/>
+    <link href="/file/pdf/test.css" rel="stylesheet">
+    <script src="/file/pdf/tailwindcss.js"></script>
+    <!-- Tailwind配置 -->
+    <script>
+        tailwind.config = {
+            theme: {
+                extend: {
+                    colors: {
+                        primary: '#3b82f6',
+                        secondary: '#64748b',
+                        accent: '#0ea5e9',
+                        neutral: '#f1f5f9',
+                        'neutral-dark': '#334155',
+                    },
+                    fontFamily: {
+                        sans: ['Inter', 'system-ui', 'sans-serif'],
+                    },
+                }
+            }
+        }
+    </script>
+
+    <style type="text/tailwindcss">
+        @layer utilities {
+            .content-auto {
+                content-visibility: auto;
+            }
+            .shadow-soft {
+                box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
+            }
+            .transition-custom {
+                transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+            }
+        }
+        .text-sm {
+            font-size: 1.4rem;
+        }
+        .text-base {
+            font-size: 1.4rem;
+        }
+        .text-xs {
+            font-size: 0.85rem;
+        }
+        .py-2 {
+            padding-top: 0.8rem;
+            padding-bottom: 0.8rem;
+        }
+        .space-y-3{
+            margin-bottom: 1.5rem;
+        }
+    </style>
+</head>
+<body class="bg-gray-50 font-sans">
+<div class="main-content min-h-screen flex flex-col" id="app">
+    <main class="flex-grow container mx-auto px-4 py-8" style="max-width: 100%;">
+        <div class="max-w-10xl mx-auto" style="width: 100%;">
+            <div  class="bg-white rounded-xl shadow-soft p-6 mb-8 scale-hover">
+                <form class="form-horizontal space-y-6" id="form-apply-edit" th:object="${applyInfoList}"  @submit.prevent="submitForm">
+                    <input name="applyId" type="hidden" th:field="*{applyId}"/>
+                    <h4 class="form-header h4">基本信息</h4>
+                    <!-- 文本字段 -->
+                    <div class="grid md:grid-cols-3 gap-6">
+                        <!-- 第一行前两列:姓名、性别 -->
+                        <div class="md:col-span-1 space-y-3">
+                            <!-- 姓名 -->
+                            <div class="space-y-3">
+                                <label for="name" class="block text-sm font-medium text-gray-700">姓名</label>
+                                <div class="relative">
+                                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                    <i class="fa-solid fa-user"></i>
+                                </span>
+                                    <input disabled type="text" id="name" v-model="formData.name" class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg" placeholder="请输入姓名">
+                                </div>
+                            </div>
+
+                            <!-- 性别 -->
+                            <div class="space-y-3">
+                                <label for="sex" class="block text-sm font-medium text-gray-700">性别</label>
+                                <div class="relative">
+                                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                    <i class="fa-solid fa-venus-mars"></i>
+                                </span>
+                                    <input disabled type="text" id="sex" v-model="formData.sex" class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg" placeholder="请输入性别">
+                                </div>
+                            </div>
+                        </div>
+                        <!-- 第二行前两列:国籍、曾用名 -->
+                        <div class="md:col-span-1 space-y-3">
+                            <!-- 国籍 -->
+                            <div class="space-y-3">
+                                <label for="nationa" class="block text-sm font-medium text-gray-700">国籍</label>
+                                <div class="relative">
+                                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                    <i class="fa-solid fa-globe"></i>
+                                </span>
+                                    <input disabled type="text" id="nationa" v-model="formData.nationa" class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg" placeholder="请输入国籍">
+                                </div>
+                            </div>
+
+                            <!-- 曾用名 -->
+                            <div class="space-y-3">
+                                <label for="formerName" class="block text-sm font-medium text-gray-700">曾用名</label>
+                                <div class="relative">
+                                <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                    <i class="fa-solid fa-user-tag"></i>
+                                </span>
+                                    <input disabled type="text" id="formerName" v-model="formData.formerName" class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg" placeholder="请输入曾用名">
+                                </div>
+                            </div>
+                        </div>
+                        <!-- 第一行第三列:图片上传区域(固定位置,跨两行) -->
+                        <div class="md:col-span-1 md:row-span-2 space-y-3 relative">
+                            <label class="block text-sm font-medium text-gray-700">一寸照片</label>
+                            <div class="mt-1 h-64 border-2 border-gray-300 rounded-lg shadow-soft transition-all duration-200" style="width: 141px;height: 195px">
+                                <!-- 上传区域(未选中时显示) -->
+                                <div v-if="!selectedFile" class="h-full flex justify-center items-center border-dashed cursor-pointer hover:border-primary">
+                                    <div class="text-center">
+                                        <i class="fa-solid fa-cloud-upload text-4xl text-gray-400 mb-2"></i>
+                                        <label for="photo" class="cursor-pointer bg-white rounded-md font-medium text-primary hover:text-primary/80">
+                                            <span>上传照片</span>
+                                            <input disabled id="photo" name="photo" type="file" accept="image/jpeg,image/png" class="sr-only" @change="handleFileUpload">
+                                        </label>
+                                        <p class="text-xs text-gray-500">
+                                            JPG, PNG (最大 2MB)
+                                        </p>
+                                    </div>
+                                </div>
+                                <!-- 预览区域(选中后显示) -->
+                                <div v-else class="h-full flex flex-col items-center justify-center p-3">
+                                    <img :src="previewUrl" alt="预览图" class="max-h-full max-w-full object-cover rounded-lg mb-2" style="max-height: 200px;">
+                                    <!--                                    <button type="button" @click="clearFile" class="text-xs text-red-500 hover:text-red-700">-->
+                                    <!--                                        <i class="fa-solid fa-times-circle mr-1"></i> 移除-->
+                                    <!--                                    </button>-->
+                                </div>
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="nationality" class="block text-sm font-medium text-gray-700">民族</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-people-group"></i>
+                                    </span>
+                                <input disabled type="text" id="nationality" v-model="formData.nationality"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入民族">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="maritalStatus" class="block text-sm font-medium text-gray-700">婚姻状况</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-ring"></i>
+                                    </span>
+                                <input disabled type="text" id="maritalStatus" v-model="formData.maritalStatus"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入婚姻状况">
+
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="political" class="block text-sm font-medium text-gray-700">政治面貌</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-user-tie"></i>
+                                    </span>
+                                <input disabled type="text" id="political" v-model="formData.political"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入政治面貌">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="phone" class="block text-sm font-medium text-gray-700">联系方式</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-phone"></i>
+                                    </span>
+                                <input disabled type="text" id="phone" v-model="formData.phone"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入联系方式">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="cerno" class="block text-sm font-medium text-gray-700">身份证号</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-id-card"></i>
+                                    </span>
+                                <input disabled type="text" id="cerno" v-model="formData.cerno"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入身份证号">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="address" class="block text-sm font-medium text-gray-700">户籍地址</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-house-chimney"></i>
+                                    </span>
+                                <input disabled type="text" id="address" v-model="formData.address"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入户籍地址">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="registeredAuthority" class="block text-sm font-medium text-gray-700">户籍地公安机关</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-badge-shield"></i>
+                                    </span>
+                                <input disabled type="text" id="registeredAuthority" v-model="formData.registeredAuthority"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入户籍地公安机关">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="permanentAddress" class="block text-sm font-medium text-gray-700">常住地址</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-house"></i>
+                                    </span>
+                                <input disabled type="text" id="permanentAddress" v-model="formData.permanentAddress"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入常住地址">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="residentBureau" class="block text-sm font-medium text-gray-700">常住地公安机关</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-badge-shield"></i>
+                                    </span>
+                                <input disabled type="text" id="residentBureau" v-model="formData.residentBureau"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入常住地公安机关">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="positionCapacity" class="block text-sm font-medium text-gray-700">单位及职务职称</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-building-user"></i>
+                                    </span>
+                                <input disabled type="text" id="positionCapacity" v-model="formData.positionCapacity"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入单位及职务职称">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="smPost" class="block text-sm font-medium text-gray-700">已(拟)任涉密岗位</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-shield-halved"></i>
+                                    </span>
+                                <input disabled type="text" id="smPost" v-model="formData.smPost"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入已(拟)任涉密岗位">
+                            </div>
+                        </div>
+                        <div class="space-y-3">
+                            <label for="smGrade" class="block text-sm font-medium text-gray-700">涉密等级</label>
+                            <div class="relative">
+                                    <span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-500">
+                                        <i class="fa-solid fa-lock"></i>
+                                    </span>
+                                <input disabled type="text" id="smGrade" v-model="formData.smGrade"
+                                       class="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors duration-200"
+                                       placeholder="请输入涉密等级">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="flex items-center justify-between mb-4">
+                        <button type="submit" class="group relative w-full max-w-xs flex justify-center py-3 px-6 border border-transparent text-base font-medium rounded-lg text-white bg-primary hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary transition-all duration-200">
+                                <span class="absolute left-0 inset-y-0 flex items-center pl-3" style="margin-right: 5px;">
+                                    <i class="fa-solid fa-file-pdf text-white transform group-hover:translate-x-0.5 transition-transform duration-200"></i>
+                                </span>
+                            生成离职离岗审批表
+                        </button>
+                    </div>
+                    <h4 class="form-header h4">材料上传</h4>
+                    <!-- 材料上传区域 - 使用循环生成 -->
+                    <div class="mt-6" style=" display: flex;flex-wrap: wrap;justify-content: space-around;">
+                        <div v-for="(material, index) in materials" :key="index" class="border border-gray-200 rounded-lg p-4 mb-6" style="width: 50%;">
+                            <div class="flex items-center justify-between mb-3">
+                                <span class="text-sm text-gray-600">{{ material.description }}</span>
+                                <div class="relative">
+                                    <label :for="'fileUpload' + index" class="inline-flex items-center px-3 py-1.5 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-primary hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary cursor-pointer transition-colors duration-200">
+                                        <i class="fa-solid fa-upload mr-2"></i> 选择文件
+                                        <input :id="'fileUpload' + index" type="file" class="sr-only" :accept="material.accept" @change="handleFileSelection(index)">
+                                    </label>
+                                    <a v-if="material.code ==='bm_user_lpromise_012'" :href="material.templateUrl" :download="material.downloadName" class="inline-flex items-center px-3 py-1.5 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-primary hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary transition-colors duration-200">
+                                        <i class="fa-solid fa-download mr-1"></i> 下载模版
+                                    </a>
+                                </div>
+                            </div>
+
+                            <!-- 上传进度条 -->
+                            <div v-if="uploadProgress[index] > 0 && uploadProgress[index] < 100" class="mb-3">
+                                <div class="flex justify-between text-sm mb-1">
+                                    <span class="text-gray-700">上传中: {{ currentFileName[index] }}</span>
+                                    <span class="text-gray-500">{{ uploadProgress[index] }}%</span>
+                                </div>
+                                <div class="w-full bg-gray-200 rounded-full h-2">
+                                    <div class="bg-primary h-2 rounded-full" :style="{ width: uploadProgress[index] + '%' }"></div>
+                                </div>
+                            </div>
+
+                            <!-- 文件列表 -->
+                            <div class="mt-3">
+                                <div v-if="uploadedFiles[index].length === 0" class="py-6 text-center border-2 border-dashed border-gray-300 rounded-lg">
+                                    <i class="fa-solid fa-cloud-upload-alt text-3xl text-gray-400 mb-2"></i>
+                                    <p class="text-gray-500">未上传文件</p>
+                                </div>
+                                <div v-else class="space-y-2">
+                                    <div v-for="(file, fileIndex) in uploadedFiles[index]" :key="fileIndex" class="flex items-center p-2 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors duration-200">
+                                        <div class="flex-shrink-0 mr-3">
+                                            <i :class="getFileIcon(file.fileName)" class="text-xl"></i>
+                                        </div>
+                                        <div class="flex-grow min-w-0">
+                                            <p class="text-sm font-medium text-gray-900 truncate">{{ file.fileName }}</p>
+                                        </div>
+                                        <div class="flex-shrink-0 ml-3">
+                                            <button v-if="isImageFile(file.fileName)" @click="previewFile(file)" class="text-primary hover:text-primary/80 mr-2">
+                                                <i class="fa-solid fa-eye"></i>
+                                            </button>
+                                            <button @click="downloadFile(file, index)" class="text-primary hover:text-primary/80 mr-2">
+                                                <i class="fa-solid fa-download"></i>
+                                            </button>
+                                            <button @click.stop="deleteFile(file, index, fileIndex)" class="text-red-500 hover:text-red-700">
+                                                <i class="fa-solid fa-trash"></i>
+                                            </button>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </form>
+
+                <div class="row mt-6">
+                    <div class="col-sm-offset-5 col-sm-10" style="display: flex;">
+                        <button type="button" class="btn btn-sm btn-primary" @click="submitHandler()"><i class="fa fa-check"></i>提 交</button>&nbsp;
+                        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭
+                        </button>
+                    </div>
+                </div>
+            </div>
+            <!-- 结果区域 -->
+            <div v-if="showResult" class="bg-white rounded-xl shadow-soft p-6 mb-8 transform hover:shadow-lg transition-all duration-300">
+                <div class="flex items-start">
+                    <div class="flex-shrink-0 bg-green-100 p-3 rounded-lg">
+                        <i class="fa-solid fa-check text-green-500 text-xl"></i>
+                    </div>
+                    <div class="ml-4">
+                        <h3 class="text-lg font-medium text-gray-800">PDF生成成功</h3>
+                        <p class="mt-1 text-sm text-gray-600">您的PDF表单已成功填写,可以点击下方按钮下载。</p>
+                        <div class="mt-4 flex flex-wrap gap-3">
+                            <a :href="pdfUrl" download="涉密人员离职离岗审批表.pdf" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-primary hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary transition-colors duration-200">
+                                <i class="fa-solid fa-download mr-2"></i> 下载PDF
+                            </a>
+                            <button @click="showResult = false" class="inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md shadow-sm text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary transition-colors duration-200">
+                                <i class="fa-solid fa-times mr-2"></i> 关闭
+                            </button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!-- 加载中 -->
+            <div v-if="isLoading" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">
+                <div class="bg-white rounded-xl p-6 shadow-lg max-w-md w-full">
+                    <div class="flex items-center">
+                        <div class="animate-spin rounded-full h-12 w-12 border-t-2 border-b-2 border-primary mr-4"></div>
+                        <div>
+                            <h3 class="text-lg font-medium text-gray-800">正在处理</h3>
+                            <p class="text-sm text-gray-500 mt-1">请稍候,系统正在生成您的PDF文件...</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!-- 上传成功提示 -->
+            <div v-if="uploadSuccess" class="fixed bottom-4 right-4 bg-green-500 text-white px-6 py-3 rounded-lg shadow-lg transform transition-all duration-500 translate-y-0 opacity-100">
+                <div class="flex items-center">
+                    <i class="fa-solid fa-check-circle mr-2"></i>
+                    <span>{{ uploadSuccessMessage }}</span>
+                </div>
+            </div>
+            <!-- 图片预览模态框 -->
+            <div v-if="previewModalVisible" class="fixed inset-0 bg-black bg-opacity-90 flex items-center justify-center z-50">
+                <div class="bg-white rounded-lg max-w-4xl w-full max-h-[90vh] overflow-auto">
+                    <div class="p-4 flex justify-between items-center border-b">
+                        <h3 class="text-lg font-medium text-gray-900">{{ previewingFile.fileName }}</h3>
+                        <button @click="closePreviewModal" class="text-gray-500 hover:text-gray-700">
+                            <i class="fa-solid fa-times"></i>
+                        </button>
+                    </div>
+                    <div class="p-4 flex justify-center">
+                        <img :src="getPreviewUrl(previewingFile)" alt="预览图" class="max-w-full max-h-[70vh] object-contain">
+                    </div>
+                    <div class="p-4 border-t flex justify-end">
+                        <button @click="closePreviewModal" class="inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md shadow-sm text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary transition-colors duration-200">
+                            <i class="fa-solid fa-times mr-2"></i> 关闭
+                        </button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </main>
+</div>
+<th:block th:include="include :: footer"/>
+<th:block th:include="include :: select2-js"/>
+<th:block th:include="include :: jasny-bootstrap-js"/>
+<th:block th:include="include :: element-js"/>
+<script type="text/javascript" th:inline="javascript">
+    var prefix = ctx + "system/leaveList";
+    new Vue({
+        el: '#app',
+        data: {
+            formData: {
+                name: '',
+                sex: '',
+                nationa: '',
+                formerName: '',
+                nationality: '',
+                maritalStatus: '',
+                political: '',
+                phone: '',
+                cerno: '',
+                address: '',
+                registeredAuthority: '',
+                permanentAddress: '',
+                residentBureau: '',
+                positionCapacity: '',
+                smPost: '',
+                smGrade: '',
+                photoUrl: '',
+                applyId: '',
+            },
+            selectedFile: null,
+            // 材料配置 - 定义六个材料的信息
+            materials: [
+                {
+                    name: '涉密人员离职离岗保密审批表',
+                    code: 'bm_user_userleav_011',
+                    templateUrl: '/file/pdfFiles/涉密人员离职离岗保密审批表.pdf',
+                    downloadName: '涉密人员离职离岗保密审批表.pdf',
+                    description: '涉密人员离职离岗保密审批表',
+                    accept: '.pdf, .doc, .docx, .jpg, .jpeg, .png, .gif, .bmp'
+                },
+                {
+                    name: '涉密人员离职离岗保密承诺书',
+                    code: 'bm_user_lpromise_012',
+                    templateUrl: '/file/pdfFiles/涉密人员离职离岗保密承诺书.pdf',
+                    downloadName: '涉密人员离职离岗保密承诺书.pdf',
+                    description: '涉密人员离职离岗保密承诺书',
+                    accept: '.pdf, .doc, .docx, .jpg, .jpeg, .png, .gif, .bmp'
+                },
+            ],
+            // 文件上传相关数据
+            selectedFiles: Array(2).fill(null),
+            currentFileName: Array(2).fill(''),
+            uploadProgress: Array(2).fill(0),
+            uploadedFiles: Array(2).fill([]).map(() => []),
+            previewModalVisible: false,
+            previewingFile: {},
+            uploadSuccess: false,
+            uploadSuccessMessage: '',
+            prefix: ctx + "system/leaveList",
+            isLoading: false,
+            showResult: false,
+            pdfUrl:''
+        },
+        computed: {
+            previewUrl() {
+                return this.selectedFile ? window.URL.createObjectURL(this.selectedFile) : '';
+            }
+        },
+        methods: {
+            handleFileUpload(event) {
+                let file = event.target.files[0];
+                if (file) {
+                    // 检查文件类型和大小
+                    let fileSize = file.size / 1024 / 1024; // MB
+                    if (fileSize > 2) {
+                        this.$message.error('文件大小不能超过2MB');
+                        return;
+                    }
+                    let fileType = file.type;
+                    if (!fileType.startsWith('image/')) {
+                        this.$message.error('请上传图片文件');
+                        return;
+                    }
+                    // 验证图片格式
+                    let validFormats = ['image/jpeg', 'image/png'];
+                    if (!validFormats.includes(fileType)) {
+                        this.$message.error('请上传JPG或PNG格式的图片');
+                        return;
+                    }
+                    // 验证图片尺寸是否接近一寸照片 (2.5cm x 3.5cm, 约295x413像素)
+                    let img = new Image();
+                    img.src = window.URL.createObjectURL(file);
+                    img.onload = () => {
+                        let width = img.naturalWidth;
+                        let height = img.naturalHeight;
+                        let ratio = width / height;
+                        // 检查宽高比是否接近一寸照片的比例 (约0.714)
+                        if (Math.abs(ratio - 0.714) > 0.1) {
+                            this.$message({
+                                message: '建议上传一寸照片尺寸 (约295x413像素)',
+                                type: 'warning'
+                            });
+                        }
+                        this.selectedFile = file;
+                    };
+                    img.onerror = () => {
+                        this.$message.error('无法加载图片,请重新选择');
+                    };
+                }
+            },
+            clearFile() {
+                this.selectedFile = null;
+                document.getElementById('photo').value = '';
+            },
+            // 文件上传处理
+            handleFileSelection(index) {
+                this.selectedFiles[index] = event.target.files[0];
+                if (this.selectedFiles[index]) {
+                    let file = this.selectedFiles[index];
+                    let fileExtension = file.name.split('.').pop().toLowerCase();
+
+                    // 根据材料类型验证文件格式
+                    let validExtensions = this.materials[index].accept.split(',').map(ext => ext.trim().replace('.', ''));
+
+                    if (!validExtensions.includes(fileExtension)) {
+                        this.$message.error(`请上传${this.materials[index].description.split(':')[1]}`);
+                        document.getElementById(`fileUpload${index}`).value = ''; // 清空选择
+                        return;
+                    }
+
+                    this.uploadFile(file, index);
+                }
+            },
+
+            uploadFile(file, index) {
+                this.currentFileName[index] = file.name;
+                this.uploadProgress[index] = 0;
+
+                let formData = new FormData();
+                formData.append('applyId', this.formData.applyId || '');
+                formData.append('filename', file.name);
+                formData.append('fileCode', this.materials[index].code);
+                formData.append('file', file);
+
+                axios.post(ctx + 'system/file/upload', formData, {
+                    onUploadProgress: (progressEvent) => {
+                        this.uploadProgress[index] = Math.round((progressEvent.loaded * 100) / progressEvent.total);
+                    }
+                })
+                    .then(response => {
+                        if (response.data.code === web_status.SUCCESS) {
+                            // 显示上传成功提示
+                            this.uploadSuccess = true;
+                            this.uploadSuccessMessage = `文件 "${file.name}" 上传成功`;
+
+                            // 3秒后隐藏提示
+                            setTimeout(() => {
+                                this.uploadSuccess = false;
+                            }, 3000);
+
+                            // 更新文件列表
+                            let fileInfo = {
+                                id: response.data.data.fileId,
+                                fileName: file.name,
+                                fileSize: file.size,
+                                fileType: file.type,
+                                fileUrl: response.data.data.filePath,
+                                uploadTime: new Date().toISOString()
+                            };
+                            this.$set(this.uploadedFiles, index, [...this.uploadedFiles[index], fileInfo]);
+                            // 重置选择框
+                            document.getElementById(`fileUpload${index}`).value = '';
+                        } else {
+                            this.$message.error(`上传失败: ${response.data.msg}`);
+                        }
+                    })
+                    .catch(error => {
+                        console.error('上传错误:', error);
+                        this.$message.error('上传过程中发生错误');
+                    });
+            },
+            submitForm() {
+                // 简单验证
+                if (!this.formData.name || !this.formData.sex || !this.formData.nationa ||  !this.formData.nationality || !this.formData.maritalStatus || !this.formData.political || !this.formData.phone || !this.formData.cerno || !this.formData.address || !this.formData.registeredAuthority || !this.formData.permanentAddress || !this.formData.residentBureau || !this.formData.positionCapacity || !this.formData.smPost || !this.formData.smGrade) {
+                    this.$message({
+                        message: '请填写所有必填字段',
+                        type: 'warning'
+                    });
+                    return;
+                }
+                // 检查是否上传了照片
+                if (!this.selectedFile) {
+                    this.$message({
+                        message: '请上传一寸照片',
+                        type: 'warning'
+                    });
+                    return;
+                }
+                // 准备表单数据
+                let formData = new FormData();
+                if (this.formData.name) formData.append("name", this.formData.name);
+                if (this.formData.political) formData.append("political", this.formData.political);
+                if (this.formData.phone) formData.append("phone", this.formData.phone);
+                if (this.formData.positionCapacity) formData.append("positionCapacity", this.formData.positionCapacity);
+                if (this.formData.smPost) formData.append("smPost", this.formData.smPost);
+                if (this.formData.smGrade) formData.append("smGrade", this.formData.smGrade);
+                formData.append('photo', this.selectedFile);
+                // 显示加载状态
+                this.isLoading = true;
+                // 发送请求
+                axios.post('/api/LeavePdf/LeaveFill', formData, {
+                    responseType: 'blob'
+                })
+                    .then(response => {
+                        // 创建下载URL
+                        let blob = new Blob([response.data], { type: 'application/pdf' });
+                        this.pdfUrl = window.URL.createObjectURL(blob);
+
+                        // 隐藏加载状态,显示结果
+                        this.isLoading = false;
+                        this.showResult = true;
+                    })
+                    .catch(error => {
+                        console.error('Error:', error);
+                        this.isLoading = false;
+                        this.$message.error('生成PDF时出错,请重试');
+                    });
+            },
+            downloadFile(file, index) {
+                // 直接通过接口下载
+                axios.get(ctx + 'system/file/download',{
+                    params: { fileId: file.id },
+                    responseType: 'blob', // 重要:指定响应类型为blob
+                    headers: {
+                        'Content-Type': 'application/json',
+                    }
+                })
+                    .then(response => {
+                        let url = window.URL.createObjectURL(new Blob([response.data]));
+                        let link = document.createElement('a');
+                        link.href = url;
+                        link.setAttribute('download', file.fileName);
+                        document.body.appendChild(link);
+                        link.click();
+                        document.body.removeChild(link);
+                    })
+                    .catch(error => {
+                        console.error('下载错误:', error);
+                        this.$message.error('下载文件时出错');
+                    });
+            },
+
+
+            deleteFile(file, materialIndex, fileIndex) {
+                let event = window.event;
+                if (event) {
+                    event.preventDefault();
+                }
+                this.$confirm(`确定要删除文件 "${file.fileName}" 吗?`, '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    axios.get(ctx + 'system/file/delFile/' + file.id)
+                        .then(response => {
+                            if (response.data.code === web_status.SUCCESS) {
+                                this.uploadedFiles[materialIndex].splice(fileIndex, 1);
+                                this.$message.success('文件已成功删除');
+                            } else {
+                                this.$message.error(`删除失败: ${response.data.msg}`);
+                            }
+                        })
+                        .catch(error => {
+                            console.error('删除错误:', error);
+                            this.$message.error('删除文件时出错');
+                        });
+                }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消删除'
+                    });
+                });
+            },
+            submitHandler() {
+                if (this.uploadedFiles.length == 0) {
+                    this.$message.warning('请上传所需材料');
+                    return;
+                }
+
+                this.$confirm('确认提交吗?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    $.operate.saveTab(`${this.prefix}/submitLeave?applyId=${this.formData.applyId}`);
+                }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消'
+                    });
+                });
+            },
+            // 获取已上传文件
+            getUploadedFiles() {
+                if (!this.formData.applyId) return;
+
+                // 使用forEach确保每个请求有自己的作用域
+                this.materials.forEach((material, index) => {
+                    axios.get(ctx + 'system/file/getFileInfo', {
+                        params: {
+                            applyId: this.formData.applyId,
+                            fileCode: material.code,
+                        }
+                    })
+                        .then(response => {
+                            if (response.data.code === web_status.SUCCESS) {
+                                // 使用Vue.set确保响应式更新
+                                this.$set(this.uploadedFiles, index, response.data.data.map((file) => {
+                                    return {
+                                        id: file.fileId,
+                                        fileName: file.fileName,
+                                        fileSize: file.fileSize,
+                                        fileType: file.fileType,
+                                        fileUrl: file.filePath,
+                                        uploadTime: file.createTime
+                                    }
+                                }));
+                            } else {
+                                console.error(`获取${material.name}文件列表失败:`, response.data.msg);
+                                this.$message.error(`获取${material.name}已上传文件失败: ${response.data.msg}`);
+                            }
+                        })
+                        .catch(error => {
+                            console.error(`获取${material.name}文件列表错误:`, error);
+                            this.$message.error(`获取${material.name}已上传文件时出错`);
+                        });
+                });
+            },
+
+            // 图片预览相关方法
+            isImageFile(fileName) {
+                const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp','pdf'];
+                const extension = fileName.split('.').pop().toLowerCase();
+                return imageExtensions.includes(extension);
+            },
+
+            getFileIcon(fileName) {
+                const extension = fileName.split('.').pop().toLowerCase();
+                if (extension === 'pdf') return 'fa-solid fa-file-pdf text-red-500';
+                if (['doc', 'docx'].includes(extension)) return 'fa-solid fa-file-word text-blue-500';
+                if (['jpg', 'jpeg', 'png', 'gif', 'bmp'].includes(extension)) return 'fa-solid fa-file-image text-green-500';
+                return 'fa-solid fa-file text-gray-500';
+            },
+
+            previewFile(file) {
+                let extension = file.fileName.split('.').pop().toLowerCase();
+                if (extension === 'pdf') {
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
+                    return
+                }
+                this.previewingFile = file;
+                this.previewModalVisible = true;
+            },
+
+            closePreviewModal() {
+                this.previewModalVisible = false;
+                this.previewingFile = {};
+            },
+
+            getPreviewUrl(file) {
+                // 如果是图片,直接返回URL
+                if (this.isImageFile(file.fileName)) {
+                    return ctx + 'system/file/download?fileId=' + file.id;
+                }
+                return '';
+            }
+        },
+        mounted() {
+            // 从后端获取转义后的 JSON 字符串
+            if ([[${applyInfoList}]]){
+                this.formData = {...[[${applyInfoList}]]}
+                // 获取图片并转换为 Blob
+                if (this.formData.photoUrl) {
+                    fetch(this.formData.photoUrl)
+                        .then(response => response.blob())
+                        .then(blob => {
+                            this.selectedFile = blob;
+                        })
+                        .catch(error => console.error('处理图片时出错:', error));
+                }
+            }
+            // 获取已上传文件
+            this.getUploadedFiles();
+        }
+    });
+
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/leaveAudit/leaveAudit.html b/ruoyi-admin/src/main/resources/templates/system/newdev/leaveAudit/leaveAudit.html
new file mode 100644
index 00000000..566549bd
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/leaveAudit/leaveAudit.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/onduty/editDuty.html b/ruoyi-admin/src/main/resources/templates/system/newdev/onduty/editDuty.html
index ad91a5a6..71a05967 100644
--- a/ruoyi-admin/src/main/resources/templates/system/newdev/onduty/editDuty.html
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/onduty/editDuty.html
@@ -514,7 +514,7 @@
                                 fileName: file.name,
                                 fileSize: file.size,
                                 fileType: file.type,
-                                fileUrl: file.filePath,
+                                fileUrl: response.data.data.filePath,
                                 uploadTime: new Date().toISOString()
                             };
                             this.uploadedFiles.push(fileInfo);
@@ -642,7 +642,12 @@
             previewFile(file) {
                 let extension = file.fileName.split('.').pop().toLowerCase();
                 if (extension === 'pdf') {
-                    window.open(file.fileUrl);
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
                     return
                 }
                 this.previewingFile = file;
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/person/detail.html b/ruoyi-admin/src/main/resources/templates/system/newdev/person/detail.html
index d654e6b2..6ceaba9a 100644
--- a/ruoyi-admin/src/main/resources/templates/system/newdev/person/detail.html
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/person/detail.html
@@ -444,7 +444,12 @@
             previewFile(file) {
                 let extension = file.fileName.split('.').pop().toLowerCase();
                 if (extension === 'pdf') {
-                    window.open(file.fileUrl);
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
                     return
                 }
                 this.previewingFile = file;
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/promise/editPromise.html b/ruoyi-admin/src/main/resources/templates/system/newdev/promise/editPromise.html
index 8f6c57d9..f39570a6 100644
--- a/ruoyi-admin/src/main/resources/templates/system/newdev/promise/editPromise.html
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/promise/editPromise.html
@@ -248,7 +248,7 @@
                                 fileName: file.name,
                                 fileSize: file.size,
                                 fileType: file.type,
-                                fileUrl: file.filePath,
+                                fileUrl: response.data.data.filePath,
                                 uploadTime: new Date().toISOString()
                             };
                             this.uploadedFiles.push(fileInfo);
@@ -376,7 +376,12 @@
             previewFile(file) {
                 let extension = file.fileName.split('.').pop().toLowerCase();
                 if (extension === 'pdf') {
-                    window.open(file.fileUrl);
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
                     return
                 }
                 this.previewingFile = file;
diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/train/training.html b/ruoyi-admin/src/main/resources/templates/system/newdev/train/training.html
index 753876ea..973cf8be 100644
--- a/ruoyi-admin/src/main/resources/templates/system/newdev/train/training.html
+++ b/ruoyi-admin/src/main/resources/templates/system/newdev/train/training.html
@@ -375,7 +375,7 @@
                                 fileName: file.name,
                                 fileSize: file.size,
                                 fileType: file.type,
-                                fileUrl: file.filePath,
+                                fileUrl: response.data.data.filePath,
                                 uploadTime: new Date().toISOString()
                             };
                             this.uploadedFiles.push(fileInfo);
@@ -514,7 +514,12 @@
             previewFile(file) {
                 let extension = file.fileName.split('.').pop().toLowerCase();
                 if (extension === 'pdf') {
-                    window.open(file.fileUrl);
+                    // 使用preventDefault阻止默认行为,避免影响当前页面状态
+                    let event = window.event;
+                    if (event) {
+                        event.preventDefault();
+                    }
+                    window.open(file.fileUrl, '_blank');
                     return
                 }
                 this.previewingFile = file;