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'); | ... | ... |