diff --git a/pages/application/safetymeeting/safetymeeting-detail.vue b/pages/application/safetymeeting/safetymeeting-detail.vue
index 1562b58..e8fa31c 100644
--- a/pages/application/safetymeeting/safetymeeting-detail.vue
+++ b/pages/application/safetymeeting/safetymeeting-detail.vue
@@ -38,6 +38,7 @@
+
@@ -46,8 +47,7 @@
-
-
@@ -63,7 +63,7 @@
-
+
签字
@@ -184,14 +184,58 @@
sizeType: ['original', 'compressed'],
sourceType: ['camera'],
success: (res) => {
- let img = {
- IMGFILES_ID: '',
- FILEPATH: res.tempFilePaths[0]
- };
- _this.liveImgs = [img];
+ const tempFilePath = res.tempFilePaths[0];
+ uni.getLocation({
+ type: 'gcj02',
+ geocode: true,
+ success: function (locationRes) {
+ const locationAddress = `${locationRes.address.province}${locationRes.address.city}${locationRes.address.district}${locationRes.address.street}${locationRes.address.streetNum}${locationRes.address.poiName}`;
+ // 创建画布
+ const ctx = uni.createCanvasContext('watermarkCanvas', _this);
+ ctx.drawImage(tempFilePath, 0, 0, 300, 150); // 图片大小
+ ctx.setFontSize(20); // 水印字体大小
+ ctx.setFillStyle('red'); // 水印字体颜色
+ ctx.setFontSize(10); // 调整字体大小,适应位置信息
+ // 绘制水印
+ ctx.fillText(`用户名: ${loginUser.NAME}`, 10, 120); // 根据实际情况调整位置
+ ctx.fillText(`当前位置: ${locationAddress}`, 10, 130); // 根据实际情况调整位置
+ ctx.draw(false, () => {
+ // 将画布内容保存为图片
+ uni.canvasToTempFilePath({
+ canvasId: 'watermarkCanvas',
+ success: function(res) {
+ let img = {
+ IMGFILES_ID: '',
+ FILEPATH: res.tempFilePath // 使用带有水印的图片路径
+ };
+ _this.liveImgs = [img];
+ _this.uploadFilePromise(img.FILEPATH, 'livePhoto', locationAddress)
+ .then(() => {
+ uni.showToast({
+ title: '实时照片上传成功',
+ icon: 'success'
+ });
+ }).catch(error => {
+ uni.showToast({
+ title: '实时照片上传失败: ' + error,
+ icon: 'none'
+ });
+ });
+ }
+ }, _this);
+ });
+ },
+ fail: function () {
+ uni.showToast({
+ title: '获取位置信息失败',
+ icon: 'none'
+ });
+ }
+ });
}
});
},
+
DelImg() {
var _this = this;
uni.showModal({
@@ -229,18 +273,14 @@
},
submitMeetingAttendance(permissionID) {
var _this = this;
- if (this.liveImgs.length === 0 || this.signImgList.length === 0) {
+ if (this.signImgList.length === 0) {
uni.showToast({
- title: '请上传实时照片和签字图片',
+ title: '请上传签字图片',
icon: 'none'
});
return;
}
this.permissionID = permissionID;
- setTimeout(()=>{
- this.$refs['authpup'].open();
- },200)
-
uni.getLocation({
type: 'gcj02',
geocode: true,
@@ -248,47 +288,25 @@
const locationAddress = `${res.address.province}${res.address.city}${res.address.district}${res.address.street}${res.address.streetNum}${res.address.poiName}`;
_this.longitude = res.longitude;
_this.latitude = res.latitude;
- // 获取位置成功后,上传图片和其他数据
- uni.showLoading({
- title: '提交中...'
+ // 循环上传签字图片
+ const uploadTasks = [];
+ _this.signImgList.forEach(signImg => {
+ uploadTasks.push(_this.uploadFilePromise(signImg.filePath, 'signPhoto', locationAddress));
});
-
- uni.uploadFile({
- url: basePath + '/app/safetymeeting/edit',
- filePath:_this.liveImgs[0].FILEPATH,
- name: 'livePhoto',
- formData: {
- SAFETY_MEETING_ID: _this.SAFETY_MEETING_ID,
- SIGNATUREPICTURE: _this.SIGNATUREPICTURE,
- ATTENDANCE_STATUS: '1',
- LATITUDE: _this.longitude, // 上传经度
- LONGITUDE: _this.latitude, // 上传纬度
- LOCATIONADDRESS: locationAddress
- },
- success: uploadRes => {
- // 解析返回的数据
- const data = JSON.parse(uploadRes.data);
- if (data.result === 'success') {
- // 关闭弹窗
- _this.$refs.showHiddenWindow.close();
- // 重新加载数据
- _this.getData();
- } else {
- uni.showToast({
- title: '提交失败: ' + data.message,
- icon: 'none'
- });
- }
- },
- fail: () => {
- uni.showToast({
- title: '上传失败',
- icon: 'none'
- });
- },
- complete: () => {
- uni.hideLoading();
- }
+ Promise.all(uploadTasks).then(() => {
+ // 所有图片上传完成后的处理
+ uni.showToast({
+ title: '全部上传成功',
+ icon: 'success'
+ });
+ // 重新加载或更新页面数据等
+ _this.getData();
+ _this.$refs.showHiddenWindow.close();
+ }).catch(error => {
+ uni.showToast({
+ title: '上传出错: ' + error,
+ icon: 'none'
+ });
});
},
fail: function () {
@@ -299,49 +317,75 @@
}
});
},
-
- // 封装一个上传数据的函数,包括位置信息、实时照片和签字图片
- formData(latitude, longitude) {
- uni.showLoading({
- title: '提交中...'
- });
- const livePhotoPath =baseImgPath + this.liveImgs[0].FILEPATH;
- const signPhotoPath = this.signImgList[0].filePath;
-
- uni.uploadFile({
- url: basePath + '/app/safetymeeting/edit',
- filePath: livePhotoPath,
- name: 'livePhoto',
- formData: {
- SAFETY_MEETING_ID: this.SAFETY_MEETING_ID,
- SIGNATUREPICTURE: this.SIGNATUREPICTURE,
- ATTENDANCE_STATUS: '1',
- },
- success: uploadRes => {
- const data = JSON.parse(uploadRes.data);
- uni.hideLoading();
- if (data.result === 'success') {
- uni.showToast({
- title: '提交成功',
- icon: 'success'
- });
- this.$refs.showHiddenWindow.close();
- } else {
- uni.showToast({
- title: '提交失败: ' + data.message,
- icon: 'none'
- });
+ uploadFilePromise(filePath, name, locationAddress) {
+ return new Promise((resolve, reject) => {
+ uni.uploadFile({
+ url: basePath + '/app/safetymeeting/edit',
+ filePath: filePath,
+ name: name,
+ formData: {
+ SAFETY_MEETING_ID: this.SAFETY_MEETING_ID,
+ ATTENDANCE_STATUS: '1',
+ LATITUDE: this.latitude,
+ LONGITUDE: this.longitude,
+ LOCATIONADDRESS: locationAddress
+ },
+ success: uploadRes => {
+ const data = JSON.parse(uploadRes.data);
+ if (data.result === 'success') {
+ resolve(data);
+ } else {
+ reject(data.message);
+ }
+ },
+ fail: () => {
+ reject('上传失败');
}
- },
- fail: () => {
- uni.hideLoading();
- uni.showToast({
- title: '上传失败',
- icon: 'none'
- });
- }
+ });
});
},
+ // 封装一个上传数据的函数,包括位置信息、实时照片和签字图片
+ // formData(latitude, longitude) {
+ // uni.showLoading({
+ // title: '提交中...'
+ // });
+ // const livePhotoPath =baseImgPath + this.liveImgs[0].FILEPATH;
+ // const signPhotoPath = this.signImgList[0].filePath;
+ //
+ // uni.uploadFile({
+ // url: basePath + '/app/safetymeeting/edit',
+ // filePath: livePhotoPath,
+ // name: 'livePhoto',
+ // formData: {
+ // SAFETY_MEETING_ID: this.SAFETY_MEETING_ID,
+ // SIGNATUREPICTURE: this.SIGNATUREPICTURE,
+ // ATTENDANCE_STATUS: '1',
+ // },
+ // success: uploadRes => {
+ // const data = JSON.parse(uploadRes.data);
+ // uni.hideLoading();
+ // if (data.result === 'success') {
+ // uni.showToast({
+ // title: '提交成功',
+ // icon: 'success'
+ // });
+ // this.$refs.showHiddenWindow.close();
+ // } else {
+ // uni.showToast({
+ // title: '提交失败: ' + data.message,
+ // icon: 'none'
+ // });
+ // }
+ // },
+ // fail: () => {
+ // uni.hideLoading();
+ // uni.showToast({
+ // title: '上传失败',
+ // icon: 'none'
+ // });
+ // }
+ // });
+ // },
addMeeting() {
if (this.$refs.showHiddenWindow) {
// 清空实时照片和签字图片数组