<template>
     <view class="box">
         <!-- 实拍视频 -->
         <view>
             <view class="fileTitle">实拍视频</view>
             <view v-if="videoSrc == ''" class="file videoFile" @tap="chooseVideo">
                 <image style="width:112upx;height:98upx;" :src="app + '/xj.png'" mode=""></image>
             </view>
             <view v-else class="file videoFile video_Box">
                 <video :src="videoSrc" controls></video>
                 <view class="closeA" @tap="deleteVideo">×</view>
             </view>
         </view>
         <!-- 实拍照片 -->
         <view>
             <view class="fileTitle">实拍照片</view>
             <view class="photoBox" name="photoBox">
                 <canvas style="border: 1px solid green;position: absolute;left: -5000px;" :style="{'width':w,'height': h}" canvas-id="firstCanvas" ref="mycanvas"></canvas>
                 <block v-for="(item, index) in photosSrc" :key="index">
                     <view class="file imgFile">
                         <image class="photo" :src="item"></image>
                         <view class="close" @tap="deletePhoto(index)">×</view>
                     </view>
                 </block>
                 <view v-if="photosSrc.length < 6" class="file imgFile" @tap="chooseImage">
                     <image style="width: 112upx;height: 98upx;" :src="app + '/xc.png'" mode=""></image>
                 </view>
             </view>
         </view>
         <!-- 提交按钮 -->
         <view class="surereply" @tap='tiJIao'>
             提交
         </view>
     </view>
 </template>
