123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import Vue from 'vue'
- import dayjs from 'dayjs'
- const utils = {
- // 检查是否登录
- checkLogin() {
- if (this.getCookie('shop-token')) {
- return true;
- } else {
- return false;
- }
- },
- getCookie(cname) {
- const name = cname + "=";
- const ca = document.cookie.split(';');
- for (let i = 0; i < ca.length; i++) {
- const c = ca[i].trim();
- if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
- }
- return "";
- },
- checkType(val) {
- return Object.prototype.toString.call(val).slice(8, -1)
- },
- // 时间格式化. 格式参考 https://day.js.org/docs/zh-CN/display/format
- formatTime(date, format = 'DD-MM-YYYY HH:mm:ss', isUnix = false) {
- let str = ''
- if (date) {
- str = isUnix ? dayjs.unix(date).format(format) : dayjs(date).format(format)
- }
- return str
- },
- /**
- * @deprecated 处理 pdf url,使其不在浏览器打开
- * @param {string} url
- */
- downloadBlob(url, filename) {
- fetch(url, {
- method: 'get',
- responseType: 'arraybuffer',
- })
- .then(function (res) {
- if (res.status !== 200) {
- return res.json()
- }
- return res.arrayBuffer()
- })
- .then((blobRes) => {
- // 生成 Blob 对象,设置 type 等信息
- const e = new Blob([blobRes], {
- type: 'application/octet-stream',
- 'Content-Disposition': 'attachment'
- })
- // 将 Blob 对象转为 url
- const link = window.URL.createObjectURL(e)
- this.handleFileDownload(link, filename)
- }).catch(err => {
- console.error(err)
- })
- },
- handleFileDownload(url, filename, download = true) {
- const a = document.createElement('a');
- a.href = url;
- a.download = download && filename;
- a.target = '_blank';
- a.click();
- },
- isEmail(s) {
- return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
- },
- isMobile(s) {
- return /^1[0-9]{10}$/.test(s)
- },
- // 亚马逊图像尺寸缩略
- generateResizedImageUrl(urlString, width) {
- if (urlString) {
- const extractedString = urlString.replace(/^https?:\/\/[^/]+/, '');
- const resizedImageUrl = `${Vue.prototype.$OSS_PREFIX}/fit-in/${width}x0${extractedString}`;
- return resizedImageUrl;
- }
- },
- // 链接替换
- repaceDomain(urlString) {
- if (urlString) {
- const extractedString = urlString.replace(/^https?:\/\/[^/]+/, '');
- const resizedImageUrl = `${Vue.prototype.$OSS_S3_PREFIX}${extractedString}`;
- return resizedImageUrl;
- }
- }
- }
- Vue.prototype.$utils = utils;
|