Commit 0884dff38e1248078b3931d3e919070bf8cd5992

Authored by ww
1 parent d73ce170

feat: data board detail add back button

@@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@
18 DEFAULT_DATE_FORMAT, 18 DEFAULT_DATE_FORMAT,
19 fontSize, 19 fontSize,
20 } from '../../detail/config/util'; 20 } from '../../detail/config/util';
  21 + import { Tooltip } from 'ant-design-vue';
21 22
22 const props = defineProps({ 23 const props = defineProps({
23 add: { 24 add: {
@@ -90,8 +91,13 @@ @@ -90,8 +91,13 @@
90 class="text-xs text-center text-gray-400 truncate" 91 class="text-xs text-center text-gray-400 truncate"
91 :style="{ fontSize: fontSize({ radio: getRadio, basic: 12, max: 16 }) }" 92 :style="{ fontSize: fontSize({ radio: getRadio, basic: 12, max: 16 }) }"
92 > 93 >
93 - <span class="mr-2">更新时间:</span>  
94 - <span> {{ props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT) }}</span> 94 + <Tooltip
  95 + placement="topLeft"
  96 + :title="props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT)"
  97 + >
  98 + <span class="mr-2">更新时间:</span>
  99 + <span> {{ props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT) }}</span>
  100 + </Tooltip>
95 </div> 101 </div>
96 </div> 102 </div>
97 </div> 103 </div>
1 <script lang="ts" setup> 1 <script lang="ts" setup>
2 import { computed } from 'vue'; 2 import { computed } from 'vue';
3 - import { Space } from 'ant-design-vue'; 3 + import { Space, Tooltip } from 'ant-design-vue';
4 import type { DigitalDashBoardLayout, DigitalDashBoardValue } from './digitalDashBoard.config'; 4 import type { DigitalDashBoardLayout, DigitalDashBoardValue } from './digitalDashBoard.config';
5 import { dateUtil } from '/@/utils/dateUtil'; 5 import { dateUtil } from '/@/utils/dateUtil';
6 import { 6 import {
@@ -89,8 +89,13 @@ @@ -89,8 +89,13 @@
89 class="text-center mt-1 text-gray-400 text-xs truncate" 89 class="text-center mt-1 text-gray-400 text-xs truncate"
90 :style="{ fontSize: fontSize({ radio: getRadio, basic: 12, max: 16 }) }" 90 :style="{ fontSize: fontSize({ radio: getRadio, basic: 12, max: 16 }) }"
91 > 91 >
92 - <span class="mr-1">更新时间:</span>  
93 - <span>{{ props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT) }}</span> 92 + <Tooltip
  93 + placement="topLeft"
  94 + :title="props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT)"
  95 + >
  96 + <span class="mr-1">更新时间:</span>
  97 + <span>{{ props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT) }}</span>
  98 + </Tooltip>
94 </div> 99 </div>
95 </div> 100 </div>
96 <div></div> 101 <div></div>
1 <script lang="ts" setup> 1 <script lang="ts" setup>
2 - import { computed } from '@vue/reactivity';  
3 - import { Statistic } from 'ant-design-vue';  
4 - import { fontSize, RadioRecord, DEFAULT_RADIO_RECORD } from '../../detail/config/util'; 2 + import { computed } from 'vue';
  3 + import { Statistic, Tooltip } from 'ant-design-vue';
  4 + import {
  5 + fontSize,
  6 + RadioRecord,
  7 + DEFAULT_RADIO_RECORD,
  8 + DEFAULT_DATE_FORMAT,
  9 + } from '../../detail/config/util';
5 import type { TextComponentLayout, TextComponentValue } from './config'; 10 import type { TextComponentLayout, TextComponentValue } from './config';
6 import { SvgIcon } from '/@/components/Icon'; 11 import { SvgIcon } from '/@/components/Icon';
  12 + import { dateUtil } from '/@/utils/dateUtil';
7 const props = defineProps({ 13 const props = defineProps({
8 layout: { 14 layout: {
9 type: Object as PropType<TextComponentLayout>, 15 type: Object as PropType<TextComponentLayout>,
@@ -82,12 +88,18 @@ @@ -82,12 +88,18 @@
82 </div> 88 </div>
83 </div> 89 </div>
84 <div v-if="getShowUpdate" class="text-center text-xs text-gray-400 truncate"> 90 <div v-if="getShowUpdate" class="text-center text-xs text-gray-400 truncate">
85 - <span  
86 - :style="{ fontSize: fontSize({ radio: getRadio, basic: 12, max: 16 }) }"  
87 - class="truncate"  
88 - >  
89 - 更新时间: {{ props.value.updateTime }}</span 91 + <Tooltip
  92 + placement="topLeft"
  93 + :title="props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT)"
90 > 94 >
  95 + <span>更新时间:</span>
  96 + <span
  97 + :style="{ fontSize: fontSize({ radio: getRadio, basic: 12, max: 16 }) }"
  98 + class="truncate"
  99 + >
  100 + {{ props.value.updateTime || dateUtil().format(DEFAULT_DATE_FORMAT) }}
  101 + </span>
  102 + </Tooltip>
91 </div> 103 </div>
92 </div> 104 </div>
93 </template> 105 </template>
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 getDataComponent, 14 getDataComponent,
15 updateDataBoardLayout, 15 updateDataBoardLayout,
16 } from '/@/api/dataBoard'; 16 } from '/@/api/dataBoard';
17 - import { useRoute } from 'vue-router'; 17 + import { useRoute, useRouter } from 'vue-router';
18 import { computed, unref } from '@vue/reactivity'; 18 import { computed, unref } from '@vue/reactivity';
19 import { DataComponentRecord, DataSource, Layout } from '/@/api/dataBoard/model'; 19 import { DataComponentRecord, DataSource, Layout } from '/@/api/dataBoard/model';
20 import { frontComponentMap } from './config/help'; 20 import { frontComponentMap } from './config/help';
@@ -25,6 +25,8 @@ @@ -25,6 +25,8 @@
25 25
26 const ROUTE = useRoute(); 26 const ROUTE = useRoute();
27 27
  28 + const ROUTER = useRouter();
  29 +
28 const { createMessage, createConfirm } = useMessage(); 30 const { createMessage, createConfirm } = useMessage();
29 const getBoardId = computed(() => { 31 const getBoardId = computed(() => {
30 return (ROUTE.params as { id: string }).id; 32 return (ROUTE.params as { id: string }).id;
@@ -43,6 +45,10 @@ @@ -43,6 +45,10 @@
43 const defaultWidth = 6; 45 const defaultWidth = 6;
44 const defaultHeight = 6; 46 const defaultHeight = 6;
45 47
  48 + const handleBack = () => {
  49 + ROUTER.go(-1);
  50 + };
  51 +
46 function updateSize(i: string, _newH: number, _newW: number, newHPx: number, newWPx: number) { 52 function updateSize(i: string, _newH: number, _newW: number, newHPx: number, newWPx: number) {
47 newWPx = Number(newWPx); 53 newWPx = Number(newWPx);
48 newHPx = Number(newHPx); 54 newHPx = Number(newHPx);
@@ -243,7 +249,7 @@ @@ -243,7 +249,7 @@
243 249
244 <template> 250 <template>
245 <section class="bg-light-50 flex flex-col overflow-hidden h-full w-full"> 251 <section class="bg-light-50 flex flex-col overflow-hidden h-full w-full">
246 - <PageHeader title="水电表看板"> 252 + <PageHeader title="水电表看板" @back="handleBack">
247 <template #extra> 253 <template #extra>
248 <Button type="primary" @click="handleOpenCreatePanel">创建组件</Button> 254 <Button type="primary" @click="handleOpenCreatePanel">创建组件</Button>
249 </template> 255 </template>