import md5 from 'js-md5' import cookie from '../assets/utils/cookie'; import co from 'co' import OSS from 'ali-oss' import MsgBus from '../assets/utils/msgBus' import routerConfig from '../router/config'; export default { data: { loginUser: {}, apiurl: '' }, install(Vue, options) { Vue.prototype.MsgBus = MsgBus; Vue.prototype.md5 = md5; Vue.prototype.orderBy = function (source, orders, type) { if ( source instanceof Array && orders instanceof Array && orders.length > 0 ) { var ordersc = orders.concat([]); var sorttype = type || "asc"; var results = []; var totalSum = {}; function grouporder(source, orders, totalSum) { source.sort(function (a, b) { var convertA = a[orders[0]]; var convertB = b[orders[0]]; if (typeof convertA == "string" && typeof convertB == "string") { if (sorttype.toUpperCase() == "ASC") { return convertA.localeCompare(convertB); } else { return convertB.localeCompare(convertA); } } else { if (sorttype.toUpperCase() == "ASC") { return convertA - convertB; } else { return convertB - convertA; } } }); var groupmap = new Map(); source.forEach(item => { if (groupmap.has(item[orders[0]])) { groupmap.get(item[orders[0]]).push(item); } else { groupmap.set(item[orders[0]], []); groupmap.get(item[orders[0]]).push(item); } }); orders.shift(); for (let [key, val] of groupmap) { totalSum[key] = {}; totalSum[key].name = key; totalSum[key].value = val.length; if (orders.length == 0) { results = results.concat(val); } else { totalSum[key].children = {}; var orderscopy = orders.concat([]); grouporder(val, orderscopy, totalSum[key].children); } } } grouporder(source, ordersc, totalSum); return { results: results, totalSum: totalSum }; } else { return source; } }, Vue.prototype.calcPageSize = function (itemHeight) { let yuHeight = itemHeight try { let obj = null document.querySelectorAll('.frame-box').forEach(x => { if (x.style.display != 'none') { obj = x } }) let dom = obj.offsetHeight yuHeight = dom - (obj.querySelector('.v-table-header') ? obj.querySelector('.v-table-header').offsetHeight : 39) - 50 //减去面包屑,减去表格头部,减去分页,减去偏量 //减去其它同级元素 obj.childNodes[0].childNodes.forEach(x => { if (x.className && x.className.indexOf('v-table-views') == -1) { yuHeight -= x.offsetHeight ? x.offsetHeight : 0 } }) } catch (error) { } return Math.floor(yuHeight / itemHeight) } Vue.prototype.random_string = function (len) { len = len || 32; var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; var maxPos = chars.length; var pwd = ''; for (let i = 0; i < len; i++) { pwd += chars.charAt(Math.floor(Math.random() * maxPos)); } return pwd; }, //是否是线上环境【发布时修改为true】 Vue.prototype.isOnline = function () { return process.env.NODE_ENV !== 'development'; }, //域名管理对象 Vue.prototype.domainManager = function () { let domainUrl = ''; //domainUrl = "http://192.168.2.214:8082"; //domainUrl = "http://192.168.2.65:8025"; domainUrl = "http://192.168.2.16:8083"; // 吴春 let locationName = window.location.hostname; let javaUrldo=""; javaUrldo=locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? (locationName.indexOf('oytour') !== -1 ? "http://efficient.oytour.com" : "http://47.96.12.235:9001") : "http://192.168.2.215:9000"; if (locationName.indexOf('testerp.oytour') !== -1) { domainUrl = "http://testapi.oytour.com"; } else if (locationName.indexOf('oytour') !== -1) { domainUrl = "http://reborn.oytour.com"; } var obj = { //主地址 DomainUrl: domainUrl, //常用提交数据URL PostUrl: domainUrl + "/api/common/post", //上传文件URL UploadFileUrl: domainUrl + '/api/File/post', //本站模板文件下载地址 LocalTemplateFileDownLoadUrl: domainUrl, //酒店接口 HotelApi: "http://reborn.oytour.com/api/common/post", //阿里服务器地址 AliUrl: "https://reborndev.oss-cn-hangzhou.aliyuncs.com", //本站文件流下载地址 LocalFileStreamDownLoadUrl: domainUrl + "/api/file/GetFileFromWebApi", //PDF文件预览地址 PDFViewUrl: domainUrl + "/plug/pdf/web/viewer.html?file=", //SocketUrl WebSocketUrl: "ws://192.168.1.110:8080?account=", //google地图Url GoogleMapUrl: "http://ditu.google.cn/maps/api/js?key=AIzaSyAZ5MIfzicStzKbIkbI3RcBBeZBjQFKsp0&sensor=false&language=zh-CN", //google地图图片地址 GoogleMapImageUrl: "http://super.oytour.com", //上传站点 UploadUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? "http://upload.oytour.com" : "http://192.168.2.214:8120", //文件站点 ViittoFileUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? "http://imgfile.oytour.com" : 'http://192.168.2.214:8130', javaUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? (locationName.indexOf('oytour') !== -1 ? "http://efficient.oytour.com" : "http://47.96.12.235:9001") : "http://192.168.2.215:9000", // javaUrl:"http://192.168.2.215:9000", //Java接口本站文件流下载地址 JavaLocalFileStreamDownLoadUrl: javaUrldo, }; return obj; }, Vue.prototype.yinyanFn = function (url, successCall, faildCall) { this.$http.jsonp(url, ) .then(res => { successCall(res) }, faildCall) }, //消息成功提示 Vue.prototype.Success = function (msg) { this.$message({ message: msg, duration: 2000, type: "success" }); }, //错误提示 Vue.prototype.Error = function (msg) { this.$message({ message: msg, duration: 2000, type: "error" }); }, //一般提示 Vue.prototype.Info = function (msg) { this.$message({ message: msg, duration: 2000, type: "info" }); }, //警告提示 Vue.prototype.Warning = function (msg) { this.$message({ message: msg, duration: 2000, type: "warning" }); }, //Confirm Vue.prototype.Confirm = function (msg, callback) { this.$confirm(msg, "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning" }) .then(() => { if (typeof callback === 'function') { callback(); } }) .catch(() => { this.Info("已取消操作"); }); }, //打开新窗口连接 Vue.prototype.OpenNewUrl = function (URL) { if (URL != '') { if (URL.indexOf("https") != -1) { var str = 'http://' + URL.substring(8); window.open(str, '_blank'); } else if (URL.indexOf("http") != -1) { var str = 'http://' + URL.substring(7); window.open(str, '_blank'); } else { window.open("http://" + URL, '_blank'); } } } //HTTP提交数据 Vue.prototype.apipost = function (cmd, msg, successCall, faildCall, isOnline) { if (this.$route.name.indexOf('login') === -1 && this.$route.name.indexOf('clientConfirm') === -1 && this.$route.name.indexOf('confirmationOrderDownLoad') === -1 && this.$route.name.indexOf('PrintPage') === -1) { let previousPathInfo = { path: this.$route.name, query: this.$route.query } localStorage.previousPathInfo = JSON.stringify(previousPathInfo); } if (msg == null || msg == "") { msg = {} } var apiurl = this.domainManager().PostUrl; //酒店接口 if (isOnline) { apiurl = this.domainManager().HotelApi; } var timestamp = (new Date()).valueOf(); this.apiurl = apiurl; if (this.$route.path.toLowerCase() == "/signature") { this.$router.push({ path: '/signature' }) } else if (this.$route.path == "/clientConfirm") { let TCID=this.$route.query.TCID; let orderID=this.$route.query.orderID; this.$router.push({ name: "clientConfirm",query: {TCID:TCID,orderID:orderID}}) } else { if (!localStorage.userInfo && localStorage.userInfo != "" && this.$route.path.toLowerCase() != "/login") { this.$router.push({ path: '/login' }) } } var token = ""; var key = ""; if (this.getLocalStorage() != null) { token = this.getLocalStorage().token; key = this.getLocalStorage().SecretKey; } var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase(); var md5Str = md5(`cmd=${cmd}&msg=${encodeMsg}×tamp=${timestamp}&token=${token}&key=${key}`); let tempLanguage=0; if(localStorage.language && localStorage.language!=''){ if(localStorage.language=="zh-TW"){ tempLanguage=1; }else if(localStorage.language=="Japanese"){ tempLanguage=2; } } var postData = { "msg": msg, "cmd": cmd, "timestamp": timestamp, "token": token, "sign": md5Str, "languageId":tempLanguage } this.$http.post(apiurl, postData, { headers: { 'Content-Type': 'application/json', 'Referer-Viitto': this.$route.path } }) .then(res => { if (res.data.resultCode == 10000 || res.data.resultCode == 10001) { this.$router.push({ path: '/login' }); } else if (res.resultCode == 10005) { this.$router.go(-1); } else { successCall(res); } }, faildCall) }, //供应商版请求接口方法 Vue.prototype.ApiPost2 = function (cmd, msg, successCall, faildCall) { if (msg == null || msg == "") { msg = {} } var apiNewurl = this.domainManager().PostUrl; var timestamp = (new Date()).valueOf(); var uid = 0; if (this.getLocalStorageSupplier()) { uid = this.getLocalStorageSupplier().SupplierAccountId; } else { this.$router.push({ path: '/SupplierLogin' }) } var token = ""; var key = ""; if (this.getLocalStorageSupplier() != null) { token = this.getLocalStorageSupplier().Token; key = this.getLocalStorageSupplier().SecretKey; } var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase(); var md5Str = md5(`cmd=${cmd}&msg=${encodeMsg}×tamp=${timestamp}&token=${token}&key=${key}`); var postData = { "msg": msg, "cmd": cmd, "timestamp": timestamp, "token": token, "sign": md5Str, "uid": uid } this.$http.post(apiNewurl, postData, { headers: { 'Content-Type': 'application/json', 'Referer-Viitto': this.$route.path } }) .then(res => { if (res.data.resultCode == 10000 || res.data.resultCode == 10001) { this.$router.push({ path: '/SupplierLogin' }); } else { successCall(res); } }, faildCall) }, //请求Java接口 Vue.prototype.apiJavaPost = function (cmd, msg, successCall, faildCall) { if (this.$route.name.indexOf('login') === -1 && this.$route.name.indexOf('confirmationOrderDownLoad') === -1 && this.$route.name.indexOf('PrintPage') === -1 && this.$route.name.indexOf('clientConfirm') === -1) { let previousPathInfo = { path: this.$route.name, query: this.$route.query } localStorage.previousPathInfo = JSON.stringify(previousPathInfo); } if (msg == null || msg == "") { msg = {} } var apiurl = this.domainManager().javaUrl + cmd; var timestamp = (new Date()).valueOf(); this.apiurl = apiurl; var token = ""; var key = ""; let userInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : ''; let groupId = userInfo.RB_Group_id ? userInfo.RB_Group_id : 0; let uid = userInfo.EmployeeId ? userInfo.EmployeeId : 0; if (this.getLocalStorage() != null) { token = this.getLocalStorage().token; key = this.getLocalStorage().SecretKey; } var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase(); var md5Str = md5(`msg=${encodeMsg}×tamp=${timestamp}&token=${token}&key=${key}`); var postData = { "msg": msg, "timestamp": timestamp, "token": token, "sign": md5Str, "uid": uid, "groupId": groupId } if (localStorage.g && localStorage.g != 'undefined') { postData.groupId = parseInt(JSON.parse(localStorage.g).i) } this.$http.post(apiurl, postData, { headers: { 'Content-Type': 'application/json', 'Referer-Viitto': this.$route.path } }) .then(res => { if (res.resultCode == 10000 || res.resultCode == 10001) { this.$router.push({ path: '/login' }) } else if (res.resultCode == 10005) { this.$router.go(-1) } else if (res.data.data.isJumpTwoCode == 1) { this.$router.push({ path: '/clientConfirm' }) } else { successCall(res) } }, faildCall) }, //下载文件 Vue.prototype.GetLocalFile = function (cmd, msg, fileName, successCall) { var apiurl = this.domainManager().LocalFileStreamDownLoadUrl; var timestamp = (new Date()).valueOf(); if (!localStorage.userInfo && localStorage.userInfo != "" && this.$route.path.toLowerCase() != "/login") { this.$router.push({ path: '/login' }) } var token = ""; var key = ""; if (this.getLocalStorage() != null) { token = this.getLocalStorage().token; key = this.getLocalStorage().SecretKey; } var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase(); var md5Str = md5(`cmd=${cmd}&msg=${encodeMsg}×tamp=${timestamp}&token=${token}&key=${key}`); var postData = { "msg": msg, "cmd": cmd, "timestamp": timestamp, "token": token, "sign": md5Str } this.$http.post(apiurl, postData, { responseType: 'arraybuffer' }).then((res) => { let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }) let url = URL.createObjectURL(blob); let link = document.createElement('a'); link.href = url; link.setAttribute("download", fileName); document.body.appendChild(link); link.click(); successCall(res); }).catch(function (res) {}); }, Vue.prototype.JavaGetLocalFile = function (cmd, msg, fileName, successCall) { var apiurl = this.domainManager().JavaLocalFileStreamDownLoadUrl + cmd; var timestamp = (new Date()).valueOf(); if (!localStorage.userInfo && localStorage.userInfo != "" && this.$route.path.toLowerCase() != "/login") { this.$router.push({ path: '/login' }) } var token = ""; var key = ""; if (this.getLocalStorage() != null) { token = this.getLocalStorage().token; key = this.getLocalStorage().SecretKey; } let userInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : ''; let groupId = userInfo.RB_Group_id ? userInfo.RB_Group_id : 0; let uid = userInfo.EmployeeId ? userInfo.EmployeeId : 0; var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase(); // var md5Str = md5(`cmd=${cmd}&msg=${encodeMsg}×tamp=${timestamp}&token=${token}&key=${key}`); var md5Str = md5(`msg=${encodeMsg}×tamp=${timestamp}&token=${token}&key=${key}`); var postData = { "msg": msg, "timestamp": timestamp, "token": token, "sign": md5Str, "uid": uid, "groupId": groupId } // var postData = { // "msg": msg, // "cmd": cmd, // "timestamp": timestamp, // "token": token, // "sign": md5Str // } this.$http.post(apiurl, postData, { responseType: 'arraybuffer' }).then((res) => { let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }) let url = URL.createObjectURL(blob); let link = document.createElement('a'); link.href = url; link.setAttribute("download", fileName); document.body.appendChild(link); link.click(); successCall(res); }).catch(function (res) {}); }, //ERP本地缓存 Vue.prototype.getLocalStorage = function () { var localStorageData = window.localStorage["userInfo"]; if (localStorageData !== undefined && localStorageData != 'undefined') { return JSON.parse(localStorageData); } else { return null; } }, //供应商本地缓存 Vue.prototype.getLocalStorageSupplier = function () { var localStorageData = window.localStorage["userInfo"]; if (localStorageData !== undefined && localStorageData != 'userInfo') { return JSON.parse(localStorageData); } else { return null; } }, //PDF预览 Vue.prototype.previewPDF = function (url) { // window.open(this.domainManager().PDFViewUrl + url); window.open(url); }, //文件下载 Vue.prototype.downloadFile = function (objectKey) { var co = require('co'); var OSS = require('ali-oss'); var oss = new OSS({ region: 'oss-cn-hangzhou', accessKeyId: 'LTAIwE7l9dImZSa3', accessKeySecret: 'j47Ajn0d0WzUCIX8Biyj3P2r8QDltI', bucket: 'reborndev' }) let url = oss.signatureUrl(objectKey); let link = document.createElement('a'); link.href = url; document.body.appendChild(link); link.click(); }, //文件重命名下载 Vue.prototype.downloadFileRename = function (objectKey, filename, fileurl) { var co = require('co'); var OSS = require('ali-oss'); var oss = new OSS({ region: 'oss-cn-hangzhou', accessKeyId: 'LTAIwE7l9dImZSa3', accessKeySecret: 'j47Ajn0d0WzUCIX8Biyj3P2r8QDltI', bucket: 'reborndev' }) let url = ''; if (fileurl) url = fileurl else url = oss.signatureUrl(objectKey); let getBlob = new Promise(resolve => { const xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'blob'; xhr.onload = () => { if (xhr.status === 200) { resolve(xhr.response); } }; xhr.send(); }); getBlob.then(blob => { if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, filename); } else { const link = document.createElement('a'); const body = document.querySelector('body'); link.href = window.URL.createObjectURL(blob); link.download = filename; link.style.display = 'none'; body.appendChild(link); link.click(); body.removeChild(link); window.URL.revokeObjectURL(link.href); } }); }, //获取文件Blob Vue.prototype.getFileBlob = function (objectKey, filename) { var co = require('co'); var OSS = require('ali-oss'); var oss = new OSS({ region: 'oss-cn-hangzhou', accessKeyId: 'LTAIwE7l9dImZSa3', accessKeySecret: 'j47Ajn0d0WzUCIX8Biyj3P2r8QDltI', bucket: 'reborndev' }) let url = oss.signatureUrl(objectKey); let getBlob = new Promise(resolve => { const xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'blob'; xhr.onload = () => { if (xhr.status === 200) { resolve(xhr.response); } }; xhr.send(); }); return getBlob }, //文件上传 Vue.prototype.uploadImg = function (tcID, msg, successCall, faildCall) { var apiurl = this.domainManager().UploadUrl + '/Upload/UploadBase64Two?fileType=1&fileLimit=5&&filePath=Freature/' + tcID; this.$http.post(apiurl, { FileIndex: msg.FileIndex, MyFile: msg.MyFile }, { headers: { "Content-Type": "application/x-www-form-urlencoded;" }, }).then(function (res) { }) }, //Blob文件上传 Vue.prototype.uploadSelfBlob = function (path, files, successCall) { let that = this; var uploadUrl = that.domainManager().UploadUrl + "/Upload/UploadBlob?fileType=1&fileLimit=5&&filePath=" + path; var formData = new FormData(); formData.append("myfile", files[0]); that.$http.post(uploadUrl, formData, { 'Content-Type': 'multipart/form-data' }) .then(res => { successCall(res); }) }, //path 请按照"/模块名称/用户ID/自定义文件夹/" /谁搞错一次5块红包 //files 文件数组 //p 进度回调函数 Vue.prototype.uploadFile = function (path, files, successCall) { if (files && files.length > 0) { let nameList = new Array() for (let index = 0; index < files.length; index++) { nameList.push(this.random_string()); } var oss = new OSS({ region: 'oss-cn-hangzhou', accessKeyId: 'LTAIwE7l9dImZSa3', accessKeySecret: 'j47Ajn0d0WzUCIX8Biyj3P2r8QDltI', bucket: 'reborndev' }) let that = this co(function* () { for (let index = 0; index < files.length; index++) { let fileName = nameList[index] fileName = "/New" + path + fileName + "." + files[index].name.split('.').pop() var result = yield oss.multipartUpload(fileName, files[index], { progress: function* (p) {}, mime: 'application/octet-stream' }) successCall(result); } }).catch(function (err) { }); } }, //上传文件到本地服务器 Vue.prototype.UploadSelfFileT = function (path, files, successCall, ocr) { if (files && files.length > 0) { let nameList = new Array() for (let index = 0; index < files.length; index++) { nameList.push(this.random_string()); } let that = this; co(function* () { for (let index = 0; index < files.length; index++) { let fileName = nameList[index] fileName = path + fileName + "." + files[index].name.split('.').pop() var formData = new FormData(); var uploadUrl = that.domainManager().UploadUrl + "/Upload?filePath=" + path + '&ocr=' + ocr; formData.append("myfile", files[index]); that.$http.post(uploadUrl, formData, {}) .then(res => { successCall(res); }) } }).catch(function (err) { }); } } //压缩图片 //path : 图片路径 //type : m_filt 填充 m_w 宽度固定 高度不固定 m_h 高度固定 宽度不固定 // w : 宽 // h : 高 Vue.prototype.compressImg = function (path, type, w, h) { let url = this.domainManager().UploadUrl; let poise = 'm_filt'; w = w ? w : '' h = h ? h : '' if (type === 'w') { poise = 'm_w' } else if (type === 'h') { poise = 'm_h' } return url + '/image/index?filePath=' + path.replace('http://192.168.2.214:8130', '').replace('http://imgfile.oytour.com', '').split('?')[0] + '&process=resize,' + poise + ',w_' + w + ',h_' + h; } Vue.prototype.uploadSelfBlob = function (path, files, successCall) { let that = this; var uploadUrl = that.domainManager().UploadUrl + "/Upload/UploadBlob?fileType=1&fileLimit=5&&filePath=" + path; var formData = new FormData(); formData.append("myfile", files[0]); that.$http.post(uploadUrl, formData, { 'Content-Type': 'multipart/form-data' }) .then(res => { successCall(res); }) }, //验证只能输入2位小数【负数:isMinus传true】 Vue.prototype.checkPrice = function (item, filed, isMinus) { var value = "" + item[filed]; //转字符串 var t = value.charAt(0); value = value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 value = value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的 value = value .replace(".", "$#$") .replace(/\./g, "") .replace("$#$", "."); value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数 //如果第一位是负号,则允许添加 如果不允许添加负号 可以把这块注释掉 //是否允许负数 if (isMinus && t == '-') { value = '-' + value; } item[filed] = value; } //验证输入6位小数汇率 Vue.prototype.checkRate = function (item, filed) { var value = "" + item[filed]; //转字符串 var p1 = /[^\d\.]/g; // 过滤非数字及小数点 /g :所有范围中过滤 var p2 = /(\.\d{6})\d*$/g; var p4 = /(\.)(\d*)\1/g; value = value.replace(p1, "").replace(p2, "$1").replace(p4, "$1$2"); value = value.replace(/[^0-9.]/g, ''); var p5 = /\.+/g; //多个点的话只取1个点,屏蔽1....234的情况 value = value.replace(p5, ".") var p6 = /(\.+)(\d+)(\.+)/g; //屏蔽1....234.的情况 value = value.replace(p6, "$1$2") // 屏蔽最后一位的. item[filed] = value; } //验证只能输入整数【负数:isMinus传true】 Vue.prototype.checkInteger = function (item, filed, isMinus) { var value = "" + item[filed]; //转字符串 var t = value.charAt(0); value = value.replace(this.$commonUtils.Regex.isInteger, ""); //是否允许负数 if (isMinus && t == '-') { value = '-' + value; } item[filed] = value; } //时间验证 Vue.prototype.checkTime = function (item, filed) { var date = item[filed]; if (date.length == 1) { var v1 = date.substring(0, 1); item[filed] = v1.replace(/[^0-2]{1}/g, ''); } if (date.length == 2) { var v1 = date.substring(0, 1); if (v1 == 2) { var reg = /[^0-3]{1}/g; } else { var reg = /[^0-9]{1}/g; } var v2 = date.substring(1, 2); if (!reg.test(v2)) { item[filed] = date + ":" } else { item[filed] = date.substring(0, 1); } } if (date.length == 4) { reg = /[^0-5]{1}/g; var v3 = date.substring(3, 4); if (!reg.test(v3)) { item[filed] = date; } else { item[filed] = date.substring(0, 3); } } if (date.length == 5) { var reg = /[^0-9]{1}/g; var v4 = date.substring(4, 5); if (!reg.test(v4)) { item[filed] = date } else { item[filed] = date.substring(0, 4); } } if (date.length > 5) { item[filed] = date.substring(0, 5); } this.$forceUpdate(); } //价钱格式化,三位数逗号分隔,保留两位小数 duanjun Vue.prototype.moneyFormat = function (value) { let nStr = Number(value).toFixed(2) nStr += ''; let x = nStr.split('.'); let x1 = x[0]; let x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; }, //文件图标 Vue.prototype.loadFileICON = function (suffix) { let icons = [{ "name": "\u7f51\u76d8BT\u79bb\u7ebf\u4e0b\u8f7d", "filesType": "*.bt,*.torrent", "filesIcon": { "bt": ["fileicon-small-bt", "fileicon-large-bt", "fileicon-middle-bt"], "torrent": ["fileicon-small-bt", "fileicon-large-bt", "fileicon-middle-bt"] }, "entranceFile": "file-widget-1:bt\/start.js" }, { "name": "\u6d69\u8fb0CAD", "group": "com.gstarcad.web", "notSupport": "ie6", "filesIcon": { "dws": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], "dwt": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], "dxf": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], "dwg": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"], "cad": ["fileicon-small-dws", "fileicon-large-dws", "fileicon-middle-dws"] }, "entranceFile": "file-widget-1:cad\/start.js" }, { "name": "\u7f51\u76d8\u4ee3\u7801\u9605\u8bfb\u5668", "notSupport": "ie", "filesType": "*.txt,*.as,*.sh,*.c,*.cpp,*.h,*.cs,*.asp,*.css,*.pas,*.diff,*.patch,*.erl,*.groovy,*.java,*.jsp,*.js,*.json,*.pl,*.php,*.py,*.rb,*.sass,*.scss,*.scala,*.sql,*.vb,*.xml,*.xhtml,*.html,*.htm,*.md,*.less,*.lua,*.go,*.bat,*.wml", "filesIcon": { "as": ["fileicon-small-code", "fileicon-large-code"], "sh": ["fileicon-small-code", "fileicon-large-code"], "c": ["fileicon-small-code", "fileicon-large-code"], "cpp": ["fileicon-small-code", "fileicon-large-code"], "h": ["fileicon-small-code", "fileicon-large-code"], "cs": ["fileicon-small-code", "fileicon-large-code"], "asp": ["fileicon-small-code", "fileicon-large-code"], "css": ["fileicon-small-code", "fileicon-large-code"], "pas": ["fileicon-small-code", "fileicon-large-code"], "diff": ["fileicon-small-code", "fileicon-large-code"], "patch": ["fileicon-small-code", "fileicon-large-code"], "erl": ["fileicon-small-code", "fileicon-large-code"], "groovy": ["fileicon-small-code", "fileicon-large-code"], "java": ["fileicon-small-code", "fileicon-large-code"], "jsp": ["fileicon-small-code", "fileicon-large-code"], "js": ["fileicon-small-code", "fileicon-large-code"], "json": ["fileicon-small-code", "fileicon-large-code"], "pl": ["fileicon-small-code", "fileicon-large-code"], "php": ["fileicon-small-code", "fileicon-large-code"], "py": ["fileicon-small-code", "fileicon-large-code"], "rb": ["fileicon-small-code", "fileicon-large-code"], "sass": ["fileicon-small-code", "fileicon-large-code"], "scss": ["fileicon-small-code", "fileicon-large-code"], "scala": ["fileicon-small-code", "fileicon-large-code"], "sql": ["fileicon-small-code", "fileicon-large-code"], "vb": ["fileicon-small-code", "fileicon-large-code"], "xml": ["fileicon-small-code", "fileicon-large-code"], "xhtml": ["fileicon-small-code", "fileicon-large-code"], "html": ["fileicon-small-code", "fileicon-large-code"], "htm": ["fileicon-small-code", "fileicon-large-code"], "md": ["fileicon-small-code", "fileicon-large-code"], "less": ["fileicon-small-code", "fileicon-large-code"], "lua": ["fileicon-small-code", "fileicon-large-code"], "go": ["fileicon-small-code", "fileicon-large-code"], "bat": ["fileicon-small-code", "fileicon-large-code"], "wml": ["fileicon-small-code", "fileicon-large-code"] }, "entranceFile": "file-widget-1:codeReader\/start.js" }, { "name": "\u7f51\u76d8\u89e3\u538b\u7f29", "filesType": "*.rar,*.zip", "notSupport": "ie6", "filesIcon": { "rar": ["fileicon-small-zip", "fileicon-large-zip", "fileicon-middle-zip"], "zip": ["fileicon-small-zip", "fileicon-large-zip", "fileicon-middle-zip"] }, "depsFiles": ["file-widget-1:zip\/util\/css\/fileUnzip.css", "file-widget-1:zip\/util\/css\/list-view.css"], "entranceFile": "file-widget-1:zip\/start.js" }, { "name": "\u7f51\u76d8\u6587\u6863\u9605\u8bfb\u5668", "filesType": "*.txt,*.pdf,*.doc,*.docx,*.ppt,*.pptx,*.xls,*.xlsx,*.rtf", "filesIcon": { "txt": ["fileicon-small-txt", "fileicon-large-txt", "fileicon-middle-txt"], "rtf": ["fileicon-small-txt", "fileicon-large-txt", "fileicon-middle-txt"], "pdf": ["fileicon-small-pdf", "fileicon-large-pdf", "fileicon-middle-pdf"], "doc": ["fileicon-small-doc", "fileicon-large-doc", "fileicon-middle-doc"], "docx": ["fileicon-small-doc", "fileicon-large-doc", "fileicon-middle-doc"], "ppt": ["fileicon-small-ppt", "fileicon-large-ppt", "fileicon-middle-ppt"], "pptx": ["fileicon-small-ppt", "fileicon-large-ppt", "fileicon-middle-ppt"], "xls": ["fileicon-small-xls", "fileicon-large-xls", "fileicon-middle-xls"], "xlsx": ["fileicon-small-xls", "fileicon-large-xls", "fileicon-middle-xls"], "vsd": ["fileicon-small-vsd", "fileicon-large-vsd", "fileicon-middle-vsd"] }, "depsFiles": ["file-widget-1:doc\/util\/docReader.css", "file-widget-1:doc\/pdfJsReader\/pdfJsReader.less", "base:thirdParty\/pdfjs\/_nomd5_nomod\/web\/trans-viewer.less", "base:thirdParty\/pdfjs\/_nomd5_nomod\/web\/viewer.less"], "entranceFile": "file-widget-1:doc\/start.js" }, { "name": "\u7f51\u76d8\u56fe\u7247\u9884\u89c8", "filesType": "*.jpg,*.jpeg,*.livp,*.gif,*bmp,*.png,*jpe,*.cur,*.svgz,*.ico,*.heic,*.heif,*.avci,*.webp", "filesIcon": { "jpg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "jpeg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "livp": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "gif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "bmp": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "png": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "jpe": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "cur": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "svgz": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "tif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "tiff": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "ico": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "heic": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "heif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "avci": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"] }, "depsFiles": ["file-widget-1:image\/util\/picCategory-dialog\/css\/picCategory-dialog.css", "file-widget-1:image\/util\/picPreview\/css\/picPreview.css", "file-widget-1:image\/util\/picPreviewAside\/css\/picPreviewAside.css", "file-widget-1:image\/util\/showPic\/css\/showPic.css", "file-widget-1:image\/util\/thumbnailPic\/css\/thumbnailPic.css", "base:thirdParty\/videojs\/_nomd5_nomod\/video-js.css"], "entranceFile": "file-widget-1:image\/start.js" }, { "name": "\u767e\u5ea6\u8111\u56fe", "group": "com.baidu.naotu", "filesType": "*.mmap,*.xmind,*.mm", "notSupport": "ie6", "filesIcon": { "mmap": ["fileicon-small-mmap", "fileicon-large-mmap", "fileicon-middle-mmap"], "xmind": ["fileicon-small-xmind", "fileicon-large-xmind", "fileicon-middle-xmind"], "mm": ["fileicon-small-mm", "fileicon-large-mm", "fileicon-middle-mm"] }, "entranceFile": "file-widget-1:mindmap\/start.js" }, { "name": "\u7f51\u76d8\u97f3\u9891\u64ad\u653e\u5668", "notSupport": "ie6", "filesType": "*.wma,*.wav,*.mp3,*.aac,*.ra,*.ram,*.mp2,*.ogg,*.aif,*.mpega,*.amr,*.mid,*.midi,*.m4a", "filesIcon": { "wma": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "wav": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "mp3": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "aac": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "ra": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "ram": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "mp2": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "ogg": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "aif": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "mpega": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "amr": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "mid": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "midi": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"], "m4a": ["fileicon-small-mp3", "fileicon-large-mp3", "fileicon-middle-mp3"] }, "buttons": [{ "title": "\u97f3\u4e50\u64ad\u653e", "name": "play-music", "position": "listTools", "index": 2, "disabled": "none", "icon": "icon-play", "buttonStyle": "normal", "conditions": { "pageModule": "list,share,search,category,searchGlobal", "filesType": "wma,wav,mp3,aac,ra,ram,mp2,ogg,aif,mpega,amr,mid,midi,m4a", "filesTypeStrongMatch": true } }], "depsFiles": ["file-widget-1:musicPlay\/util\/mbox\/musicbox.css"], "entranceFile": "file-widget-1:musicPlay\/start.js" }, { "name": "\u7f51\u76d8\u5927\u56fe\u9884\u89c8", "filesType": "*.jpg,*.jpeg,*.gif,*bmp,*.png,*jpe,*.cur,*.svgz,*.ico", "filesIcon": { "jpg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "jpeg": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "gif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "bmp": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "png": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "jpe": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "cur": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "svgz": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "tif": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "tiff": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"], "ico": ["fileicon-small-pic", "default-large", "fileicon-middle-pic"] }, "depsFiles": ["file-widget-1:preview\/picPreview.css"], "entranceFile": "file-widget-1:preview\/start.js" }, { "name": "sysIcon", "filesType": "*.exe,*.msi,*.dmg,*.pkg,*.psd,*.apk,*.key,*.ai,*.ipa", "filesIcon": { "exe": ["fileicon-sys-s-exe", "fileicon-sys-l-exe"], "msi": ["fileicon-sys-s-exe", "fileicon-sys-l-exe"], "dmg": ["fileicon-sys-s-exe", "fileicon-sys-l-dmg"], "pkg": ["fileicon-sys-s-exe", "fileicon-sys-l-dmg"], "psd": ["fileicon-sys-s-psd", "fileicon-sys-l-psd"], "apk": ["fileicon-sys-s-apk", "fileicon-sys-l-apk"], "key": ["fileicon-sys-s-key", "fileicon-sys-l-key"], "ai": ["fileicon-sys-s-ai", "fileicon-sys-l-ai"], "ipa": ["fileicon-sys-s-ipa", "fileicon-sys-l-ipa"], "pages": ["fileicon-sys-s-pages", "fileicon-sys-l-pages"], "numbers": ["fileicon-sys-s-numbers", "fileicon-sys-l-numbers"], "eot": ["fileicon-sys-s-fonts", "fileicon-sys-l-fonts"], "ttf": ["fileicon-sys-s-fonts", "fileicon-sys-l-fonts"], "woff": ["fileicon-sys-s-fonts", "fileicon-sys-l-fonts"], "eps": ["fileicon-sys-s-eps", "fileicon-sys-l-eps"], "lnk": ["fileicon-sys-s-links", "fileicon-sys-l-links"], "link": ["fileicon-sys-s-links", "fileicon-sys-l-links"], "swf": ["fileicon-sys-s-swf", "fileicon-sys-l-swf"], "php": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "c": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "js": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "css": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "html": ["fileicon-sys-s-web", "fileicon-sys-l-web"], "htm": ["fileicon-sys-s-web", "fileicon-sys-l-web"], "xhtml": ["fileicon-sys-s-web", "fileicon-sys-l-web"], "java": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "cc": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "python": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "json": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "sh": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "bat": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "ejs": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "xml": ["fileicon-sys-s-code", "fileicon-sys-l-code"], "ts": ["fileicon-sys-s-video", "fileicon-sys-l-video"] } }, { "name": "\u7f51\u76d8\u89c6\u9891", "filesType": "*.wmv,*.rmvb,*.mpeg4,*.mpeg2,*.flv,*.avi,*.3gp,*.mpga,*.qt,*.rm,*.wmz,*.wmd,*.wvx,*.wmx,*.wm,*.mpg,*.mp4,*.mkv,*.mpeg,*mov,*.asf,*.m4v,*.m3u8", "filesIcon": { "wmv": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "rmvb": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mpeg4": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mpeg2": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "flv": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "avi": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "3gp": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mpga": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "qt": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "rm": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "wmz": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "wmd": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "wvx": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "wmx": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "wm": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mpg": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mp4": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mkv": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mpeg": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "mov": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "asf": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "m4v": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"], "m3u8": ["fileicon-small-video", "fileicon-large-video", "fileicon-middle-video"] }, "preload": true, "entranceFile": "file-widget-1:video\/start.js" } ] if (suffix == "") return "dir-small" let css = "" icons.forEach(x => { if (x.filesIcon.hasOwnProperty(suffix)) { css = x.filesIcon[suffix][0] return false } }) if (css == '') { css = 'default-small' } return css; } } }