From 3b29fb2c44c88a7caadf0e3d410fa16ed0abc804 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Mon, 12 Jan 2026 15:12:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 uniapps/work-wx/src/subPackages/deviceRegistration/add.vue |  177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 167 insertions(+), 10 deletions(-)

diff --git a/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue b/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue
index 00b50bb..a70969b 100644
--- a/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue
+++ b/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue
@@ -161,28 +161,51 @@
         <u-form-item
                 label="民用航空器登记证书"
                 labelWidth="300rpx"
-                prop="aircraftName"
+                prop="caacRegistrationCodeText"
                 :borderBottom="true"
                 ref="item1"
         >
             <u-input
-                    v-model="formParams.aircraftName"
+                    v-model="formParams.caacRegistrationCodeText"
                     border="none"
                     placeholder="请输入"
             ></u-input>
+            <template #right>
+                <u-upload
+                    @afterRead="afterReadFile"
+                    @delete="deletePic"
+                    name="6"
+                    multiple
+                    :maxCount="1"
+                >
+                    <view class="upload">上传文件</view>
+                </u-upload>
+            </template>
         </u-form-item>
         <u-form-item
                 label="飞行器照片"
                 labelWidth="200rpx"
-                prop="aircraftName"
+                prop="deviceImageText"
                 :borderBottom="true"
                 ref="item1"
         >
             <u-input
-                    v-model="formParams.aircraftName"
+                    v-model="formParams.deviceImageText"
                     border="none"
                     placeholder="请输入"
             ></u-input>
+            <template #right>
+                <u-upload
+                    @afterRead="afterReadImage"
+                    @delete="deletePic"
+                    name="6"
+                    multiple
+                    :maxCount="1"
+                    accept="image"
+                >
+                    <view class="upload">上传图片</view>
+                </u-upload>
+            </template>
         </u-form-item>
         <u-form-item
                 label="备注"
@@ -198,14 +221,14 @@
             ></u-input>
         </u-form-item>
         <u-button
+        class="submit-button-wrapper"
                 type="primary"
                 size="small"
                 @click="submitForm"
             >
                 提交
             </u-button>
-    </u-form>
-    <!-- 飞行器型号 -->
+            <!-- 飞行器型号 -->
     <u-picker
         :show="showType"
         :columns="[typeList]"
@@ -242,12 +265,11 @@
       @confirm="onPurchaseDate"
       @cancel="showPurchaseDate = false"
     />
-
-
+    </u-form>
 </view>
 </template>
 <script setup>
-import { aircraftInfoSaveApi } from '@/api/index'
+import { aircraftInfoSaveApi,uploadFileApi } from '@/api/index'
 import { ref, computed } from 'vue'
 import dayjs from 'dayjs'
 
@@ -270,7 +292,9 @@
     hasInsuranceText: '', // 是否有保险文本
     region: '', // 所属区域
     caacRegistrationCode: '', // 民用航空器登记证书
+    caacRegistrationCodeText: '', // 民用航空器登记证书文本
     deviceImage: '', // 飞行器照片
+    deviceImageText: '', // 飞行器照片文本
     remarks: '', // 备注
 })
 
@@ -372,6 +396,114 @@
   formParams.value.typeText = selected.label
   showType.value = false
 }
+// 提交文件
+function afterReadFile(event) {
+    // 获取上传的文件对象
+    const file = event.file;
+    console.log('上传的文件:', file);
+    
+    // 显示加载提示
+    uni.showLoading({
+        title: '上传中...'
+    });
+    
+    // 准备上传参数
+    const uploadParams = {
+        name: 'file', // 服务器端接收文件的字段名
+        file: file, // 传入文件对象
+        filePath: file.path || file.url, // 文件路径
+    };
+    
+    // 调用上传文件接口
+    uploadFileApi(uploadParams).then(res => {
+        uni.hideLoading();
+        
+        console.log('上传成功结果:', res);
+        
+        // 根据接口返回的数据结构处理结果
+        if (res.data && res.data.code === 200) {
+            // 假设接口返回的数据结构是 { url, fileName } 等
+            const uploadResult = res.data.data;
+            
+            // 更新表单数据,将上传结果展示在input内
+            formParams.value.caacRegistrationCodeText = uploadResult.fileName || uploadResult.url || '文件上传成功';
+            
+            // 可以将完整的上传信息保存到表单中,以便提交时使用
+            formParams.value.caacRegistrationCode= uploadResult.fileUrl || '文件上传成功';
+            
+            uni.showToast({
+                title: '上传成功',
+                icon: 'success'
+            });
+        } else {
+            uni.showToast({
+                title: res.msg || '上传失败',
+                icon: 'none'
+            });
+        }
+    }).catch(err => {
+        uni.hideLoading();
+        console.error('上传失败:', err);
+        uni.showToast({
+            title: '上传失败',
+            icon: 'none'
+        });
+    });
+}
+// 提交图片
+function afterReadImage(event) {
+    // 获取上传的文件对象
+    const file = event.file;
+    console.log('上传的文件:', file);
+    
+    // 显示加载提示
+    uni.showLoading({
+        title: '上传中...'
+    });
+    
+    // 准备上传参数
+    const uploadParams = {
+        name: 'file', // 服务器端接收文件的字段名
+        file: file, // 传入文件对象
+        filePath: file.path || file.url, // 文件路径
+    };
+    
+    // 调用上传文件接口
+    uploadFileApi(uploadParams).then(res => {
+        uni.hideLoading();
+        
+        console.log('上传成功结果:', res);
+        
+        // 根据接口返回的数据结构处理结果
+        if (res.data && res.data.code === 200) {
+            // 假设接口返回的数据结构是 { url, fileName } 等
+            const uploadResult = res.data.data;
+            
+            // 更新表单数据,将上传结果展示在input内
+            formParams.value.deviceImageText = uploadResult.fileName || uploadResult.url || '文件上传成功';
+            
+            // 可以将完整的上传信息保存到表单中,以便提交时使用
+            formParams.value.deviceImage= uploadResult.fileUrl || '文件上传成功';
+            
+            uni.showToast({
+                title: '上传成功',
+                icon: 'success'
+            });
+        } else {
+            uni.showToast({
+                title: res.msg || '上传失败',
+                icon: 'none'
+            });
+        }
+    }).catch(err => {
+        uni.hideLoading();
+        console.error('上传失败:', err);
+        uni.showToast({
+            title: '上传失败',
+            icon: 'none'
+        });
+    });
+}
 // 提交表单
 const submitForm = async () => {
     try {
@@ -402,7 +534,12 @@
 </script>
 <style scoped lang="scss">
 .deviceRegistration {
-    padding: 24rpx;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    // padding: 24rpx;
+    
     .select-wrapper {
         position: relative;
         width: 100%;
@@ -417,6 +554,26 @@
             pointer-events: none;
         }
     }
+
+    .upload {
+        font-family: Source Han Sans CN, Source Han Sans CN;
+        font-weight: 400;
+        font-size: 15px;
+        color: #1D6FE9;
+    }
+
+    :deep(.u-form) {
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+        overflow-y: auto;
+        box-sizing: border-box;
+        padding: 24rpx;
+    }
+
+    .submit-button-wrapper {
+        padding: 28rpx;
+    }
     
     :deep(.u-form-item) {
         margin-bottom: 40rpx;

--
Gitblit v1.9.3