Merge branch 'main' of github.com:dataease/dataease into main
This commit is contained in:
commit
70898bddb8
@ -59,8 +59,13 @@ public class AuthUserServiceImpl implements AuthUserService {
|
||||
@Cacheable(value = AuthConstants.USER_PERMISSION_CACHE_NAME, key = "'user' + #userId" )
|
||||
@Override
|
||||
public List<String> permissions(Long userId){
|
||||
// 用户登录获取菜单权限时同时更新插件菜单表
|
||||
dynamicMenuService.syncPluginMenu();
|
||||
try {
|
||||
// 用户登录获取菜单权限时同时更新插件菜单表
|
||||
dynamicMenuService.syncPluginMenu();
|
||||
}catch (Exception e){
|
||||
LogUtil.error(e);
|
||||
//ignore
|
||||
}
|
||||
List<String> permissions;
|
||||
SysUser sysUser = sysUserMapper.selectByPrimaryKey(userId);
|
||||
if(sysUser.getIsAdmin()!=null&&sysUser.getIsAdmin()){
|
||||
|
||||
@ -19,6 +19,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
@ -69,6 +70,7 @@ public class PanelGroupService {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public PanelGroup saveOrUpdate(PanelGroupRequest request) {
|
||||
String panelId = request.getId();
|
||||
if (StringUtils.isEmpty(panelId)) {
|
||||
@ -90,6 +92,7 @@ public class PanelGroupService {
|
||||
newDefaultPanel.setPid(PanelConstants.PANEL_GATHER_DEFAULT_PANEL);
|
||||
newDefaultPanel.setLevel(0);
|
||||
newDefaultPanel.setSource(request.getId());
|
||||
newDefaultPanel.setCreateBy(AuthUtils.getUser().getUsername());
|
||||
checkPanelName(newDefaultPanel.getName(), newDefaultPanel.getPid(), PanelConstants.OPT_TYPE_INSERT, newDefaultPanel.getId());
|
||||
panelGroupMapper.insertSelective(newDefaultPanel);
|
||||
} else {
|
||||
@ -105,6 +108,9 @@ public class PanelGroupService {
|
||||
authRequest.setId(panelId);
|
||||
authRequest.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
|
||||
List<PanelGroupDTO> panelGroupDTOList = extPanelGroupMapper.panelGroupList(authRequest);
|
||||
if(CollectionUtils.isNotEmpty(panelGroupDTOList)){
|
||||
DataEaseException.throwException("未查询到用户对应的资源权限,请尝试刷新重新保存");
|
||||
}
|
||||
|
||||
return panelGroupDTOList.get(0);
|
||||
}
|
||||
|
||||
@ -195,6 +195,9 @@ module.exports = {
|
||||
'object-curly-spacing': [2, 'always', {
|
||||
objectsInObjects: false
|
||||
}],
|
||||
'array-bracket-spacing': [2, 'never']
|
||||
'array-bracket-spacing': [2, 'never'],
|
||||
"vue/no-use-v-if-with-v-for": ["error", {
|
||||
"allowUsingIterationVar": true
|
||||
}]
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,14 +20,14 @@
|
||||
@mouseleave="leave"
|
||||
>
|
||||
<div
|
||||
v-for="(handle, index) in actualHandles"
|
||||
:key="index"
|
||||
:class="[classNameHandle, classNameHandle + '-' + handle]"
|
||||
:style="handleStyle(handle, index)"
|
||||
@mousedown.stop.prevent="handleDown(handle, $event)"
|
||||
@touchstart.stop.prevent="handleTouchDown(handle, $event)"
|
||||
v-for="(handlei, indexi) in actualHandles"
|
||||
:key="indexi"
|
||||
:class="[classNameHandle, classNameHandle + '-' + handlei]"
|
||||
:style="handleStyle(handlei, indexi)"
|
||||
@mousedown.stop.prevent="handleDown(handlei, $event)"
|
||||
@touchstart.stop.prevent="handleTouchDown(handlei, $event)"
|
||||
>
|
||||
<slot :name="handle" />
|
||||
<slot :name="handlei" />
|
||||
</div>
|
||||
<slot />
|
||||
</div>
|
||||
@ -282,14 +282,17 @@ export default {
|
||||
type: String,
|
||||
default: 'mouseOn'
|
||||
},
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
element: {
|
||||
require: true,
|
||||
type: Object
|
||||
},
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
defaultStyle: {
|
||||
require: true,
|
||||
type: Object
|
||||
},
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
index: {
|
||||
require: true,
|
||||
type: [Number, String]
|
||||
@ -299,6 +302,7 @@ export default {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
changeStyle: {
|
||||
require: true,
|
||||
type: Object
|
||||
@ -911,6 +915,7 @@ export default {
|
||||
},
|
||||
// 外部传参改动x
|
||||
moveHorizontally(val) {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const [deltaX, _] = snapToGrid(this.grid, val, this.top, this.scale)
|
||||
const left = restrictToBounds(deltaX, this.bounds.minLeft, this.bounds.maxLeft)
|
||||
this.left = left
|
||||
@ -918,6 +923,7 @@ export default {
|
||||
},
|
||||
// 外部传参改动y
|
||||
moveVertically(val) {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const [_, deltaY] = snapToGrid(this.grid, this.left, val, this.scale)
|
||||
const top = restrictToBounds(deltaY, this.bounds.minTop, this.bounds.maxTop)
|
||||
this.top = top
|
||||
@ -926,6 +932,7 @@ export default {
|
||||
// 控制柄移动
|
||||
handleResize(e) {
|
||||
const handle = this.handle
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const scaleRatio = this.scaleRatio
|
||||
const { TL, TR, BL, BR } = this
|
||||
let { x: mouseX, y: mouseY } = this.getMouseCoordinate(e)
|
||||
@ -1085,6 +1092,7 @@ export default {
|
||||
changeWidth(val) {
|
||||
// console.log('parentWidth', this.parentWidth)
|
||||
// console.log('parentHeight', this.parentHeight)
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const [newWidth, _] = snapToGrid(this.grid, val, 0, this.scale)
|
||||
// const right = restrictToBounds(this.parentWidth - newWidth - this.left, this.bounds.minRight, this.bounds.maxRight)
|
||||
// private 将 this.bounds.minRight 设置为0
|
||||
@ -1102,6 +1110,7 @@ export default {
|
||||
this.height = height
|
||||
},
|
||||
changeHeight(val) {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const [_, newHeight] = snapToGrid(this.grid, 0, val, this.scale)
|
||||
// const bottom = restrictToBounds(this.parentHeight - newHeight - this.top, this.bounds.minBottom, this.bounds.maxBottom)
|
||||
// private 将 this.bounds.minBottom 设置为0
|
||||
@ -1418,6 +1427,7 @@ export default {
|
||||
},
|
||||
// 修复 正则获取left与top
|
||||
formatTransformVal(string) {
|
||||
// eslint-disable-next-line prefer-const
|
||||
let [left, top, rotate = 0] = string.match(/[\d|\.]+/g)
|
||||
if (top === undefined) top = 0
|
||||
return [Number(left), Number(top), rotate]
|
||||
|
||||
@ -14,7 +14,9 @@ export default {
|
||||
components: { DeComplexOperator },
|
||||
// mixins: [mixins],
|
||||
props: {
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
field: String,
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
label: String,
|
||||
defaultOperator: {
|
||||
type: String,
|
||||
|
||||
@ -30,8 +30,11 @@ export default {
|
||||
event: 'change'
|
||||
},
|
||||
props: {
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
label: String,
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
operator: String,
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
operators: Array
|
||||
},
|
||||
data() {
|
||||
|
||||
@ -14,13 +14,16 @@
|
||||
export default {
|
||||
props: {
|
||||
start: {
|
||||
type: Object
|
||||
type: Object,
|
||||
default: null
|
||||
},
|
||||
width: {
|
||||
type: Number
|
||||
type: Number,
|
||||
default: null
|
||||
},
|
||||
height: {
|
||||
type: Number
|
||||
type: Number,
|
||||
default: null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
|
||||
export default {
|
||||
props: {
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
matrixStyle: {
|
||||
type: Object
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@ export default {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
element: {
|
||||
type: Object
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
propValue: {
|
||||
type: String,
|
||||
require: true
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
element: {
|
||||
type: Object
|
||||
}
|
||||
|
||||
@ -25,10 +25,12 @@ import { keycodes } from '@/components/canvas/utils/shortcutKey.js'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
propValue: {
|
||||
type: String,
|
||||
require: true
|
||||
},
|
||||
// eslint-disable-next-line vue/require-default-prop
|
||||
element: {
|
||||
type: Object
|
||||
},
|
||||
@ -68,17 +70,17 @@ export default {
|
||||
},
|
||||
|
||||
handleKeydown(e) {
|
||||
if (e.keyCode == this.ctrlKey) {
|
||||
if (e.keyCode === this.ctrlKey) {
|
||||
this.isCtrlDown = true
|
||||
} else if (this.isCtrlDown && this.canEdit && keycodes.includes(e.keyCode)) {
|
||||
e.stopPropagation()
|
||||
} else if (e.keyCode == 46) { // deleteKey
|
||||
} else if (e.keyCode === 46) { // deleteKey
|
||||
e.stopPropagation()
|
||||
}
|
||||
},
|
||||
|
||||
handleKeyup(e) {
|
||||
if (e.keyCode == this.ctrlKey) {
|
||||
if (e.keyCode === this.ctrlKey) {
|
||||
this.isCtrlDown = false
|
||||
}
|
||||
},
|
||||
|
||||
@ -38,6 +38,7 @@ import generateID from '@/utils/generateID'
|
||||
import { listenGlobalKeyDown } from '@/utils/shortcutKey'
|
||||
|
||||
export default {
|
||||
// eslint-disable-next-line vue/no-unused-components
|
||||
components: { Editor, ComponentList, AttrList, AnimationList, EventList, Toolbar },
|
||||
data() {
|
||||
return {
|
||||
@ -71,6 +72,7 @@ export default {
|
||||
resetID(data) {
|
||||
if (data) {
|
||||
data.forEach(item => {
|
||||
// eslint-disable-next-line no-undef
|
||||
item.type !== 'custom' && (item.id = uuid.v1())
|
||||
})
|
||||
}
|
||||
@ -85,7 +87,7 @@ export default {
|
||||
let component
|
||||
const id = e.dataTransfer.getData('componentId')
|
||||
componentList.forEach(componentTemp => {
|
||||
if (id == componentTemp.id) {
|
||||
if (id === componentTemp.id) {
|
||||
component = deepCopy(componentTemp)
|
||||
}
|
||||
})
|
||||
@ -112,7 +114,7 @@ export default {
|
||||
}
|
||||
|
||||
// 0 左击 1 滚轮 2 右击
|
||||
if (e.button != 2) {
|
||||
if (e.button !== 2) {
|
||||
this.$store.commit('hideContextMenu')
|
||||
}
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ export default {
|
||||
batchDeleteComponent({ componentData }, deleteData) {
|
||||
deleteData.forEach(component => {
|
||||
for (let i = 0, len = componentData.length; i < len; i++) {
|
||||
if (component.id == componentData[i].id) {
|
||||
if (component.id === componentData[i].id) {
|
||||
componentData.splice(i, 1)
|
||||
break
|
||||
}
|
||||
|
||||
@ -56,9 +56,9 @@ let isCtrlDown = false
|
||||
export function listenGlobalKeyDown() {
|
||||
window.onkeydown = (e) => {
|
||||
const { curComponent } = store.state
|
||||
if (e.keyCode == ctrlKey) {
|
||||
if (e.keyCode === ctrlKey) {
|
||||
isCtrlDown = true
|
||||
} else if (e.keyCode == deleteKey && curComponent) {
|
||||
} else if (e.keyCode === deleteKey && curComponent) {
|
||||
store.commit('deleteComponent')
|
||||
store.commit('recordSnapshot')
|
||||
} else if (isCtrlDown) {
|
||||
@ -73,7 +73,7 @@ export function listenGlobalKeyDown() {
|
||||
}
|
||||
|
||||
window.onkeyup = (e) => {
|
||||
if (e.keyCode == ctrlKey) {
|
||||
if (e.keyCode === ctrlKey) {
|
||||
isCtrlDown = false
|
||||
}
|
||||
}
|
||||
@ -109,7 +109,7 @@ function compose() {
|
||||
|
||||
function decompose() {
|
||||
const curComponent = store.state.curComponent
|
||||
if (curComponent && !curComponent.isLock && curComponent.component == 'Group') {
|
||||
if (curComponent && !curComponent.isLock && curComponent.component === 'Group') {
|
||||
store.commit('decompose')
|
||||
store.commit('recordSnapshot')
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ export function getStyle(style, filter = []) {
|
||||
// 获取一个组件旋转 rotate 后的样式
|
||||
export function getComponentRotatedStyle(style) {
|
||||
style = { ...style }
|
||||
if (style.rotate != 0) {
|
||||
if (style.rotate !== 0) {
|
||||
const newWidth = style.width * cos(style.rotate) + style.height * sin(style.rotate)
|
||||
const diffX = (style.width - newWidth) / 2 // 旋转后范围变小是正值,变大是负值
|
||||
style.left += diffX
|
||||
|
||||
@ -46,7 +46,7 @@ export default {
|
||||
setCondition() {
|
||||
const param = {
|
||||
component: this.element,
|
||||
value: [this.options.value],
|
||||
value: !this.options.value ? [] : Array.isArray(this.options.value) ? this.options.value : [this.options.value],
|
||||
operator: this.operator
|
||||
}
|
||||
this.inDraw && this.$store.commit('addViewFilter', param)
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
function checkDataPermission(el, binding, vnode) {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const dataPermission = vnode.privileges
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { value } = binding
|
||||
// // 数据授权采用并集的方式 部门 角色 用户 有一个有权限即可
|
||||
// if (value && value instanceof Array) {
|
||||
|
||||
@ -8,8 +8,7 @@ export default new Router({
|
||||
{
|
||||
path: '/',
|
||||
name: 'home',
|
||||
component: () =>
|
||||
import('../views/link/index.vue'),
|
||||
component: () => import('../views/link/index.vue'),
|
||||
meta: {
|
||||
title: '首页'
|
||||
}
|
||||
|
||||
@ -1,16 +1,15 @@
|
||||
@mixin flex-row($justify: flex-start, $align: stretch) {
|
||||
display: flex;
|
||||
@if $justify != flex-start {
|
||||
justify-content: $justify;
|
||||
}
|
||||
@if $align != stretch {
|
||||
align-items: $align;
|
||||
}
|
||||
display: flex;
|
||||
@if $justify != flex-start {
|
||||
justify-content: $justify;
|
||||
}
|
||||
|
||||
@mixin variant($color, $background-color, $border-color) {
|
||||
color: $color;
|
||||
background-color: $background-color;
|
||||
border-color: $border-color;
|
||||
@if $align != stretch {
|
||||
align-items: $align;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@mixin variant($color, $background-color, $border-color) {
|
||||
color: $color;
|
||||
background-color: $background-color;
|
||||
border-color: $border-color;
|
||||
}
|
||||
|
||||
@ -73,34 +73,32 @@ div:focus {
|
||||
}
|
||||
|
||||
.de-dialog {
|
||||
width: 30% !important;
|
||||
width: 30% !important;
|
||||
|
||||
.el-dialog__header{
|
||||
background-color: #f4f4f5;
|
||||
padding: 10px 20px !important;
|
||||
}
|
||||
.el-dialog__body{
|
||||
padding: 1px 20px !important;
|
||||
|
||||
}
|
||||
.el-dialog__header{
|
||||
background-color: #f4f4f5;
|
||||
padding: 10px 20px !important;
|
||||
}
|
||||
.el-dialog__body{
|
||||
padding: 1px 20px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.de-filter-dialog {
|
||||
min-width: 500px !important;
|
||||
width: 50% !important;
|
||||
min-width: 500px !important;
|
||||
width: 50% !important;
|
||||
|
||||
.el-dialog__header{
|
||||
// background-color: #f4f4f5;
|
||||
padding: 10px 20px !important;
|
||||
|
||||
.el-dialog__headerbtn {
|
||||
top: 15px !important;
|
||||
}
|
||||
}
|
||||
.el-dialog__body{
|
||||
padding: 1px 15px !important;
|
||||
.el-dialog__header{
|
||||
// background-color: #f4f4f5;
|
||||
padding: 10px 20px !important;
|
||||
|
||||
.el-dialog__headerbtn {
|
||||
top: 15px !important;
|
||||
}
|
||||
}
|
||||
.el-dialog__body{
|
||||
padding: 1px 15px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.de-style-dialog {
|
||||
@ -117,7 +115,6 @@ div:focus {
|
||||
}
|
||||
.el-dialog__body{
|
||||
padding: 1px 15px !important;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,7 +126,6 @@ div:focus {
|
||||
|
||||
.el-dialog__header{
|
||||
display:none!important;
|
||||
|
||||
}
|
||||
.el-dialog__body{
|
||||
padding: 0px!important;
|
||||
@ -138,79 +134,74 @@ div:focus {
|
||||
}
|
||||
|
||||
.de-search-header {
|
||||
.el-tabs__header{
|
||||
display: none !important;;
|
||||
}
|
||||
.el-tabs__header{
|
||||
display: none !important;;
|
||||
}
|
||||
}
|
||||
|
||||
.de-input{
|
||||
margin-bottom: 14px;
|
||||
margin-top: 10px;
|
||||
.el-input{
|
||||
.el-input__inner {
|
||||
line-height: 30px !important;
|
||||
height: 30px !important;
|
||||
border-right: none;
|
||||
|
||||
}
|
||||
margin-bottom: 14px;
|
||||
margin-top: 10px;
|
||||
.el-input{
|
||||
.el-input__inner {
|
||||
line-height: 30px !important;
|
||||
height: 30px !important;
|
||||
border-right: none;
|
||||
}
|
||||
.el-input__inner:focus{
|
||||
border-color: #E6E6E6 !important;
|
||||
}
|
||||
.el-input-group__append {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
}
|
||||
.el-input__inner:focus{
|
||||
border-color: #E6E6E6 !important;
|
||||
}
|
||||
.el-input-group__append {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-card-class {
|
||||
width: 100%;
|
||||
.el-card__header {
|
||||
padding: 5px 0 !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
width: 100%;
|
||||
.el-card__header {
|
||||
padding: 5px 0 !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
.el-card__body {
|
||||
padding: 10px;
|
||||
}
|
||||
.el-card__body {
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.real-input {
|
||||
|
||||
.el-input__inner {
|
||||
height: 25px !important;
|
||||
border: none !important;
|
||||
}
|
||||
.el-input__inner {
|
||||
height: 25px !important;
|
||||
border: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.de-filter-data-table {
|
||||
.el-table__body-wrapper >table>{
|
||||
tbody {
|
||||
.el-table__row {
|
||||
:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
td {
|
||||
border: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.el-table__body-wrapper >table>{
|
||||
tbody {
|
||||
.el-table__row {
|
||||
:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
td {
|
||||
border: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.de-filter-data-table::before {
|
||||
height: 0px !important;
|
||||
height: 0px !important;
|
||||
}
|
||||
|
||||
.custom-component-class {
|
||||
width: 100%;
|
||||
div.el-input-group__append {
|
||||
width: 10% !important;
|
||||
}
|
||||
div {
|
||||
width: 100% !important;
|
||||
}
|
||||
width: 100%;
|
||||
div.el-input-group__append {
|
||||
width: 10% !important;
|
||||
}
|
||||
div {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
%field-icon{
|
||||
|
||||
@ -38,8 +38,8 @@
|
||||
}
|
||||
|
||||
@mixin variant($color, $background-color, $border-color) {
|
||||
color: $color;
|
||||
background-color: $background-color;
|
||||
border-color: $border-color;
|
||||
}
|
||||
|
||||
color: $color;
|
||||
background-color: $background-color;
|
||||
border-color: $border-color;
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
transition: width 0.28s;
|
||||
// width: $sideBarWidth !important;
|
||||
background-color: $menuBg;
|
||||
// width: 260px;
|
||||
// width: 260px;
|
||||
height: $contentHeight;
|
||||
position: fixed;
|
||||
font-size: 0px;
|
||||
|
||||
@ -1,118 +1,116 @@
|
||||
.top-nav {
|
||||
// margin-left: $sideBarWidth;
|
||||
width: 100%;
|
||||
// background-color: #304156;
|
||||
// background-color: $--color-primary;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1001;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #DCDFE6;
|
||||
// margin-left: $sideBarWidth;
|
||||
width: 100%;
|
||||
// background-color: #304156;
|
||||
// background-color: $--color-primary;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1001;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #DCDFE6;
|
||||
|
||||
.log {
|
||||
padding: 0 16px;
|
||||
line-height: 56px;
|
||||
height: 56px;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
// color: rgb(191, 203, 217);
|
||||
color: rgba(255,255,255,0.87);
|
||||
float: left;
|
||||
img{
|
||||
width: auto;
|
||||
max-height: 45px;
|
||||
}
|
||||
.log {
|
||||
padding: 0 16px;
|
||||
line-height: 56px;
|
||||
height: 56px;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
// color: rgb(191, 203, 217);
|
||||
color: rgba(255,255,255,0.87);
|
||||
float: left;
|
||||
img{
|
||||
width: auto;
|
||||
max-height: 45px;
|
||||
}
|
||||
.el-menu {
|
||||
float: left;
|
||||
border: none!important;
|
||||
// background-color: #304156;
|
||||
}
|
||||
.el-menu {
|
||||
float: left;
|
||||
border: none!important;
|
||||
// background-color: #304156;
|
||||
// background-color: $--color-primary;
|
||||
|
||||
.nav-item {
|
||||
display: inline-block;
|
||||
.el-menu-item:not(.is-active) {
|
||||
// color: rgb(191, 203, 217);
|
||||
color: $menuText;
|
||||
&:hover {
|
||||
background-color: $menuHover !important;
|
||||
// color: $subMenuActiveText !important;
|
||||
}
|
||||
&:focus {
|
||||
background-color: $subMenuHover !important;
|
||||
color: $subMenuActiveText !important;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
display: inline-block;
|
||||
.el-menu-item:not(.is-active) {
|
||||
// color: rgb(191, 203, 217);
|
||||
color: $menuText;
|
||||
&:hover {
|
||||
background-color: $menuHover !important;
|
||||
// color: $subMenuActiveText !important;
|
||||
}
|
||||
.is-active {
|
||||
background-color: $subMenuHover !important;
|
||||
color: $subMenuActiveText !important;
|
||||
&:focus {
|
||||
background-color: $subMenuHover !important;
|
||||
color: $subMenuActiveText !important;
|
||||
}
|
||||
|
||||
}
|
||||
.is-active {
|
||||
background-color: $subMenuHover !important;
|
||||
color: $subMenuActiveText !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right-menu {
|
||||
float: right;
|
||||
height: 56px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.right-menu-item {
|
||||
display: inline-block;
|
||||
padding: 10px 8px;
|
||||
height: 100%;
|
||||
font-size: 18px;
|
||||
// color: #5a5e66;
|
||||
color: #606266;
|
||||
vertical-align: text-bottom;
|
||||
|
||||
&.hover-effect {
|
||||
cursor: pointer;
|
||||
transition: background .3s;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(0, 0, 0, .025)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right-menu {
|
||||
float: right;
|
||||
height: 56px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.right-menu-item {
|
||||
display: inline-block;
|
||||
padding: 10px 8px;
|
||||
height: 100%;
|
||||
font-size: 18px;
|
||||
// color: #5a5e66;
|
||||
color: #606266;
|
||||
vertical-align: text-bottom;
|
||||
|
||||
&.hover-effect {
|
||||
.avatar-container {
|
||||
margin-right: 30px;
|
||||
.avatar-wrapper {
|
||||
margin-top: 5px;
|
||||
position: relative;
|
||||
.user-avatar {
|
||||
cursor: pointer;
|
||||
transition: background .3s;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(0, 0, 0, .025)
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.de-user-avatar {
|
||||
cursor: pointer;
|
||||
height: 40px;
|
||||
border-radius: 10px;
|
||||
span {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.avatar-container {
|
||||
margin-right: 30px;
|
||||
|
||||
.avatar-wrapper {
|
||||
margin-top: 5px;
|
||||
position: relative;
|
||||
|
||||
.user-avatar {
|
||||
cursor: pointer;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.de-user-avatar {
|
||||
cursor: pointer;
|
||||
height: 40px;
|
||||
border-radius: 10px;
|
||||
span {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.el-icon-caret-bottom {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: -20px;
|
||||
top: 25px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.el-icon-caret-bottom {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: -20px;
|
||||
top: 25px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -213,6 +213,7 @@ export function formatCondition(param) {
|
||||
return null
|
||||
}
|
||||
const result = { conditions: [] }
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
for (const [key, value] of Object.entries(param)) {
|
||||
result.conditions.push(value)
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ export function stackLineOption(chart_option, chart) {
|
||||
baseLineOption(chart_option, chart)
|
||||
|
||||
// ext
|
||||
chart_option.tooltip.trigger = 'axis'
|
||||
// chart_option.tooltip.trigger = 'axis'
|
||||
chart_option.series.forEach(function(s) {
|
||||
s.stack = 'stack'
|
||||
})
|
||||
|
||||
@ -9,6 +9,7 @@ export function hexColorToRGBA(hex, alpha) {
|
||||
}
|
||||
if (/^#[0-9A-F]{6}$/i.test(hex)) { // 判断传入是否为#六位十六进制数
|
||||
hex.replace(/[0-9A-F]{2}/ig, function(kw) {
|
||||
// eslint-disable-next-line no-eval
|
||||
rgb.push(eval('0x' + kw)) // 十六进制转化为十进制并存如数组
|
||||
})
|
||||
return `rgba(${rgb.join(',')},${alpha / 100})` // 输出RGB格式颜色
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { DEFAULT_PANEL_STYLE } from '@/views/panel/panel'
|
||||
import { mapState } from 'vuex'
|
||||
import { deepCopy } from '@/components/canvas/utils/utils'
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { BASE_CHART, BASE_CHART_STRING } from '@/views/chart/chart/chart'
|
||||
import { deepCopy } from '@/components/canvas/utils/utils'
|
||||
|
||||
@ -48,6 +50,7 @@ export function chartTransStr2Object(targetIn, copy) {
|
||||
}
|
||||
|
||||
export function chartTransObject2Str(targetIn, deepCopy) {
|
||||
// eslint-disable-next-line no-undef
|
||||
const target = copy === 'Y' ? deepCopy(targetIn) : targetIn
|
||||
if (target.chart) {
|
||||
if (target.chart.xaxis && typeof target.chart.xaxis !== 'string') {
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { get, post } from '@/api/panel/panel'
|
||||
export default {
|
||||
name: 'TemplateItem',
|
||||
|
||||
@ -52,6 +52,7 @@ import LazyTree from './components/LazyTree'
|
||||
|
||||
export default {
|
||||
name: 'Authority',
|
||||
// eslint-disable-next-line vue/no-unused-components
|
||||
components: { LazyTree, DeMainContainer, DeAsideContainer, DeContainer },
|
||||
props: {
|
||||
resourceId: {
|
||||
|
||||
@ -20,6 +20,7 @@ import AuthQuickConfig from './authQuickConfig'
|
||||
|
||||
export default {
|
||||
name: 'Authority',
|
||||
// eslint-disable-next-line vue/no-unused-components
|
||||
components: { DeContainer, DeMainContainer, AuthConfig, AuthQuickConfig },
|
||||
data() {
|
||||
return {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user