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