Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
VueElementTemplate
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄瑜
VueElementTemplate
Commits
98d5f9a2
Commit
98d5f9a2
authored
Oct 31, 2017
by
Pan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lint:format code style
parent
3666148d
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
341 additions
and
342 deletions
+341
-342
.eslintrc.js
.eslintrc.js
+1
-1
index.vue
src/components/Dropzone/index.vue
+10
-10
index.vue
src/components/Tinymce/index.vue
+33
-33
index.js
src/filters/index.js
+6
-6
main.js
src/main.js
+1
-1
_import_development.js
src/router/_import_development.js
+1
-1
fetch.js
src/utils/fetch.js
+25
-26
index.js
src/utils/index.js
+230
-230
openWindow.js
src/utils/openWindow.js
+1
-1
index.vue
src/views/clipboard/index.vue
+1
-1
sticky.vue
src/views/components/sticky.vue
+3
-3
pieChart.vue
src/views/dashboard/admin/pieChart.vue
+6
-6
complexTable.vue
src/views/example/table/complexTable.vue
+4
-4
index.vue
src/views/login/index.vue
+19
-19
No files found.
.eslintrc.js
View file @
98d5f9a2
...
@@ -52,7 +52,7 @@ module.exports = {
...
@@ -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
,
...
...
src/components/Dropzone/index.vue
View file @
98d5f9a2
...
@@ -7,7 +7,7 @@
...
@@ -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 {
...
@@ -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
}
}
})
})
...
...
src/components/Tinymce/index.vue
View file @
98d5f9a2
...
@@ -91,39 +91,39 @@ export default {
...
@@ -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
()
{
...
...
src/filters/index.js
View file @
98d5f9a2
...
@@ -77,12 +77,12 @@ export function formatTime(time, option) {
...
@@ -77,12 +77,12 @@ export function formatTime(time, option) {
/* 数字 格式化*/
/* 数字 格式化*/
export
function
nFormatter
(
num
,
digits
)
{
export
function
nFormatter
(
num
,
digits
)
{
const
si
=
[
const
si
=
[
{
value
:
1
E18
,
symbol
:
'E'
},
{
value
:
1
E18
,
symbol
:
'E'
},
{
value
:
1
E15
,
symbol
:
'P'
},
{
value
:
1
E15
,
symbol
:
'P'
},
{
value
:
1
E12
,
symbol
:
'T'
},
{
value
:
1
E12
,
symbol
:
'T'
},
{
value
:
1
E9
,
symbol
:
'G'
},
{
value
:
1
E9
,
symbol
:
'G'
},
{
value
:
1
E6
,
symbol
:
'M'
},
{
value
:
1
E6
,
symbol
:
'M'
},
{
value
:
1
E3
,
symbol
:
'k'
}
{
value
:
1
E3
,
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
)
{
...
...
src/main.js
View file @
98d5f9a2
...
@@ -8,7 +8,7 @@ import * as filters from './filters' // 全局filter
...
@@ -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
)
...
...
src/router/_import_development.js
View file @
98d5f9a2
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+
src/utils/fetch.js
View file @
98d5f9a2
...
@@ -6,7 +6,7 @@ import { getToken } from '@/utils/auth'
...
@@ -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(
...
@@ -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(
...
@@ -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
src/utils/index.js
View file @
98d5f9a2
...
@@ -2,266 +2,266 @@
...
@@ -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
(
/
[^\x
00-
\x
ff
]
/ig
)
!=
null
)
{
if
(
val
[
i
].
match
(
/
[^\x
00-
\x
ff
]
/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
}
}
src/utils/openWindow.js
View file @
98d5f9a2
...
@@ -7,7 +7,7 @@
...
@@ -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
...
...
src/views/clipboard/index.vue
View file @
98d5f9a2
...
@@ -15,7 +15,7 @@
...
@@ -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'
,
...
...
src/views/components/sticky.vue
View file @
98d5f9a2
...
@@ -104,9 +104,9 @@ export default {
...
@@ -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
)
{
...
...
src/views/dashboard/admin/pieChart.vue
View file @
98d5f9a2
...
@@ -61,12 +61,12 @@ export default {
...
@@ -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
...
...
src/views/example/table/complexTable.vue
View file @
98d5f9a2
...
@@ -155,10 +155,10 @@ import waves from '@/directive/waves/index.js' // 水波纹指令
...
@@ -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
...
...
src/views/login/index.vue
View file @
98d5f9a2
...
@@ -87,7 +87,7 @@ export default {
...
@@ -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 {
...
@@ -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
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment