<template> <view> <cu-custom bgColor="bg-gradual-blueness" :isBack="true"> <block slot="backText">返回</block> <block slot="content">安全例会-详情</block> </cu-custom> <scroll-view scroll-y> <view class="wui-form-list"> <view class="cu-form-group"> <view class="title">例会标题</view> <view> {{pd.SAFETY_MEETING_TITLE}} </view> </view> <view class="cu-form-group"> <view class="title"> <text>内容</text> </view> <view> <text>{{pd.SAFETY_MEETING_CONTENT}}</text> </view> </view> <view class="cu-form-textarea"> <view class="title"> <text>附件</text> </view> <view class="cu-form-p"> <scroll-view scroll-x class="bg-white nav" scroll-with-animation> <view class="cu-item" v-for="(item,index) in files" v-bind:key="index"> <view class="imgs"> <image :src="baseImgPath+item.FILEPATH" :data-index="index" @click="ViewShowImage(baseImgPath+item.FILEPATH)" mode=""></image> </view> </view> </scroll-view> </view> </view> </view> <view class="wui-form-list"> <view class="cu-form-textarea" > <view class="cu-form-title text-hui">反馈意见</view> <textarea :disabled="forbidEdit" maxlength="-1" v-model="FEED_BACK" placeholder="(必填)"></textarea> </view> <view v-if="!forbidEdit"> <view class="cu-form-group" style="border: none;" v-if="!forbidEdit"> <view class="title">签字</view> <button class="cu-btn bg-green shadow" @tap="modalShow = true" data-target="Modal">手写签字</button> </view> <view class="cu-bar bg-white" v-show="signImgList && signImgList.length > 0"> <view class="action"> 签字照片 </view> </view> <view class="cu-form-group" v-show="signImgList && signImgList.length > 0"> <view class="grid col-4 grid-square flex-sub"> <view style="width: 60%;" class="bg-img" v-for="(item,index) in signImgList" :key="index" @tap="ViewImage" data-type="0" :data-url="signImgList[index].filePath"> <image :src="signImgList[index].filePath" mode="aspectFill"></image> <view v-if="!forbidEdit" class="cu-tag bg-red" @tap.stop="delImg" data-type="0" :data-index="index"> <text class='cuIcon-close'></text> </view> </view> </view> </view> <view class="cu-modal" :class="{'show':modalShow}"> <sign @confirm="subCanvas" @cancel="modalShow = false"></sign> </view> </view> <view v-else> <view class="cu-form-textarea"> <view class="title"> <text>签字信息</text> </view> <view class="cu-form-p"> <scroll-view scroll-x class="bg-white nav" scroll-with-animation> <view class="cu-item" v-for="(item,index) in filesSing" v-bind:key="index"> <view class="imgs"> <image :src="baseImgPath+item.FILEPATH" :data-index="index" @click="ViewShowImage(baseImgPath+item.FILEPATH)" mode=""></image> </view> </view> </scroll-view> </view> </view> </view> </view> <view class="cu-bar btn-group" style="margin-top: 30upx;"> <button v-if="!forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goSubmit)">提交</button> </view> </scroll-view> </view> </template> <script> import { basePath, baseImgPath, corpinfoId, loginUser } from '@/common/tool.js'; import sign from '@/components/writing-board/writing-board.vue'; export default { components: { sign }, data() { return { noClick: true, SPECIALEQUIPMENTAQXJ_ID: '', pd: [], files: [], FEED_BACK: '', signImgList: [], filesSing: [], forbidEdit: false, modalShow: false, basePath: basePath, baseImgPath: baseImgPath } }, onLoad(e) { this.SAFETY_MEETING_ID = e.SAFETY_MEETING_ID; if (e.TabCur == 1) { this.forbidEdit=true } this.getData(); }, methods: { goSubmit() { if (!this.FEED_BACK) { uni.showLoading({ icon: 'none', title: '反馈必填', duration: 1500 }) return } if (this.signImgList.length ===0) { uni.showLoading({ icon: 'none', title: '请签字 ', duration: 1500 }) return } uni.showToast({ title: '请稍后', }); let _this = this uni.request({ url: basePath + '/app/safetyMeeting/confirm', method: 'POST', data: { SAFETY_MEETING_ID: this.SAFETY_MEETING_ID, FEED_BACK: this.FEED_BACK, USER_ID: loginUser.USER_ID, }, header: { 'content-type': 'application/x-www-form-urlencoded' }, success: function(res) { console.log(res) if (res.data.code === 0) { // _this.uploadImg(_this.signImgList[0],res.data.pd.SAFETY_MEETING_PEOPLE_ID) let formData = { FOREIGN_KEY: res.data.pd.SAFETY_MEETING_PEOPLE_ID, CORPINFO_ID: loginUser.CORPINFO_ID, TYPE: '106', } uni.uploadFile({ url: basePath + "/app/safetyMeeting/upload", filePath: _this.signImgList[0].filePath, name: 'FFILE', formData:formData, success: (res) => { uni.showToast({ icon: 'none', title: '保存成功', duration: 2000 }); setTimeout(() => { _this.goback()},2000) }, fail: (err) => { uni.hideLoading(); uni.showModal({ content: err.errMsg, showCancel: false }); } }) } } }) }, goback(){ var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上二级页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({delta: 1}); uni.hideLoading(); }, uploadImg(file,FOREIGN_KEY){ return new Promise((resolve, reject) => { var _this = this; uni.uploadFile({ url: basePath+'/app/imgfiles/add', filePath: file.filePath, name: 'FFILE', formData: { 'TYPE': file.type, 'FOREIGN_KEY': FOREIGN_KEY, CORPINFO_ID: loginUser.CORPINFO_ID, USER_ID: loginUser.USER_ID, }, success: (res) => { resolve(); }, fail: (err) => { uni.hideLoading(); uni.showModal({ content: err.errMsg, showCancel: false }); } }) }) }, delImg (e) { var _this = this; let i = e.currentTarget.dataset.index uni.showModal({ content: '确定要删除这张图片吗?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { if (res.confirm) { _this.signImgList.splice(i, 1) } } }) }, ViewImage(e) { let files =[]; for(var i=0;i<this.signImgList.length;i++){ files.push(this.signImgList[i].filePath) } uni.previewImage({ urls: files, current: e.currentTarget.dataset.url }); }, subCanvas(e){ this.signImgList.splice(0, this.signImgList.length); this.signImgList.push(e); this.modalShow = false; }, getData() { var _this = this; uni.showLoading({ title: '请稍候' }) uni.request({ url: basePath + '/app/safetyMeeting/goEdit', method: 'POST', dataType: 'json', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { SAFETY_MEETING_ID: _this.SAFETY_MEETING_ID, USER_ID: loginUser.USER_ID, }, success: (res) => { if ("success" == res.data.result) { uni.hideLoading(); _this.pd = res.data.pd; //参数map _this.FEED_BACK = res.data.pd.FEED_BACK; _this.files = res.data.imgs; _this.filesSing = res.data.singImgs; } else if ("exception" == data.result) { uni.showToast({ title: '错误', duration: 2000 }); } } }); }, ViewShowImage(url) { let files = []; files.push(url) uni.previewImage({ urls: files, current: 0 }); }, } } </script> <style> </style>