Showing
7 changed files
with
41 additions
and
27 deletions
... | ... | @@ -3,8 +3,11 @@ |
3 | 3 | import { DropMenu } from '/@/components/Dropdown'; |
4 | 4 | import Dropdown from '/@/components/Dropdown/src/Dropdown.vue'; |
5 | 5 | import { Tooltip } from 'ant-design-vue'; |
6 | - // import SvgIcon from '/@/components/Icon/src/SvgIcon.vue'; | |
7 | - import { isBataBoardSharePage, MoreActionEvent } from '../../config/config'; | |
6 | + import { | |
7 | + isBataBoardSharePage, | |
8 | + MoreActionEvent, | |
9 | + VisualComponentPermission, | |
10 | + } from '../../config/config'; | |
8 | 11 | import { computed } from '@vue/reactivity'; |
9 | 12 | import { usePermission } from '/@/hooks/web/usePermission'; |
10 | 13 | import { DataSource } from '/@/api/dataBoard/model'; |
... | ... | @@ -19,9 +22,9 @@ |
19 | 22 | const { hasPermission } = usePermission(); |
20 | 23 | const dropMenuList = computed<DropMenu[]>(() => { |
21 | 24 | const basicMenu: DropMenu[] = []; |
22 | - const hasUpdatePermission = hasPermission('api:yt:data_component:update:update'); | |
23 | - const hasDeletePermission = hasPermission('api:yt:data_component:delete'); | |
24 | - const hasCopyPermission = hasPermission('api:yt:dataBoardDetail:copy'); | |
25 | + const hasUpdatePermission = hasPermission(VisualComponentPermission.UPDATE); | |
26 | + const hasDeletePermission = hasPermission(VisualComponentPermission.DELETE); | |
27 | + const hasCopyPermission = hasPermission(VisualComponentPermission.COPY); | |
25 | 28 | if (hasUpdatePermission) |
26 | 29 | basicMenu.push({ |
27 | 30 | text: '编辑组件', |
... | ... | @@ -69,7 +72,6 @@ |
69 | 72 | > |
70 | 73 | <Tooltip :title="item.deviceName" placement="topLeft"> |
71 | 74 | <div class="flex p-1"> |
72 | - <!-- <SvgIcon name="" prefix="iconfont" class="!fill-emerald-400" /> --> | |
73 | 75 | <div class="truncate font-bold">{{ item.deviceRename || item.deviceName }}</div> |
74 | 76 | </div> |
75 | 77 | </Tooltip> | ... | ... |
... | ... | @@ -2,8 +2,6 @@ |
2 | 2 | import { useSlots } from 'vue'; |
3 | 3 | import { useUpdateCenter } from '../../hook/useUpdateCenter'; |
4 | 4 | import { FrontDataSourceRecord } from '../../types/type'; |
5 | - // import type { WidgetWrapperRegister } from './type'; | |
6 | - // import { DataSource } from '/@/api/dataBoard/model'; | |
7 | 5 | |
8 | 6 | const props = defineProps<{ |
9 | 7 | dataSource: FrontDataSourceRecord[]; |
... | ... | @@ -61,14 +59,14 @@ |
61 | 59 | height: 100%; |
62 | 60 | background-color: #fff; |
63 | 61 | border-radius: 3px; |
64 | - box-shadow: 0px 1px 10px 0px rgba(0, 0, 0, 0.1); | |
62 | + box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.1); | |
65 | 63 | } |
64 | + | |
66 | 65 | .widget-content { |
67 | 66 | display: flex; |
68 | 67 | flex-wrap: wrap; |
69 | 68 | justify-content: center; |
70 | 69 | align-items: center; |
71 | - | |
72 | 70 | width: 100%; |
73 | 71 | height: 100%; |
74 | 72 | } | ... | ... |
src/views/visual/board/components/WidgetWrapper/type.ts
deleted
100644 → 0
... | ... | @@ -4,7 +4,19 @@ export enum MoreActionEvent { |
4 | 4 | DELETE = 'delete', |
5 | 5 | } |
6 | 6 | |
7 | -// export enum | |
7 | +export enum VisualBoardPermission { | |
8 | + UPDATE = 'api:yt:data_board:update:update', | |
9 | + DELETE = 'api:yt:data_board:delete', | |
10 | + CREATE = '', | |
11 | + DETAIL = 'api:yt:data_component:list', | |
12 | +} | |
13 | + | |
14 | +export enum VisualComponentPermission { | |
15 | + UPDATE = 'api:yt:data_component:update:update', | |
16 | + DELETE = 'api:yt:data_component:delete', | |
17 | + COPY = 'api:yt:dataBoardDetail:copy', | |
18 | + CREATE = 'api:yt:data_component:add:post', | |
19 | +} | |
8 | 20 | |
9 | 21 | export const DEFAULT_MAX_COL = 24; |
10 | 22 | export const DEFAULT_WIDGET_WIDTH = 6; | ... | ... |
... | ... | @@ -16,6 +16,7 @@ |
16 | 16 | DEFAULT_WIDGET_WIDTH, |
17 | 17 | isBataBoardSharePage, |
18 | 18 | MoreActionEvent, |
19 | + VisualComponentPermission, | |
19 | 20 | } from '../config/config'; |
20 | 21 | import { |
21 | 22 | addDataComponent, |
... | ... | @@ -391,7 +392,7 @@ |
391 | 392 | </div> |
392 | 393 | </template> |
393 | 394 | <template #extra> |
394 | - <Authority value="api:yt:data_component:add:post"> | |
395 | + <Authority :value="VisualComponentPermission.CREATE"> | |
395 | 396 | <Button v-if="!getIsSharePage" type="primary" @click="handleOpenCreatePanel"> |
396 | 397 | 创建组件 |
397 | 398 | </Button> |
... | ... | @@ -439,7 +440,6 @@ |
439 | 440 | :data-source="item.record.dataSource" |
440 | 441 | > |
441 | 442 | <template #header> |
442 | - <!-- <div>header</div> --> | |
443 | 443 | <BaseWidgetHeader |
444 | 444 | :record="item.record.dataSource" |
445 | 445 | :id="item.record.id" |
... | ... | @@ -448,11 +448,6 @@ |
448 | 448 | > |
449 | 449 | <template #moreAction> |
450 | 450 | <Tooltip title="趋势"> |
451 | - <!-- <LineChartOutlined | |
452 | - v-if="!getIsSharePage" | |
453 | - class="cursor-pointer mx-1" | |
454 | - @click="handleOpenHistroyDataModal(item.record.dataSource)" | |
455 | - /> --> | |
456 | 451 | <img |
457 | 452 | :src="trendIcon" |
458 | 453 | v-if="!getIsSharePage" |
... | ... | @@ -494,14 +489,18 @@ |
494 | 489 | .vue-grid-item:not(.vue-grid-placeholder) { |
495 | 490 | background: #fff; |
496 | 491 | border: none !important; |
492 | + | |
497 | 493 | /* border: 1px solid black; */ |
498 | 494 | } |
495 | + | |
499 | 496 | .vue-grid-item .resizing { |
500 | 497 | opacity: 0.9; |
501 | 498 | } |
499 | + | |
502 | 500 | .vue-grid-item .static { |
503 | 501 | background: #cce; |
504 | 502 | } |
503 | + | |
505 | 504 | .vue-grid-item .text { |
506 | 505 | font-size: 24px; |
507 | 506 | text-align: center; |
... | ... | @@ -514,16 +513,20 @@ |
514 | 513 | height: 100%; |
515 | 514 | width: 100%; |
516 | 515 | } |
516 | + | |
517 | 517 | .vue-grid-item .no-drag { |
518 | 518 | height: 100%; |
519 | 519 | width: 100%; |
520 | 520 | } |
521 | + | |
521 | 522 | .vue-grid-item .minMax { |
522 | 523 | font-size: 12px; |
523 | 524 | } |
525 | + | |
524 | 526 | .vue-grid-item .add { |
525 | 527 | cursor: pointer; |
526 | 528 | } |
529 | + | |
527 | 530 | .vue-draggable-handle { |
528 | 531 | position: absolute; |
529 | 532 | width: 20px; | ... | ... |
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | import { useMessage } from '/@/hooks/web/useMessage'; |
8 | 8 | import Dropdown from '/@/components/Dropdown/src/Dropdown.vue'; |
9 | 9 | import { DropMenu } from '/@/components/Dropdown'; |
10 | - import { DATA_BOARD_SHARE_URL, MoreActionEvent } from './config/config'; | |
10 | + import { DATA_BOARD_SHARE_URL, MoreActionEvent, VisualBoardPermission } from './config/config'; | |
11 | 11 | import { useModal } from '/@/components/Modal'; |
12 | 12 | import PanelDetailModal from './components/PanelDetailModal.vue'; |
13 | 13 | import { getDataBoardList, deleteDataBoard } from '/@/api/dataBoard'; |
... | ... | @@ -90,8 +90,8 @@ |
90 | 90 | |
91 | 91 | const { hasPermission } = usePermission(); |
92 | 92 | const dropMenuList = computed<DropMenu[]>(() => { |
93 | - const hasUpdatePermission = hasPermission('api:yt:data_board:update:update'); | |
94 | - const hasDeletePermission = hasPermission('api:yt:data_board:delete'); | |
93 | + const hasUpdatePermission = hasPermission(VisualBoardPermission.UPDATE); | |
94 | + const hasDeletePermission = hasPermission(VisualBoardPermission.DELETE); | |
95 | 95 | const basicMenu: DropMenu[] = []; |
96 | 96 | if (hasUpdatePermission) |
97 | 97 | basicMenu.push({ |
... | ... | @@ -160,7 +160,7 @@ |
160 | 160 | const [registerModal, { openModal }] = useModal(); |
161 | 161 | |
162 | 162 | const handleViewBoard = (record: DataBoardRecord) => { |
163 | - const hasDetailPermission = hasPermission('api:yt:data_component:list'); | |
163 | + const hasDetailPermission = hasPermission(VisualBoardPermission.DETAIL); | |
164 | 164 | if (hasDetailPermission) { |
165 | 165 | const boardId = encode(record.id); |
166 | 166 | const boardName = encode(record.name); |
... | ... | @@ -179,8 +179,6 @@ |
179 | 179 | '.ant-spin-container' |
180 | 180 | ) as HTMLElement; |
181 | 181 | listContainerEl && |
182 | - // (listContainerEl.style.minHeight = listContainerHeight + 'px') && | |
183 | - // (listContainerEl.style.maxHeight = listContainerHeight + 'px') && | |
184 | 182 | (listContainerEl.style.height = listContainerHeight + 'px') && |
185 | 183 | (listContainerEl.style.overflowY = 'auto') && |
186 | 184 | (listContainerEl.style.overflowX = 'hidden'); | ... | ... |