<script>
     let baseUrl=getApp().globalData.baseUrl;//域名
     export default {
         data() {
             return {
                 app: getApp().globalData.peiImg,//图片
                 videoFile: '',
                 videoSrc: '', // 视频资源路径
                 photosSrc: [], //照片的路径
                 pic_tempFilePath: [], //上转图片的数组
                 video_tempFilePath: '', //上传视频的地址
                 file: '',
                 thumbTempFilePath: '', // 视频缩略图临时地址
                 tempFilePath: [], // 视频资源临时地址
                 shuiyinpath: '', // 带水印的视频缩略图
                 w: '',
                 h: '',
                 mobile1_wx:1,
                 imageLists:[],
                 params:'',/* 钓场id */
                 optionName:''/* 钓场name */
             };
         },
         onLoad(option) {
                 console.log('235446554464',option)
             this.params=option.id;
             this.optionName=option.name;
         },
         methods:{
             // 选择视频   并上传
             chooseVideo() {
                 var that = this;
                 uni.chooseVideo({
                     count: 1, //选择多少个视频
                     sourceType: ['album', 'camera'], //视频来源相册和相机都可以
                     maxDuration: 30, //相机拍摄最大时长为30S
                     camera: 'back', //默认摄像头是后置摄像头
                     success: res => {
                         console.log('打印视频');
                         console.log(res);
                         console.log(res.tempFilePath);
                         this.videoSrc=res.tempFilePath;
                         this.video_tempFilePath = res.tempFilePath;
                         
                         uni.uploadFile({
                              url:baseUrl+'/api/place/uploadFile',
                              filePath:res.tempFilePath,
                              name:'file',
                              formData:{
                                  token:uni.getStorageSync('userInfo').token,
                                  type:1,
                                  file:res.tempFilePath,
                              },
                              header:{"Content-Type":"multipart/form-data"},
                              success:res=>{
                                 //console.log('上',res.data)
                                 let data = JSON.parse(res.data)
                                 that.video_tempFilePath=data.data.file_url
                              }
                         })        
                         
                         
                         
                         this.pic_tempFilePath = res.tempFilePath;
                         if (res.duration > '300') {
                             uni.showToast({
                                 title: '视频不得超过5分钟,请重新选择',
                                 icon: 'none',
                                 duration: 1500
                             });
                         } else if (res.size > '10485760') {
                             uni.showToast({
                                 title: '视频时长不得超过10MB,请重新选择',
                                 icon: 'none',
                                 duration: 1500
                             });
                         }
                     },
                     fail: res => {
                         uni.showModal({
                             content: '视频格式不正确,请重新选择',
                             showCancel: false
                         });
                     }
                 });
             },
             
             
             
             // 选择照片
             chooseImage() {
                 let that = this;
                 uni.chooseImage({
                     count: 6, //从相册中都可选择的图片个数
                     sizeType: ['original', 'compressed'], //选择图片的大小
                     sourceType: ['album', 'camera'], //选择图片的来源
                     success: res => {
                         //图片数组
                         let tempFilePath = res.tempFilePaths; 
                         let num = 0;
                         let inter = setInterval(()=>{
                             that.setimg(tempFilePath[num]);
                             num++;
                             if(num==tempFilePath.length){
                                 num= 0 ;
                                 clearInterval(inter);
                             }
                         },500)
                     }
                 });
             },
             
             //获取图片信息
             setimg(e){
                 let date = "--晒渔--";   
                 let that = this;
                 let ctx = uni.createCanvasContext('firstCanvas',this);
                 uni.getImageInfo({
                     src:e,
                     success: (res) => {
                         that.w = res.width/2+'px';
                         that.h = res.height/2+'px';
                         //初始化画布
                         
                         ctx.fillRect(0, 0, that.w, that.h);
                         
                         // //将图片src放到cancas内,宽高为图片大小
                         ctx.drawImage(res.path,0,0,res.width/2,res.height/2);
                         
                         ctx.rotate(45 * Math.PI / 180); 
                                     
                         //对斜对角线以左部分进行文字的填充
                         for (let j = 1; j < 10; j++) { //用for循环达到重复输出文字的效果,这个for循环代表纵向循环
                             ctx.beginPath();
                             ctx.setFontSize(20);
                             ctx.setFillStyle("rgba(169,169,169,.6)");
                             
                             ctx.fillText(date, 0, 50 * j);
                             for (let i = 1; i < 10; i++) { //这个for循环代表横向循环,
                                 ctx.beginPath();
                                 ctx.setFontSize(20);
                                 ctx.setFillStyle("rgba(169,169,169,.6)");
                                 ctx.fillText(date, 80 * i, 50 * j);
                                 
                             }
                         } //两个for循环的配合,使得文字充满斜对角线的左下部分
                                     
                         // 对斜对角线以右部分进行文字的填充逻辑同上
                         for (let j = 0; j < 10; j++) {
                             ctx.beginPath();
                             ctx.setFontSize(20);
                             ctx.setFillStyle("rgba(169,169,169,.6)");
                                     
                             ctx.fillText(date, 0, -50 * j);
                             for (let i = 1; i < 10; i++) {
                                 ctx.beginPath();
                                 ctx.setFontSize(20);
                                 ctx.setFillStyle("rgba(169,169,169,.6)");
                                 ctx.fillText(date, 80 * i, -50 * j);
                             
                             }
                         }
                         ctx.rotate(-45 * Math.PI / 180);
                         ctx.draw(false, () => {
                             uni.canvasToTempFilePath({    //将画布中内容转成图片,即水印与图片合成
                               canvasId: 'firstCanvas',
                               success: (res) => {
                                       that.photosSrc.push(res.tempFilePath);
                                     
                                   /* 把所有的图片给了后台  重点*/
                                        uni.uploadFile({
                                            url:baseUrl+'/api/place/uploadFile',
                                            filePath:res.tempFilePath,
                                            name:'file',
                                            formData:{
                                                token:uni.getStorageSync('userInfo').token,
                                                type:1,
                                                file:res.tempFilePath
                                            },
                                            header:{"Content-Type":"multipart/form-data"},
                                            success:res=>{
                                               let data = JSON.parse(res.data)
                                               that.imageLists.push(data.data.file_url)
                                            }
                                        })             
     
                                   
                                   if (that.photosSrc.length > 6) {
                                       that.photosSrc = that.photosSrc.slice(0, 6);
                                       uni.showToast({
                                           title: '照片最多上传6张',
                                           icon: 'none',
                                           duration: 1500
                                       });
                                   } else {
                                       
                                   }
                                   
                               }
                             })
                         })
                         
                         
                         
                     }
                 })
             },
             
             
             
             //删除照片
             deletePhoto(index) {
                 this.photosSrc.splice(index, 1);
                 this.thumbTempFilePath = '';
             },
             /* 删除视频 */
             deleteVideo(){
                 this.videoSrc=''
             },
             tiJIao(){
                 if(this.videoSrc==''){
                     uni.showToast({
                         icon: 'none',
                         title: '请上传视频',
                         duration: 1500
                     });
                 }else if (this.photosSrc.length == 0) {
                     uni.showToast({
                         icon: 'none',
                         title: '实拍照片最少上传一张',
                         duration: 1500
                     });
                 } else {
                     /* 调接口 */
                     let url = '/api/place/placeAddVedio';
                     let data = {
                         token:uni.getStorageSync('userInfo').token,
                         pid:this.params,
                         title:this.optionName,
                         vedioUrl: this.video_tempFilePath,//视频路径
                         imgUrl:this.imageLists.join(","),//    多图片
                     };
                     this.$request.post(url, data).then(res => {
                         if(res.code==1){
                             uni.showToast({
                                 title: '提交成功',
                                 icon:'none'
                             });
                             setTimeout(function () {
                                 // uni.redirectTo({
                                 //     url:'./fishingPlaceDetail'
                                 // })
                                 uni.navigateBack({
                                     delta: 1
                                 })
                             }, 2000);
                         }else if(res.code==100){
                                 uni.showToast({
                                     title: '请购买上传次数',
                                     icon:'none'
                                 });
                             }
                         
                     });
                 }
             }
         }
     }
 </script>
<style lang="scss">
     .box{
         width: 95vw;
         margin: 0 auto;
     }
     /* 按钮 */
     .surereply {
         background: #fd1441;
         box-shadow: 8upx 13upx 20upx 0px rgba(0, 0, 0, 0.1);
         line-height: 75upx;
         border-radius: 10upx;
         color: #fff;
         text-align: center;
         font-size: 34upx;
         margin: 40upx auto;
     }
     
     .photoBox {
         display: flex;
         flex-wrap: wrap;
         justify-content: space-between;
     }
     .photo {
         width: 300upx;
         height: 300upx;
     }
     .video_Box{
         position: relative;
     }
     .closeA{
         width: 45upx;
         height: 45upx;
         background-color: rgba(0, 0, 0, 0.7);
         border-radius: 50%;
         font-size: 36upx;
         text-align: center;
         line-height: 50upx;
         color: #fff;
         position: absolute;
         top: -17rpx;
         right: -8rpx;
         z-index: 666;
     }
     
     .fileTitle {
         height: 90upx;
         line-height: 90upx;
         font-size: 32upx;
     }
     .file {
         width: 220upx;
         height: 220upx;
         border: solid 1px #ccc;
         border-radius: 10upx;
         display: flex;
         font-size: 50px;
         align-items: center;
         justify-content: center;
         color: #ccc;
         image {
             width: 100%;
             height: 100%;
         }
     }
     video {
         width: 220upx;
         height: 220upx;
     }
     .imgFile {
         width: 220upx;
         height: 220upx;
         margin-bottom: 30upx;
         position: relative;
     }
     .close {
         width: 45upx;
         height: 45upx;
         background-color: rgba(0, 0, 0, 0.7);
         border-radius: 50%;
         font-size: 36upx;
         text-align: center;
         line-height: 50upx;
         color: #fff;
         position: absolute;
         top: 0upx;
         right: 5upx;
         z-index: 66;
     }
 </style>










