Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xiaomai-cloud-class-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiaomai-cloud-class
xiaomai-cloud-class-web
Commits
f0de3604
Commit
f0de3604
authored
Jul 04, 2021
by
zhangleyuan
Browse files
Options
Browse Files
Download
Plain Diff
feat:解决合并代码后的冲突
parents
964245b4
2058baf0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
292 additions
and
306 deletions
+292
-306
src/core/downloads.js
+130
-144
src/index.html
+160
-160
src/index.tsx
+2
-2
No files found.
src/core/downloads.js
View file @
f0de3604
/*
/*
* @Author: your name
* @Author: your name
* @Date: 2021-07-02 17:15:50
* @Date: 2021-07-02 17:15:50
* @LastEditTime: 2021-07-0
2 17:23:47
* @LastEditTime: 2021-07-0
4 18:10:34
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @Description: In User Settings Edit
* @FilePath: /xiaomai-cloud-class-web/src/core/downLoad.js
* @FilePath: /xiaomai-cloud-class-web/src/core/downLoad.js
*/
*/
(
function
(
root
,
factory
)
{
window
.
download
=
function
download
(
data
,
strFileName
,
strMimeType
)
{
if
(
typeof
define
===
'function'
&&
define
.
amd
)
{
var
self
=
window
,
// this script is only for browsers anyway...
// AMD. Register as an anonymous module.
defaultMime
=
'application/octet-stream'
,
// this default mime also triggers iframe downloads
define
([],
factory
);
mimeType
=
strMimeType
||
defaultMime
,
}
else
if
(
typeof
exports
===
'object'
)
{
payload
=
data
,
// Node. Does not work with strict CommonJS, but
url
=
!
strFileName
&&
!
strMimeType
&&
payload
,
// only CommonJS-like environments that support module.exports,
anchor
=
document
.
createElement
(
'a'
),
// like Node.
toString
=
function
(
a
)
{
module
.
exports
=
factory
();
return
String
(
a
);
}
else
{
},
// Browser globals (root is window)
myBlob
=
self
.
Blob
||
self
.
MozBlob
||
self
.
WebKitBlob
||
toString
,
root
.
download
=
factory
();
fileName
=
strFileName
||
'download'
,
}
blob
,
})(
this
,
function
()
{
reader
;
return
function
download
(
data
,
strFileName
,
strMimeType
)
{
myBlob
=
myBlob
.
call
?
myBlob
.
bind
(
self
)
:
Blob
;
var
self
=
window
,
// this script is only for browsers anyway...
defaultMime
=
'application/octet-stream'
,
// this default mime also triggers iframe downloads
mimeType
=
strMimeType
||
defaultMime
,
payload
=
data
,
url
=
!
strFileName
&&
!
strMimeType
&&
payload
,
anchor
=
document
.
createElement
(
'a'
),
toString
=
function
(
a
)
{
return
String
(
a
);
},
myBlob
=
self
.
Blob
||
self
.
MozBlob
||
self
.
WebKitBlob
||
toString
,
fileName
=
strFileName
||
'download'
,
blob
,
reader
;
myBlob
=
myBlob
.
call
?
myBlob
.
bind
(
self
)
:
Blob
;
if
(
String
(
this
)
===
'true'
)
{
if
(
String
(
this
)
===
'true'
)
{
//reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
//reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
payload
=
[
payload
,
mimeType
];
payload
=
[
payload
,
mimeType
];
mimeType
=
payload
[
0
];
mimeType
=
payload
[
0
];
payload
=
payload
[
1
];
payload
=
payload
[
1
];
}
}
if
(
url
&&
url
.
length
<
2048
)
{
if
(
url
&&
url
.
length
<
2048
)
{
// if no filename and no mime, assume a url was passed as the only argument
// if no filename and no mime, assume a url was passed as the only argument
fileName
=
url
.
split
(
'/'
).
pop
().
split
(
'?'
)[
0
];
fileName
=
url
.
split
(
'/'
).
pop
().
split
(
'?'
)[
0
];
anchor
.
href
=
url
;
// assign href prop to temp anchor
anchor
.
href
=
url
;
// assign href prop to temp anchor
if
(
anchor
.
href
.
indexOf
(
url
)
!==
-
1
)
{
if
(
anchor
.
href
.
indexOf
(
url
)
!==
-
1
)
{
// if the browser determines that it's a potentially valid url path:
// if the browser determines that it's a potentially valid url path:
var
ajax
=
new
XMLHttpRequest
();
var
ajax
=
new
XMLHttpRequest
();
ajax
.
open
(
'GET'
,
url
,
true
);
ajax
.
open
(
'GET'
,
url
,
true
);
ajax
.
responseType
=
'blob'
;
ajax
.
responseType
=
'blob'
;
ajax
.
onload
=
function
(
e
)
{
ajax
.
onload
=
function
(
e
)
{
download
(
e
.
target
.
response
,
fileName
,
defaultMime
);
download
(
e
.
target
.
response
,
fileName
,
defaultMime
);
};
};
setTimeout
(
function
()
{
setTimeout
(
function
()
{
ajax
.
send
();
ajax
.
send
();
},
0
);
// allows setting custom ajax headers using the return:
},
0
);
// allows setting custom ajax headers using the return:
return
ajax
;
return
ajax
;
}
// end if valid url?
}
// end if valid url?
}
// end if url?
}
// end if url?
//go ahead and download dataURLs right away
//go ahead and download dataURLs right away
if
(
/^data
\:[\w
+
\-]
+
\/[\w
+
\-]
+
[
,;
]
/
.
test
(
payload
))
{
if
(
/^data
\:[\w
+
\-]
+
\/[\w
+
\-]
+
[
,;
]
/
.
test
(
payload
))
{
if
(
payload
.
length
>
1024
*
1024
*
1.999
&&
myBlob
!==
toString
)
{
if
(
payload
.
length
>
1024
*
1024
*
1.999
&&
myBlob
!==
toString
)
{
payload
=
dataUrlToBlob
(
payload
);
payload
=
dataUrlToBlob
(
payload
);
mimeType
=
payload
.
type
||
defaultMime
;
mimeType
=
payload
.
type
||
defaultMime
;
}
else
{
}
else
{
return
navigator
.
msSaveBlob
// IE10 can't do a[download], only Blobs:
return
navigator
.
msSaveBlob
// IE10 can't do a[download], only Blobs:
?
navigator
.
msSaveBlob
(
dataUrlToBlob
(
payload
),
fileName
)
?
navigator
.
msSaveBlob
(
dataUrlToBlob
(
payload
),
fileName
)
:
saver
(
payload
);
// everyone else can save dataURLs un-processed
:
saver
(
payload
);
// everyone else can save dataURLs un-processed
}
}
}
//end if dataURL passed?
}
//end if dataURL passed?
blob
=
payload
instanceof
myBlob
?
payload
:
new
myBlob
([
payload
],
{
type
:
mimeType
});
blob
=
payload
instanceof
myBlob
?
payload
:
new
myBlob
([
payload
],
{
type
:
mimeType
});
function
dataUrlToBlob
(
strUrl
)
{
function
dataUrlToBlob
(
strUrl
)
{
var
parts
=
strUrl
.
split
(
/
[
:;,
]
/
),
var
parts
=
strUrl
.
split
(
/
[
:;,
]
/
),
type
=
parts
[
1
],
type
=
parts
[
1
],
decoder
=
parts
[
2
]
==
'base64'
?
atob
:
decodeURIComponent
,
decoder
=
parts
[
2
]
==
'base64'
?
atob
:
decodeURIComponent
,
binData
=
decoder
(
parts
.
pop
()),
binData
=
decoder
(
parts
.
pop
()),
mx
=
binData
.
length
,
mx
=
binData
.
length
,
i
=
0
,
i
=
0
,
uiArr
=
new
Uint8Array
(
mx
);
uiArr
=
new
Uint8Array
(
mx
);
for
(
i
;
i
<
mx
;
++
i
)
uiArr
[
i
]
=
binData
.
charCodeAt
(
i
);
for
(
i
;
i
<
mx
;
++
i
)
uiArr
[
i
]
=
binData
.
charCodeAt
(
i
);
return
new
myBlob
([
uiArr
],
{
type
:
type
});
return
new
myBlob
([
uiArr
],
{
type
:
type
});
}
}
function
saver
(
url
,
winMode
)
{
function
saver
(
url
,
winMode
)
{
if
(
'download'
in
anchor
)
{
if
(
'download'
in
anchor
)
{
//html5 A[download]
//html5 A[download]
anchor
.
href
=
url
;
anchor
.
href
=
url
;
anchor
.
setAttribute
(
'download'
,
fileName
);
anchor
.
setAttribute
(
'download'
,
fileName
);
anchor
.
className
=
'download-js-link'
;
anchor
.
className
=
'download-js-link'
;
anchor
.
innerHTML
=
'downloading...'
;
anchor
.
innerHTML
=
'downloading...'
;
anchor
.
style
.
display
=
'none'
;
anchor
.
style
.
display
=
'none'
;
document
.
body
.
appendChild
(
anchor
);
document
.
body
.
appendChild
(
anchor
);
setTimeout
(
function
()
{
anchor
.
click
();
document
.
body
.
removeChild
(
anchor
);
if
(
winMode
===
true
)
{
setTimeout
(
function
()
{
setTimeout
(
function
()
{
anchor
.
click
();
self
.
URL
.
revokeObjectURL
(
anchor
.
href
);
document
.
body
.
removeChild
(
anchor
);
},
250
);
if
(
winMode
===
true
)
{
setTimeout
(
function
()
{
self
.
URL
.
revokeObjectURL
(
anchor
.
href
);
},
250
);
}
},
66
);
return
true
;
}
}
},
66
);
return
true
;
}
// handle non-a[download] safari as best we can:
// handle non-a[download] safari as best we can:
if
(
/
(
Version
)\/(\d
+
)\.(\d
+
)(?:\.(\d
+
))?
.*Safari
\/
/
.
test
(
navigator
.
userAgent
))
{
if
(
/
(
Version
)\/(\d
+
)\.(\d
+
)(?:\.(\d
+
))?
.*Safari
\/
/
.
test
(
navigator
.
userAgent
))
{
url
=
url
.
replace
(
/^data:
([\w\/\-\+]
+
)
/
,
defaultMime
);
url
=
url
.
replace
(
/^data:
([\w\/\-\+]
+
)
/
,
defaultMime
);
if
(
!
window
.
open
(
url
))
{
if
(
!
window
.
open
(
url
))
{
// popup blocked, offer direct download:
// popup blocked, offer direct download:
if
(
confirm
(
'Displaying New Document
\
n
\
nUse Save As... to download, then click back to return to this page.'
))
{
if
(
window
.
confirm
(
'Displaying New Document
\
n
\
nUse Save As... to download, then click back to return to this page.'
))
{
location
.
href
=
url
;
window
.
location
.
href
=
url
;
}
}
return
true
;
}
}
}
return
true
;
}
//do iframe dataURL download (old ch+FF):
//do iframe dataURL download (old ch+FF):
var
f
=
document
.
createElement
(
'iframe'
);
var
f
=
document
.
createElement
(
'iframe'
);
document
.
body
.
appendChild
(
f
);
document
.
body
.
appendChild
(
f
);
if
(
!
winMode
)
{
// force a mime that will download:
url
=
'data:'
+
url
.
replace
(
/^data:
([\w\/\-\+]
+
)
/
,
defaultMime
);
}
f
.
src
=
url
;
setTimeout
(
function
()
{
document
.
body
.
removeChild
(
f
);
},
333
);
}
//end saver
if
(
navigator
.
msSaveBlob
)
{
if
(
!
winMode
)
{
// IE10+ : (has Blob, but not a[download] or URL)
// force a mime that will download:
return
navigator
.
msSaveBlob
(
blob
,
fileName
);
url
=
'data:'
+
url
.
replace
(
/^data:
([\w\/\-\+]
+
)
/
,
defaultMime
);
}
}
f
.
src
=
url
;
setTimeout
(
function
()
{
document
.
body
.
removeChild
(
f
);
},
333
);
}
//end saver
if
(
self
.
URL
)
{
if
(
navigator
.
msSaveBlob
)
{
// simple fast and modern way using Blob and URL:
// IE10+ : (has Blob, but not a[download] or URL)
saver
(
self
.
URL
.
createObjectURL
(
blob
),
true
);
return
navigator
.
msSaveBlob
(
blob
,
fileName
);
}
else
{
}
// handle non-Blob()+non-URL browsers:
if
(
typeof
blob
===
'string'
||
blob
.
constructor
===
toString
)
{
try
{
return
saver
(
'data:'
+
mimeType
+
';base64,'
+
self
.
btoa
(
blob
));
}
catch
(
y
)
{
return
saver
(
'data:'
+
mimeType
+
','
+
encodeURIComponent
(
blob
));
}
}
// Blob but not URL support:
if
(
self
.
URL
)
{
reader
=
new
FileReader
();
// simple fast and modern way using Blob and URL:
reader
.
onload
=
function
(
e
)
{
saver
(
self
.
URL
.
createObjectURL
(
blob
),
true
);
saver
(
this
.
result
);
}
else
{
};
// handle non-Blob()+non-URL browsers:
reader
.
readAsDataURL
(
blob
);
if
(
typeof
blob
===
'string'
||
blob
.
constructor
===
toString
)
{
try
{
return
saver
(
'data:'
+
mimeType
+
';base64,'
+
self
.
btoa
(
blob
));
}
catch
(
y
)
{
return
saver
(
'data:'
+
mimeType
+
','
+
encodeURIComponent
(
blob
));
}
}
return
true
;
}
};
/* end download() */
});
// Blob but not URL support:
\ No newline at end of file
reader
=
new
FileReader
();
reader
.
onload
=
function
(
e
)
{
saver
(
this
.
result
);
};
reader
.
readAsDataURL
(
blob
);
}
return
true
;
};
/* end download() */
\ No newline at end of file
src/index.html
View file @
f0de3604
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2020-08-24 12:20:57
* @Date: 2020-08-24 12:20:57
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-04
09:55:24
* @LastEditTime: 2021-07-04
18:19:52
* @Description:
* @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有
* @Copyright: 杭州杰竞科技有限公司 版权所有
-->
-->
...
@@ -64,165 +64,165 @@
...
@@ -64,165 +64,165 @@
To create a production bundle, use `npm run build` or `yarn build`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
-->
<script>
<script>
(
function
(
root
,
factory
)
{
//
(function (root, factory) {
if
(
typeof
define
===
'function'
&&
define
.
amd
)
{
//
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
//
// AMD. Register as an anonymous module.
define
([],
factory
);
//
define([], factory);
}
else
if
(
typeof
exports
===
'object'
)
{
//
} else if (typeof exports === 'object') {
// Node. Does not work with strict CommonJS, but
//
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
//
// only CommonJS-like environments that support module.exports,
// like Node.
//
// like Node.
module
.
exports
=
factory
();
//
module.exports = factory();
}
else
{
//
} else {
// Browser globals (root is window)
//
// Browser globals (root is window)
root
.
download
=
factory
();
//
root.download = factory();
}
//
}
})(
this
,
function
()
{
//
})(this, function () {
return
function
download
(
data
,
strFileName
,
strMimeType
)
{
//
return function download(data, strFileName, strMimeType) {
var
self
=
window
,
// this script is only for browsers anyway...
//
var self = window, // this script is only for browsers anyway...
defaultMime
=
'application/octet-stream'
,
// this default mime also triggers iframe downloads
//
defaultMime = 'application/octet-stream', // this default mime also triggers iframe downloads
mimeType
=
strMimeType
||
defaultMime
,
//
mimeType = strMimeType || defaultMime,
payload
=
data
,
//
payload = data,
url
=
!
strFileName
&&
!
strMimeType
&&
payload
,
//
url = !strFileName && !strMimeType && payload,
anchor
=
document
.
createElement
(
'a'
),
//
anchor = document.createElement('a'),
toString
=
function
(
a
)
{
//
toString = function (a) {
return
String
(
a
);
//
return String(a);
},
//
},
myBlob
=
self
.
Blob
||
self
.
MozBlob
||
self
.
WebKitBlob
||
toString
,
//
myBlob = self.Blob || self.MozBlob || self.WebKitBlob || toString,
fileName
=
strFileName
||
'download'
,
//
fileName = strFileName || 'download',
blob
,
//
blob,
reader
;
//
reader;
myBlob
=
myBlob
.
call
?
myBlob
.
bind
(
self
)
:
Blob
;
//
myBlob = myBlob.call ? myBlob.bind(self) : Blob;
if
(
String
(
this
)
===
'true'
)
{
//
if (String(this) === 'true') {
//reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
//
//reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
payload
=
[
payload
,
mimeType
];
//
payload = [payload, mimeType];
mimeType
=
payload
[
0
];
//
mimeType = payload[0];
payload
=
payload
[
1
];
//
payload = payload[1];
}
//
}
if
(
url
&&
url
.
length
<
2048
)
{
//
if (url && url.length
<
2048
)
{
// if no filename and no mime, assume a url was passed as the only argument
//
// if no filename and no mime, assume a url was passed as the only argument
fileName
=
url
.
split
(
'/'
).
pop
().
split
(
'?'
)[
0
];
//
fileName = url.split('/').pop().split('?')[0];
anchor
.
href
=
url
;
// assign href prop to temp anchor
//
anchor.href = url; // assign href prop to temp anchor
if
(
anchor
.
href
.
indexOf
(
url
)
!==
-
1
)
{
//
if (anchor.href.indexOf(url) !== -1) {
// if the browser determines that it's a potentially valid url path:
//
// if the browser determines that it's a potentially valid url path:
var
ajax
=
new
XMLHttpRequest
();
//
var ajax = new XMLHttpRequest();
ajax
.
open
(
'GET'
,
url
,
true
);
//
ajax.open('GET', url, true);
ajax
.
responseType
=
'blob'
;
//
ajax.responseType = 'blob';
ajax
.
onload
=
function
(
e
)
{
//
ajax.onload = function (e) {
download
(
e
.
target
.
response
,
fileName
,
defaultMime
);
//
download(e.target.response, fileName, defaultMime);
};
//
};
setTimeout
(
function
()
{
//
setTimeout(function () {
ajax
.
send
();
//
ajax.send();
},
0
);
// allows setting custom ajax headers using the return:
//
}, 0); // allows setting custom ajax headers using the return:
return
ajax
;
//
return ajax;
}
// end if valid url?
//
} // end if valid url?
}
// end if url?
//
} // end if url?
//go ahead and download dataURLs right away
//
//go ahead and download dataURLs right away
if
(
/^data
\:[\w
+
\-]
+
\/[\w
+
\-]
+
[
,;
]
/
.
test
(
payload
))
{
//
if (/^data\:[\w+\-]+\/[\w+\-]+[,;]/.test(payload)) {
if
(
payload
.
length
>
1024
*
1024
*
1.999
&&
myBlob
!==
toString
)
{
//
if (payload.length > 1024 * 1024 * 1.999 && myBlob !== toString) {
payload
=
dataUrlToBlob
(
payload
);
//
payload = dataUrlToBlob(payload);
mimeType
=
payload
.
type
||
defaultMime
;
//
mimeType = payload.type || defaultMime;
}
else
{
//
} else {
return
navigator
.
msSaveBlob
// IE10 can't do a[download], only Blobs:
//
return navigator.msSaveBlob // IE10 can't do a[download], only Blobs:
?
navigator
.
msSaveBlob
(
dataUrlToBlob
(
payload
),
fileName
)
//
? navigator.msSaveBlob(dataUrlToBlob(payload), fileName)
:
saver
(
payload
);
// everyone else can save dataURLs un-processed
//
: saver(payload); // everyone else can save dataURLs un-processed
}
//
}
}
//end if dataURL passed?
//
} //end if dataURL passed?
blob
=
payload
instanceof
myBlob
?
payload
:
new
myBlob
([
payload
],
{
type
:
mimeType
});
//
blob = payload instanceof myBlob ? payload : new myBlob([payload], { type: mimeType });
function
dataUrlToBlob
(
strUrl
)
{
//
function dataUrlToBlob(strUrl) {
var
parts
=
strUrl
.
split
(
/
[
:;,
]
/
),
//
var parts = strUrl.split(/[:;,]/),
type
=
parts
[
1
],
//
type = parts[1],
decoder
=
parts
[
2
]
==
'base64'
?
atob
:
decodeURIComponent
,
//
decoder = parts[2] == 'base64' ? atob : decodeURIComponent,
binData
=
decoder
(
parts
.
pop
()),
//
binData = decoder(parts.pop()),
mx
=
binData
.
length
,
//
mx = binData.length,
i
=
0
,
//
i = 0,
uiArr
=
new
Uint8Array
(
mx
);
//
uiArr = new Uint8Array(mx);
for
(
i
;
i
<
mx
;
++
i
)
uiArr
[
i
]
=
binData
.
charCodeAt
(
i
);
//
for (i; i
<
mx
;
++
i
)
uiArr
[
i
]
=
binData
.
charCodeAt
(
i
);
return
new
myBlob
([
uiArr
],
{
type
:
type
});
//
return new myBlob([uiArr], { type: type });
}
//
}
function
saver
(
url
,
winMode
)
{
//
function saver(url, winMode) {
if
(
'download'
in
anchor
)
{
//
if ('download' in anchor) {
//html5 A[download]
//
//html5 A[download]
anchor
.
href
=
url
;
//
anchor.href = url;
anchor
.
setAttribute
(
'download'
,
fileName
);
//
anchor.setAttribute('download', fileName);
anchor
.
className
=
'download-js-link'
;
//
anchor.className = 'download-js-link';
anchor
.
innerHTML
=
'downloading...'
;
//
anchor.innerHTML = 'downloading...';
anchor
.
style
.
display
=
'none'
;
//
anchor.style.display = 'none';
document
.
body
.
appendChild
(
anchor
);
//
document.body.appendChild(anchor);
setTimeout
(
function
()
{
//
setTimeout(function () {
anchor
.
click
();
//
anchor.click();
document
.
body
.
removeChild
(
anchor
);
//
document.body.removeChild(anchor);
if
(
winMode
===
true
)
{
//
if (winMode === true) {
setTimeout
(
function
()
{
//
setTimeout(function () {
self
.
URL
.
revokeObjectURL
(
anchor
.
href
);
//
self.URL.revokeObjectURL(anchor.href);
},
250
);
//
}, 250);
}
//
}
},
66
);
//
}, 66);
return
true
;
//
return true;
}
//
}
// handle non-a[download] safari as best we can:
//
// handle non-a[download] safari as best we can:
if
(
/
(
Version
)\/(\d
+
)\.(\d
+
)(?:\.(\d
+
))?
.*Safari
\/
/
.
test
(
navigator
.
userAgent
))
{
//
if (/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)) {
url
=
url
.
replace
(
/^data:
([\w\/\-\+]
+
)
/
,
defaultMime
);
//
url = url.replace(/^data:([\w\/\-\+]+)/, defaultMime);
if
(
!
window
.
open
(
url
))
{
//
if (!window.open(url)) {
// popup blocked, offer direct download:
//
// popup blocked, offer direct download:
if
(
confirm
(
'Displaying New Document
\
n
\
nUse Save As... to download, then click back to return to this page.'
))
{
//
if (confirm('Displaying New Document\n\nUse Save As... to download, then click back to return to this page.')) {
location
.
href
=
url
;
//
location.href = url;
}
//
}
}
//
}
return
true
;
//
return true;
}
//
}
//do iframe dataURL download (old ch+FF):
//
//do iframe dataURL download (old ch+FF):
var
f
=
document
.
createElement
(
'iframe'
);
//
var f = document.createElement('iframe');
document
.
body
.
appendChild
(
f
);
//
document.body.appendChild(f);
if
(
!
winMode
)
{
//
if (!winMode) {
// force a mime that will download:
//
// force a mime that will download:
url
=
'data:'
+
url
.
replace
(
/^data:
([\w\/\-\+]
+
)
/
,
defaultMime
);
//
url = 'data:' + url.replace(/^data:([\w\/\-\+]+)/, defaultMime);
}
//
}
f
.
src
=
url
;
//
f.src = url;
setTimeout
(
function
()
{
//
setTimeout(function () {
document
.
body
.
removeChild
(
f
);
//
document.body.removeChild(f);
},
333
);
//
}, 333);
}
//end saver
//
} //end saver
if
(
navigator
.
msSaveBlob
)
{
//
if (navigator.msSaveBlob) {
// IE10+ : (has Blob, but not a[download] or URL)
//
// IE10+ : (has Blob, but not a[download] or URL)
return
navigator
.
msSaveBlob
(
blob
,
fileName
);
//
return navigator.msSaveBlob(blob, fileName);
}
//
}
if
(
self
.
URL
)
{
//
if (self.URL) {
// simple fast and modern way using Blob and URL:
//
// simple fast and modern way using Blob and URL:
saver
(
self
.
URL
.
createObjectURL
(
blob
),
true
);
//
saver(self.URL.createObjectURL(blob), true);
}
else
{
//
} else {
// handle non-Blob()+non-URL browsers:
//
// handle non-Blob()+non-URL browsers:
if
(
typeof
blob
===
'string'
||
blob
.
constructor
===
toString
)
{
//
if (typeof blob === 'string' || blob.constructor === toString) {
try
{
//
try {
return
saver
(
'data:'
+
mimeType
+
';base64,'
+
self
.
btoa
(
blob
));
//
return saver('data:' + mimeType + ';base64,' + self.btoa(blob));
}
catch
(
y
)
{
//
} catch (y) {
return
saver
(
'data:'
+
mimeType
+
','
+
encodeURIComponent
(
blob
));
//
return saver('data:' + mimeType + ',' + encodeURIComponent(blob));
}
//
}
}
//
}
// Blob but not URL support:
//
// Blob but not URL support:
reader
=
new
FileReader
();
//
reader = new FileReader();
reader
.
onload
=
function
(
e
)
{
//
reader.onload = function (e) {
saver
(
this
.
result
);
//
saver(this.result);
};
//
};
reader
.
readAsDataURL
(
blob
);
//
reader.readAsDataURL(blob);
}
//
}
return
true
;
//
return true;
};
/* end download() */
//
}; /* end download() */
});
//
});
</script>
</script>
</body>
</body>
</html>
</html>
src/index.tsx
View file @
f0de3604
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2020-04-27 20:35:34
* @Date: 2020-04-27 20:35:34
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-04
09:55:15
* @LastEditTime: 2021-07-04
16:59:14
* @Description:
* @Description:
*/
*/
...
@@ -17,8 +17,8 @@ import { RootRouter } from './routes/index';
...
@@ -17,8 +17,8 @@ import { RootRouter } from './routes/index';
import
'antd/dist/antd.less'
;
import
'antd/dist/antd.less'
;
import
'video-react/dist/video-react.css'
;
import
'video-react/dist/video-react.css'
;
import
'@/common/less/index.less'
;
import
'@/common/less/index.less'
;
import
'@/core/downloads'
;
import
'@/core/function'
;
import
'@/core/function'
;
// import '@/core/downloads';
import
'@/core/xmTD'
;
import
'@/core/xmTD'
;
import
User
from
'@/common/js/user'
;
import
User
from
'@/common/js/user'
;
import
Service
from
"@/common/js/service"
;
import
Service
from
"@/common/js/service"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment