Commit 1a5187744abd884d0548733a5c7c8db2062ebb94
Merge branch 'perf/main_dev' of http://git.yunteng.com/yunteng/thingskit-scada into fix/zfl
Showing
8 changed files
with
49 additions
and
38 deletions
... | ... | @@ -99,7 +99,7 @@ |
99 | 99 | |
100 | 100 | .first-text-animation-container svg { |
101 | 101 | display: block; |
102 | - font-size: 120px; | |
102 | + font-size: 80px; | |
103 | 103 | |
104 | 104 | /* width: 100vw; |
105 | 105 | height: 100vh; */ |
... | ... | @@ -271,9 +271,9 @@ |
271 | 271 | <body class="geEditor"> |
272 | 272 | <div id="geInfo"> |
273 | 273 | <div class="first-text-animation-container"> |
274 | - <svg id="first-text-animation" viewBox="0 0 960 300"> | |
274 | + <svg id="first-text-animation" viewBox="0 0 960 100"> | |
275 | 275 | <symbol id="first-text-animation-text"> |
276 | - <text text-anchor="middle" x="50%" y="80%"></text> | |
276 | + <text text-anchor="middle" x="50%" y="80%">Scada</text> | |
277 | 277 | </symbol> |
278 | 278 | <g class="g-ants"> |
279 | 279 | <use xlink:href="#first-text-animation-text" class="text-copy"></use> | ... | ... |
... | ... | @@ -2069,11 +2069,18 @@ App.prototype.updateDocumentTitle = function () { |
2069 | 2069 | |
2070 | 2070 | if (file != null) { |
2071 | 2071 | const filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename |
2072 | - title = `${filename} - ${title}` | |
2072 | + title = `${filename}` | |
2073 | 2073 | } |
2074 | 2074 | |
2075 | 2075 | if (document.title != title) |
2076 | 2076 | document.title = title |
2077 | + } else { | |
2078 | + // TODO Thingskit 设置预览模式title | |
2079 | + const file = this.getCurrentFile() | |
2080 | + if (!file) return | |
2081 | + const filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename | |
2082 | + if (document.title != filename) | |
2083 | + document.title = filename | |
2077 | 2084 | } |
2078 | 2085 | } |
2079 | 2086 | ... | ... |
... | ... | @@ -2057,7 +2057,10 @@ |
2057 | 2057 | /** |
2058 | 2058 | * Specifies the app name. Default is document.title. |
2059 | 2059 | */ |
2060 | - Editor.prototype.appName = 'draw.io'; | |
2060 | + // Editor.prototype.appName = 'draw.io'; | |
2061 | + | |
2062 | + // TODO Thingskit 隐藏title后缀 | |
2063 | + Editor.prototype.appName = ''; | |
2061 | 2064 | |
2062 | 2065 | /** |
2063 | 2066 | * TODO 创建文件时可选类型 | ... | ... |
... | ... | @@ -7821,6 +7821,7 @@ |
7821 | 7821 | */ |
7822 | 7822 | EditorUi.prototype.importFile = function (data, mimeType, dx, dy, w, h, filename, |
7823 | 7823 | done, file, crop, ignoreEmbeddedXml, evt) { |
7824 | + // TODO Thingskit 拖拽引入文件 | |
7824 | 7825 | crop = (crop != null) ? crop : true; |
7825 | 7826 | var async = false; |
7826 | 7827 | var cells = null; |
... | ... | @@ -12483,7 +12484,7 @@ |
12483 | 12484 | this.hoverIcons.update(graph.view.getState(graph.getSelectionCell())); |
12484 | 12485 | } |
12485 | 12486 | } |
12486 | - | |
12487 | + | |
12487 | 12488 | // TODO ThingsKit 移除复制来源cell的无用属性(COPY_SOURCE属性) |
12488 | 12489 | this.editor.removeSourceCellsUnlessAttrubute(cells) |
12489 | 12490 | return cells; |
... | ... | @@ -13052,8 +13053,11 @@ |
13052 | 13053 | this.defaultFilename, temp, fileHandle, desc)); |
13053 | 13054 | } |
13054 | 13055 | }); |
13055 | - | |
13056 | 13056 | if (data != null && data.length > 0) { |
13057 | + // TODO Thingskit 导入时打开本地文件不再打开新的页面与弹出提示框 | |
13058 | + fn() | |
13059 | + return | |
13060 | + | |
13057 | 13061 | if (currentFile == null || (!currentFile.isModified() && |
13058 | 13062 | (mxClient.IS_CHROMEAPP || EditorUi.isElectronApp || fileHandle != null))) { |
13059 | 13063 | fn(); | ... | ... |
... | ... | @@ -46,17 +46,21 @@ const emitData = ref<any[]>([]) |
46 | 46 | const [state] = useRuleFormItem(props, 'value', 'change', emitData) |
47 | 47 | |
48 | 48 | const getOptions = computed(() => { |
49 | - const { numberToString, fieldNames } = props | |
50 | - const { value: valueField = 'value' } = fieldNames | |
49 | + const { numberToString, fieldNames, aliasField } = props | |
50 | + const { value: valueField = 'value', label: labelField = 'label' } = fieldNames | |
51 | 51 | |
52 | 52 | const data = unref(optionsRef).reduce((prev, next: any) => { |
53 | 53 | if (next) { |
54 | 54 | const value = get(next, valueField) |
55 | 55 | |
56 | - prev.push({ | |
56 | + const options = { | |
57 | 57 | ...next, |
58 | 58 | [valueField]: numberToString ? `${value}` : value, |
59 | - } as DefaultOptionType) | |
59 | + } as DefaultOptionType | |
60 | + if (aliasField) | |
61 | + Object.assign(options, { [aliasField]: options[aliasField] || options[labelField] }) | |
62 | + | |
63 | + prev.push(options) | |
60 | 64 | } |
61 | 65 | return prev |
62 | 66 | }, [] as DefaultOptionType[]) | ... | ... |
1 | 1 | <script setup lang="ts"> |
2 | 2 | import { useIntervalFn } from '@vueuse/core' |
3 | 3 | import { ref } from 'vue' |
4 | -import { dateUtil, formatToDateTime } from '@/utils/dateUtil' | |
4 | +import { dateUtil } from '@/utils/dateUtil' | |
5 | 5 | import { DateFormatEnum } from '@/enums/timeEnum' |
6 | +import type { CreateComponentType } from '@/core/Library/types' | |
6 | 7 | |
7 | -const date = ref<string>(formatToDateTime(Date.now())) | |
8 | +defineProps<{ | |
9 | + config: CreateComponentType | |
10 | +}>() | |
11 | + | |
12 | +const getNowDate = () => `${dateUtil().format('YYYY年MM月DD日')} ${dateUtil().format(DateFormatEnum.HH_MM_SS)}` | |
13 | + | |
14 | +const date = ref<string>(getNowDate()) | |
8 | 15 | |
9 | 16 | const week = ['日', '一', '二', '三', '四', '五', '六'] |
10 | 17 | |
11 | 18 | useIntervalFn(() => { |
12 | - date.value = `${dateUtil().format(DateFormatEnum.YYYY_MM_DD)} ${dateUtil().format(DateFormatEnum.HH_MM_SS)}` | |
19 | + date.value = getNowDate() | |
13 | 20 | }, 1000) |
14 | 21 | </script> |
15 | 22 | |
16 | 23 | <template> |
17 | - <main class="w-full h-full flex flex-col justify-center items-center"> | |
18 | - <div class="text-[18px]"> | |
24 | + <main class="w-full h-full flex flex-col justify-center items-center overflow-hidden"> | |
25 | + <div class="text-1em"> | |
19 | 26 | {{ date.split(' ')?.[0] }} {{ `星期${week[dateUtil().day()]}` }} |
20 | 27 | </div> |
21 | - <div class="text-[50px] p-1"> | |
28 | + <div class="p-1 text-2em"> | |
22 | 29 | {{ date.split(' ')?.[1] }} |
23 | 30 | </div> |
24 | 31 | </main> | ... | ... |
... | ... | @@ -25,8 +25,6 @@ export const getDefaultOption = (): EChartsOption => { |
25 | 25 | }, |
26 | 26 | xAxis: { type: 'category' }, |
27 | 27 | yAxis: {}, |
28 | - // Declare several bar series, each will be mapped | |
29 | - // to a column of dataset.source by default. | |
30 | 28 | series: [ |
31 | 29 | { type: 'line' }, |
32 | 30 | ], | ... | ... |
1 | 1 | <script lang="ts" setup> |
2 | 2 | import { computed, onMounted, onUnmounted, ref, unref } from 'vue' |
3 | -import type { DatasetComponentOption, ECharts, EChartsOption, SeriesOption, XAXisComponentOption } from 'echarts' | |
3 | +import type { DatasetComponentOption, ECharts, EChartsOption } from 'echarts' | |
4 | 4 | import { init } from 'echarts' |
5 | 5 | import { getDefaultOption } from './index.config' |
6 | 6 | import type { CreateComponentType, RenderComponentExposeType } from '@/core/Library/types' |
... | ... | @@ -56,16 +56,11 @@ const handlerTimeSeriesData = (commandSource: CommandSource, message: Subscripti |
56 | 56 | const { deviceName } = deviceInfo || {} |
57 | 57 | const { ts, latestValue } = useLatestMessageValue(message, attr) |
58 | 58 | const option = unref(chartInstance)?.getOption() as EChartsOption |
59 | - const oldDataset = (option.dataset as DatasetComponentOption[])?.[0].source | |
60 | - // const xAxisData = ((option.xAxis as XAXisComponentOption[])?.[0] as { data: string[] }).data | |
61 | - // const seriesData = ((option.series as SeriesOption[])?.[0].data) as SeriesOption[] | |
62 | - // console.log(option) | |
63 | - // oldDataset. | |
64 | - // xAxisData.push(formatToDateTime(ts)) | |
65 | - // seriesData.push({ | |
66 | - // name: attrInfo.name, | |
67 | - // data: [], | |
68 | - // }) | |
59 | + const oldDataset = (option.dataset as DatasetComponentOption[])?.[0].source as Recordable[] | |
60 | + oldDataset.push({ | |
61 | + ts: formatToDateTime(ts), | |
62 | + [attr]: latestValue, | |
63 | + }) | |
69 | 64 | |
70 | 65 | unref(chartInstance)?.setOption({ |
71 | 66 | title: { |
... | ... | @@ -73,15 +68,8 @@ const handlerTimeSeriesData = (commandSource: CommandSource, message: Subscripti |
73 | 68 | }, |
74 | 69 | dataset: { |
75 | 70 | dimensions: ['ts', attr], |
76 | - source: [ | |
77 | - { ts, [attr]: latestValue }, | |
78 | - ], | |
71 | + source: sliceData(oldDataset), | |
79 | 72 | }, |
80 | - // legend: { | |
81 | - // data: [attrInfo.name], | |
82 | - // }, | |
83 | - // xAxis: { data: sliceData(xAxisData) }, | |
84 | - // series: { data: sliceData(seriesData) }, | |
85 | 73 | } as EChartsOption) |
86 | 74 | } |
87 | 75 | ... | ... |