123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- var upload_cfg = {
- upload_image_url: sa.cfg.api_url + '/sp-admin/upload/image',
- upload_video_url: sa.cfg.api_url + '/sp-admin/upload/video',
- upload_audio_url: sa.cfg.api_url + '/sp-admin/upload/audio',
- upload_apk_url: sa.cfg.api_url + '/sp-admin/upload/apk',
- upload_file_url: sa.cfg.api_url + '/sp-admin/upload/file',
- }
- window.sa = window.sa || {};
- sa.uploadImage = function (successCB) {
- sa.uploadFn(upload_cfg.upload_image_url, successCB);
- }
- sa.uploadVideo = function (successCB) {
- sa.uploadFn(upload_cfg.upload_video_url, successCB);
- }
- sa.uploadAudio = function (successCB) {
- sa.uploadFn(upload_cfg.upload_audio_url, successCB);
- }
- sa.uploadApk = function (successCB) {
- sa.uploadFn(upload_cfg.upload_apk_url, successCB);
- }
- sa.uploadFile = function (successCB) {
- sa.uploadFn(upload_cfg.upload_file_url, successCB);
- }
- sa.uploadFn = function (url, successCB) {
-
- var fileInput = document.createElement("input");
- fileInput.type = "file";
- fileInput.id = 'uploadfile-' + randomString(12);
- fileInput.style.display = 'none';
- fileInput.onchange = function (evt) {
- startUpload(evt.target.files[0], url, successCB);
- }
-
- document.body.appendChild(fileInput);
- document.querySelector('#' + fileInput.id).click();
- }
- sa.uploadImageList = function (successCB) {
- sa.uploadListFn(upload_cfg.upload_image_url, successCB);
- }
- sa.uploadAudioList = function (successCB) {
- sa.uploadListFn(upload_cfg.upload_audio_url, successCB);
- }
- sa.uploadVideoList = function (successCB) {
- sa.uploadListFn(upload_cfg.upload_video_url, successCB);
- }
- sa.uploadFileList = function (successCB) {
- sa.uploadListFn(upload_cfg.upload_file_url, successCB);
- }
- sa.uploadListFn = function (url, successCB) {
-
- var fileInput = document.createElement("input");
- fileInput.type = "file";
- fileInput.multiple = "multiple";
- fileInput.id = 'uploadfile-' + randomString(12);
- fileInput.style.display = 'none';
- fileInput.onchange = function (evt) {
-
- var files = evt.target.files;
- for (var i = 0; i < files.length; i++) {
- let ii = i;
- startUpload(evt.target.files[ii], url, successCB);
- }
- }
-
- document.body.appendChild(fileInput);
- document.querySelector('#' + fileInput.id).click();
- }
- function startUploadImage(file, successCB) {
- startUpload(file, upload_cfg.upload_image_url, successCB);
- }
- var startUploadImage2 = startUploadImage;
- function startUploadVideo(file, successCB) {
- startUpload(file, upload_cfg.upload_video_url, successCB);
- }
- function startUploadAudio(file, successCB) {
- startUpload(file, upload_cfg.upload_audio_url, successCB);
- }
- function startUploadApk(file, successCB) {
- startUpload(file, upload_cfg.upload_apk_url, successCB);
- }
- function startUpload(file, url, successCB) {
-
- var form = new FormData();
- form.append('file', file);
-
- $.ajax({
- url: url,
- data: form,
- processData: false,
- cache: false,
- contentType: false,
- dataType: 'json',
- type: 'post',
- beforeSend: function (xhr) {
- show_jdt();
- },
- complete: function (xhr) {
- close_jdt();
- },
- xhr: xhrOnProgress(function (e) {
- var percent = e.loaded / e.total;
-
- set_jdt_value(percent * 100);
-
- }),
- success: function (res) {
- if (res.code == 200) {
- successCB(res.data);
- } else {
- sa.alert(res.msg);
- }
- },
- error: function (e) {
- sa.alert('异常: ' + JSON.stringify(e));
- }
- });
- }
- function get_suffix(filename) {
- var pos = filename.lastIndexOf('.');
- if (pos != -1) {
- suffix = filename.substring(pos + 1);
- }
- return suffix;
- }
- function xhrOnProgress(fun) {
- xhrOnProgress.onprogress = fun;
-
- return function () {
-
- var xhr = $.ajaxSettings.xhr();
-
- if (typeof xhrOnProgress.onprogress !== 'function')
- return xhr;
-
- if (xhrOnProgress.onprogress && xhr.upload) {
- xhr.upload.onprogress = xhrOnProgress.onprogress;
- }
- return xhr;
- }
- }
- function randomString(len) {
- len = len || 32;
- var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
-
- var maxPos = $chars.length;
- var str = '';
- for (i = 0; i < len; i++) {
- str += $chars.charAt(Math.floor(Math.random() * maxPos));
- }
- return str;
- }
- function show_jdt() {
- close_jdt();
-
- var str = '' +
- '<div class="jdt-fox" style="z-index: 999999999; width: 500px; height: 20px; position: fixed; top: calc(50% - 5px); left: calc(50% - 250px); ">' +
- ' <div class="jdt-fox2" style="width: calc(100% - 100px); height: 6px; margin-top: 7px; border-radius: 3px; float: left; background-color: #FFF; box-shadow: 0 0 10px #aaa;">' +
- ' <div class="jdt-fox-value" style=" transition: all 0.1s; position: relative; width: 0.0%; height: 100%; border-radius: 3px; background-color: green; box-shadow: 0 0 10px green;">' +
- ' <div class="jdt-fox-yh" style="position: absolute; right: -10px; top: -5px;">' +
- ' <div style="transition: all 1s; background-color: green; width: 16px; height: 16px; border-radius: 50%;"></div>' +
- ' </div>' +
- ' </div>' +
- ' </div>' +
- ' <div class="jdt-value-text" style="float: left; font-size: 14px; margin-left: 14px; color: #111;"> 0.0% </div>' +
- '</div>';
- var div = document.createElement("div");
- div.innerHTML = str;
- div.className = "jdt-box";
- document.body.appendChild(div);
-
- if (window.my_interval_index) {
- clearInterval(window.my_interval_index);
- }
- window.my_interval_index = setInterval(function () {
- if (window.one_num === undefined) {
- window.one_num = 0;
- }
- window.one_num++;
- var n_px = window.one_num % 2 == 0 ? '0px' : '20px';
- var box_shadow = "0 0 " + n_px + " green";
- document.querySelector('.jdt-fox-yh div').style.boxShadow = box_shadow;
- }, 1000);
- }
- function close_jdt() {
-
- if (window.my_interval_index) {
- clearInterval(window.my_interval_index);
- }
-
- var box = document.querySelector('.jdt-box');
- if (box) {
- box.parentNode.removeChild(box);
- }
- }
- function set_jdt_value(value) {
- value = parseInt(value * 10) / 10.0 + '%';
-
- var dft = document.querySelector('.jdt-fox-value');
- if (dft) {
- dft.style.width = value;
- }
-
- var dvt = document.querySelector('.jdt-value-text');
- if (dvt) {
- dvt.innerHTML = value;
- }
-
- }
|