lint:format code style
This commit is contained in:
parent
3666148ddc
commit
98d5f9a247
|
@ -52,7 +52,7 @@ module.exports = {
|
||||||
'no-class-assign': 2,
|
'no-class-assign': 2,
|
||||||
'no-cond-assign': 2,
|
'no-cond-assign': 2,
|
||||||
'no-const-assign': 2,
|
'no-const-assign': 2,
|
||||||
'no-control-regex': 2,
|
'no-control-regex': 0,
|
||||||
'no-delete-var': 2,
|
'no-delete-var': 2,
|
||||||
'no-dupe-args': 2,
|
'no-dupe-args': 2,
|
||||||
'no-dupe-class-members': 2,
|
'no-dupe-class-members': 2,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<script>
|
<script>
|
||||||
import Dropzone from 'dropzone'
|
import Dropzone from 'dropzone'
|
||||||
import 'dropzone/dist/dropzone.css'
|
import 'dropzone/dist/dropzone.css'
|
||||||
// import { getToken } from 'api/qiniu';
|
// import { getToken } from 'api/qiniu';
|
||||||
|
|
||||||
Dropzone.autoDiscover = false
|
Dropzone.autoDiscover = false
|
||||||
|
|
||||||
|
@ -59,18 +59,18 @@ export default {
|
||||||
},
|
},
|
||||||
accept: (file, done) => {
|
accept: (file, done) => {
|
||||||
/* 七牛*/
|
/* 七牛*/
|
||||||
// const token = this.$store.getters.token;
|
// const token = this.$store.getters.token;
|
||||||
// getToken(token).then(response => {
|
// getToken(token).then(response => {
|
||||||
// file.token = response.data.qiniu_token;
|
// file.token = response.data.qiniu_token;
|
||||||
// file.key = response.data.qiniu_key;
|
// file.key = response.data.qiniu_key;
|
||||||
// file.url = response.data.qiniu_url;
|
// file.url = response.data.qiniu_url;
|
||||||
// done();
|
// done();
|
||||||
// })
|
// })
|
||||||
done()
|
done()
|
||||||
},
|
},
|
||||||
sending: (file, xhr, formData) => {
|
sending: (file, xhr, formData) => {
|
||||||
// formData.append('token', file.token);
|
// formData.append('token', file.token);
|
||||||
// formData.append('key', file.key);
|
// formData.append('key', file.key);
|
||||||
vm.initOnce = false
|
vm.initOnce = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -91,39 +91,39 @@ export default {
|
||||||
this.$emit('input', editor.getContent({ format: 'raw' }))
|
this.$emit('input', editor.getContent({ format: 'raw' }))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 整合七牛上传
|
// 整合七牛上传
|
||||||
// images_dataimg_filter(img) {
|
// images_dataimg_filter(img) {
|
||||||
// setTimeout(() => {
|
// setTimeout(() => {
|
||||||
// const $image = $(img);
|
// const $image = $(img);
|
||||||
// $image.removeAttr('width');
|
// $image.removeAttr('width');
|
||||||
// $image.removeAttr('height');
|
// $image.removeAttr('height');
|
||||||
// if ($image[0].height && $image[0].width) {
|
// if ($image[0].height && $image[0].width) {
|
||||||
// $image.attr('data-wscntype', 'image');
|
// $image.attr('data-wscntype', 'image');
|
||||||
// $image.attr('data-wscnh', $image[0].height);
|
// $image.attr('data-wscnh', $image[0].height);
|
||||||
// $image.attr('data-wscnw', $image[0].width);
|
// $image.attr('data-wscnw', $image[0].width);
|
||||||
// $image.addClass('wscnph');
|
// $image.addClass('wscnph');
|
||||||
// }
|
// }
|
||||||
// }, 0);
|
// }, 0);
|
||||||
// return img
|
// return img
|
||||||
// },
|
// },
|
||||||
// images_upload_handler(blobInfo, success, failure, progress) {
|
// images_upload_handler(blobInfo, success, failure, progress) {
|
||||||
// progress(0);
|
// progress(0);
|
||||||
// const token = _this.$store.getters.token;
|
// const token = _this.$store.getters.token;
|
||||||
// getToken(token).then(response => {
|
// getToken(token).then(response => {
|
||||||
// const url = response.data.qiniu_url;
|
// const url = response.data.qiniu_url;
|
||||||
// const formData = new FormData();
|
// const formData = new FormData();
|
||||||
// formData.append('token', response.data.qiniu_token);
|
// formData.append('token', response.data.qiniu_token);
|
||||||
// formData.append('key', response.data.qiniu_key);
|
// formData.append('key', response.data.qiniu_key);
|
||||||
// formData.append('file', blobInfo.blob(), url);
|
// formData.append('file', blobInfo.blob(), url);
|
||||||
// upload(formData).then(() => {
|
// upload(formData).then(() => {
|
||||||
// success(url);
|
// success(url);
|
||||||
// progress(100);
|
// progress(100);
|
||||||
// })
|
// })
|
||||||
// }).catch(err => {
|
// }).catch(err => {
|
||||||
// failure('出现未知问题,刷新页面,或者联系程序员')
|
// failure('出现未知问题,刷新页面,或者联系程序员')
|
||||||
// console.log(err);
|
// console.log(err);
|
||||||
// });
|
// });
|
||||||
// },
|
// },
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
destroyTinymce() {
|
destroyTinymce() {
|
||||||
|
|
|
@ -77,12 +77,12 @@ export function formatTime(time, option) {
|
||||||
/* 数字 格式化*/
|
/* 数字 格式化*/
|
||||||
export function nFormatter(num, digits) {
|
export function nFormatter(num, digits) {
|
||||||
const si = [
|
const si = [
|
||||||
{ value: 1E18, symbol: 'E' },
|
{ value: 1E18, symbol: 'E' },
|
||||||
{ value: 1E15, symbol: 'P' },
|
{ value: 1E15, symbol: 'P' },
|
||||||
{ value: 1E12, symbol: 'T' },
|
{ value: 1E12, symbol: 'T' },
|
||||||
{ value: 1E9, symbol: 'G' },
|
{ value: 1E9, symbol: 'G' },
|
||||||
{ value: 1E6, symbol: 'M' },
|
{ value: 1E6, symbol: 'M' },
|
||||||
{ value: 1E3, symbol: 'k' }
|
{ value: 1E3, symbol: 'k' }
|
||||||
]
|
]
|
||||||
for (let i = 0; i < si.length; i++) {
|
for (let i = 0; i < si.length; i++) {
|
||||||
if (num >= si[i].value) {
|
if (num >= si[i].value) {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import * as filters from './filters' // 全局filter
|
||||||
import './icons' // icon
|
import './icons' // icon
|
||||||
import './errorLog'// error log
|
import './errorLog'// error log
|
||||||
import './permission' // 权限
|
import './permission' // 权限
|
||||||
import './mock' // 该项目所有请求使用mockjs模拟
|
import './mock' // 该项目所有请求使用mockjs模拟
|
||||||
|
|
||||||
Vue.use(ElementUI)
|
Vue.use(ElementUI)
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
module.exports = file => require('@/views/' + file + '.vue').default // vue-loader at least v13.0.0+
|
module.exports = file => require('@/views/' + file + '.vue').default // vue-loader at least v13.0.0+
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { getToken } from '@/utils/auth'
|
||||||
// 创建axios实例
|
// 创建axios实例
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
baseURL: process.env.BASE_API, // api的base_url
|
baseURL: process.env.BASE_API, // api的base_url
|
||||||
timeout: 5000 // 请求超时时间
|
timeout: 5000 // 请求超时时间
|
||||||
})
|
})
|
||||||
|
|
||||||
// request拦截器
|
// request拦截器
|
||||||
|
@ -29,29 +29,29 @@ service.interceptors.response.use(
|
||||||
* 下面的注释为通过response自定义code来标示请求状态,当code返回如下情况为权限有问题,登出并返回到登录页
|
* 下面的注释为通过response自定义code来标示请求状态,当code返回如下情况为权限有问题,登出并返回到登录页
|
||||||
* 如通过xmlhttprequest 状态码标识 逻辑可写在下面error中
|
* 如通过xmlhttprequest 状态码标识 逻辑可写在下面error中
|
||||||
*/
|
*/
|
||||||
// const res = response.data;
|
// const res = response.data;
|
||||||
// if (res.code !== 20000) {
|
// if (res.code !== 20000) {
|
||||||
// Message({
|
// Message({
|
||||||
// message: res.message,
|
// message: res.message,
|
||||||
// type: 'error',
|
// type: 'error',
|
||||||
// duration: 5 * 1000
|
// duration: 5 * 1000
|
||||||
// });
|
// });
|
||||||
// // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了;
|
// // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了;
|
||||||
// if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
|
// if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
|
||||||
// MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', {
|
// MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', {
|
||||||
// confirmButtonText: '重新登录',
|
// confirmButtonText: '重新登录',
|
||||||
// cancelButtonText: '取消',
|
// cancelButtonText: '取消',
|
||||||
// type: 'warning'
|
// type: 'warning'
|
||||||
// }).then(() => {
|
// }).then(() => {
|
||||||
// store.dispatch('FedLogOut').then(() => {
|
// store.dispatch('FedLogOut').then(() => {
|
||||||
// location.reload();// 为了重新实例化vue-router对象 避免bug
|
// location.reload();// 为了重新实例化vue-router对象 避免bug
|
||||||
// });
|
// });
|
||||||
// })
|
// })
|
||||||
// }
|
// }
|
||||||
// return Promise.reject('error');
|
// return Promise.reject('error');
|
||||||
// } else {
|
// } else {
|
||||||
// return response.data;
|
// return response.data;
|
||||||
// }
|
// }
|
||||||
error => {
|
error => {
|
||||||
console.log('err' + error)// for debug
|
console.log('err' + error)// for debug
|
||||||
Message({
|
Message({
|
||||||
|
@ -60,7 +60,6 @@ service.interceptors.response.use(
|
||||||
duration: 5 * 1000
|
duration: 5 * 1000
|
||||||
})
|
})
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
||||||
export default service
|
export default service
|
||||||
|
|
|
@ -2,266 +2,266 @@
|
||||||
* Created by jiachenpan on 16/11/18.
|
* Created by jiachenpan on 16/11/18.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export function parseTime(time, cFormat) {
|
export function parseTime(time, cFormat) {
|
||||||
if (arguments.length === 0) {
|
if (arguments.length === 0) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
|
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
|
||||||
let date
|
let date
|
||||||
if (typeof time === 'object') {
|
if (typeof time === 'object') {
|
||||||
date = time
|
date = time
|
||||||
} else {
|
} else {
|
||||||
if (('' + time).length === 10) time = parseInt(time) * 1000
|
if (('' + time).length === 10) time = parseInt(time) * 1000
|
||||||
date = new Date(time)
|
date = new Date(time)
|
||||||
}
|
}
|
||||||
const formatObj = {
|
const formatObj = {
|
||||||
y: date.getFullYear(),
|
y: date.getFullYear(),
|
||||||
m: date.getMonth() + 1,
|
m: date.getMonth() + 1,
|
||||||
d: date.getDate(),
|
d: date.getDate(),
|
||||||
h: date.getHours(),
|
h: date.getHours(),
|
||||||
i: date.getMinutes(),
|
i: date.getMinutes(),
|
||||||
s: date.getSeconds(),
|
s: date.getSeconds(),
|
||||||
a: date.getDay()
|
a: date.getDay()
|
||||||
}
|
}
|
||||||
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
|
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
|
||||||
let value = formatObj[key]
|
let value = formatObj[key]
|
||||||
if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
|
if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
|
||||||
if (result.length > 0 && value < 10) {
|
if (result.length > 0 && value < 10) {
|
||||||
value = '0' + value
|
value = '0' + value
|
||||||
}
|
}
|
||||||
return value || 0
|
return value || 0
|
||||||
})
|
})
|
||||||
return time_str
|
return time_str
|
||||||
}
|
}
|
||||||
|
|
||||||
export function formatTime(time, option) {
|
export function formatTime(time, option) {
|
||||||
time = +time * 1000
|
time = +time * 1000
|
||||||
const d = new Date(time)
|
const d = new Date(time)
|
||||||
const now = Date.now()
|
const now = Date.now()
|
||||||
|
|
||||||
const diff = (now - d) / 1000
|
const diff = (now - d) / 1000
|
||||||
|
|
||||||
if (diff < 30) {
|
if (diff < 30) {
|
||||||
return '刚刚'
|
return '刚刚'
|
||||||
} else if (diff < 3600) { // less 1 hour
|
} else if (diff < 3600) { // less 1 hour
|
||||||
return Math.ceil(diff / 60) + '分钟前'
|
return Math.ceil(diff / 60) + '分钟前'
|
||||||
} else if (diff < 3600 * 24) {
|
} else if (diff < 3600 * 24) {
|
||||||
return Math.ceil(diff / 3600) + '小时前'
|
return Math.ceil(diff / 3600) + '小时前'
|
||||||
} else if (diff < 3600 * 24 * 2) {
|
} else if (diff < 3600 * 24 * 2) {
|
||||||
return '1天前'
|
return '1天前'
|
||||||
}
|
}
|
||||||
if (option) {
|
if (option) {
|
||||||
return parseTime(time, option)
|
return parseTime(time, option)
|
||||||
} else {
|
} else {
|
||||||
return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分'
|
return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 格式化时间
|
// 格式化时间
|
||||||
export function getQueryObject(url) {
|
export function getQueryObject(url) {
|
||||||
url = url == null ? window.location.href : url
|
url = url == null ? window.location.href : url
|
||||||
const search = url.substring(url.lastIndexOf('?') + 1)
|
const search = url.substring(url.lastIndexOf('?') + 1)
|
||||||
const obj = {}
|
const obj = {}
|
||||||
const reg = /([^?&=]+)=([^?&=]*)/g
|
const reg = /([^?&=]+)=([^?&=]*)/g
|
||||||
search.replace(reg, (rs, $1, $2) => {
|
search.replace(reg, (rs, $1, $2) => {
|
||||||
const name = decodeURIComponent($1)
|
const name = decodeURIComponent($1)
|
||||||
let val = decodeURIComponent($2)
|
let val = decodeURIComponent($2)
|
||||||
val = String(val)
|
val = String(val)
|
||||||
obj[name] = val
|
obj[name] = val
|
||||||
return rs
|
return rs
|
||||||
})
|
})
|
||||||
return obj
|
return obj
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*get getByteLen
|
*get getByteLen
|
||||||
* @param {Sting} val input value
|
* @param {Sting} val input value
|
||||||
* @returns {number} output value
|
* @returns {number} output value
|
||||||
*/
|
*/
|
||||||
export function getByteLen(val) {
|
export function getByteLen(val) {
|
||||||
let len = 0
|
let len = 0
|
||||||
for (let i = 0; i < val.length; i++) {
|
for (let i = 0; i < val.length; i++) {
|
||||||
if (val[i].match(/[^\x00-\xff]/ig) != null) {
|
if (val[i].match(/[^\x00-\xff]/ig) != null) {
|
||||||
len += 1
|
len += 1
|
||||||
} else { len += 0.5 }
|
} else { len += 0.5 }
|
||||||
}
|
}
|
||||||
return Math.floor(len)
|
return Math.floor(len)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function cleanArray(actual) {
|
export function cleanArray(actual) {
|
||||||
const newArray = []
|
const newArray = []
|
||||||
for (let i = 0; i < actual.length; i++) {
|
for (let i = 0; i < actual.length; i++) {
|
||||||
if (actual[i]) {
|
if (actual[i]) {
|
||||||
newArray.push(actual[i])
|
newArray.push(actual[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return newArray
|
return newArray
|
||||||
}
|
}
|
||||||
|
|
||||||
export function param(json) {
|
export function param(json) {
|
||||||
if (!json) return ''
|
if (!json) return ''
|
||||||
return cleanArray(Object.keys(json).map(key => {
|
return cleanArray(Object.keys(json).map(key => {
|
||||||
if (json[key] === undefined) return ''
|
if (json[key] === undefined) return ''
|
||||||
return encodeURIComponent(key) + '=' +
|
return encodeURIComponent(key) + '=' +
|
||||||
encodeURIComponent(json[key])
|
encodeURIComponent(json[key])
|
||||||
})).join('&')
|
})).join('&')
|
||||||
}
|
}
|
||||||
|
|
||||||
export function param2Obj(url) {
|
export function param2Obj(url) {
|
||||||
const search = url.split('?')[1]
|
const search = url.split('?')[1]
|
||||||
if (!search) {
|
if (!search) {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
return JSON.parse('{"' + decodeURIComponent(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') + '"}')
|
return JSON.parse('{"' + decodeURIComponent(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') + '"}')
|
||||||
}
|
}
|
||||||
|
|
||||||
export function html2Text(val) {
|
export function html2Text(val) {
|
||||||
const div = document.createElement('div')
|
const div = document.createElement('div')
|
||||||
div.innerHTML = val
|
div.innerHTML = val
|
||||||
return div.textContent || div.innerText
|
return div.textContent || div.innerText
|
||||||
}
|
}
|
||||||
|
|
||||||
export function objectMerge(target, source) {
|
export function objectMerge(target, source) {
|
||||||
/* Merges two objects,
|
/* Merges two objects,
|
||||||
giving the last one precedence */
|
giving the last one precedence */
|
||||||
|
|
||||||
if (typeof target !== 'object') {
|
if (typeof target !== 'object') {
|
||||||
target = {}
|
target = {}
|
||||||
}
|
}
|
||||||
if (Array.isArray(source)) {
|
if (Array.isArray(source)) {
|
||||||
return source.slice()
|
return source.slice()
|
||||||
}
|
}
|
||||||
for (const property in source) {
|
for (const property in source) {
|
||||||
if (source.hasOwnProperty(property)) {
|
if (source.hasOwnProperty(property)) {
|
||||||
const sourceProperty = source[property]
|
const sourceProperty = source[property]
|
||||||
if (typeof sourceProperty === 'object') {
|
if (typeof sourceProperty === 'object') {
|
||||||
target[property] = objectMerge(target[property], sourceProperty)
|
target[property] = objectMerge(target[property], sourceProperty)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
target[property] = sourceProperty
|
target[property] = sourceProperty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return target
|
return target
|
||||||
}
|
}
|
||||||
|
|
||||||
export function scrollTo(element, to, duration) {
|
export function scrollTo(element, to, duration) {
|
||||||
if (duration <= 0) return
|
if (duration <= 0) return
|
||||||
const difference = to - element.scrollTop
|
const difference = to - element.scrollTop
|
||||||
const perTick = difference / duration * 10
|
const perTick = difference / duration * 10
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
console.log(new Date())
|
console.log(new Date())
|
||||||
element.scrollTop = element.scrollTop + perTick
|
element.scrollTop = element.scrollTop + perTick
|
||||||
if (element.scrollTop === to) return
|
if (element.scrollTop === to) return
|
||||||
scrollTo(element, to, duration - 10)
|
scrollTo(element, to, duration - 10)
|
||||||
}, 10)
|
}, 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function toggleClass(element, className) {
|
export function toggleClass(element, className) {
|
||||||
if (!element || !className) {
|
if (!element || !className) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let classString = element.className
|
let classString = element.className
|
||||||
const nameIndex = classString.indexOf(className)
|
const nameIndex = classString.indexOf(className)
|
||||||
if (nameIndex === -1) {
|
if (nameIndex === -1) {
|
||||||
classString += '' + className
|
classString += '' + className
|
||||||
} else {
|
} else {
|
||||||
classString = classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length)
|
classString = classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length)
|
||||||
}
|
}
|
||||||
element.className = classString
|
element.className = classString
|
||||||
}
|
}
|
||||||
|
|
||||||
export const pickerOptions = [
|
export const pickerOptions = [
|
||||||
{
|
{
|
||||||
text: '今天',
|
text: '今天',
|
||||||
onClick(picker) {
|
onClick(picker) {
|
||||||
const end = new Date()
|
const end = new Date()
|
||||||
const start = new Date(new Date().toDateString())
|
const start = new Date(new Date().toDateString())
|
||||||
end.setTime(start.getTime())
|
end.setTime(start.getTime())
|
||||||
picker.$emit('pick', [start, end])
|
picker.$emit('pick', [start, end])
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
text: '最近一周',
|
text: '最近一周',
|
||||||
onClick(picker) {
|
onClick(picker) {
|
||||||
const end = new Date(new Date().toDateString())
|
const end = new Date(new Date().toDateString())
|
||||||
const start = new Date()
|
const start = new Date()
|
||||||
start.setTime(end.getTime() - 3600 * 1000 * 24 * 7)
|
start.setTime(end.getTime() - 3600 * 1000 * 24 * 7)
|
||||||
picker.$emit('pick', [start, end])
|
picker.$emit('pick', [start, end])
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
text: '最近一个月',
|
text: '最近一个月',
|
||||||
onClick(picker) {
|
onClick(picker) {
|
||||||
const end = new Date(new Date().toDateString())
|
const end = new Date(new Date().toDateString())
|
||||||
const start = new Date()
|
const start = new Date()
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
||||||
picker.$emit('pick', [start, end])
|
picker.$emit('pick', [start, end])
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
text: '最近三个月',
|
text: '最近三个月',
|
||||||
onClick(picker) {
|
onClick(picker) {
|
||||||
const end = new Date(new Date().toDateString())
|
const end = new Date(new Date().toDateString())
|
||||||
const start = new Date()
|
const start = new Date()
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
||||||
picker.$emit('pick', [start, end])
|
picker.$emit('pick', [start, end])
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|
||||||
export function getTime(type) {
|
export function getTime(type) {
|
||||||
if (type === 'start') {
|
if (type === 'start') {
|
||||||
return new Date().getTime() - 3600 * 1000 * 24 * 90
|
return new Date().getTime() - 3600 * 1000 * 24 * 90
|
||||||
} else {
|
} else {
|
||||||
return new Date(new Date().toDateString())
|
return new Date(new Date().toDateString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function debounce(func, wait, immediate) {
|
export function debounce(func, wait, immediate) {
|
||||||
let timeout, args, context, timestamp, result
|
let timeout, args, context, timestamp, result
|
||||||
|
|
||||||
const later = function() {
|
const later = function() {
|
||||||
// 据上一次触发时间间隔
|
// 据上一次触发时间间隔
|
||||||
const last = +new Date() - timestamp
|
const last = +new Date() - timestamp
|
||||||
|
|
||||||
// 上次被包装函数被调用时间间隔last小于设定时间间隔wait
|
// 上次被包装函数被调用时间间隔last小于设定时间间隔wait
|
||||||
if (last < wait && last > 0) {
|
if (last < wait && last > 0) {
|
||||||
timeout = setTimeout(later, wait - last)
|
timeout = setTimeout(later, wait - last)
|
||||||
} else {
|
} else {
|
||||||
timeout = null
|
timeout = null
|
||||||
// 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
|
// 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
|
||||||
if (!immediate) {
|
if (!immediate) {
|
||||||
result = func.apply(context, args)
|
result = func.apply(context, args)
|
||||||
if (!timeout) context = args = null
|
if (!timeout) context = args = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return function(...args) {
|
return function(...args) {
|
||||||
context = this
|
context = this
|
||||||
timestamp = +new Date()
|
timestamp = +new Date()
|
||||||
const callNow = immediate && !timeout
|
const callNow = immediate && !timeout
|
||||||
// 如果延时不存在,重新设定延时
|
// 如果延时不存在,重新设定延时
|
||||||
if (!timeout) timeout = setTimeout(later, wait)
|
if (!timeout) timeout = setTimeout(later, wait)
|
||||||
if (callNow) {
|
if (callNow) {
|
||||||
result = func.apply(context, args)
|
result = func.apply(context, args)
|
||||||
context = args = null
|
context = args = null
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function deepClone(source) {
|
export function deepClone(source) {
|
||||||
if (!source && typeof source !== 'object') {
|
if (!source && typeof source !== 'object') {
|
||||||
throw new Error('error arguments', 'shallowClone')
|
throw new Error('error arguments', 'shallowClone')
|
||||||
}
|
}
|
||||||
const targetObj = source.constructor === Array ? [] : {}
|
const targetObj = source.constructor === Array ? [] : {}
|
||||||
for (const keys in source) {
|
for (const keys in source) {
|
||||||
if (source.hasOwnProperty(keys)) {
|
if (source.hasOwnProperty(keys)) {
|
||||||
if (source[keys] && typeof source[keys] === 'object') {
|
if (source[keys] && typeof source[keys] === 'object') {
|
||||||
targetObj[keys] = source[keys].constructor === Array ? [] : {}
|
targetObj[keys] = source[keys].constructor === Array ? [] : {}
|
||||||
targetObj[keys] = deepClone(source[keys])
|
targetObj[keys] = deepClone(source[keys])
|
||||||
} else {
|
} else {
|
||||||
targetObj[keys] = source[keys]
|
targetObj[keys] = source[keys]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return targetObj
|
return targetObj
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export default function openWindow(url, title, w, h) {
|
export default function openWindow(url, title, w, h) {
|
||||||
// Fixes dual-screen position Most browsers Firefox
|
// Fixes dual-screen position Most browsers Firefox
|
||||||
const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left
|
const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left
|
||||||
const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top
|
const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import clip from '@/utils/clipboard' // use clipboard directly
|
import clip from '@/utils/clipboard' // use clipboard directly
|
||||||
import clipboard from '@/directive/clipboard/index.js' // use clipboard by v-directive
|
import clipboard from '@/directive/clipboard/index.js' // use clipboard by v-directive
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'clipboardDemo',
|
name: 'clipboardDemo',
|
||||||
|
|
|
@ -104,9 +104,9 @@ export default {
|
||||||
url: '',
|
url: '',
|
||||||
platforms: ['a-platform'],
|
platforms: ['a-platform'],
|
||||||
platformsOptions: [
|
platformsOptions: [
|
||||||
{ key: 'a-platform', name: '平台A' },
|
{ key: 'a-platform', name: '平台A' },
|
||||||
{ key: 'b-platform', name: '平台B' },
|
{ key: 'b-platform', name: '平台B' },
|
||||||
{ key: 'c-platform', name: '平台C' }
|
{ key: 'c-platform', name: '平台C' }
|
||||||
],
|
],
|
||||||
pickerOptions: {
|
pickerOptions: {
|
||||||
disabledDate(time) {
|
disabledDate(time) {
|
||||||
|
|
|
@ -61,12 +61,12 @@ export default {
|
||||||
type: 'pie',
|
type: 'pie',
|
||||||
roseType: 'radius',
|
roseType: 'radius',
|
||||||
data: [
|
data: [
|
||||||
{ value: 320, name: 'industries' },
|
{ value: 320, name: 'industries' },
|
||||||
{ value: 240, name: 'technology' },
|
{ value: 240, name: 'technology' },
|
||||||
{ value: 149, name: 'forex' },
|
{ value: 149, name: 'forex' },
|
||||||
{ value: 100, name: 'gold' },
|
{ value: 100, name: 'gold' },
|
||||||
{ value: 59, name: 'forecasts' },
|
{ value: 59, name: 'forecasts' },
|
||||||
{ value: 49, name: 'markets' }
|
{ value: 49, name: 'markets' }
|
||||||
],
|
],
|
||||||
animationEasing: 'cubicInOut',
|
animationEasing: 'cubicInOut',
|
||||||
animationDuration: 2600
|
animationDuration: 2600
|
||||||
|
|
|
@ -155,10 +155,10 @@ import waves from '@/directive/waves/index.js' // 水波纹指令
|
||||||
import { parseTime } from '@/utils'
|
import { parseTime } from '@/utils'
|
||||||
|
|
||||||
const calendarTypeOptions = [
|
const calendarTypeOptions = [
|
||||||
{ key: 'CN', display_name: '中国' },
|
{ key: 'CN', display_name: '中国' },
|
||||||
{ key: 'US', display_name: '美国' },
|
{ key: 'US', display_name: '美国' },
|
||||||
{ key: 'JP', display_name: '日本' },
|
{ key: 'JP', display_name: '日本' },
|
||||||
{ key: 'EU', display_name: '欧元区' }
|
{ key: 'EU', display_name: '欧元区' }
|
||||||
]
|
]
|
||||||
|
|
||||||
// arr to obj
|
// arr to obj
|
||||||
|
|
|
@ -87,7 +87,7 @@ export default {
|
||||||
this.$store.dispatch('LoginByUsername', this.loginForm).then(() => {
|
this.$store.dispatch('LoginByUsername', this.loginForm).then(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.$router.push({ path: '/' })
|
this.$router.push({ path: '/' })
|
||||||
// this.showDialog = true
|
// this.showDialog = true
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
|
@ -98,29 +98,29 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
afterQRScan() {
|
afterQRScan() {
|
||||||
// const hash = window.location.hash.slice(1)
|
// const hash = window.location.hash.slice(1)
|
||||||
// const hashObj = getQueryObject(hash)
|
// const hashObj = getQueryObject(hash)
|
||||||
// const originUrl = window.location.origin
|
// const originUrl = window.location.origin
|
||||||
// history.replaceState({}, '', originUrl)
|
// history.replaceState({}, '', originUrl)
|
||||||
// const codeMap = {
|
// const codeMap = {
|
||||||
// wechat: 'code',
|
// wechat: 'code',
|
||||||
// tencent: 'code'
|
// tencent: 'code'
|
||||||
// }
|
// }
|
||||||
// const codeName = hashObj[codeMap[this.auth_type]]
|
// const codeName = hashObj[codeMap[this.auth_type]]
|
||||||
// if (!codeName) {
|
// if (!codeName) {
|
||||||
// alert('第三方登录失败')
|
// alert('第三方登录失败')
|
||||||
// } else {
|
// } else {
|
||||||
// this.$store.dispatch('LoginByThirdparty', codeName).then(() => {
|
// this.$store.dispatch('LoginByThirdparty', codeName).then(() => {
|
||||||
// this.$router.push({ path: '/' })
|
// this.$router.push({ path: '/' })
|
||||||
// })
|
// })
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// window.addEventListener('hashchange', this.afterQRScan)
|
// window.addEventListener('hashchange', this.afterQRScan)
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
// window.removeEventListener('hashchange', this.afterQRScan)
|
// window.removeEventListener('hashchange', this.afterQRScan)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue