修改上传方法
This commit is contained in:
parent
72e3667524
commit
5fdd6dd675
|
|
@ -176,6 +176,7 @@ import { onLoad } from '@dcloudio/uni-app'
|
||||||
import { getUseType,insertApp } from '../../services/back.js';
|
import { getUseType,insertApp } from '../../services/back.js';
|
||||||
import eselect from '@/components/tree-select/eselect.vue'
|
import eselect from '@/components/tree-select/eselect.vue'
|
||||||
import PopupConfirm from '@/components/PopupConfirm'
|
import PopupConfirm from '@/components/PopupConfirm'
|
||||||
|
import {decryptWithSM4} from "../../utils/sm";
|
||||||
|
|
||||||
const taskInfo = ref({})
|
const taskInfo = ref({})
|
||||||
const maTypeSelectList = ref([])
|
const maTypeSelectList = ref([])
|
||||||
|
|
@ -322,75 +323,108 @@ const submitNum = async () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
//上传
|
//上传
|
||||||
// 上传图片 - 使用方法二的方式
|
|
||||||
const uploadImg = (item) => {
|
const uploadImg = (item) => {
|
||||||
// 检查是否在 Cordova 环境中
|
|
||||||
if (window.cordova) {
|
uni.showActionSheet({
|
||||||
// Cordova 环境 - 使用方法二的方式
|
itemList: ['拍照', '从相册选择'],
|
||||||
navigator.camera.getPicture(
|
success: (res) => {
|
||||||
(file) => {
|
if (res.tapIndex === 0) {
|
||||||
onCameraSuccess(file, item)
|
getCameraFj(item)
|
||||||
},
|
} else if (res.tapIndex === 1) {
|
||||||
(message) => {
|
// 从相册选择
|
||||||
console.log('选择图片失败', message)
|
getPhotoFj(item)
|
||||||
uni.showToast({ title: '选择图片失败', icon: 'none' })
|
|
||||||
},
|
|
||||||
{
|
|
||||||
quality: 50,
|
|
||||||
destinationType: window.Camera.DestinationType.DATA_URL,
|
|
||||||
sourceType: window.Camera.PictureSourceType.SAVEDPHOTOALBUM,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
// 非 Cordova 环境 - 保持原来的 uni.chooseImage 方式作为降级方案
|
|
||||||
uni.chooseImage({
|
|
||||||
count: 1,
|
|
||||||
sizeType: ['original', 'compressed'],
|
|
||||||
sourceType: ['album', 'camera'],
|
|
||||||
success: res => {
|
|
||||||
let imgFiles = res.tempFilePaths
|
|
||||||
// 这里可以保持原来的 uni.uploadFile 方式,或者也改为 base64 方式
|
|
||||||
uploadFileTraditional(imgFiles[0], item)
|
|
||||||
}
|
}
|
||||||
})
|
},
|
||||||
}
|
fail: (err) => {
|
||||||
|
console.error('操作菜单选择失败:', err)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const getCameraFj = (item) => {
|
||||||
|
navigator.camera.getPicture((file) => onCameraSuccessFj(file, item), onCameraErrorFj, {
|
||||||
|
quality: 50,
|
||||||
|
destinationType: window.Camera.DestinationType.DATA_URL,
|
||||||
|
sourceType: window.Camera.PictureSourceType.CAMERA,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 附件从相册选择
|
||||||
|
const getPhotoFj = (item) => {
|
||||||
|
navigator.camera.getPicture((file) => onCameraSuccessFj(file, item), onCameraErrorFj, {
|
||||||
|
quality: 50,
|
||||||
|
destinationType: window.Camera.DestinationType.DATA_URL,
|
||||||
|
sourceType: window.Camera.PictureSourceType.SAVEDPHOTOALBUM,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 相机成功回调
|
const onCameraErrorFj = (message) => {
|
||||||
const onCameraSuccess = (file, item) => {
|
console.log(message)
|
||||||
uploadSignUrl(file, item)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const onCameraSuccessFj = (file, item) => {
|
||||||
|
uploadSignUrlFj(file, item)
|
||||||
|
}
|
||||||
|
// // 上传图片 - 使用方法二的方式
|
||||||
|
// const uploadImg = (item) => {
|
||||||
|
// // 检查是否在 Cordova 环境中
|
||||||
|
// if (window.cordova) {
|
||||||
|
// // Cordova 环境 - 使用方法二的方式
|
||||||
|
// navigator.camera.getPicture(
|
||||||
|
// (file) => {
|
||||||
|
// onCameraSuccess(file, item)
|
||||||
|
// },
|
||||||
|
// (message) => {
|
||||||
|
// console.log('选择图片失败', message)
|
||||||
|
// uni.showToast({ title: '选择图片失败', icon: 'none' })
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// quality: 50,
|
||||||
|
// destinationType: window.Camera.DestinationType.DATA_URL,
|
||||||
|
// sourceType: window.Camera.PictureSourceType.SAVEDPHOTOALBUM,
|
||||||
|
// }
|
||||||
|
// )
|
||||||
|
// } else {
|
||||||
|
// // 非 Cordova 环境 - 保持原来的 uni.chooseImage 方式作为降级方案
|
||||||
|
// uni.chooseImage({
|
||||||
|
// count: 1,
|
||||||
|
// sizeType: ['original', 'compressed'],
|
||||||
|
// sourceType: ['album', 'camera'],
|
||||||
|
// success: res => {
|
||||||
|
// let imgFiles = res.tempFilePaths
|
||||||
|
// // 这里可以保持原来的 uni.uploadFile 方式,或者也改为 base64 方式
|
||||||
|
// uploadFileTraditional(imgFiles[0], item)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 相机成功回调
|
||||||
|
// const onCameraSuccess = (file, item) => {
|
||||||
|
// uploadSignUrl(file, item)
|
||||||
|
// }
|
||||||
|
|
||||||
// 使用 base64 方式上传
|
// 使用 base64 方式上传
|
||||||
const uploadSignUrl = (base64Data, item) => {
|
const uploadSignUrlFj = (file, item) => {
|
||||||
// 生成随机文件名
|
const base64Data = file
|
||||||
const fileName = `${generateRandomString(10)}_${Date.now()}.png`
|
|
||||||
|
|
||||||
uni.request({
|
uni.request({
|
||||||
// url: baseURL + "/file/uploadBase64", // app
|
url: '/file/uploadBase64',
|
||||||
url: "/file/uploadBase64", // h5
|
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data: {
|
data: {
|
||||||
base64File: base64Data,
|
base64File:base64Data,
|
||||||
fileName: fileName,
|
fileName: `${generateRandomString(10)}_${Date.now()}.png`,
|
||||||
fileType: 'image/png'
|
fileType: 'image/png'
|
||||||
},
|
},
|
||||||
success: (uploadRes) => {
|
success: (uploadRes) => {
|
||||||
// 处理响应数据
|
console.log("xxxxxxxxxx",uploadRes)
|
||||||
let responseData = uploadRes.data
|
if(!uploadRes.data.code){
|
||||||
if (typeof responseData === 'string') {
|
uploadRes = JSON.parse(decryptWithSM4(uploadRes.data))
|
||||||
responseData = JSON.parse(responseData)
|
}else{
|
||||||
|
uploadRes =JSON.parse(uploadRes.data)
|
||||||
}
|
}
|
||||||
|
if (uploadRes.code && uploadRes.code == 200) {
|
||||||
console.log('上传成功', responseData.code)
|
|
||||||
console.log('上传成功', responseData.data)
|
|
||||||
|
|
||||||
if (responseData.code && responseData.code == 200) {
|
|
||||||
let obj = {
|
let obj = {
|
||||||
name: responseData.data.name,
|
name: uploadRes.data.name,
|
||||||
url: responseData.data.url
|
url: uploadRes.data.url,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.bmFileInfos) item.bmFileInfos = []
|
if (!item.bmFileInfos) item.bmFileInfos = []
|
||||||
item.bmFileInfos.push(obj)
|
item.bmFileInfos.push(obj)
|
||||||
uni.showToast({ title: '上传成功', icon: 'none' })
|
uni.showToast({ title: '上传成功', icon: 'none' })
|
||||||
|
|
@ -405,34 +439,79 @@ const uploadSignUrl = (base64Data, item) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 传统的文件上传方式(作为降级方案)
|
|
||||||
const uploadFileTraditional = (filePath, item) => {
|
|
||||||
uni.uploadFile({
|
|
||||||
// url: baseURL+"/file/upload", // app
|
// // 生成随机文件名
|
||||||
url: "/file/upload", // h5
|
// const fileName = `${generateRandomString(10)}_${Date.now()}.png`
|
||||||
filePath: filePath,
|
//
|
||||||
name: 'file',
|
// uni.request({
|
||||||
success: (res) => {
|
// // url: baseURL + "/file/uploadBase64", // app
|
||||||
res = JSON.parse(res.data)
|
// url: "/file/uploadBase64", // h5
|
||||||
console.log('上传成功', res.code)
|
// method: 'POST',
|
||||||
console.log('上传成功', res.data)
|
// data: {
|
||||||
if(res.code && res.code == 200){
|
// base64File: base64Data,
|
||||||
let obj = {
|
// fileName: fileName,
|
||||||
name: res.data.name,
|
// fileType: 'image/png'
|
||||||
url: res.data.url
|
// },
|
||||||
}
|
// success: (uploadRes) => {
|
||||||
if (!item.bmFileInfos) item.bmFileInfos = []
|
// // 处理响应数据
|
||||||
item.bmFileInfos.push(obj)
|
// let responseData = uploadRes.data
|
||||||
uni.showToast({ title: '上传成功', icon: 'none' })
|
// if (typeof responseData === 'string') {
|
||||||
} else {
|
// responseData = JSON.parse(responseData)
|
||||||
uni.showToast({ title: '上传失败', icon: 'none' })
|
// }
|
||||||
}
|
//
|
||||||
},
|
// console.log('上传成功', responseData.code)
|
||||||
fail: (err) => {
|
// console.log('上传成功', responseData.data)
|
||||||
console.error('上传失败', err)
|
//
|
||||||
}
|
// if (responseData.code && responseData.code == 200) {
|
||||||
})
|
// let obj = {
|
||||||
}
|
// name: responseData.data.name,
|
||||||
|
// url: responseData.data.url
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (!item.bmFileInfos) item.bmFileInfos = []
|
||||||
|
// item.bmFileInfos.push(obj)
|
||||||
|
// uni.showToast({ title: '上传成功', icon: 'none' })
|
||||||
|
// } else {
|
||||||
|
// uni.showToast({ title: '上传失败', icon: 'none' })
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// fail: (err) => {
|
||||||
|
// console.error('上传失败', err)
|
||||||
|
// uni.showToast({ title: '上传失败', icon: 'none' })
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 传统的文件上传方式(作为降级方案)
|
||||||
|
// const uploadFileTraditional = (filePath, item) => {
|
||||||
|
// uni.uploadFile({
|
||||||
|
// // url: baseURL+"/file/upload", // app
|
||||||
|
// url: "/file/upload", // h5
|
||||||
|
// filePath: filePath,
|
||||||
|
// name: 'file',
|
||||||
|
// success: (res) => {
|
||||||
|
// res = JSON.parse(res.data)
|
||||||
|
// console.log('上传成功', res.code)
|
||||||
|
// console.log('上传成功', res.data)
|
||||||
|
// if(res.code && res.code == 200){
|
||||||
|
// let obj = {
|
||||||
|
// name: res.data.name,
|
||||||
|
// url: res.data.url
|
||||||
|
// }
|
||||||
|
// if (!item.bmFileInfos) item.bmFileInfos = []
|
||||||
|
// item.bmFileInfos.push(obj)
|
||||||
|
// uni.showToast({ title: '上传成功', icon: 'none' })
|
||||||
|
// } else {
|
||||||
|
// uni.showToast({ title: '上传失败', icon: 'none' })
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// fail: (err) => {
|
||||||
|
// console.error('上传失败', err)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
const generateRandomString = (length) => {
|
const generateRandomString = (length) => {
|
||||||
let result = '';
|
let result = '';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue