From 9b6f2b9a80fbcaae09af4693a6cd76f4a760f962 Mon Sep 17 00:00:00 2001 From: admin:huo123456@qq <496960745@qq.com> Date: 星期一, 21 一月 2019 10:02:40 +0800 Subject: [PATCH] 图片和视频上传修改内容 --- gx_tieta/WebRoot/iframe/homeinfo.html | 499 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 493 insertions(+), 6 deletions(-) diff --git a/gx_tieta/WebRoot/iframe/homeinfo.html b/gx_tieta/WebRoot/iframe/homeinfo.html index 975c99c..d9abd8a 100644 --- a/gx_tieta/WebRoot/iframe/homeinfo.html +++ b/gx_tieta/WebRoot/iframe/homeinfo.html @@ -9,6 +9,11 @@ <link rel="stylesheet" href="../src/css/layui.css"> <link rel="stylesheet" href="../css/common.css"> <link rel="stylesheet" href="../pages/css/mylayui.css"> + <link rel="stylesheet" href="../font-awesome-4.7.0/css/font-awesome.css"> + <!-- 瀵煎叆鐧惧害鍦板浘API --> + <link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css" /> + <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=QAerSFEiGDCx1oHPB7Z5XYcBHI6R3qwx"></script> + <script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script> <style> body.homeinfo-tab .layui-tab { margin: 0; @@ -19,6 +24,16 @@ body.homeinfo-tab .layui-tab-content { padding: 0; } + body.homeinfo-tab .layui-tab-content .layui-tab-item.layui-show { + height: 100%; + } + #imgCarousel .carousel-item div { + text-align: center; + } + #imgCarousel img { + width: auto; + height: 100%; + } </style> </head> <body class="homeinfo-tab"> @@ -29,6 +44,7 @@ </div> <script src="../js/jquery-1.8.3.js"></script> <script src="../src/layui.js"></script> + <script src="../ckplayer/ckplayer.js"></script> <script type="text/html" id="homeTab"> <ul class="layui-tab-title"> {{# layui.each(d.tabc, function(index, item){ }} @@ -39,7 +55,7 @@ {{# layui.each(d.tabc, function(index, item){ }} {{# if(item.type == 'group'){ }} <div class="layui-tab-item {{ item.cshow }}"> - <table class="hdw-tbl"> + <table class="hdw-tbl mrb8"> <thead> <tr> <th style="width:30%">鍙傛暟鍚嶇О</th> @@ -103,12 +119,16 @@ <td>璐熻矗浜�</td> <td>{{ item.content.person }}</td> </tr> + <tr> + <td>瀹夎浜哄憳</td> + <td>{{ item.content.install_user }}</td> + </tr> </tbody> </table> </div> - {{# }else{ }} + {{# }else if(item.type == 'home'){ }} <div class="layui-tab-item {{ item.cshow }}"> - <table class="hdw-tbl"> + <table class="hdw-tbl mrb8"> <thead> <tr> <th style="width:30%">鍙傛暟鍚嶇О</th> @@ -271,19 +291,215 @@ </tbody> </table> </div> - {{# } }} + {{# }else if(item.type == 'env'){ }} + <div class="layui-tab-item {{ item.cshow }}"> + <div id="video" style="width: 100%;height: 100%;"></div> + <div id="videos" class="video-list"> + <div class="video-list-container"> + <div class="video-slideToggle"><i class="fa fa-chevron-right"></i></div> + <div class="video-list-content"> + <div class="video-item video-item-active"><a href="javascript:;">瑙嗛1.mp4</a></div> + <div class="video-item"><a href="javascript:;">瑙嗛2.mp4</a></div> + <div class="video-item"><a href="javascript:;">瑙嗛3.mp4</a></div> + </div> + <div class="video-list-bg"></div> + </div> + </div> + </div> + {{# }else if(item.type == 'upload'){ }} + <div class="layui-tab-item"> + <div class="upload-form-container"> + <br> + <div class="layui-form mrl8"> + <div class="layui-form-item"> + <button type="button" class="layui-btn" id="test5"><i class="layui-icon"> </i>瑙嗛閫夋嫨</button> + <span style="color: #FF0000;">璇蜂笂浼犳湁鍏虫満鎴跨殑瑙嗛</span> + </div> + </div> + <div class="layui-upload"> + <div class="layui-upload-list"> + <table class="layui-table"> + <thead> + <tr> + <th>鏂囦欢鍚�</th> + <th>澶у皬</th> + <th>鎿嶄綔</th> + </tr> + </thead> + <tbody id="videoInfoTbl"></tbody> + </table> + </div> + </div> + <div class="layui-progress layui-progress-big mrl8 mrr8" lay-showPercent="yes" lay-filter="uploadProgress"> + <div class="layui-progress-bar layui-bg-blue" lay-percent="0%"></div> + </div> + <div class="bottom-btn"> + <button type="button" class="layui-btn layui-btn-normal" id="upload">纭涓婁紶</button> + </div> + </div> + </div> + {{# }else if(item.type == 'envImg'){ }} + <div class="layui-tab-item {{ item.cshow }}"> + <div class="layui-carousel" id="imgCarousel" lay-filter="imgCarousel"> + <div carousel-item="" class="carousel-item" id="carouselItems"></div> + </div> + </div> + {{# }else if(item.type == 'envImgUpload'){ }} + <div class="layui-tab-item"> + <div class="upload-form-container"> + <br> + <div class="layui-form mrl8"> + <div class="layui-form-item"> + <button type="button" class="layui-btn" id="addImgs"><i class="layui-icon"> </i>鍥剧墖閫夋嫨</button> + <span style="color: #FF0000;">璇蜂笂浼犵數璇濆崱銆佹満鎴垮悕绉般�佺數姹犲瀷鍙枫�佽礋杞界數娴併�乥ts璁惧鎺ョ嚎銆佺數娴佹帴绾裤�佹暣浣撳畨瑁呮晥鏋滃浘绛夊浘鐗�</span> + </div> + </div> + <div class="layui-upload"> + <div class="layui-upload-list"> + <table class="layui-table"> + <thead> + <tr> + <th>鍥剧墖棰勮</th> + <th>鏂囦欢鍚�</th> + <th>澶у皬</th> + <th>鎿嶄綔</th> + </tr> + </thead> + <tbody id="imgInfoTbl"></tbody> + </table> + </div> + </div> + <div class="bottom-btn"> + <button type="button" class="layui-btn layui-btn-normal" id="uploadImgs">纭涓婁紶</button> + </div> + </div> + </div> + {{# }else if(item.type=='homeMap'){ }} + <div class="layui-tab-item {{ item.cshow }}"> + <div id="BMap" style="width: 100%; height: 100%;"></div> + </div> + {{# } }} {{# }); }} </div> </script> <script> - layui.use(['element', 'laytpl'], function() { + layui.use(['element', 'laytpl', 'upload', 'carousel', 'layer'], function() { var element = layui.element; var laytpl = layui.laytpl; + var upload = layui.upload; + var carousel = layui.carousel; + var layer = layui.layer; var tabTpl = $('#homeTab').html(); var homeInfo = parent.$('#homeInfoIframeData').data('data'); - //console.log(homeInfo); + console.log(homeInfo); updatehomeInfoTab(homeInfo); + + // 閲嶆柊娓叉煋 + element.render('progress','uploadProgress'); + + // 瑙嗛娴忚妯″潡 + var videoObject = { + container: '#video', //瀹瑰櫒鐨処D鎴朿lassName + variable: 'player', //鎾斁鍑芥暟鍚嶇О + loop: false, //鎾斁缁撴潫鏄惁寰幆鎾斁 + autoplay: false,//鏄惁鑷姩鎾斁 + //poster: 'material/poster.jpg', //灏侀潰鍥剧墖 + preview: {}, + drag: 'start', //鎷栧姩鐨勫睘鎬� + video: [ + ['', 'video/mp4'] + ] + }; + + var player; + element.on('tab(homeInfoTab)', function(data){ + var playerName = '鍩虹珯鐜鐭棰�'; + var tabTxt = $(this).text(); + if(!player && tabTxt == playerName) { + player = new ckplayer(videoObject); + } + }); + + // 鐐瑰嚮鏄剧ず瑙嗛鍒楄〃 + $('#homeInfoTab').on('click', '.video-slideToggle', function() { + var videos = $(this).parent().parent(); + videos.toggleClass('video-slideHide'); + }); + + // 鏈烘埧id + var sid = homeInfo.sid; + + // 鑾峰彇瑙嗛鍒楄〃 + getVideoList(sid); + + // 鐐瑰嚮瑙嗛鍒楄〃 + var gFileName = ''; + $('#homeInfoTab').on('click', '.video-item', function(){ + var videoInfo = $(this).data('data'); + $('#homeInfoTab .video-item').removeClass('video-item-active'); + $(this).addClass('video-item-active'); + videoObject.video = [[videoInfo.fileUrl, 'video/mp4']]; + player = new ckplayer(videoObject); + }); + + + // 涓婁紶瑙嗛妯″潡 + var videoInfoTbl = $('#videoInfoTbl'); + // 娓叉煋骞跺垵濮嬪寲涓婁紶鎸夐挳 + var uploadVideo = upload.render({ + elem: '#test5' + ,url: 'MyFileAction!uploadStationFile' + ,auto: false + ,bindAction: '#upload' + ,multiple: true + ,number: 1 + ,data: { + json:JSON.stringify( { + StationId: sid, + VideoOrImage: 'video' + }) + } + ,exts: 'mp4|MOV|avi|rmvb' + ,accept: 'video' //瑙嗛 + ,choose: function(obj) { + var files = this.files = obj.pushFile(); + //console.log(files); + videoInfoTbl.text(''); + // 閬嶅巻 + Object.keys(files).forEach(function(key) { + var file = files[key]; + //console.log(file); + var tr = $(['<tr id="upload-'+ key +'">' + ,'<td>'+ file.name +'</td>' + ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>' + ,'<td>' + ,'<button class="layui-btn layui-btn-xs layui-btn-danger imgs-delete">鍒犻櫎</button>' + ,'</td>' + ,'</tr>'].join('')); + + //鍒犻櫎 + tr.find('.imgs-delete').on('click', function(){ + delete files[key]; //鍒犻櫎瀵瑰簲鐨勬枃浠� + tr.remove(); + uploadVideo.config.elem.next()[0].value = ''; //娓呯┖ input file 鍊硷紝浠ュ厤鍒犻櫎鍚庡嚭鐜板悓鍚嶆枃浠朵笉鍙�� + }); + + videoInfoTbl.append(tr); + }); + } + ,progress: function(e , percent) { + element.progress('uploadProgress',percent + '%'); + } + ,done: function(res, index, upload) { + var rs = JSON.parse(res.result); + if(rs.code == 1) { + element.progress('uploadProgress', '涓婁紶鎴愬姛锛�'); + getVideoList(sid, gFileName, true); + } + } + }); + // 鏍规嵁鎸囧畾鏍煎紡data鐨勫�兼洿鏂皌ab鐨勫唴瀹� function updatehomeInfoTab(data) { laytpl(tabTpl).render(data, function(html) { @@ -291,6 +507,277 @@ element.render('tab', 'homeInfoTab'); }); } + + + + // 鑾峰彇瑙嗛鍒楄〃 + function getVideoList(sid, fileName, update) { + var tmp = { + StationId: sid, + VideoOrImage: 'video' + }; + var videoContainer = $('#videos .video-list-content'); + // 璇锋眰瑙嗛鎾斁鍒楄〃 + $.ajax({ + type: 'post', + async: true, + url: 'MyFileAction!searchStationSource', + data: 'json='+JSON.stringify(tmp), + dataType: 'json', + success: function(result) { + var rs = JSON.parse(result.result); + //console.log(rs); + if(rs.code==1) { + var data = rs.data; + var rsList = []; + for(var i=0; i<data.length; i++) { + var _data = data[i]; + var tmp = {}; + tmp.fileName = _data.fileName; + tmp.fileUrl = '../../stationsrc/'+sid+'/video/'+_data.fileName; + rsList.push(tmp); + } + + // 鏇存柊鍒楄〃骞惰幏鍙栧綋鍓嶆挱鏀剧殑瑙嗛 + var videoUrl = createVideosList(videoContainer, rsList, fileName); + // 鏄惁鏇存柊瑙嗛鍒楄〃 + if(update) { + + }else{ + videoObject.video = [[videoUrl, 'video/mp4']]; + } + }else { + createVideosList(videoContainer, [], fileName); + } + + } + }); + } + + // 鐢熸垚瑙嗛鍒楄〃 + function createVideosList(container, list, acName) { + // 娓呯┖container + container.text(""); + // 鍒ゆ柇鏄惁瀛樺湪瑙嗛鍒楄〃 + if(list.length == 0) { + return ''; + } + // 閬嶅巻list + var acIndex = 0; + for(var i=0; i<list.length; i++) { + var _list = list[i]; + var videoItem = $('<div class="video-item"><a href="javascript:;">'+_list.fileName+'</a></div>'); + + // 璁剧疆淇℃伅鍐呭 + videoItem.data('data', _list); + // 璁剧疆琚縺娲荤殑瑙嗛鍚嶇О + if(_list.fileName == acName) { + acIndex = i; + } + + container.append(videoItem); + } + + // 婵�娲昏閫変腑鐨勮棰� + // container.find('.video-item').eq(acIndex).addClass('video-item-active'); + // 璁剧疆鍏ㄥ眬鐨勬鍦ㄦ挱鏀剧殑瑙嗛鐨勫悕绉� + gFileName = list[acIndex].fileName; + + return list[acIndex].fileUrl; + } + + + // 鏈烘埧鐜鍥剧墖闆嗘ā鍧� + var imgCarouselopts = { + elem: '#imgCarousel', + arrow: 'always', + width: '100%', + height: '100%', + autoplay: false + }; + + //甯歌杞挱 + var homeEnvImgs = carousel.render(imgCarouselopts); + var imgsInfo = $('#imgInfoTbl'); + var uploadImgsLoad; + var uploadImgs = upload.render({ + elem: '#addImgs' + ,url: 'MyFileAction!uploadStationFile' + ,accept: 'image' + ,multiple: true + ,data: { + json:JSON.stringify( { + StationId: sid, + VideoOrImage: 'image' + }) + } + ,auto: false + ,bindAction: '#uploadImgs' + ,choose: function(obj){ + var files = this.files = obj.pushFile(); + imgsInfo.text(''); + //璇诲彇鏈湴鏂囦欢 + obj.preview(function(index, file, result){ + var tr = $(['<tr id="upload-'+ index +'">' + ,'<td><img src="'+result+'">' + ,'<td>'+ file.name +'</td>' + ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>' + ,'<td>' + ,'<button class="layui-btn layui-btn-xs imgs-reload layui-hide">閲嶄紶</button>' + ,'<button class="layui-btn layui-btn-xs layui-btn-danger imgs-delete">鍒犻櫎</button>' + ,'</td>' + ,'</tr>'].join('')); + + //鍗曚釜閲嶄紶 + tr.find('.imgs-reload').on('click', function(){ + obj.upload(index, file); + }); + + //鍒犻櫎 + tr.find('.imgs-delete').on('click', function(){ + delete files[index]; //鍒犻櫎瀵瑰簲鐨勬枃浠� + tr.remove(); + uploadImgs.config.elem.next()[0].value = ''; //娓呯┖ input file 鍊硷紝浠ュ厤鍒犻櫎鍚庡嚭鐜板悓鍚嶆枃浠朵笉鍙�� + }); + + imgsInfo.append(tr); + }); + } + ,before:function() { + //uploadImgsLoad = layer.load(1); + } + ,done:function(res) { + var rs = JSON.parse(res.result); + if(rs.code == 1) { + layer.msg('涓婁紶鎴愬姛锛�'); + searchCarouselImgs(sid, homeEnvImgs, imgCarouselopts, imgsContainer); + }else { + layer.msg('涓婁紶澶辫触锛�'); + } + layer.close(uploadImgsLoad); + } + }); + + // 鏌ヨ杞挱鍥捐祫婧� + var imgsContainer = $('#carouselItems'); + searchCarouselImgs(sid, homeEnvImgs, imgCarouselopts, imgsContainer); + function searchCarouselImgs(sid, carousel, options, imgsContainer) { + var tmp = { + StationId: sid, + VideoOrImage: 'image' + }; + // 璇锋眰瑙嗛鎾斁鍒楄〃 + $.ajax({ + type: 'post', + async: true, + url: 'MyFileAction!searchStationSource', + data: 'json='+JSON.stringify(tmp), + dataType: 'json', + success: function(result) { + var rs = JSON.parse(result.result); + //console.log(rs); + var rsList = []; + if(rs.code==1) { + var data = rs.data; + for(var i=0; i<data.length; i++) { + var _data = data[i]; + var tmp = {}; + tmp.fileName = _data.fileName; + tmp.fileUrl = '../../stationsrc/'+sid+'/image/'+_data.fileName; + rsList.push(tmp); + } + }else { + var tmp = {}; + tmp.fileName = 'none.jpg'; + tmp.fileUrl = '../images/none.jpg'; + rsList.push(tmp); + } + updateCarouselImgs(homeEnvImgs, imgCarouselopts, imgsContainer, rsList); + } + }); + } + + // 鏇存柊鍥剧墖杞挱鍥� + function updateCarouselImgs(carousel, options, container, imgs) { + // 娓呯┖瀹瑰櫒 + container.text(''); + // 閬嶅巻imgs + for(var i=0; i<imgs.length; i++) { + var _imgs = imgs[i]; + var item = $('<div><img src="'+_imgs.fileUrl+'"></div>'); + container.append(item); + } + + carousel.reload(options); + } + + // 鏈烘埧鍦板浘妯″潡 + var bMap = $('#BMap'); + // 鍒ゆ柇鍦板浘瀹瑰櫒鏄惁瀛樺湪 + if(bMap.length != 0) { + // 鍒涘缓鍦板浘 + let map = createMap(); + // 鐢熸垚鍦板浘鍥炬爣 + createMapPoint(map); + } + + // 鐢熸垚鍦板浘 + function createMap() { + let map = new BMap.Map('BMap'); + var point = new BMap.Point(125.3192,43.8090); + map.centerAndZoom(point, 11); // 鐢ㄥ煄甯傚悕璁剧疆鍦板浘涓績鐐� + map.enableScrollWheelZoom(); + map.disableDoubleClickZoom(); + // 娣诲姞鍦板浘绫诲瀷鎺т欢 + map.addControl(new BMap.MapTypeControl()); + // 缁欏湴鍥炬坊鍔犲伐鍏锋潯(鍦板浘-鍗槦-涓夌淮)鍜屾瘮渚嬪昂鎺т欢 + let bottom_left_control = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT}); + map.addControl(bottom_left_control); // 娣诲姞姣斾緥灏哄埌鍦板浘 + + return map; + } + + // 鐢熸垚鍦板浘鍥炬爣骞剁Щ鍔ㄥ埌涓績浣嶇疆 + function createMapPoint(map) { + var homeData = getTabCItem('homeMap', homeInfo.tabc); + // 鍒ゆ柇鏄惁鑾峰彇鍒颁簡 + if(homeData.code == 1) { + console.log(homeData); + var point = new BMap.Point(homeData.data.lng, homeData.data.lat); + var mk = new BMap.Marker(point); + var label = new BMap.Label("鏂版満鎴�",{offset:new BMap.Size(20,-10)}); + label.setStyle({display: 'none', padding: '4px 2px'}); + mk.disableDragging(); // 璁剧疆涓嶅彲鎷栧姩 + map.addOverlay(mk); // 灏嗚鐩栫墿娣诲姞鍒板湴鍥句腑 + mk.setLabel(label); // 缁欒鐩栫墿娣诲姞label鎻愮ず + map.panTo(point); // 灏嗗湴鍥剧Щ鍔ㄥ埌娣诲姞鐨勭偣浣嶇疆 + map.setZoom(20); // 璁剧疆鍦板浘鐨勭缉鏀剧瓑绾� + }else { + layer.msg('鑾峰彇鏈烘埧淇℃伅澶辫触'); + } + } + + // 鑾峰彇鎸囧畾鐨則abC鍐呭 + function getTabCItem(type, tabs) { + let rs = { + code: 0 + ,data: {} + ,msg: '鏈娴嬪埌淇℃伅' + }; + // 閬嶅巻tabs + for(let i=0; i<tabs.length;i++) { + let _tab = tabs[i]; + if(_tab.type == type) { + rs.code = 1; + rs.data = _tab; + rs.msg = '鑾峰彇鎴愬姛' ; + break; + } + } + + return rs; + } + }); </script> </body> -- Gitblit v1.9.1