Browse Source

维修图片上传

master
巴林闲侠 2 years ago
parent
commit
439822bbdb
  1. 3
      api/app/lib/controllers/patrolManage/patrolRecord.js
  2. 172
      weapp/package/troubleshooting/shootingForm/index.js
  3. 46
      weapp/package/troubleshooting/shootingForm/index.wxml

3
api/app/lib/controllers/patrolManage/patrolRecord.js

@ -231,7 +231,8 @@ async function getPatrolRecordIssueHandle (ctx) {
findOption.where['$or'].push({ state: 1 })
findOption.where['$or'].push({ state: 3 })
}
findOption.where['$or'].push({ state: 2, approvePerson: { id: userId } })
// 有审批权限且关注此结构物
// findOption.where['$or'].push({ state: 2, approvePerson: { id: userId } })
findOption.where['$or'].push({ state: 4, repairPerson: { id: userId } })
findOption.where['$or'].push({ state: 5, checkPerson: { id: userId } })
findOption.where['$or'].push({ state: 7, repairPerson: { id: userId } })

172
weapp/package/troubleshooting/shootingForm/index.js

@ -31,6 +31,7 @@ Page({
planApprovalPerson: '',
planApprovalTime: '',
repair: '',
repairImgs: [],
// 表单控制
isPlanState: false,
@ -91,10 +92,10 @@ Page({
})
if (issue.state > 1) {
let maintenancePersonIndex = focusPerson.findIndex(f => f.id == issue.repairPerson.id)
console.log(issue.startTime, moment(issue.startTime).format('YYYY-MM-DD HH:mm:ss'));
console.log(maintenancePersonIndex, issue.startTime, moment(issue.startTime).format('YYYY-MM-DD HH:mm:ss'));
this.setData({
maintenancePersonIndex: maintenancePersonIndex,
maintenancePersonDepartmentShow: focusPerson[maintenancePersonIndex].department.name,
maintenancePersonDepartmentShow: maintenancePersonIndex >= 0 ? focusPerson[maintenancePersonIndex].department.name : '',
qualityPersonIndex: focusPerson.findIndex(f => f.id == issue.checkPerson.id),
planStartTime: moment(issue.startTime).unix(),
planStartTimeShow: moment(issue.startTime).format('YYYY-MM-DD HH:mm:ss'),
@ -205,96 +206,91 @@ Page({
chooseImg: function (e) { // 这里是选取图片的方法
const that = this;
let pics = [];
// const detailPics = that.data.inspectContent[e.currentTarget.dataset.item].imgs;
// if (detailPics.length >= 20) {
// wx.showToast({
// title: '最多选择20张图片上传',
// icon: 'none'
// });
// return;
// }
// wx.chooseMedia({
// count: 20, // 基础库2.25.0前,最多可支持9个文件,2.25.0及以后最多可支持20个文件
// mediaType: ['image'], // 文件类型
// sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
// sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
// success: function (res) {
// const imgs = res.tempFiles;
// for (let i = 0; i < imgs.length; i++) {
// if (res.tempFiles[i].size > 15728640) {
// wx.showToast({ title: '图片大于15M,不可上传', icon: 'none' });
// return;
// }
// const fileNameArr = res.tempFiles[i].tempFilePath.split('.');
// const extension = res.tempFiles[i].tempFilePath.split('.')[fileNameArr.length - 1];
// if (extension !== 'jpg' && extension !== 'png' && extension !== 'jpeg') {
// wx.showToast({ title: '只能上传jpg、jpeg、png格式的图片', icon: 'none' });
// return;
// }
// pics.push(imgs[i].tempFilePath)
// }
// that.uploadimg({
// url: getApp().globalData.webUrl + '_upload/attachments/project', // 图片上传的接口
// path: pics, // 选取的图片的地址数组
// }, e.currentTarget.dataset.item);
// },
// })
const detailPics = that.data.repairImgs
if (detailPics.length >= 20) {
wx.showToast({
title: '最多选择20张图片上传',
icon: 'none'
});
return;
}
wx.chooseMedia({
count: 20, // 基础库2.25.0前,最多可支持9个文件,2.25.0及以后最多可支持20个文件
mediaType: ['image'], // 文件类型
sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
success: function (res) {
const imgs = res.tempFiles;
for (let i = 0; i < imgs.length; i++) {
if (res.tempFiles[i].size > 15728640) {
wx.showToast({ title: '图片大于15M,不可上传', icon: 'none' });
return;
}
const fileNameArr = res.tempFiles[i].tempFilePath.split('.');
const extension = res.tempFiles[i].tempFilePath.split('.')[fileNameArr.length - 1];
if (extension !== 'jpg' && extension !== 'png' && extension !== 'jpeg') {
wx.showToast({ title: '只能上传jpg、jpeg、png格式的图片', icon: 'none' });
return;
}
pics.push(imgs[i].tempFilePath)
}
that.uploadimg({
url: getApp().globalData.webUrl + '_upload/attachments/project', // 图片上传的接口
path: pics, // 选取的图片的地址数组
}, 'repairImgs');
},
})
},
//多张图片上传
uploadimg: function (data, itemName) {
// wx.showLoading({
// title: '上传中...',
// mask: true,
// })
// let that = this,
// i = data.i ? data.i : 0,
// success = data.success ? data.success : 0,
// fail = data.fail ? data.fail : 0;
// let imgs = that.data.inspectContent[itemName].imgs;
// wx.uploadFile({
// url: data.url,
// filePath: data.path[i],
// name: 'file',
// success: (resp) => {
// wx.hideLoading();
// success++;
// let str = JSON.parse(resp.data) // 返回的结果,可能不同项目结果不一样
// str = str.uploaded
// console.log(str);
// if (imgs.length >= 20) {
// const inspectContent = that.data.inspectContent;
// inspectContent[itemName].imgs = imgs;
// that.setData({
// inspectContent,
// });
// return false;
// } else {
// imgs.push(str);
// const inspectContent = that.data.inspectContent;
// inspectContent[itemName].imgs = imgs;
// that.setData({
// inspectContent,
// })
// }
// },
// fail: (res) => {
// fail++;
// console.log('fail:' + i + "fail:" + fail);
// },
// complete: () => {
// i++;
// if (i == data.path.length) { // 当图片传完时,停止调用
// console.log('执行完毕');
// console.log('成功:' + success + " 失败:" + fail);
// } else { // 若图片还没有传完,则继续调用函数
// data.i = i;
// data.success = success;
// data.fail = fail;
// that.uploadimg(data, itemName); // 递归,回调自己
// }
// }
// });
wx.showLoading({
title: '上传中...',
mask: true,
})
let that = this,
i = data.i ? data.i : 0,
success = data.success ? data.success : 0,
fail = data.fail ? data.fail : 0;
let imgs = that.data[itemName];
wx.uploadFile({
url: data.url,
filePath: data.path[i],
name: 'file',
success: (resp) => {
wx.hideLoading();
success++;
console.log(resp);
let str = JSON.parse(resp.data) // 返回的结果,可能不同项目结果不一样
str = str.uploaded
console.log(str);
if (imgs.length >= 20) {
return false;
} else {
let imgs_ = JSON.parse(JSON.stringify(imgs))
imgs_.push(str);
that.setData({
[itemName]: imgs_,
})
}
},
fail: (res) => {
fail++;
console.log('fail:' + i + "fail:" + fail);
},
complete: () => {
i++;
if (i == data.path.length) { // 当图片传完时,停止调用
console.log('执行完毕');
console.log('成功:' + success + " 失败:" + fail);
} else { // 若图片还没有传完,则继续调用函数
data.i = i;
data.success = success;
data.fail = fail;
that.uploadimg(data, itemName); // 递归,回调自己
}
}
});
},
// 删除图片

46
weapp/package/troubleshooting/shootingForm/index.wxml

@ -108,30 +108,34 @@
<van-field value="{{planApprovalTime}}" label="审批日期" readonly="{{true}}" border="{{ false }}" />
</block>
</view>
<view class="mission-card-title mission-center-card-title">
<span>维修处理</span>
</view>
<van-field value="{{ repair }}" extra-event-params="{{true}}" label="维修情况描述" type="textarea" placeholder="请输入" autosize border="{{ true }}" />
<van-cell border="{{false}}">
<view style="display:flex">
<view class="fs-cell-title" style="">完工图片</view>
<view class="fs-cell-content" style="">
<view class="" style="overflow-y:scroll;">
<view class="" style="overflow:hidden;">
<!-- <view class='pic' wx:for="{{inspectContent[item.name].imgs}}" wx:for-item="img" wx:key="*this">
<image class='weui-uploader__img showImg' src="{{imgUrl + img}}" data-index="{{index}}" data-item="{{item.name}}" mode="aspectFill" bindtap="previewImg">
<icon type='cancel' class="delete-btn" data-index="{{index}}" data-item="{{item.name}}" catchtap="deleteImg"></icon>
</image>
</view> -->
<!-- 用来提示用户上传图片 -->
<view class="" data-item="{{'item.name'}}" bindtap="chooseImg">
<image style="height:160rpx;width:160rpx;padding-right:24rpx;" class="upload" src="/images/upload.png" />
<block wx:if="{{ data.state == 4 }}">
<view class="mission-card-title mission-center-card-title">
<span>维修处理</span>
</view>
<van-field value="{{ repair }}" extra-event-params="{{true}}" label="维修情况描述" type="textarea" placeholder="请输入" autosize border="{{ true }}" bind:input="onInputChange" data-type='repair' />
<van-cell border="{{false}}">
<view style="display:flex">
<view class="fs-cell-title" style="">完工图片</view>
<view class="fs-cell-content" style="">
<view class="" style="overflow-y:scroll;">
<view class="" style="overflow:hidden;">
<view class='pic' wx:for="{{repairImgs}}" wx:for-index="imgIndex" wx:for-item="imgUrl" wx:key="imgIndex">
<block wx:for="{{repairImgs}}" wx:for-index="imgIndex" wx:for-item="imgUrl" wx:key="imgIndex">
<image style="height:160rpx;width:160rpx;padding-right:12rpx;" src="{{imgServer+imgUrl}}" data-img="{{imgServer+imgUrl}}" data-index="{{imgIndex}}" data-key="{{imgIndex}}" data-itemindex="{{index}}" mode="aspectFill" bindtap="previewImg">
<icon type='cancel' class="delete-btn" data-index="{{imgIndex}}" data-type="repairImgs" catchtap="deleteImg"></icon>
</image>
</block>
</view>
<!-- 用来提示用户上传图片 -->
<view class="" data-item="{{'item.name'}}" bindtap="chooseImg">
<image style="height:160rpx;width:160rpx;padding-right:24rpx;" class="upload" src="/images/upload.png" />
</view>
</view>
</view>
</view>
</view>
</view>
</van-cell>
</van-cell>
</block>
<view class="mission-card-title mission-center-card-title">
<span>质检验收</span>
</view>
@ -159,7 +163,7 @@
<van-field value="{{ repair }}" extra-event-params="{{true}}" label="验收意见" type="textarea" placeholder="请输入" autosize border="{{ true }}" />
</van-cell-group>
<view style="margin:24px 16px">
<van-button wx:if="{{data.state == 1 || data.state == 3 }}" type="info" block style="" bindtap="confirm">
<van-button wx:if="{{data.state == 1 || data.state == 3 || data.state == 4 }}" type="info" block style="" bindtap="confirm">
提交
</van-button>
<view wx:if="{{data.state == 2}}" style="display:flex; justify-content:space-between">

Loading…
Cancel
Save