|  |  | 
 |  |  |     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 orderByMore; | 
 |  |  | 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; | 
 |  |  | } |