|  |  |  | 
|---|
|  |  |  | return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 时间 ==>> 字符串 | 
|---|
|  |  |  | function dateToStr2(date) { | 
|---|
|  |  |  | var time = new Date(date); | 
|---|
|  |  |  | var y = time.getFullYear(); | 
|---|
|  |  |  | var M = time.getMonth() + 1; | 
|---|
|  |  |  | M = M < 10 ? ("0" + M) : M; | 
|---|
|  |  |  | var d = time.getDate(); | 
|---|
|  |  |  | d = d < 10 ? ("0" + d) : d; | 
|---|
|  |  |  | var h = time.getHours(); | 
|---|
|  |  |  | h = h < 10 ? ("0" + h) : h; | 
|---|
|  |  |  | var m = time.getMinutes(); | 
|---|
|  |  |  | m = m < 10 ? ("0" + m) : m; | 
|---|
|  |  |  | var s = time.getSeconds(); | 
|---|
|  |  |  | s = s < 10 ? ("0" + s) : s; | 
|---|
|  |  |  | return y + "" + "" + M + "" + d + "" + h + "" + "" + m + "" + s; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 字符串 ===>> 时间 | 
|---|
|  |  |  | function strToDate(str) { | 
|---|
|  |  |  | var t = Date.parse(str); | 
|---|
|  |  |  | 
|---|
|  |  |  | var planByMore; | 
|---|
|  |  |  | var priQuoteByMore; | 
|---|
|  |  |  | var reimburseOnlineByMore; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function getQueryVariable(variable) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var query = window.location.search.substring(1); | 
|---|
|  |  |  | var vars = query.split("&"); | 
|---|
|  |  |  | for (var i=0;i<vars.length;i++) { | 
|---|
|  |  |  | var pair = vars[i].split("="); | 
|---|
|  |  |  | if(pair[0] == variable){return pair[1];} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return(false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var businessTripByMore; | 
|---|
|  |  |  | var priOnlineByMore; | 
|---|
|  |  |  | var priSalesByMore; | 
|---|
|  |  |  | var priQuoteBudgetByMore; | 
|---|
|  |  |  | var contractByMore; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function getOssClient() { | 
|---|
|  |  |  | // const client = new OSS({ | 
|---|
|  |  |  | //     // yourRegion填写Bucket所在地域。以华东1(杭州)为例,yourRegion填写为oss-cn-hangzhou。 | 
|---|
|  |  |  | //     region: "", | 
|---|
|  |  |  | //     // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。 | 
|---|
|  |  |  | //     accessKeyId: "", | 
|---|
|  |  |  | //     accessKeySecret: "", | 
|---|
|  |  |  | //     // 从STS服务获取的安全令牌(SecurityToken)。 | 
|---|
|  |  |  | //     // stsToken: "yourSecurityToken", | 
|---|
|  |  |  | //     // 填写Bucket名称。 | 
|---|
|  |  |  | //     bucket: "", | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let data | 
|---|
|  |  |  | $.ajax({ | 
|---|
|  |  |  | url: baseUrl + "/open/getOssClient", | 
|---|
|  |  |  | headers: {'token': localStorage.getItem('token')}, | 
|---|
|  |  |  | data: {}, | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | async: false, | 
|---|
|  |  |  | success: function (res) { | 
|---|
|  |  |  | if (res.code === 200){ | 
|---|
|  |  |  | data = res.data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return new OSS(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //上传文件至OSS | 
|---|
|  |  |  | async function putObject(file, uploadProgress) { | 
|---|
|  |  |  | var client = getOssClient() | 
|---|
|  |  |  | if (client == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var filename = dateToStr2(new Date()) + "_" + file.name | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // // 填写Object完整路径。Object完整路径中不能包含Bucket名称。 | 
|---|
|  |  |  | // // 您可以通过自定义文件名(例如exampleobject.txt)或文件完整路径(例如exampledir/exampleobject.txt)的形式实现将数据上传到当前Bucket或Bucket中的指定目录。 | 
|---|
|  |  |  | // // data对象可以自定义为file对象、Blob数据或者OSS Buffer。 | 
|---|
|  |  |  | // const options = { | 
|---|
|  |  |  | //     meta: {temp: "demo"}, | 
|---|
|  |  |  | //     mime: "json", | 
|---|
|  |  |  | //     headers: {"Content-Type": "text/plain"}, | 
|---|
|  |  |  | // }; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | // return await client.put(filename, file, options); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const options = { | 
|---|
|  |  |  | // 获取分片上传进度、断点和返回值。 | 
|---|
|  |  |  | progress: (p, cpt, res) => { | 
|---|
|  |  |  | // console.log(p); | 
|---|
|  |  |  | uploadProgress(p)//回调上传进度 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 设置并发上传的分片数量。 | 
|---|
|  |  |  | parallel: 4, | 
|---|
|  |  |  | // 设置分片大小。默认值为1 MB,最小值为100 KB。 | 
|---|
|  |  |  | partSize: 1024 * 1024, | 
|---|
|  |  |  | // headers, | 
|---|
|  |  |  | // 自定义元数据,通过HeadObject接口可以获取Object的元数据。 | 
|---|
|  |  |  | meta: {year: 2020, people: "test"}, | 
|---|
|  |  |  | mime: "text/plain", | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return await client.multipartUpload(filename, file, {...options}); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //获取OSS文件URL | 
|---|
|  |  |  | function getObjectUrl(filepath) { | 
|---|
|  |  |  | var client = getOssClient() | 
|---|
|  |  |  | if (client == null) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const domain = filepath.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/im)[0] + "/";//域名部分 | 
|---|
|  |  |  | // 配置响应头实现通过URL访问时自动下载文件,并设置下载后的文件名。 | 
|---|
|  |  |  | const filename = filepath.split(domain)[1]; | 
|---|
|  |  |  | const response = { | 
|---|
|  |  |  | "content-disposition": `attachment; filename=${encodeURIComponent( | 
|---|
|  |  |  | filename | 
|---|
|  |  |  | )}`, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | // 填写Object完整路径。Object完整路径中不能包含Bucket名称。 | 
|---|
|  |  |  | const url = client.signatureUrl(filename,{response}); | 
|---|
|  |  |  | return url; | 
|---|
|  |  |  | } | 
|---|