Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yqlh-dataEase
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
frontend
yqlh-dataEase
Commits
b07786d0
Commit
b07786d0
authored
Jul 14, 2023
by
呼呼啦啦
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
65f48332
隐藏空白字符变更
内嵌
并排
正在显示
24 个修改的文件
包含
318 行增加
和
314 行删除
+318
-314
src/components/asyncComponent/index.vue
+8
-1
src/components/canvas/components/editor/EditBar.vue
+4
-4
src/components/canvas/components/editor/LinkageField.vue
+4
-8
src/components/canvas/utils/utils.js
+4
-1
src/lang/zh.js
+1
-1
src/router/index.js
+51
-55
src/utils/index.js
+200
-225
src/views/chart/components/dragItem/QuotaExtItem.vue
+1
-1
src/views/chart/components/filter/QuotaFilterEditor.vue
+7
-0
src/views/chart/components/filter/ResultFilterEditor.vue
+14
-0
src/views/chart/view/ChartEdit.vue
+6
-3
src/views/chart/view/PositionAdjust.vue
+1
-1
src/views/chart/view/TitleRemark.vue
+1
-1
src/views/dataset/common/DatasetChartDetail.vue
+2
-2
src/views/dataset/data/components/LazyTree.vue
+1
-1
src/views/dataset/group/GroupMoveSelector.vue
+1
-1
src/views/login/index.vue
+1
-1
src/views/panel/export/PDFPreExport.vue
+1
-1
src/views/panel/list/PanelList.vue
+5
-2
src/views/system/user/index.vue
+1
-1
src/views/wizard/WizardCard.vue
+1
-1
src/views/wizard/WizardCardEnterprise.vue
+1
-1
src/views/wizard/details/CardDetail.vue
+1
-1
src/views/wizard/details/LatestDevelopments.vue
+1
-1
没有找到文件。
src/components/asyncComponent/index.vue
查看文件 @
b07786d0
...
@@ -3,6 +3,8 @@
...
@@ -3,6 +3,8 @@
:is=
"mode"
:is=
"mode"
:ref=
"refId"
:ref=
"refId"
:obj=
"obj"
:obj=
"obj"
:bus=
"bus"
:axios-request=
"request"
v-bind=
"$attrs"
v-bind=
"$attrs"
v-on=
"$listeners"
v-on=
"$listeners"
/>
/>
...
@@ -11,6 +13,9 @@
...
@@ -11,6 +13,9 @@
<
script
>
<
script
>
import
{
uuid
}
from
'vue-uuid'
import
{
uuid
}
from
'vue-uuid'
import
{
get
}
from
'@/api/system/dynamic'
import
{
get
}
from
'@/api/system/dynamic'
import
bus
from
'@/utils/bus'
import
request
from
'@/utils/request'
export
default
{
export
default
{
name
:
'AsyncComponent'
,
name
:
'AsyncComponent'
,
inheritAttrs
:
true
,
inheritAttrs
:
true
,
...
@@ -29,7 +34,9 @@ export default {
...
@@ -29,7 +34,9 @@ export default {
return
{
return
{
resData
:
''
,
resData
:
''
,
mode
:
''
,
mode
:
''
,
refId
:
null
refId
:
null
,
bus
:
bus
,
request
:
request
}
}
},
},
watch
:
{
watch
:
{
...
...
src/components/canvas/components/editor/EditBar.vue
查看文件 @
b07786d0
...
@@ -82,10 +82,10 @@
...
@@ -82,10 +82,10 @@
/>
/>
</span>
</span>
<span
:title=
"$t('route.exportExcel')"
>
<span
:title=
"$t('route.exportExcel')"
>
<
svg-icon
<
i
v-if=
"exportExcelShow"
v-if=
"exportExcelShow"
style=
"
color: white
"
style=
"
line-height: 24px
"
icon-class=
"file-excel
"
class=
"el-icon-document-delete
"
@
click
.
stop=
"exportExcelDownload()"
@
click
.
stop=
"exportExcelDownload()"
/>
/>
</span>
</span>
...
@@ -469,7 +469,7 @@ export default {
...
@@ -469,7 +469,7 @@ export default {
this
.
$emit
(
'showViewDetails'
,
{
openType
:
openType
})
this
.
$emit
(
'showViewDetails'
,
{
openType
:
openType
})
},
},
exportExcelDownload
()
{
exportExcelDownload
()
{
exportExcelDownload
(
this
.
chart
,
null
,
null
,
null
,
null
,
null
)
exportExcelDownload
(
this
.
chart
)
},
},
auxiliaryMatrixChange
()
{
auxiliaryMatrixChange
()
{
if
(
this
.
curComponent
.
auxiliaryMatrix
)
{
if
(
this
.
curComponent
.
auxiliaryMatrix
)
{
...
...
src/components/canvas/components/editor/LinkageField.vue
查看文件 @
b07786d0
...
@@ -171,23 +171,19 @@ export default {
...
@@ -171,23 +171,19 @@ export default {
return
this
.
targetLinkageInfo
[
this
.
curLinkageView
.
propValue
.
viewId
]
return
this
.
targetLinkageInfo
[
this
.
curLinkageView
.
propValue
.
viewId
]
},
},
...
mapState
([
...
mapState
([
'menuTop'
,
'menuLeft'
,
'menuShow'
,
'curComponent'
,
'componentData'
,
'canvasStyleData'
,
'linkageSettingStatus'
,
'targetLinkageInfo'
,
'targetLinkageInfo'
,
'curLinkageView'
'curLinkageView'
])
])
},
},
mounted
()
{
mounted
()
{
const
_this
=
this
// 初始化映射关系 如果当前是相同的数据集且没有关联关系,则自动补充映射关系
// 初始化映射关系 如果当前是相同的数据集且没有关联关系,则自动补充映射关系
checkSameDataSet
(
this
.
curLinkageView
.
propValue
.
viewId
,
this
.
element
.
propValue
.
viewId
).
then
(
res
=>
{
checkSameDataSet
(
this
.
curLinkageView
.
propValue
.
viewId
,
this
.
element
.
propValue
.
viewId
).
then
(
res
=>
{
if
(
res
.
data
===
'YES'
&&
this
.
linkageInfo
.
linkageFields
.
length
===
0
)
{
if
(
res
.
data
===
'YES'
&&
this
.
linkageInfo
.
linkageFields
.
length
===
0
)
{
this
.
sourceLinkageInfo
.
targetViewFields
.
forEach
(
item
=>
{
this
.
sourceLinkageInfo
.
targetViewFields
.
forEach
(
item
=>
{
this
.
addLinkageField
(
item
.
id
,
item
.
id
)
_this
.
$nextTick
(()
=>
{
this
.
addLinkageField
(
item
.
id
,
item
.
id
)
})
})
})
}
}
})
})
...
...
src/components/canvas/utils/utils.js
查看文件 @
b07786d0
...
@@ -429,7 +429,10 @@ export function getCacheTree(treeName) {
...
@@ -429,7 +429,10 @@ export function getCacheTree(treeName) {
}
}
export
function
exportExcelDownload
(
chart
,
snapshot
,
width
,
height
,
loadingWrapper
,
callBack
)
{
export
function
exportExcelDownload
(
chart
,
snapshot
,
width
,
height
,
loadingWrapper
,
callBack
)
{
if
(
!
chart
.
data
?.
data
?.
length
)
{
if
(
chart
.
render
===
'antv'
&&
!
chart
.
data
?.
data
?.
length
)
{
return
}
if
(
chart
.
type
===
'echarts'
&&
!
(
chart
.
data
?.
series
?.
length
&&
chart
.
data
?.
series
[
0
].
data
?.
length
))
{
return
return
}
}
const
fields
=
JSON
.
parse
(
JSON
.
stringify
(
chart
.
data
.
fields
))
const
fields
=
JSON
.
parse
(
JSON
.
stringify
(
chart
.
data
.
fields
))
...
...
src/lang/zh.js
查看文件 @
b07786d0
...
@@ -1938,7 +1938,7 @@ export default {
...
@@ -1938,7 +1938,7 @@ export default {
jsonpath_info
:
'请填入JsonPath'
,
jsonpath_info
:
'请填入JsonPath'
,
req_param
:
'请求参数'
,
req_param
:
'请求参数'
,
headers
:
'请求头'
,
headers
:
'请求头'
,
query_param
:
"QUERY
參數
"
,
query_param
:
"QUERY
参数
"
,
query_info
:
"地址栏中跟在?后面的参数,如: updateapi?id=112"
,
query_info
:
"地址栏中跟在?后面的参数,如: updateapi?id=112"
,
key
:
'键'
,
key
:
'键'
,
value
:
'值'
,
value
:
'值'
,
...
...
src/router/index.js
查看文件 @
b07786d0
import
Vue
from
"vue"
;
import
Vue
from
'vue'
import
Router
from
"vue-router"
;
import
Router
from
'vue-router'
Vue
.
use
(
Router
)
;
Vue
.
use
(
Router
)
/* Layout */
/* Layout */
import
Layout
from
"@/layout"
;
import
Layout
from
'@/layout'
/**
/**
* Note: sub-menu only appear when route children.length >= 1
* Note: sub-menu only appear when route children.length >= 1
...
@@ -32,74 +32,71 @@ import Layout from "@/layout";
...
@@ -32,74 +32,71 @@ import Layout from "@/layout";
*/
*/
export
const
constantRoutes
=
[
export
const
constantRoutes
=
[
{
{
path
:
"/redirect"
,
path
:
'/redirect'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
"/redirect/:path(.*)"
,
path
:
'/redirect/:path(.*)'
,
component
:
()
=>
import
(
"@/views/redirect/index"
),
component
:
()
=>
import
(
'@/views/redirect/index'
)
}
,
}
]
,
]
},
},
{
{
path
:
"/login"
,
path
:
'/login'
,
component
:
()
=>
import
(
"@/views/login/index"
),
component
:
()
=>
import
(
'@/views/login/index'
),
hidden
:
true
,
hidden
:
true
},
},
{
{
path
:
"/404"
,
path
:
'/404'
,
component
:
()
=>
import
(
"@/views/404"
),
component
:
()
=>
import
(
'@/views/404'
),
hidden
:
true
,
hidden
:
true
},
},
{
{
path
:
"/401"
,
path
:
'/401'
,
component
:
(
resolve
)
=>
require
([
"@/views/401"
],
resolve
),
component
:
(
resolve
)
=>
require
([
'@/views/401'
],
resolve
),
hidden
:
true
,
hidden
:
true
},
},
{
{
path
:
"/panelEdit"
,
path
:
'/panelEdit'
,
component
:
Layout
,
component
:
Layout
,
redirect
:
"/panelEdit/edit"
,
redirect
:
'/panelEdit/edit'
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
"edit"
,
path
:
'edit'
,
component
:
()
=>
import
(
"@/views/panel/edit"
),
component
:
()
=>
import
(
'@/views/panel/edit'
)
}
,
}
]
,
]
},
},
{
{
path
:
"/delink"
,
path
:
'/delink'
,
component
:
()
=>
import
(
"@/views/link"
),
component
:
()
=>
import
(
'@/views/link'
),
hidden
:
true
,
hidden
:
true
},
},
{
{
path
:
"/preview/:reportId"
,
path
:
'/preview/:reportId'
,
component
:
()
=>
component
:
()
=>
import
(
'@/components/canvas/components/editor/PreviewEject'
),
import
(
"@/components/canvas/components/editor/PreviewEject"
),
hidden
:
true
hidden
:
true
,
},
},
{
{
path
:
"/previewScreenShot/:reportId/:backScreenShot"
,
path
:
'/previewScreenShot/:reportId/:backScreenShot'
,
component
:
()
=>
component
:
()
=>
import
(
'@/components/canvas/components/editor/PreviewEject'
),
import
(
"@/components/canvas/components/editor/PreviewEject"
),
hidden
:
true
hidden
:
true
,
},
},
{
{
path
:
"/previewFullScreen"
,
path
:
'/previewFullScreen'
,
component
:
()
=>
component
:
()
=>
import
(
'@/components/canvas/components/editor/PreviewFullScreen'
),
import
(
"@/components/canvas/components/editor/PreviewFullScreen"
),
hidden
:
true
hidden
:
true
,
},
},
{
{
path
:
"/de-auto-login"
,
path
:
'/de-auto-login'
,
component
:
()
=>
import
(
"@/views/DeAutoLogin"
),
component
:
()
=>
import
(
'@/views/DeAutoLogin'
),
hidden
:
true
,
hidden
:
true
}
,
}
// {
// {
// path: '/',
// path: '/',
...
@@ -217,22 +214,21 @@ export const constantRoutes = [
...
@@ -217,22 +214,21 @@ export const constantRoutes = [
// },
// },
// 404 page must be placed at the end !!!
// 404 page must be placed at the end !!!
// { path: '*', redirect: '/404', hidden: true }
// { path: '*', redirect: '/404', hidden: true }
]
;
]
const
createRouter
=
()
=>
const
createRouter
=
()
=>
new
Router
({
new
Router
({
// mode: 'history', // require service support
// mode: 'history', // require service support
mode
:
'hash'
,
mode
:
"hash"
,
scrollBehavior
:
()
=>
({
y
:
0
}),
scrollBehavior
:
()
=>
({
y
:
0
}),
routes
:
constantRoutes
routes
:
[],
})
});
const
router
=
createRouter
()
;
const
router
=
createRouter
()
// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export
function
resetRouter
()
{
export
function
resetRouter
()
{
const
newRouter
=
createRouter
()
;
const
newRouter
=
createRouter
()
router
.
matcher
=
newRouter
.
matcher
;
// reset router
router
.
matcher
=
newRouter
.
matcher
// reset router
}
}
export
default
router
;
export
default
router
src/utils/index.js
查看文件 @
b07786d0
import
Cookies
from
"js-cookie"
;
import
Cookies
from
'js-cookie'
import
i18n
from
"@/lang"
;
import
i18n
from
'@/lang'
import
{
$error
,
$confirm
}
from
"@/utils/message"
;
import
{
$error
,
$confirm
}
from
'@/utils/message'
import
{
seizeLogin
}
from
"@/api/user"
;
import
{
seizeLogin
}
from
'@/api/user'
import
router
from
"@/router"
;
import
router
from
'@/router'
import
store
from
"@/store"
;
import
store
from
'@/store'
import
{
Loading
}
from
"element-ui"
;
import
{
Loading
}
from
'element-ui'
export
function
timeSection
(
date
,
type
,
labelFormat
=
"yyyy-MM-dd"
)
{
export
function
timeSection
(
date
,
type
,
labelFormat
=
'yyyy-MM-dd'
)
{
if
(
!
date
)
{
if
(
!
date
)
{
return
null
;
return
null
}
}
if
(
!
(
date
instanceof
Date
))
{
if
(
!
(
date
instanceof
Date
))
{
date
=
new
Date
(
date
)
;
date
=
new
Date
(
date
)
}
}
const
timeRanger
=
new
Array
(
2
)
;
const
timeRanger
=
new
Array
(
2
)
const
formatArr
=
labelFormat
?
labelFormat
.
split
(
" "
)
:
[];
const
formatArr
=
labelFormat
?
labelFormat
.
split
(
' '
)
:
[]
const
methods
=
[
"setHours"
,
"setMinutes"
,
"setSeconds"
,
"setMilliseconds"
];
const
methods
=
[
'setHours'
,
'setMinutes'
,
'setSeconds'
,
'setMilliseconds'
]
let
methodsLen
=
methods
.
length
;
let
methodsLen
=
methods
.
length
if
(
type
===
"datetime"
&&
formatArr
.
length
>
1
)
{
if
(
type
===
'datetime'
&&
formatArr
.
length
>
1
)
{
const
childArr
=
formatArr
[
1
]
?
formatArr
[
1
].
split
(
":"
)
:
[];
const
childArr
=
formatArr
[
1
]
?
formatArr
[
1
].
split
(
':'
)
:
[]
const
childArrLength
=
childArr
?
childArr
.
length
:
0
;
const
childArrLength
=
childArr
?
childArr
.
length
:
0
while
(
--
methodsLen
>=
childArrLength
)
{
while
(
--
methodsLen
>=
childArrLength
)
{
date
[
methods
[
methodsLen
]](
0
)
;
date
[
methods
[
methodsLen
]](
0
)
}
}
}
else
{
}
else
{
methods
.
forEach
(
(
m
)
=>
date
[
m
](
0
));
methods
.
forEach
(
m
=>
date
[
m
](
0
))
}
}
const
end
=
new
Date
(
date
)
;
const
end
=
new
Date
(
date
)
if
(
type
===
"year"
)
{
if
(
type
===
'year'
)
{
date
.
setDate
(
1
)
;
date
.
setDate
(
1
)
date
.
setMonth
(
0
)
;
date
.
setMonth
(
0
)
end
.
setFullYear
(
date
.
getFullYear
()
+
1
)
;
end
.
setFullYear
(
date
.
getFullYear
()
+
1
)
timeRanger
[
1
]
=
end
.
getTime
()
-
1
;
timeRanger
[
1
]
=
end
.
getTime
()
-
1
}
}
if
(
type
===
"month"
)
{
if
(
type
===
'month'
)
{
date
.
setDate
(
1
)
;
date
.
setDate
(
1
)
const
currentMonth
=
date
.
getMonth
()
;
const
currentMonth
=
date
.
getMonth
()
if
(
currentMonth
===
11
)
{
if
(
currentMonth
===
11
)
{
end
.
setFullYear
(
date
.
getFullYear
()
+
1
)
;
end
.
setFullYear
(
date
.
getFullYear
()
+
1
)
end
.
setMonth
(
0
)
;
end
.
setMonth
(
0
)
}
else
{
}
else
{
end
.
setMonth
(
date
.
getMonth
()
+
1
)
;
end
.
setMonth
(
date
.
getMonth
()
+
1
)
}
}
timeRanger
[
1
]
=
end
.
getTime
()
-
1
;
timeRanger
[
1
]
=
end
.
getTime
()
-
1
}
}
if
(
type
===
"date"
)
{
if
(
type
===
'date'
)
{
end
.
setHours
(
23
)
;
end
.
setHours
(
23
)
end
.
setMinutes
(
59
)
;
end
.
setMinutes
(
59
)
end
.
setSeconds
(
59
)
;
end
.
setSeconds
(
59
)
end
.
setMilliseconds
(
999
)
;
end
.
setMilliseconds
(
999
)
timeRanger
[
1
]
=
end
.
getTime
()
;
timeRanger
[
1
]
=
end
.
getTime
()
}
}
if
(
type
===
"datetime"
)
{
if
(
type
===
'datetime'
)
{
methodsLen
=
methods
.
length
;
methodsLen
=
methods
.
length
if
(
formatArr
.
length
>
1
)
{
if
(
formatArr
.
length
>
1
)
{
const
childArr
=
formatArr
[
1
]
?
formatArr
[
1
].
split
(
":"
)
:
[];
const
childArr
=
formatArr
[
1
]
?
formatArr
[
1
].
split
(
':'
)
:
[]
const
childArrLength
=
childArr
?
childArr
.
length
:
0
;
const
childArrLength
=
childArr
?
childArr
.
length
:
0
while
(
--
methodsLen
>=
childArrLength
)
{
while
(
--
methodsLen
>=
childArrLength
)
{
end
[
methods
[
methodsLen
]](
end
[
methods
[
methodsLen
]](
methodsLen
===
0
?
23
:
methodsLen
===
3
?
999
:
59
)
methodsLen
===
0
?
23
:
methodsLen
===
3
?
999
:
59
);
}
}
}
else
{
}
else
{
while
(
--
methodsLen
>=
0
)
{
while
(
--
methodsLen
>=
0
)
{
end
[
methods
[
methodsLen
]](
end
[
methods
[
methodsLen
]](
methodsLen
===
0
?
23
:
methodsLen
===
3
?
999
:
59
)
methodsLen
===
0
?
23
:
methodsLen
===
3
?
999
:
59
);
}
}
}
}
timeRanger
[
1
]
=
end
.
getTime
()
;
timeRanger
[
1
]
=
end
.
getTime
()
}
}
timeRanger
[
0
]
=
date
.
getTime
()
;
timeRanger
[
0
]
=
date
.
getTime
()
return
timeRanger
;
return
timeRanger
}
}
export
function
dateFormat
(
date
,
fmt
)
{
export
function
dateFormat
(
date
,
fmt
)
{
let
ret
;
let
ret
const
opt
=
{
const
opt
=
{
"y+"
:
date
.
getFullYear
().
toString
(),
// 年
'y+'
:
date
.
getFullYear
().
toString
(),
// 年
"M+"
:
(
date
.
getMonth
()
+
1
).
toString
(),
// 月
'M+'
:
(
date
.
getMonth
()
+
1
).
toString
(),
// 月
"d+"
:
date
.
getDate
().
toString
(),
// 日
'd+'
:
date
.
getDate
().
toString
(),
// 日
"H+"
:
date
.
getHours
().
toString
(),
// 时
'H+'
:
date
.
getHours
().
toString
(),
// 时
"m+"
:
date
.
getMinutes
().
toString
(),
// 分
'm+'
:
date
.
getMinutes
().
toString
(),
// 分
"s+"
:
date
.
getSeconds
().
toString
(),
// 秒
's+'
:
date
.
getSeconds
().
toString
()
// 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
// 有其他格式化字符需求可以继续添加,必须转化成字符串
}
;
}
for
(
const
k
in
opt
)
{
for
(
const
k
in
opt
)
{
ret
=
new
RegExp
(
"("
+
k
+
")"
).
exec
(
fmt
);
ret
=
new
RegExp
(
'('
+
k
+
')'
).
exec
(
fmt
)
if
(
ret
)
{
if
(
ret
)
{
fmt
=
fmt
.
replace
(
fmt
=
fmt
.
replace
(
ret
[
1
],
(
ret
[
1
].
length
===
1
)
?
(
opt
[
k
])
:
(
opt
[
k
].
padStart
(
ret
[
1
].
length
,
'0'
)))
ret
[
1
],
ret
[
1
].
length
===
1
?
opt
[
k
]
:
opt
[
k
].
padStart
(
ret
[
1
].
length
,
"0"
)
);
}
}
}
}
return
fmt
;
return
fmt
}
}
/**
/**
...
@@ -110,20 +103,20 @@ export function dateFormat(date, fmt) {
...
@@ -110,20 +103,20 @@ export function dateFormat(date, fmt) {
*/
*/
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
(
typeof
time
===
"string"
&&
/^
[
0-9
]
+$/
.
test
(
time
))
{
if
(
(
typeof
time
===
'string'
)
&&
(
/^
[
0-9
]
+$/
.
test
(
time
)
))
{
time
=
parseInt
(
time
)
;
time
=
parseInt
(
time
)
}
}
if
(
typeof
time
===
"number"
&&
time
.
toString
().
length
===
10
)
{
if
(
(
typeof
time
===
'number'
)
&&
(
time
.
toString
().
length
===
10
)
)
{
time
=
time
*
1000
;
time
=
time
*
1000
}
}
date
=
new
Date
(
time
)
;
date
=
new
Date
(
time
)
}
}
const
formatObj
=
{
const
formatObj
=
{
y
:
date
.
getFullYear
(),
y
:
date
.
getFullYear
(),
...
@@ -132,17 +125,17 @@ export function parseTime(time, cFormat) {
...
@@ -132,17 +125,17 @@ export function parseTime(time, cFormat) {
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
(
/{
([
ymdhisa
])
+}/g
,
(
result
,
key
)
=>
{
const
time_str
=
format
.
replace
(
/{
([
ymdhisa
])
+}/g
,
(
result
,
key
)
=>
{
const
value
=
formatObj
[
key
]
;
const
value
=
formatObj
[
key
]
// Note: getDay() returns 0 on Sunday
// Note: getDay() returns 0 on Sunday
if
(
key
===
"a"
)
{
if
(
key
===
'a'
)
{
return
[
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
][
value
];
return
[
'日'
,
'一'
,
'二'
,
'三'
,
'四'
,
'五'
,
'六'
][
value
]
}
}
return
value
.
toString
().
padStart
(
2
,
"0"
);
return
value
.
toString
().
padStart
(
2
,
'0'
)
})
;
})
return
time_str
;
return
time_str
}
}
/**
/**
...
@@ -152,7 +145,7 @@ export function parseTime(time, cFormat) {
...
@@ -152,7 +145,7 @@ export function parseTime(time, cFormat) {
* @returns {boolean}
* @returns {boolean}
*/
*/
export
function
hasClass
(
ele
,
cls
)
{
export
function
hasClass
(
ele
,
cls
)
{
return
!!
ele
.
className
.
match
(
new
RegExp
(
"(
\\
s|^)"
+
cls
+
"(
\\
s|$)"
));
return
!!
ele
.
className
.
match
(
new
RegExp
(
'(
\\
s|^)'
+
cls
+
'(
\\
s|$)'
))
}
}
/**
/**
...
@@ -161,7 +154,7 @@ export function hasClass(ele, cls) {
...
@@ -161,7 +154,7 @@ export function hasClass(ele, cls) {
* @param {string} cls
* @param {string} cls
*/
*/
export
function
addClass
(
ele
,
cls
)
{
export
function
addClass
(
ele
,
cls
)
{
if
(
!
hasClass
(
ele
,
cls
))
ele
.
className
+=
" "
+
cls
;
if
(
!
hasClass
(
ele
,
cls
))
ele
.
className
+=
' '
+
cls
}
}
/**
/**
...
@@ -171,8 +164,8 @@ export function addClass(ele, cls) {
...
@@ -171,8 +164,8 @@ export function addClass(ele, cls) {
*/
*/
export
function
removeClass
(
ele
,
cls
)
{
export
function
removeClass
(
ele
,
cls
)
{
if
(
hasClass
(
ele
,
cls
))
{
if
(
hasClass
(
ele
,
cls
))
{
const
reg
=
new
RegExp
(
"(
\\
s|^)"
+
cls
+
"(
\\
s|$)"
);
const
reg
=
new
RegExp
(
'(
\\
s|^)'
+
cls
+
'(
\\
s|$)'
)
ele
.
className
=
ele
.
className
.
replace
(
reg
,
" "
);
ele
.
className
=
ele
.
className
.
replace
(
reg
,
' '
)
}
}
}
}
...
@@ -182,40 +175,40 @@ export function removeClass(ele, cls) {
...
@@ -182,40 +175,40 @@ export function removeClass(ele, cls) {
* @returns {string}
* @returns {string}
*/
*/
export
function
formatTime
(
time
,
option
)
{
export
function
formatTime
(
time
,
option
)
{
if
((
""
+
time
).
length
===
10
)
{
if
((
''
+
time
).
length
===
10
)
{
time
=
parseInt
(
time
)
*
1000
;
time
=
parseInt
(
time
)
*
1000
}
else
{
}
else
{
time
=
+
time
;
time
=
+
time
}
}
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
)
{
}
else
if
(
diff
<
3600
)
{
// less 1 hour
// 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
(
return
(
d
.
getMonth
()
+
d
.
getMonth
()
+
1
+
1
+
"月"
+
'月'
+
d
.
getDate
()
+
d
.
getDate
()
+
"日"
+
'日'
+
d
.
getHours
()
+
d
.
getHours
()
+
"时"
+
'时'
+
d
.
getMinutes
()
+
d
.
getMinutes
()
+
"分"
'分'
)
;
)
}
}
}
}
...
@@ -224,33 +217,33 @@ export function formatTime(time, option) {
...
@@ -224,33 +217,33 @@ export function formatTime(time, option) {
* @returns {Object}
* @returns {Object}
*/
*/
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
(
return
JSON
.
parse
(
'{"'
+
'{"'
+
decodeURIComponent
(
search
)
decodeURIComponent
(
search
)
.
replace
(
/"/g
,
'
\\
"'
)
.
replace
(
/"/g
,
'
\\
"'
)
.
replace
(
/&/g
,
'","'
)
.
replace
(
/&/g
,
'","'
)
.
replace
(
/=/g
,
'":"'
)
.
replace
(
/=/g
,
'":"'
)
.
replace
(
/
\+
/g
,
" "
)
+
.
replace
(
/
\+
/g
,
' '
)
+
'"}'
'"}'
)
;
)
}
}
export
function
formatCondition
(
param
)
{
export
function
formatCondition
(
param
)
{
if
(
!
param
)
{
if
(
!
param
)
{
return
null
;
return
null
}
}
const
result
=
{
const
result
=
{
conditions
:
[]
,
conditions
:
[]
}
;
}
// eslint-disable-next-line no-unused-vars
// eslint-disable-next-line no-unused-vars
for
(
const
[
key
,
value
]
of
Object
.
entries
(
param
))
{
for
(
const
[
key
,
value
]
of
Object
.
entries
(
param
))
{
result
.
conditions
.
push
(
value
)
;
result
.
conditions
.
push
(
value
)
}
}
return
result
;
return
result
}
}
/**
/**
* 驼峰转下划线
* 驼峰转下划线
...
@@ -258,170 +251,152 @@ export function formatCondition(param) {
...
@@ -258,170 +251,152 @@ export function formatCondition(param) {
* @returns
* @returns
*/
*/
export
function
toLine
(
name
)
{
export
function
toLine
(
name
)
{
return
name
.
replace
(
/
([
A-Z
])
/g
,
"_$1"
).
toLowerCase
();
return
name
.
replace
(
/
([
A-Z
])
/g
,
'_$1'
).
toLowerCase
()
}
}
export
function
addOrder
(
order
,
orders
)
{
export
function
addOrder
(
order
,
orders
)
{
order
.
field
=
toLine
(
order
.
field
)
;
order
.
field
=
toLine
(
order
.
field
)
if
(
order
.
value
.
startsWith
(
"desc"
))
{
if
(
order
.
value
.
startsWith
(
'desc'
))
{
order
.
value
=
"desc"
;
order
.
value
=
'desc'
}
else
{
}
else
{
order
.
value
=
"asc"
;
order
.
value
=
'asc'
}
}
orders
=
orders
||
[]
;
orders
=
orders
||
[]
for
(
let
index
=
0
;
index
<
orders
.
length
;
index
++
)
{
for
(
let
index
=
0
;
index
<
orders
.
length
;
index
++
)
{
const
element
=
orders
[
index
]
;
const
element
=
orders
[
index
]
if
(
order
.
field
===
element
.
field
)
{
if
(
order
.
field
===
element
.
field
)
{
orders
[
index
]
=
order
;
orders
[
index
]
=
order
return
;
return
}
}
}
}
orders
.
push
(
order
)
;
orders
.
push
(
order
)
}
}
export
function
formatOrders
(
orders
)
{
export
function
formatOrders
(
orders
)
{
return
orders
.
map
(
(
order
)
=>
order
.
field
+
" "
+
order
.
value
);
return
orders
.
map
(
order
=>
order
.
field
+
' '
+
order
.
value
)
}
}
export
function
formatQuickCondition
(
param
,
quickField
)
{
export
function
formatQuickCondition
(
param
,
quickField
)
{
let
quickObj
=
null
;
let
quickObj
=
null
if
(
!
param
||
!
(
quickObj
=
param
.
quick
)
||
!
quickField
)
{
if
(
!
param
||
!
(
quickObj
=
param
.
quick
)
||
!
quickField
)
{
quickObj
&&
delete
param
.
quick
;
quickObj
&&
delete
param
.
quick
return
param
;
return
param
}
}
param
[
quickField
]
=
{
param
[
quickField
]
=
{
field
:
quickField
,
field
:
quickField
,
operator
:
"like"
,
operator
:
'like'
,
value
:
quickObj
.
value
,
value
:
quickObj
.
value
}
;
}
delete
param
.
quick
;
delete
param
.
quick
return
param
;
return
param
}
}
export
function
getQueryVariable
(
variable
)
{
export
function
getQueryVariable
(
variable
)
{
let
query
=
window
.
location
.
search
.
substring
(
1
)
;
let
query
=
window
.
location
.
search
.
substring
(
1
)
if
(
!
query
)
{
if
(
!
query
)
{
query
=
Cookies
.
get
(
variable
)
;
query
=
Cookies
.
get
(
variable
)
}
}
if
(
query
!==
undefined
)
{
if
(
query
!==
undefined
)
{
const
vars
=
query
.
split
(
"&"
);
const
vars
=
query
.
split
(
'&'
)
for
(
var
i
=
0
;
i
<
vars
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
vars
.
length
;
i
++
)
{
const
pair
=
vars
[
i
].
split
(
"="
);
const
pair
=
vars
[
i
].
split
(
'='
)
if
(
pair
[
0
]
===
variable
)
{
if
(
pair
[
0
]
===
variable
)
{
return
pair
[
1
]
;
return
pair
[
1
]
}
}
}
}
}
}
return
false
;
return
(
false
)
}
}
export
function
isMobile
()
{
export
function
isMobile
()
{
const
flag
=
navigator
.
userAgent
.
match
(
const
flag
=
navigator
.
userAgent
.
match
(
/
(
phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone
)
/i
)
/
(
phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone
)
/i
return
flag
);
return
flag
;
}
}
export
const
isSameVueObj
=
(
source
,
target
)
=>
{
export
const
isSameVueObj
=
(
source
,
target
)
=>
{
if
(
!
source
&&
!
target
)
return
true
;
if
(
!
source
&&
!
target
)
return
true
if
(
!!
source
&&
!!
target
)
{
if
(
!!
source
&&
!!
target
)
{
return
JSON
.
stringify
(
source
)
===
JSON
.
stringify
(
target
)
;
return
JSON
.
stringify
(
source
)
===
JSON
.
stringify
(
target
)
}
}
return
false
;
return
false
}
;
}
export
const
isSameArr
=
(
source
,
target
)
=>
{
export
const
isSameArr
=
(
source
,
target
)
=>
{
if
(
!
source
&&
!
target
)
return
true
;
if
(
!
source
&&
!
target
)
return
true
if
(
source
?.
length
&&
target
?.
length
&&
source
.
length
===
target
.
length
)
{
if
(
source
?.
length
&&
target
?.
length
&&
source
.
length
===
target
.
length
)
{
const
sortSource
=
source
.
sort
()
;
const
sortSource
=
source
.
sort
()
const
sortTarget
=
target
.
sort
()
;
const
sortTarget
=
target
.
sort
()
return
JSON
.
stringify
(
sortSource
)
===
JSON
.
stringify
(
sortTarget
)
;
return
JSON
.
stringify
(
sortSource
)
===
JSON
.
stringify
(
sortTarget
)
}
}
return
false
;
return
false
}
;
}
export
const
changeFavicon
=
(
link
)
=>
{
export
const
changeFavicon
=
link
=>
{
let
$favicon
=
document
.
querySelector
(
'link[rel="icon"]'
)
;
let
$favicon
=
document
.
querySelector
(
'link[rel="icon"]'
)
if
(
$favicon
!==
null
)
{
if
(
$favicon
!==
null
)
{
$favicon
.
href
=
link
;
$favicon
.
href
=
link
}
else
{
}
else
{
$favicon
=
document
.
createElement
(
"link"
);
$favicon
=
document
.
createElement
(
'link'
)
$favicon
.
rel
=
"icon"
;
$favicon
.
rel
=
'icon'
$favicon
.
href
=
link
;
$favicon
.
href
=
link
document
.
head
.
appendChild
(
$favicon
)
;
document
.
head
.
appendChild
(
$favicon
)
}
}
}
;
}
export
const
mergeCustomSortOption
=
(
customSortList
,
sourceList
)
=>
{
export
const
mergeCustomSortOption
=
(
customSortList
,
sourceList
)
=>
{
if
(
!
customSortList
?.
length
)
return
sourceList
?.
length
?
sourceList
:
[]
;
if
(
!
customSortList
?.
length
)
return
sourceList
?.
length
?
sourceList
:
[]
if
(
!
sourceList
?.
length
)
return
customSortList
?.
length
?
customSortList
:
[]
;
if
(
!
sourceList
?.
length
)
return
customSortList
?.
length
?
customSortList
:
[]
const
result
=
[...
customSortList
,
...
sourceList
]
;
const
result
=
[...
customSortList
,
...
sourceList
]
return
[...
new
Set
(
result
)]
;
return
[...
new
Set
(
result
)]
}
;
}
export
const
inOtherPlatform
=
()
=>
{
export
const
inOtherPlatform
=
()
=>
{
const
cookieStr
=
Cookies
.
get
(
"inOtherPlatform"
);
const
cookieStr
=
Cookies
.
get
(
'inOtherPlatform'
)
if
(
cookieStr
&&
cookieStr
===
"true"
)
{
if
(
cookieStr
&&
cookieStr
===
'true'
)
{
return
true
;
return
true
}
}
return
false
;
return
false
}
;
}
export
const
showMultiLoginMsg
=
()
=>
{
export
const
showMultiLoginMsg
=
()
=>
{
const
multiLoginError1
=
Cookies
.
get
(
"MultiLoginError1"
);
const
multiLoginError1
=
Cookies
.
get
(
'MultiLoginError1'
)
if
(
multiLoginError1
)
{
if
(
multiLoginError1
)
{
Cookies
.
remove
(
"MultiLoginError1"
);
Cookies
.
remove
(
'MultiLoginError1'
)
const
infos
=
JSON
.
parse
(
multiLoginError1
);
const
infos
=
JSON
.
parse
(
multiLoginError1
)
const
content
=
infos
const
content
=
infos
.
map
(
info
=>
buildMultiLoginErrorItem
(
info
)).
join
(
'</br>'
)
.
map
((
info
)
=>
buildMultiLoginErrorItem
(
info
))
let
msgContent
=
'<strong>'
+
i18n
.
t
(
'multi_login_lang.title'
)
+
'</strong>'
.
join
(
"</br>"
);
msgContent
+=
content
+
'<p>'
+
i18n
.
t
(
'multi_login_lang.label'
)
+
'</p>'
let
msgContent
=
$error
(
msgContent
,
10000
,
true
)
"<strong>"
+
i18n
.
t
(
"multi_login_lang.title"
)
+
"</strong>"
;
}
msgContent
+=
content
+
"<p>"
+
i18n
.
t
(
"multi_login_lang.label"
)
+
"</p>"
;
const
multiLoginError2
=
Cookies
.
get
(
'MultiLoginError2'
)
$error
(
msgContent
,
10000
,
true
);
}
const
multiLoginError2
=
Cookies
.
get
(
"MultiLoginError2"
);
if
(
multiLoginError2
)
{
if
(
multiLoginError2
)
{
const
infos
=
JSON
.
parse
(
multiLoginError2
);
const
infos
=
JSON
.
parse
(
multiLoginError2
)
Cookies
.
remove
(
"MultiLoginError2"
);
Cookies
.
remove
(
'MultiLoginError2'
)
const
content
=
infos
const
content
=
infos
.
map
(
info
=>
buildMultiLoginErrorItem
(
info
)).
join
(
'</br>'
)
.
map
((
info
)
=>
buildMultiLoginErrorItem
(
info
))
let
msgContent
=
'<strong>'
+
i18n
.
t
(
'multi_login_lang.confirm_title'
)
+
'</strong>'
.
join
(
"</br>"
);
msgContent
+=
content
+
'<p>'
+
i18n
.
t
(
'multi_login_lang.confirm'
)
+
'</p>'
let
msgContent
=
"<strong>"
+
i18n
.
t
(
"multi_login_lang.confirm_title"
)
+
"</strong>"
;
msgContent
+=
content
+
"<p>"
+
i18n
.
t
(
"multi_login_lang.confirm"
)
+
"</p>"
;
$confirm
(
msgContent
,
()
=>
seize
(
infos
[
0
]),
{
$confirm
(
msgContent
,
()
=>
seize
(
infos
[
0
]),
{
dangerouslyUseHTMLString
:
true
,
dangerouslyUseHTMLString
:
true
})
;
})
}
}
}
;
}
const
seize
=
(
model
)
=>
{
const
seize
=
model
=>
{
const
loadingInstance
=
Loading
.
service
({})
;
const
loadingInstance
=
Loading
.
service
({})
const
token
=
model
.
token
;
const
token
=
model
.
token
const
param
=
{
const
param
=
{
token
,
token
}
;
}
seizeLogin
(
param
).
then
(
(
res
)
=>
{
seizeLogin
(
param
).
then
(
res
=>
{
const
resultToken
=
res
.
data
.
token
;
const
resultToken
=
res
.
data
.
token
store
.
dispatch
(
"user/refreshToken"
,
resultToken
);
store
.
dispatch
(
'user/refreshToken'
,
resultToken
)
router
.
push
(
"/"
);
router
.
push
(
'/'
)
loadingInstance
.
close
()
;
loadingInstance
.
close
()
})
;
})
}
;
}
const
buildMultiLoginErrorItem
=
(
info
)
=>
{
const
buildMultiLoginErrorItem
=
(
info
)
=>
{
if
(
!
info
)
return
null
;
if
(
!
info
)
return
null
const
ip
=
i18n
.
t
(
"multi_login_lang.ip"
);
const
ip
=
i18n
.
t
(
'multi_login_lang.ip'
)
const
time
=
i18n
.
t
(
"multi_login_lang.time"
);
const
time
=
i18n
.
t
(
'multi_login_lang.time'
)
return
(
return
'<p>'
+
ip
+
': '
+
info
.
ip
+
', '
+
time
+
': '
+
new
Date
(
info
.
loginTime
).
format
(
'yyyy-MM-dd hh:mm:ss'
)
+
'</p>'
"<p>"
+
}
ip
+
": "
+
info
.
ip
+
", "
+
time
+
": "
+
new
Date
(
info
.
loginTime
).
format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"</p>"
);
};
src/views/chart/components/dragItem/QuotaExtItem.vue
查看文件 @
b07786d0
...
@@ -449,7 +449,7 @@ export default {
...
@@ -449,7 +449,7 @@ export default {
valueFormatter
()
{
valueFormatter
()
{
this
.
item
.
index
=
this
.
index
this
.
item
.
index
=
this
.
index
this
.
item
.
formatterType
=
'quota'
this
.
item
.
formatterType
=
'quota
Ext
'
this
.
$emit
(
'valueFormatter'
,
this
.
item
)
this
.
$emit
(
'valueFormatter'
,
this
.
item
)
}
}
}
}
...
...
src/views/chart/components/filter/QuotaFilterEditor.vue
查看文件 @
b07786d0
...
@@ -117,6 +117,13 @@ export default {
...
@@ -117,6 +117,13 @@ export default {
value
:
'ge'
,
value
:
'ge'
,
label
:
this
.
$t
(
'chart.filter_ge'
)
label
:
this
.
$t
(
'chart.filter_ge'
)
}]
}]
},
{
label
:
''
,
options
:
[{
value
:
'not_null'
,
label
:
this
.
$t
(
'chart.filter_not_null'
)
}]
}],
}],
logic
:
''
logic
:
''
}
}
...
...
src/views/chart/components/filter/ResultFilterEditor.vue
查看文件 @
b07786d0
...
@@ -194,6 +194,13 @@ export default {
...
@@ -194,6 +194,13 @@ export default {
value
:
'ge'
,
value
:
'ge'
,
label
:
this
.
$t
(
'chart.filter_ge'
)
label
:
this
.
$t
(
'chart.filter_ge'
)
}]
}]
},
{
label
:
''
,
options
:
[{
value
:
'not_null'
,
label
:
this
.
$t
(
'chart.filter_not_null'
)
}]
}
}
],
],
valueOptions
:
[
valueOptions
:
[
...
@@ -226,6 +233,13 @@ export default {
...
@@ -226,6 +233,13 @@ export default {
value
:
'ge'
,
value
:
'ge'
,
label
:
this
.
$t
(
'chart.filter_ge'
)
label
:
this
.
$t
(
'chart.filter_ge'
)
}]
}]
},
{
label
:
''
,
options
:
[{
value
:
'not_null'
,
label
:
this
.
$t
(
'chart.filter_not_null'
)
}]
}
}
],
],
options
:
[],
options
:
[],
...
...
src/views/chart/view/ChartEdit.vue
查看文件 @
b07786d0
...
@@ -473,7 +473,8 @@
...
@@ -473,7 +473,8 @@
<plugin-com
<plugin-com
v-if=
"view.isPlugin"
v-if=
"view.isPlugin"
:component-name=
"view.type + '-data'"
:component-name=
"view.type + '-data'"
:obj=
"{view, param, chart, dimensionData, quotaData}"
:obj=
"{view, param, chart, dimension, dimensionData, quota, quotaData}"
:bus=
"bus"
/>
/>
<div
v-else
>
<div
v-else
>
...
@@ -819,6 +820,7 @@
...
@@ -819,6 +820,7 @@
@
editItemFilter=
"showQuotaEditFilter"
@
editItemFilter=
"showQuotaEditFilter"
@
onNameEdit=
"showRename"
@
onNameEdit=
"showRename"
@
editItemCompare=
"showQuotaEditCompare"
@
editItemCompare=
"showQuotaEditCompare"
@
valueFormatter=
"valueFormatter"
/>
/>
</transition-group>
</transition-group>
</draggable>
</draggable>
...
@@ -1795,7 +1797,7 @@ export default {
...
@@ -1795,7 +1797,7 @@ export default {
DrillPath
,
DrillPath
,
PluginCom
,
PluginCom
,
MapMapping
,
MapMapping
,
MarkMapDataEditor
,
MarkMapDataEditor
},
},
props
:
{
props
:
{
param
:
{
param
:
{
...
@@ -1815,6 +1817,7 @@ export default {
...
@@ -1815,6 +1817,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
bus
:
bus
,
positionActiveNames
:
'positionAdjust'
,
positionActiveNames
:
'positionAdjust'
,
loading
:
false
,
loading
:
false
,
table
:
{},
table
:
{},
...
@@ -2954,7 +2957,7 @@ export default {
...
@@ -2954,7 +2957,7 @@ export default {
// 更换数据集
// 更换数据集
changeChart
()
{
changeChart
()
{
const
optType
=
this
.
view
.
tableId
===
this
.
changeTable
.
id
&&
this
.
view
.
dataFrom
!==
'template'
?
'same'
:
'change'
const
optType
=
this
.
view
.
tableId
===
this
.
changeTable
.
id
&&
this
.
view
.
dataFrom
!==
'template'
?
'same'
:
'change'
// 更换数据集后清空视图字段,并重新请求数据;否则没有操作
// 更换数据集后清空视图字段,并重新请求数据;否则没有操作
if
(
optType
===
'change'
)
{
if
(
optType
===
'change'
)
{
this
.
view
.
dataFrom
=
'dataset'
this
.
view
.
dataFrom
=
'dataset'
...
...
src/views/chart/view/PositionAdjust.vue
查看文件 @
b07786d0
...
@@ -81,7 +81,7 @@ export default {
...
@@ -81,7 +81,7 @@ export default {
props
:
{},
props
:
{},
data
()
{
data
()
{
return
{
return
{
maxHeight
:
2
000
,
maxHeight
:
10
000
,
maxTop
:
20000
maxTop
:
20000
}
}
},
},
...
...
src/views/chart/view/TitleRemark.vue
查看文件 @
b07786d0
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<div
<div
class=
"remark-style"
class=
"remark-style"
:style=
"
{backgroundColor:remarkCfg.bgFill}"
:style=
"
{backgroundColor:remarkCfg.bgFill}"
v-html="
remarkCfg.content
"
v-html="
$xss(remarkCfg.content)
"
/>
/>
<i
<i
slot=
"reference"
slot=
"reference"
...
...
src/views/dataset/common/DatasetChartDetail.vue
查看文件 @
b07786d0
...
@@ -21,8 +21,8 @@
...
@@ -21,8 +21,8 @@
<el-col
class=
"info-item"
>
<el-col
class=
"info-item"
>
<p
class=
"info-title"
>
{{
$t
(
'chart.chart_type'
)
}}
</p>
<p
class=
"info-title"
>
{{
$t
(
'chart.chart_type'
)
}}
</p>
<svg-icon
<svg-icon
v-if=
"
detail.chart.type"
:icon-class=
"detail.chart.isPlugin && detail.chart.type && detail.chart.type !== 'buddle-map' ? ('/api/pluginCommon/staticInfo/' + detail.chart.type + '/svg') :
detail.chart.type"
:icon-class=
"detail.chart.type
"
class=
"chart-icon
"
/>
/>
</el-col>
</el-col>
<el-col
class=
"info-item"
>
<el-col
class=
"info-item"
>
...
...
src/views/dataset/data/components/LazyTree.vue
查看文件 @
b07786d0
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
<span>
<span>
<span
<span
style=
"margin-left: 6px"
style=
"margin-left: 6px"
v-html=
"
data.name
"
v-html=
"
$xss(data.name)
"
/>
/>
</span>
</span>
<span
<span
...
...
src/views/dataset/group/GroupMoveSelector.vue
查看文件 @
b07786d0
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
text-overflow: ellipsis;
text-overflow: ellipsis;
"
"
:title=
"data.name"
:title=
"data.name"
v-html=
"
highlights(data.name
)"
v-html=
"
$xss(highlights(data.name)
)"
/>
/>
</span>
</span>
</span>
</span>
...
...
src/views/login/index.vue
查看文件 @
b07786d0
...
@@ -202,7 +202,7 @@
...
@@ -202,7 +202,7 @@
<div
<div
v-if=
"showFoot"
v-if=
"showFoot"
class=
"dynamic-login-foot"
class=
"dynamic-login-foot"
v-html=
"
footContent
"
v-html=
"
$xss(footContent)
"
/>
/>
</div>
</div>
</
template
>
</
template
>
...
...
src/views/panel/export/PDFPreExport.vue
查看文件 @
b07786d0
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
<div
<div
class=
"export_body_inner_class"
class=
"export_body_inner_class"
:style=
"templateHtmlStyle"
:style=
"templateHtmlStyle"
v-html=
"
templateContentChange
"
v-html=
"
$xss(templateContentChange)
"
/>
/>
</div>
</div>
</el-row>
</el-row>
...
...
src/views/panel/list/PanelList.vue
查看文件 @
b07786d0
...
@@ -670,7 +670,10 @@ export default {
...
@@ -670,7 +670,10 @@ export default {
if
(
this
.
editPanel
.
optType
===
'toDefaultPanel'
)
{
if
(
this
.
editPanel
.
optType
===
'toDefaultPanel'
)
{
this
.
defaultTree
(
false
)
this
.
defaultTree
(
false
)
}
}
updateCacheTree
(
this
.
editPanel
.
optType
,
'panel-main-tree'
,
panelInfo
,
this
.
tData
)
updateCacheTree
(
this
.
editPanel
.
optType
,
panelInfo
.
panelType
===
'system'
?
'panel-default-tree'
:
'panel-main-tree'
,
panelInfo
,
panelInfo
.
panelType
===
'system'
?
this
.
defaultData
:
this
.
tData
)
if
(
this
.
editPanel
.
optType
===
'rename'
&&
panelInfo
.
id
===
this
.
$store
.
state
.
panel
.
panelInfo
.
id
)
{
if
(
this
.
editPanel
.
optType
===
'rename'
&&
panelInfo
.
id
===
this
.
$store
.
state
.
panel
.
panelInfo
.
id
)
{
this
.
$store
.
state
.
panel
.
panelInfo
.
name
=
panelInfo
.
name
this
.
$store
.
state
.
panel
.
panelInfo
.
name
=
panelInfo
.
name
}
}
...
@@ -850,7 +853,7 @@ export default {
...
@@ -850,7 +853,7 @@ export default {
delete
(
data
)
{
delete
(
data
)
{
const
params
=
{
const
params
=
{
title
:
data
.
nodeType
===
'folder'
?
'commons.delete_this_folder'
:
'commons.delete_this_dashboard'
,
title
:
data
.
nodeType
===
'folder'
?
'commons.delete_this_folder'
:
'commons.delete_this_dashboard'
,
type
:
'danger'
,
type
:
'danger'
,
cb
:
()
=>
{
cb
:
()
=>
{
delGroup
(
data
.
id
).
then
((
response
)
=>
{
delGroup
(
data
.
id
).
then
((
response
)
=>
{
...
...
src/views/system/user/index.vue
查看文件 @
b07786d0
...
@@ -202,7 +202,7 @@
...
@@ -202,7 +202,7 @@
<!-- //
{{}}
会将数据解释为普通文本,而非 HTML 代码。 -->
<!-- //
{{}}
会将数据解释为普通文本,而非 HTML 代码。 -->
<div
<div
slot=
"content"
slot=
"content"
v-html=
"
filterRoles(scope.row.roles
)"
v-html=
"
$xss(filterRoles(scope.row.roles)
)"
/>
/>
<div
class=
"de-one-line"
>
{{
filterRoles
(
scope
.
row
.
roles
)
}}
</div>
<div
class=
"de-one-line"
>
{{
filterRoles
(
scope
.
row
.
roles
)
}}
</div>
</el-tooltip>
</el-tooltip>
...
...
src/views/wizard/WizardCard.vue
查看文件 @
b07786d0
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
{{
details
.
head
}}
{{
details
.
head
}}
</el-row>
</el-row>
<el-row
class=
"card_content"
>
<el-row
class=
"card_content"
>
<span
v-html=
"
details.content
"
/>
<span
v-html=
"
$xss(details.content)
"
/>
</el-row>
</el-row>
<el-row
class=
"card_bottom"
>
<el-row
class=
"card_bottom"
>
{{
$t
(
'wizard.click_show'
)
}}
{{
$t
(
'wizard.click_show'
)
}}
...
...
src/views/wizard/WizardCardEnterprise.vue
查看文件 @
b07786d0
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
{{
details
.
head
}}
{{
details
.
head
}}
</el-row>
</el-row>
<el-row
class=
"card_content"
>
<el-row
class=
"card_content"
>
<span
v-html=
"
details.content
"
/>
<span
v-html=
"
$xss(details.content)
"
/>
</el-row>
</el-row>
<el-row
class=
"card_bottom"
>
<el-row
class=
"card_bottom"
>
{{
$t
(
'wizard.apply'
)
}}
{{
$t
(
'wizard.apply'
)
}}
...
...
src/views/wizard/details/CardDetail.vue
查看文件 @
b07786d0
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<span>
{{
details
.
head
}}
</span>
<span>
{{
details
.
head
}}
</span>
</el-row>
</el-row>
<el-row
class=
"content"
>
<el-row
class=
"content"
>
<span
v-html=
"
details.content
"
/>
<span
v-html=
"
$xss(details.content)
"
/>
</el-row>
</el-row>
<el-row
class=
"bottom"
>
<el-row
class=
"bottom"
>
<span
class=
"span-box"
>
{{
details
.
bottom
}}
</span>
<span
class=
"span-box"
>
{{
details
.
bottom
}}
</span>
...
...
src/views/wizard/details/LatestDevelopments.vue
查看文件 @
b07786d0
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<span>
{{
details
.
head
}}
</span>
<span>
{{
details
.
head
}}
</span>
</el-row>
</el-row>
<el-row
class=
"content"
>
<el-row
class=
"content"
>
<span
v-html=
"
details.content
"
/>
<span
v-html=
"
$xss(details.content)
"
/>
</el-row>
</el-row>
<el-row
class=
"bottom"
>
<el-row
class=
"bottom"
>
<span
class=
"span-box"
>
{{
details
.
bottom
}}
</span>
<span
class=
"span-box"
>
{{
details
.
bottom
}}
</span>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论