123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- /**
- * [ONEMAP.M.gcmsCollect]
- * @return {[object]}
- */
- define(['html!templates/gcms/gcmsCollect',
- 'css!styles/gcms/gcmsCollect',
- 'kindeditor'],
- function(tplLayout){
- /**
- * 模块数据 用于数据存储和外部调用
- * @type {Object}
- * 数据存放
- */
- var modValue = {
- formType:'note',
- inFileName:null,
- tmpPath:null,
- tmpfile:null,
- uploadimage:null,
- uploadvideo:null,
- uploadaudio:null,
- };
- /**
- * 模块界面样式 例如:宽,高
- * @type {Object}
- */
- var styles = {};
- /**
- * 模块状态,用于存储模块的状态 例如:收起,关闭
- * @type {Object}
- */
- var status = {
- initialized:false
- };
- /**
- * 查询参数
- * @type {Object}
- */
- var options = {};
-
- /**
- * 初始化并订阅事件
- * @return {[type]} [description]
- */
- function init(){
- if(!status.initialized){
- setLayout();
- subscribe();
- bindEvent();
- status.initialized = true;
- }
- }
- /**
- * 设置界面
- */
- function setLayout(){
- $('body').append($(tplLayout));
- if(modValue.formType != 'note'){
- $("#inportContent").show();
- }else{
- $("#inportContent").hide();
- }
- }
- /**
- * 界面事件绑定
- * @return {[type]} [description]
- */
- function bindEvent(){
- //类型选择
- $("#gcmsCollect .typeList input").bind('click',function(){
- var type = $(this).val();
- modValue.formType = type;
- if(modValue.formType != 'note'){
- $("#inportContent").show();
- if(!modValue["upload"+type]){
- buildkindeditor(modValue.formType);
- }
- }else{
- $("#inportContent").hide();
- }
- })
- //提交
- $("#gcmsCollect .besure").bind('click',function(){
- buildTmpToServer();
- })
- //取消
- $("#gcmsCollect .cancell").bind('click',function(){
- remove();
- })
- $("#gcmsCollect .close-btn").bind('click',function(){
- remove();
- })
- $("#FileLoad").on('change',function(){
- modValue.inFileName = document.getElementById('FileLoad').files[0].name;
- $("#inport_name_info p").html(modValue.inFileName);
- })
- }
- function buildkindeditor(type){
- var tmpPath = buildTmpPath();
- modValue.tmpPath = tmpPath;
- tmpPath = onemapUrlConfig.gcmsServiceUrl + "/file/upload/tmp?path="+modValue.tmpPath
- if(modValue.formType == 'image'){
- modValue.uploadimage = KindEditor.editor({
- uploadJson: tmpPath,
- allowFileUpload:true,
- afterUpload:function(data){
- if(data.code == 0){
- sucessLoad('image',data);
- }else {
-
- }
- }
- });
- window.uploadimage = modValue.uploadimage;
- KindEditor('.inport_name_info_btn').click(function(){
- if(modValue.formType == 'image'){
- modValue.uploadimage.loadPlugin('uploadpicture',function(){
- modValue.uploadimage.plugin.pictureDialog();
- });
- }
- });
- }else if(modValue.formType == 'audio'){
- modValue.uploadaudio = KindEditor.editor({
- uploadJson: tmpPath,
- allowFileUpload:true,
- afterUpload:function(data){
- if(data.code == 0){
- sucessLoad('audio',data);
- }else {
-
- }
- }
- });
- KindEditor('.inport_name_info_btn').click(function(){
- if(modValue.formType == 'audio'){
- modValue.uploadaudio.loadPlugin('uploadaudio',function(){
- modValue.uploadaudio.plugin.audioDialog();
- });
- }
- });
- }else if(modValue.formType == 'video'){
- modValue.uploadvideo = KindEditor.editor({
- uploadJson: tmpPath,
- allowFileUpload:true,
- afterUpload:function(data){
- if(data.code == 0){
- sucessLoad('video',data);
- }else {
-
- }
- }
- });
- KindEditor('.inport_name_info_btn').click(function(){
- if(modValue.formType == 'video'){
- modValue.uploadvideo.loadPlugin('uploadvideo',function(){
- modValue.uploadvideo.plugin.videoDialog();
- });
- }
- });
- }
- }
-
- function sucessLoad(type,data){
- modValue['upload'+type].hideDialog();
- modValue.tmpfile = data['files'][0];
- }
- /**
- * [buildTmpToServer description]
- * 在服务器上创建临时文件
- * @return {[type]} [description]
- */
- function buildTmpToServer(){
- /*var tmpPath = buildTmpPath();
- modValue.tmpPath = tmpPath;
- $.ajax({
- type: "post",
- dataTpe: "json",
- url: onemapUrlConfig.gcmsServiceUrl + "/file/upload/tmp?path="+modValue.tmpPath
- })
- .done(function(data) {
- if (data.code == 0) {
- addDataToServer(data);
- } else {
- alert(data.message)
- }
- })
- .fail(function() {
- alert("无效的用户");
- });*/
- addDataToServer();
- }
- /**
- * [addDataToServer description]
- * 将文件上传到服务器上
- */
- function addDataToServer(data){
- var urlType;
- if(modValue.formType == 'image'){
- urlType="picture"
- }else{
- urlType = modValue.formType;
- }
- var ajaxData = JSON.stringify(buildFormData());
- var ajaxData = buildFormData();
- $.ajax({
- type: "post",
- dataTpe: "json",
- url: onemapUrlConfig.gcmsServiceUrl + '/content/record_'+urlType+'?uploadpath='+modValue.tmpPath,
- data:ajaxData
- })
- .done(function(data) {
- if (data.code == 0) {
- console.log(data);
- remove();
- } else {
- alert(data.message)
- }
- })
- .fail(function() {
- alert("无效的用户");
- });
- }
- /**
- * 构建表单数据
- */
- function buildFormData(){
- var buildFormData = {
- gcms_title:$("#noteContent .gcmsFormTitle").val(),
- gcms_secret_level:$("#noteContent .gcmsFormLevel").val(),
- description:$("#noteContent .gcmsFormDescription").val(),
- updatetime:Date.parse(new Date())
- }
- var lon = $("#noteContent .gcmsFormLon").val();
- var lat = $("#noteContent .gcmsFormLat").val();
- if(modValue.formType == 'note'){
- buildFormData.lon = lon;
- buildFormData.lat = lat;
- }else{
- var location = "location_"+modValue.formType;
- buildFormData[location]= buidGeojson(lon,lat);
- }
- return buildFormData;
- }
- function buidGeojson(lon,lat){
- var geojson = {
- type:"FeatureCollection",
- features:[{
- geometry:{
- coordinates:[lon,lat],
- type:"point"
- },
- properties:{
- file:modValue.tmpfile,
- name:modValue.tmpfile,
- type:"PictureLocation"
- },
- type:"Feature"
- }]
- };
- return JSON.stringify(geojson);
- }
- /**
- * [buildTmpPath description]
- * 创建临时文件夹名称
- * @return {[type]} [description]
- */
- function buildTmpPath(){
- var text = "";
- var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- for (var i = 0; i < 10; i++) text += possible.charAt(Math.floor(Math.random() * possible.length));
- return (new Date()).getTime().toString() + text;
- }
- /**
- * 界面重置
- * @return {[type]} [description]
- */
- function layoutResize(){
- }
- /**
- * 注册订阅
- * @type {Function}
- * 推送:ONEMAP.C.publisher.publish(options,'moduleName::type');
- * 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
- */
- function subscribe(){}
- /**
- * 取消订阅
- * @type {Function}
- * 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange');
- */
- function unSubscribe(){}
- /**
- * 模块移除
- * @return {[type]} [description]
- */
- function remove(){
- $("#gcmsCollect").remove();
- $("#coverBody").remove();
- unSubscribe();
- status.initialized = false;
- }
- /**
- * 获取数据
- * @return {[type]} [description]
- */
- function getValue(name){
- if(modValue.hasOwnProperty(name)){
- return modValue[name]
- }else {
- return null;
- }
- }
- /**
- * 设置数据 默认合并
- */
- function setValue(name,value,rewrite){
- if(rewrite){
- modValue = value;
- return modValue;
- }else {
- _.merge(modValue, value);
- return modValue;
- }
- }
- return ONEMAP.M.gcmsCollect = {
- init:init
- }
- });
|