| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- define(['html!templates/menu/baseCalc/shpAGeojsonMutualism',
- 'css!styles/tools/toolPublicPopup',
- 'css!styles/menu/baseCalc/shpAGeojsonMutualism',
- ],
- function (tplLayout) {
- /**
- * 模块状态,用于存储模块的状态 例如:收起,关闭
- * @type {Object}
- */
- var status = {
- initialized: false//是否初始化
- };
- /**
- * 模块数据 用于数据存储和外部调用
- * @type {Object}
- * 数据存放
- */
- var modValue = {
- data: {},
- };
- /**
- * 初始化并订阅事件
- * @return {[type]} [description]
- */
- function open(data) {
- if (!status.initialized) {
- setLayout();
- bindEvent();
- subscribe();
- status.initialized = true;
- } else {
- // 重置
- reset();
- }
- modValue.data = data;
- $("#shpAGeojsonMutualismModal .title").text(data.label);
- ONEMAP.C.publisher.publish({
- modName: 'shpAGeojsonMutualism'
- }, 'baseCalc:active');
- };
- function setLayout() {
- $('body').append(tplLayout);
- //拖拽
- $("#shpAGeojsonMutualismModal .popup-ct").dragmove($('#shpAGeojsonMutualismModal'));
- };
- /**
- * 事件绑定
- */
- function bindEvent() {
- $("#shpAGeojsonMutualismModal .close").bind('click', function () {
- close();
- });
- $("#shpAGeojsonMutualismModal .sure").bind('click', function () {
- getFile();
- });
- // $("#shpAGeojsonMutualismModal .openFunc").bind('click', function () {
- // openFunc();
- // });
- // $("#shpAGeojsonMutualismModal .closeFunc").bind('click', function () {
- // closeFunc();
- // });
- };
- // function openFunc() {
- // addMapClickEvent();
- // }
- // function closeFunc() {
- // removeMapClickEvent();
- // }
- /**
- * 注册监听
- * @type {Function}
- */
- function subscribe() {
- ONEMAP.C.publisher.subscribe(remove, 'baseCalc:active');
- };
- /**
- * 关闭模块
- * @return {[type]} [description]
- */
- function remove(options) {
- if (options.modName != 'shpAGeojsonMutualism') {
- close();
- } else {
- $("#shpAGeojsonMutualismModal").show();
- }
- }
- function reset() {
- $("#shpAGeojsonMutualismForm .outputResult table tr").empty("")
- // removeMapClickEvent();
- }
- function close() {
- $("#shpAGeojsonMutualismModal").hide();
- reset();
- }
- /**
- * 获取转换后结果
- * @private
- */
- function getFile() {
- let file = $("#shpAGeojsonMutualismForm .uploadFile")[0].files[0]
- let selectValue = $("#shpAGeojsonMutualismForm .changeBefore").val()
- let selectValue2 = $("#shpAGeojsonMutualismForm .changeAfter").val()
- let fileType = $("#shpAGeojsonMutualismForm .changeAfterFileType").val()
- let encodingFormat = $("#shpAGeojsonMutualismForm .encodingFormat").val()
- let form = new FormData();
- form.append("file", file)
- form.append("selectValue", selectValue)
- form.append("selectValue2", selectValue2)
- form.append("fileType", fileType)
- form.append("outCharsetStr", encodingFormat)
- // $.ajax({
- // // cache: true,
- // type: "post",
- // url: "/proxy_ceshiproxy/geoCoordinate",
- // data: form,
- // // async: false,
- // processData: false, // !!!重要必须有该字段
- // contentType: false, // !!!重要必须有该字段
- // success: function (result) {
- // //转换为blob对象,通过a标签来实现文件下载
- // const blob = new Blob([result], { type: 'application/zip' })
- // const a = document.createElement('a')
- // a.href = URL.createObjectURL(blob)
- // a.download = '转换后的坐标.zip'
- // a.click()
- // // if (data.code == 200) {
- // // debugger;
- // // // setOutputResult(data.content)
- // // }
- // },
- // error: function (error) {
- // console.log(error)
- // }
- // });
- // return;
- let xhr = new XMLHttpRequest();
- xhr.open("POST", "/proxy_ceshiproxy/geoCoordinate");
- xhr.send(form);
- xhr.responseType = 'blob';
- const divElement = document.createElement('div');
- divElement.id = "shpAGeojsonLoading";
- divElement.style.width = "100%";
- divElement.style.height = "100%";
- divElement.style.display = "absolute";
- document.body.appendChild(divElement);
- var load = new Load({
- el: '#shpAGeojsonLoading',//绑定元素容器
- model: "manual",
- // hide:'#app',//隐藏元素选择器 在加载完成前将该选择器下的元素全部进行隐藏 加载完成后再进行显示 起到防止滚动的作用
- // bindClass:'.load',//如果只想预加载有指定类名的图片就写这 不加则默认是自动预加载网页中的所有img
- // wait:10000,//加载超时时间 默认10000毫秒
- // animateTime:'1.5s',//动画淡入淡出时间 默认1.5s 建议不要超过delTime的时间 否则动画未加载完元素就会被彻底删除
- // delTime:3000,//完全删除动画元素时间(包括容器) 默认3000毫秒
- // callback:()=>{}// 加载完成回调事件
- })
- xhr.onload = function () {
- // if (this.status == 200) {
- setTimeout(() => { load.loadOut(); }, 1000);
- let blob = this.response;
- if (blob && blob.size > 0) {
- let fileName = getFileNameFromResponse(xhr.getResponseHeader("content-disposition"));
- // 创建一个临时链接并模拟点击进行下载
- let a = document.createElement('a');
- a.href = window.URL.createObjectURL(blob);
- a.download = fileName;
- a.click();
- } else {
- setTimeout(() => { load.loadOut(); }, 1000);
- console.error("下载失败");
- }
- }
- };
- // 根据响应头获取文件名
- function getFileNameFromResponse(contentDisposition) {
- var matchResult = /fileName[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(contentDisposition);
- if (matchResult != null && matchResult[1]) {
- return decodeURIComponent(matchResult[1].replace(/['"]/g, ""));
- }
- return "download";
- }
- return ONEMAP.M.shpAGeojsonMutualismForm = {
- open: open,
- };
- })
|