@opentiny/vue-docs 3.17.3 → 3.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demos/apis/action-sheet.js +1 -1
- package/demos/apis/autocomplete.js +2 -2
- package/demos/apis/button-group.js +3 -0
- package/demos/apis/cascader.js +1 -1
- package/demos/apis/chart-attributes-demo.js +397 -291
- package/demos/apis/chart-autonavi-map.js +394 -296
- package/demos/apis/chart-baidu-map.js +394 -296
- package/demos/apis/chart-bar.js +394 -296
- package/demos/apis/chart-boxplot.js +394 -297
- package/demos/apis/chart-candle.js +394 -296
- package/demos/apis/chart-demo.js +397 -291
- package/demos/apis/chart-docs.js +403 -0
- package/demos/apis/chart-events.js +397 -291
- package/demos/apis/chart-funnel.js +394 -296
- package/demos/apis/chart-gauge.js +394 -296
- package/demos/apis/chart-graph.js +394 -296
- package/demos/apis/chart-heatmap.js +394 -296
- package/demos/apis/chart-histogram.js +394 -296
- package/demos/apis/chart-line.js +394 -296
- package/demos/apis/chart-liquidfill.js +394 -296
- package/demos/apis/chart-map.js +394 -296
- package/demos/apis/chart-pie.js +395 -297
- package/demos/apis/chart-process.js +28 -28
- package/demos/apis/chart-question.js +397 -291
- package/demos/apis/chart-radar.js +394 -296
- package/demos/apis/chart-ring.js +394 -296
- package/demos/apis/chart-sankey.js +394 -296
- package/demos/apis/chart-scatter.js +394 -296
- package/demos/apis/chart-sunburst.js +394 -296
- package/demos/apis/chart-tree.js +394 -296
- package/demos/apis/chart-waterfall.js +394 -296
- package/demos/apis/chart-wordcloud.js +394 -296
- package/demos/apis/chart.js +199 -81
- package/demos/apis/dialog-box.js +1 -1
- package/demos/apis/dialog-select.js +14 -0
- package/demos/apis/dropdown.js +16 -0
- package/demos/apis/file-upload.js +2 -1
- package/demos/apis/fluent-editor.js +110 -0
- package/demos/apis/form.js +1 -1
- package/demos/apis/grid.js +24 -0
- package/demos/apis/guide.js +1 -1
- package/demos/apis/input.js +15 -0
- package/demos/apis/numeric.js +6 -6
- package/demos/apis/search.js +11 -0
- package/demos/apis/switch.js +24 -0
- package/demos/apis/tabs.js +3 -5
- package/demos/apis/tree-menu.js +2 -13
- package/demos/apis/tree-select.js +192 -15
- package/demos/apis/tree.js +11 -0
- package/demos/mobile-first/app/file-upload/file-size-array.vue +19 -0
- package/demos/mobile-first/app/file-upload/file-size.vue +76 -0
- package/demos/mobile-first/app/file-upload/webdoc/file-upload.js +24 -0
- package/demos/mobile-first/app/grid/basic-usage.vue +5 -1
- package/demos/pc/app/cascader-panel/multiple-composition-api.vue +226 -0
- package/demos/pc/app/cascader-panel/multiple.spec.ts +15 -0
- package/demos/pc/app/cascader-panel/multiple.vue +234 -0
- package/demos/pc/app/cascader-panel/webdoc/cascader-panel.js +12 -0
- package/demos/pc/app/chart/webdoc/chart-docs.cn.md +126 -0
- package/demos/pc/app/chart/webdoc/chart-docs.en.md +127 -0
- package/demos/pc/app/chart/webdoc/chart-docs.js +6 -0
- package/demos/pc/app/chart/webdoc/chart-docs.json.cn.md +126 -0
- package/demos/pc/app/chart/webdoc/chart-docs.json.en.md +127 -0
- package/demos/pc/app/chart/webdoc/chart.cn.md +1 -1
- package/demos/pc/app/chart/webdoc/chart.en.md +1 -1
- package/demos/pc/app/color-picker/base.vue +1 -0
- package/demos/pc/app/dialog-box/webdoc/dialog-box.js +4 -2
- package/demos/pc/app/directives/highlight-query/avoid-composition-api.vue +52 -0
- package/demos/pc/app/directives/highlight-query/avoid.spec.js +15 -0
- package/demos/pc/app/directives/highlight-query/avoid.vue +65 -0
- package/demos/pc/app/directives/highlight-query/basic-usage-composition-api.vue +31 -0
- package/demos/pc/app/directives/highlight-query/basic-usage.spec.js +12 -0
- package/demos/pc/app/directives/highlight-query/basic-usage.vue +40 -0
- package/demos/pc/app/directives/webdoc/directives-highlight-query.cn.md +7 -0
- package/demos/pc/app/directives/webdoc/directives-highlight-query.en.md +7 -0
- package/demos/pc/app/directives/webdoc/directives-highlight-query.js +39 -0
- package/demos/pc/app/dropdown/lazy-show-popper-composition-api.vue +43 -0
- package/demos/pc/app/dropdown/lazy-show-popper.spec.ts +20 -0
- package/demos/pc/app/dropdown/lazy-show-popper.vue +47 -0
- package/demos/pc/app/dropdown/webdoc/dropdown.js +13 -0
- package/demos/pc/app/file-upload/file-size-array.vue +85 -0
- package/demos/pc/app/file-upload/file-size.vue +78 -0
- package/demos/pc/app/file-upload/webdoc/file-upload.js +24 -0
- package/demos/pc/app/form/message-type-composition-api.vue +1 -1
- package/demos/pc/app/form/message-type.vue +1 -1
- package/demos/pc/app/form/webdoc/form.js +2 -2
- package/demos/pc/app/grid/dynamically-columns/column-switching-scroll-composition-api.vue +81 -0
- package/demos/pc/app/grid/dynamically-columns/column-switching-scroll.spec.js +14 -0
- package/demos/pc/app/grid/dynamically-columns/column-switching-scroll.vue +89 -0
- package/demos/pc/app/grid/webdoc/grid-dynamically-columns.js +12 -0
- package/demos/pc/app/grid/webdoc/grid-pager.js +1 -1
- package/demos/pc/app/icon/iconGroups.js +278 -157
- package/demos/pc/app/input/basic-usage.spec.ts +1 -1
- package/demos/pc/app/input/show-tooltip-composition-api.vue +27 -0
- package/demos/pc/app/input/show-tooltip.spec.ts +10 -0
- package/demos/pc/app/input/show-tooltip.vue +34 -0
- package/demos/pc/app/input/webdoc/input.js +13 -0
- package/demos/pc/app/numeric/numeric-size-composition-api.vue +2 -0
- package/demos/pc/app/numeric/numeric-size.vue +2 -0
- package/demos/pc/app/numeric/webdoc/numeric.js +2 -2
- package/demos/pc/app/rich-text-editor/basic-usage.vue +2 -0
- package/demos/pc/app/search/slot-prefix-composition-api.vue +10 -2
- package/demos/pc/app/search/slot-prefix.spec.ts +1 -1
- package/demos/pc/app/search/slot-prefix.vue +16 -5
- package/demos/pc/app/search/webdoc/search.js +5 -4
- package/demos/pc/app/select/popup-style-position-composition-api.vue +1 -2
- package/demos/pc/app/select/popup-style-position.vue +1 -2
- package/demos/pc/app/slider/about-step-composition-api.vue +6 -0
- package/demos/pc/app/slider/about-step.vue +6 -0
- package/demos/pc/app/slider/basic-usage-composition-api.vue +6 -0
- package/demos/pc/app/slider/basic-usage.vue +6 -0
- package/demos/pc/app/slider/dynamic-disable-composition-api.vue +6 -0
- package/demos/pc/app/slider/dynamic-disable.vue +6 -0
- package/demos/pc/app/slider/format-tooltip-composition-api.vue +6 -0
- package/demos/pc/app/slider/format-tooltip.vue +6 -0
- package/demos/pc/app/slider/marks-composition-api.vue +7 -5
- package/demos/pc/app/slider/marks.vue +7 -5
- package/demos/pc/app/slider/max-min-composition-api.vue +6 -0
- package/demos/pc/app/slider/max-min.vue +6 -0
- package/demos/pc/app/slider/range-select-composition-api.vue +6 -0
- package/demos/pc/app/slider/range-select.vue +6 -0
- package/demos/pc/app/slider/shortcut-operation-composition-api.vue +6 -0
- package/demos/pc/app/slider/shortcut-operation.vue +6 -0
- package/demos/pc/app/slider/show-input-composition-api.vue +6 -0
- package/demos/pc/app/slider/show-input.vue +6 -0
- package/demos/pc/app/slider/show-tip-composition-api.vue +6 -0
- package/demos/pc/app/slider/show-tip.vue +6 -0
- package/demos/pc/app/slider/slider-event-composition-api.vue +6 -0
- package/demos/pc/app/slider/slider-event.vue +6 -0
- package/demos/pc/app/slider/slider-slot-composition-api.vue +6 -0
- package/demos/pc/app/slider/slider-slot.vue +6 -0
- package/demos/pc/app/slider/vertical-mode-composition-api.vue +6 -0
- package/demos/pc/app/slider/vertical-mode.vue +6 -0
- package/demos/pc/app/switch/custom-open-close-icon-composition-api.vue +20 -0
- package/demos/pc/app/switch/custom-open-close-icon.spec.ts +15 -0
- package/demos/pc/app/switch/custom-open-close-icon.vue +23 -0
- package/demos/pc/app/switch/webdoc/switch.js +13 -0
- package/demos/pc/app/tabs/basic-usage-composition-api.vue +1 -1
- package/demos/pc/app/tabs/basic-usage.vue +1 -1
- package/demos/pc/app/tabs/size-composition-api.vue +31 -0
- package/demos/pc/app/tabs/size.spec.ts +15 -0
- package/demos/pc/app/tabs/size.vue +41 -0
- package/demos/pc/app/tabs/tabs-second-layer-composition-api.vue +0 -1
- package/demos/pc/app/tabs/tabs-second-layer.vue +0 -1
- package/demos/pc/app/tabs/tabs-separator-composition-api.vue +3 -1
- package/demos/pc/app/tabs/tabs-separator.vue +3 -1
- package/demos/pc/app/tabs/webdoc/tabs.js +12 -0
- package/demos/pc/app/time-picker/default-value.spec.ts +1 -1
- package/demos/pc/app/time-picker/picker-options.spec.ts +4 -3
- package/demos/pc/app/tree/filter-view-composition-api.vue +9 -0
- package/demos/pc/app/tree/filter-view.spec.ts +8 -0
- package/demos/pc/app/tree/filter-view.vue +9 -0
- package/demos/pc/app/tree/webdoc/tree.js +2 -0
- package/demos/pc/app/tree-menu/custom-icon-composition-api.vue +1 -1
- package/demos/pc/app/tree-menu/custom-icon.vue +1 -1
- package/demos/pc/app/tree-menu/webdoc/tree-menu.js +2 -2
- package/demos/pc/app/tree-select/basic-usage-composition-api.vue +55 -0
- package/demos/pc/app/tree-select/basic-usage.spec.ts +20 -0
- package/demos/pc/app/tree-select/basic-usage.vue +62 -0
- package/demos/pc/app/tree-select/collapse-tags-composition-api.vue +71 -0
- package/demos/pc/app/tree-select/collapse-tags.vue +78 -0
- package/demos/pc/app/tree-select/copy-composition-api.vue +70 -0
- package/demos/pc/app/tree-select/copy.vue +78 -0
- package/demos/pc/app/tree-select/disabled-composition-api.vue +69 -0
- package/demos/pc/app/tree-select/disabled.vue +76 -0
- package/demos/pc/app/tree-select/map-field-composition-api.vue +55 -0
- package/demos/pc/app/tree-select/map-field.vue +62 -0
- package/demos/pc/app/tree-select/multiple-composition-api.vue +55 -0
- package/demos/pc/app/tree-select/multiple.vue +62 -0
- package/demos/pc/app/tree-select/native-properties-composition-api.vue +61 -0
- package/demos/pc/app/tree-select/native-properties.vue +68 -0
- package/demos/pc/app/tree-select/panel-style-composition-api.vue +73 -0
- package/demos/pc/app/tree-select/panel-style.vue +80 -0
- package/demos/pc/app/tree-select/reference-style-composition-api.vue +76 -0
- package/demos/pc/app/tree-select/reference-style.vue +83 -0
- package/demos/pc/app/tree-select/size-composition-api.vue +69 -0
- package/demos/pc/app/tree-select/size.vue +76 -0
- package/demos/pc/app/tree-select/webdoc/tree-select.cn.md +7 -0
- package/demos/pc/app/tree-select/webdoc/tree-select.en.md +7 -0
- package/demos/pc/app/tree-select/webdoc/tree-select.js +142 -0
- package/demos/pc/menus.js +12 -2
- package/demos/pc/overviewimage/chart-docs.svg +44 -0
- package/package.json +7 -7
- package/playground/App.vue +1 -0
- package/src/assets/images/Infinitely-icon.png +0 -0
- package/src/assets/images/Infinitely.png +0 -0
- package/src/assets/images/glaciers-icon.png +0 -0
- package/src/assets/images/glaciers.png +0 -0
- package/src/assets/images/oceanic-icon.png +0 -0
- package/src/assets/images/oceanic.png +0 -0
- package/src/assets/images/starry-sky-icon.png +0 -0
- package/src/assets/images/starry-sky.png +0 -0
- package/src/i18n/en.json +4 -2
- package/src/i18n/zh.json +4 -2
- package/src/style.css +10 -2
- package/src/tools/appData.js +7 -10
- package/src/tools/useApiMode.js +5 -0
- package/src/tools/useStyleSettings.js +16 -0
- package/src/tools/useTheme.js +39 -4
- package/src/views/components/components.vue +14 -6
- package/src/views/components/demo.vue +4 -4
- package/src/views/components/float-settings.vue +124 -98
- package/src/views/layout/layout.vue +1 -1
- package/vite.config.ts +2 -1
- package/demos/mobile-first/app/time-line-new/auto-slot.vue +0 -50
- package/demos/mobile-first/app/time-line-new/basic-usage.vue +0 -23
- package/demos/mobile-first/app/time-line-new/fold-time.vue +0 -29
- package/demos/mobile-first/app/time-line-new/limited-nodes.vue +0 -29
- package/demos/mobile-first/app/time-line-new/many-status.vue +0 -24
- package/demos/mobile-first/app/time-line-new/node-max.vue +0 -26
- package/demos/mobile-first/app/time-line-new/node-toset.vue +0 -32
- package/demos/mobile-first/app/time-line-new/single-status.vue +0 -40
- package/demos/mobile-first/app/time-line-new/sub-field.vue +0 -23
- package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.cn.md +0 -9
- package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.en.md +0 -9
- package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.js +0 -120
- /package/demos/pc/app/slider/{show-iput.spec.ts → show-input.spec.ts} +0 -0
package/src/tools/appData.js
CHANGED
|
@@ -11,17 +11,14 @@ const appData = reactive({
|
|
|
11
11
|
bpState: useMediaQuery([640, 1024, 1280]).matches // 3点4区间, bp0,bp1,bp2,bp3
|
|
12
12
|
})
|
|
13
13
|
const isZhCn = computed(() => appData.lang === ZH_CN_LANG)
|
|
14
|
-
|
|
15
|
-
toggleLang() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
url = location.href.replace(
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
const appFn = {
|
|
15
|
+
toggleLang(name) {
|
|
16
|
+
if (name !== appData.lang) {
|
|
17
|
+
let url = location.href
|
|
18
|
+
url = location.href.replace(LANG_PATH_MAP[appData.lang], LANG_PATH_MAP[name])
|
|
19
|
+
appData.lang = name
|
|
20
|
+
location.replace(url)
|
|
21
21
|
}
|
|
22
|
-
appData.lang = appData.lang === ZH_CN_LANG ? EN_US_LANG : ZH_CN_LANG
|
|
23
|
-
// router.push(url)
|
|
24
|
-
location.replace(url)
|
|
25
22
|
},
|
|
26
23
|
toggleTheme() {
|
|
27
24
|
appData.theme = appData.theme === 'light' ? 'dark' : 'light'
|
package/src/tools/useApiMode.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { reactive } from 'vue'
|
|
2
2
|
import { $local } from './storage'
|
|
3
|
+
import { appFn } from './appData'
|
|
3
4
|
|
|
4
5
|
const _modeKey = 'tiny-vue-api-mode'
|
|
5
6
|
const _demoModeKey = 'tiny-vue-demo-mode'
|
|
6
7
|
const apiModeState = reactive({
|
|
8
|
+
localeMode: location.href.includes('en-US') ? 'enUS' : 'zhCN',
|
|
7
9
|
apiMode: $local[_modeKey] || 'Composition', // 示例风格: Options: 组合式; Composition: 选项式
|
|
8
10
|
demoMode: $local[_demoModeKey] || 'default' // 示例展示: default:多示例, single:单示例
|
|
9
11
|
})
|
|
@@ -12,6 +14,9 @@ const apiModeFn = {
|
|
|
12
14
|
getDemoName: (name) => {
|
|
13
15
|
return name.replace(/\.vue$/, `${apiModeState.apiMode === 'Options' ? '' : '-composition-api'}.vue`)
|
|
14
16
|
},
|
|
17
|
+
changeLocaleMode: (name) => {
|
|
18
|
+
appFn.toggleLang(name)
|
|
19
|
+
},
|
|
15
20
|
changeApiMode: (name) => {
|
|
16
21
|
$local[_modeKey] = name
|
|
17
22
|
},
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
/** 文档显示风格设置 */
|
|
2
2
|
const getStyleSettings = (i18nByKey) => {
|
|
3
3
|
const styleSettings = [
|
|
4
|
+
{
|
|
5
|
+
// 语言选择
|
|
6
|
+
name: 'localeMode',
|
|
7
|
+
defaultValue: 'zhCN',
|
|
8
|
+
title: i18nByKey('localeType'),
|
|
9
|
+
options: [
|
|
10
|
+
{
|
|
11
|
+
value: 'zhCN',
|
|
12
|
+
text: i18nByKey('zh-cn')
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
value: 'enUS',
|
|
16
|
+
text: i18nByKey('en-us')
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
4
20
|
{
|
|
5
21
|
// 示例代码风格
|
|
6
22
|
name: 'apiMode',
|
package/src/tools/useTheme.js
CHANGED
|
@@ -16,6 +16,17 @@ import {
|
|
|
16
16
|
INFINITY_THEME,
|
|
17
17
|
getKeyByValue
|
|
18
18
|
} from '../const'
|
|
19
|
+
import glaciers from '@/assets/images/glaciers.png'
|
|
20
|
+
import glaciersIcon from '@/assets/images/glaciers-icon.png'
|
|
21
|
+
|
|
22
|
+
import infinitely from '@/assets/images/Infinitely.png'
|
|
23
|
+
import infinitelyIcon from '@/assets/images/Infinitely-icon.png'
|
|
24
|
+
|
|
25
|
+
import oceanic from '@/assets/images/oceanic.png'
|
|
26
|
+
import oceanicIcon from '@/assets/images/oceanic-icon.png'
|
|
27
|
+
|
|
28
|
+
import starrySky from '@/assets/images/starry-sky.png'
|
|
29
|
+
import starrySkyIcon from '@/assets/images/starry-sky-icon.png'
|
|
19
30
|
|
|
20
31
|
const themeMap = {
|
|
21
32
|
[DEFAULT_THEME]: null,
|
|
@@ -27,10 +38,34 @@ const themeMap = {
|
|
|
27
38
|
const isEn = appData.lang === 'enUS'
|
|
28
39
|
|
|
29
40
|
const themeData = [
|
|
30
|
-
{
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
{
|
|
42
|
+
value: [DEFAULT_THEME],
|
|
43
|
+
label: isEn ? 'Default Theme' : '冰川主题',
|
|
44
|
+
tips: isEn ? 'Accurate, Efficient, Distinct' : '精准、高效、清晰',
|
|
45
|
+
icon: glaciersIcon,
|
|
46
|
+
bgImage: glaciers
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
value: [SMB_THEME],
|
|
50
|
+
label: isEn ? 'Star Theme' : '星空主题',
|
|
51
|
+
tips: isEn ? 'Leading, Innovative, Reliable' : '领先、创新、信赖',
|
|
52
|
+
icon: starrySkyIcon,
|
|
53
|
+
bgImage: starrySky
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
value: [AURORA_THEME],
|
|
57
|
+
label: isEn ? 'Ocean Theme' : '海洋主题',
|
|
58
|
+
tips: isEn ? 'Simple, Agile, Delightful' : '简约、敏捷、愉悦',
|
|
59
|
+
icon: oceanicIcon,
|
|
60
|
+
bgImage: oceanic
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
value: [INFINITY_THEME],
|
|
64
|
+
label: isEn ? 'Infinity Theme' : '无限主题',
|
|
65
|
+
tips: isEn ? 'Creative, Scientific, Efficient' : '创造、科学、高效',
|
|
66
|
+
icon: infinitelyIcon,
|
|
67
|
+
bgImage: infinitely
|
|
68
|
+
}
|
|
34
69
|
]
|
|
35
70
|
|
|
36
71
|
const designConfigMap = {
|
|
@@ -150,7 +150,6 @@
|
|
|
150
150
|
class="api-table"
|
|
151
151
|
:data="tableData[oneGroup.name][key]"
|
|
152
152
|
:expand-config="apiExpandConf"
|
|
153
|
-
:row-class-name="setCurrRowClass"
|
|
154
153
|
row-id="name"
|
|
155
154
|
>
|
|
156
155
|
<tiny-grid-column class-name="api-table-expand-col" type="expand" width="32">
|
|
@@ -242,6 +241,7 @@
|
|
|
242
241
|
<script lang="jsx">
|
|
243
242
|
import { defineComponent, reactive, computed, toRefs, watch, onMounted, ref, onUnmounted, nextTick } from 'vue'
|
|
244
243
|
import { marked } from 'marked'
|
|
244
|
+
import hljs from 'highlight.js'
|
|
245
245
|
import { Anchor, ButtonGroup, Grid, GridColumn, Tabs, TabItem, Tooltip } from '@opentiny/vue'
|
|
246
246
|
import { iconOuterLink } from '@opentiny/vue-icon'
|
|
247
247
|
import debounce from '@opentiny/vue-renderless/common/deps/debounce'
|
|
@@ -497,7 +497,13 @@ export default defineComponent({
|
|
|
497
497
|
Promise.all(promiseArr)
|
|
498
498
|
.then(([mdData, jsData, apiData, faqData]) => {
|
|
499
499
|
// 1、加载顶部md
|
|
500
|
-
state.cmpTopMd = marked(mdData
|
|
500
|
+
state.cmpTopMd = marked(mdData, {
|
|
501
|
+
gfm: true,
|
|
502
|
+
highlight(code, language) {
|
|
503
|
+
const validLanguage = hljs.getLanguage(language) ? language : 'plaintext'
|
|
504
|
+
return hljs.highlight(code, { language: validLanguage }).value
|
|
505
|
+
}
|
|
506
|
+
})
|
|
501
507
|
|
|
502
508
|
// 2、加载faq.md
|
|
503
509
|
if (faqData) {
|
|
@@ -710,7 +716,7 @@ export default defineComponent({
|
|
|
710
716
|
.docs-header {
|
|
711
717
|
position: sticky;
|
|
712
718
|
top: 0;
|
|
713
|
-
z-index:
|
|
719
|
+
z-index: var(--docs-header-zindex);
|
|
714
720
|
padding: var(--ti-common-space-4x) var(--ti-common-space-10x);
|
|
715
721
|
background-color: #fff;
|
|
716
722
|
box-shadow: var(--ti-common-space-3x) 0 var(--ti-common-space-5x) var(--ti-common-space-6) rgba(0, 0, 0, 0.06);
|
|
@@ -723,7 +729,7 @@ export default defineComponent({
|
|
|
723
729
|
}
|
|
724
730
|
|
|
725
731
|
.markdown-top-body {
|
|
726
|
-
z-index:
|
|
732
|
+
z-index: var(--docs-markdown-top-body-zindex);
|
|
727
733
|
font-size: var(--ti-common-font-size-1);
|
|
728
734
|
transition: all ease-in-out 0.3s;
|
|
729
735
|
|
|
@@ -771,7 +777,7 @@ export default defineComponent({
|
|
|
771
777
|
:deep(> .tiny-tabs__header) {
|
|
772
778
|
position: sticky;
|
|
773
779
|
top: 90px;
|
|
774
|
-
z-index:
|
|
780
|
+
z-index: var(--docs-tabs-header-zindex);
|
|
775
781
|
background-color: #fff;
|
|
776
782
|
|
|
777
783
|
&::after {
|
|
@@ -791,7 +797,8 @@ export default defineComponent({
|
|
|
791
797
|
}
|
|
792
798
|
}
|
|
793
799
|
|
|
794
|
-
:deep(.tiny-tabs__content) {
|
|
800
|
+
& > :deep(.tiny-tabs__content) {
|
|
801
|
+
// 不能影响到tabs组件的样式
|
|
795
802
|
margin: 0;
|
|
796
803
|
overflow: visible;
|
|
797
804
|
}
|
|
@@ -818,6 +825,7 @@ export default defineComponent({
|
|
|
818
825
|
fill: #5e7ce0;
|
|
819
826
|
}
|
|
820
827
|
}
|
|
828
|
+
|
|
821
829
|
&-name:has(+ .version-tip) {
|
|
822
830
|
margin-right: 4px;
|
|
823
831
|
}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
</tiny-tooltip>
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
|
-
<component :is="getDescMd(demo)" class="demo-desc" />
|
|
46
|
+
<component :is="getDescMd(demo)" class="demo-desc markdown-body" />
|
|
47
47
|
|
|
48
48
|
<div v-if="isMobileFirst" class="pc-demo-container">
|
|
49
49
|
<tiny-button @click="openPlayground(demo, false)">多端预览</tiny-button>
|
|
@@ -192,9 +192,9 @@ export default defineComponent({
|
|
|
192
192
|
const tinyTheme = templateModeState.isSaas ? 'saas' : currentThemeKey.value.split('-')[1]
|
|
193
193
|
const openModeQuery = open ? '' : '&openMode=preview'
|
|
194
194
|
// TODO: 目前mf只有Options写法,后续再放开compositon
|
|
195
|
-
const url = `${import.meta.env.VITE_PLAYGROUND_URL}?cmpId=${cmpId}&fileName=${
|
|
196
|
-
|
|
197
|
-
}&
|
|
195
|
+
const url = `${import.meta.env.VITE_PLAYGROUND_URL}?cmpId=${cmpId}&fileName=${demo.codeFiles[0]}&apiMode=${
|
|
196
|
+
isMobileFirst.value ? 'Options' : apiModeState.apiMode
|
|
197
|
+
}&mode=${templateModeState.mode}&theme=${tinyTheme}${openModeQuery}`
|
|
198
198
|
|
|
199
199
|
if (open) {
|
|
200
200
|
window.open(url)
|
|
@@ -5,69 +5,70 @@
|
|
|
5
5
|
:style="settingsStyle"
|
|
6
6
|
>
|
|
7
7
|
<!-- 切换主题样式 -->
|
|
8
|
-
<tiny-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
<tiny-popover
|
|
9
|
+
width="404"
|
|
10
|
+
placement="left-end"
|
|
11
|
+
trigger="click"
|
|
12
|
+
:visible-arrow="false"
|
|
13
|
+
popper-class="theme-settings-popover"
|
|
14
|
+
>
|
|
15
|
+
<div class="theme-settings-menu">
|
|
16
|
+
<div class="theme-settings-title">{{ i18nByKey('changeTheme') }}</div>
|
|
17
|
+
<div
|
|
18
|
+
v-for="(item, index) in themeData"
|
|
19
|
+
:key="item.text + index"
|
|
20
|
+
:class="['theme-option-list', { 'is-active-popover': item.value === currentThemeKey }]"
|
|
21
|
+
:style="{ backgroundImage: 'url(' + item.bgImage + ')' }"
|
|
22
|
+
@click="themeItemClick(item)"
|
|
23
|
+
>
|
|
24
|
+
<div class="theme-option-list-icon" :style="{ backgroundImage: 'url(' + item.icon + ')' }"></div>
|
|
25
|
+
<div>
|
|
26
|
+
<div class="theme-option-list-text">
|
|
27
|
+
{{ item.text }}
|
|
28
|
+
</div>
|
|
29
|
+
<div class="theme-option-list-tips">
|
|
30
|
+
{{ item.tips }}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<template #reference>
|
|
15
36
|
<div class="settings-btn theme-change-button">
|
|
16
|
-
<theme-settings-icon
|
|
17
|
-
:class="['settings-icon theme-settings-icon', { 'is-active': showThemeMenu }]"
|
|
18
|
-
></theme-settings-icon>
|
|
37
|
+
<theme-settings-icon class="settings-icon theme-settings-icon"></theme-settings-icon>
|
|
19
38
|
</div>
|
|
20
|
-
</tiny-tooltip>
|
|
21
|
-
<template #dropdown>
|
|
22
|
-
<tiny-dropdown-menu popper-class="opt-menu theme-settings-menu">
|
|
23
|
-
<div v-for="(item, index) in themeData" :key="index" class="theme-option-list">
|
|
24
|
-
<tiny-button
|
|
25
|
-
ghost
|
|
26
|
-
:class="['theme-option', { 'is-active': item.value === currentThemeKey }]"
|
|
27
|
-
@click="themeItemClick(item)"
|
|
28
|
-
>{{ item.text }}</tiny-button
|
|
29
|
-
>
|
|
30
|
-
</div>
|
|
31
|
-
</tiny-dropdown-menu>
|
|
32
39
|
</template>
|
|
33
|
-
</tiny-
|
|
40
|
+
</tiny-popover>
|
|
34
41
|
|
|
35
42
|
<!-- demo风格设置 -->
|
|
36
|
-
<tiny-
|
|
43
|
+
<tiny-popover
|
|
37
44
|
v-if="!templateModeState.isSaas"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
width="180"
|
|
46
|
+
placement="left-end"
|
|
47
|
+
trigger="manual"
|
|
48
|
+
:visible-arrow="false"
|
|
49
|
+
v-model="demoStyleVisible"
|
|
50
|
+
popper-class="opt-menu style-settings-menu theme-settings-popover"
|
|
41
51
|
>
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
<div v-for="(item, index) in styleSettings" :key="index" class="style-settings-item">
|
|
53
|
+
<p class="style-settings-title">{{ item.title }}</p>
|
|
54
|
+
<tiny-radio-group
|
|
55
|
+
v-model="apiModeState[item.name]"
|
|
56
|
+
class="style-settings-options-group"
|
|
57
|
+
@change="onSettingsChange(item.name)"
|
|
58
|
+
>
|
|
59
|
+
<tiny-radio v-for="option in item.options" :key="option" :label="option.value">{{ option.text }}</tiny-radio>
|
|
60
|
+
</tiny-radio-group>
|
|
61
|
+
</div>
|
|
62
|
+
<template #reference>
|
|
63
|
+
<div
|
|
64
|
+
class="settings-btn style-settings-btn"
|
|
65
|
+
@click="demoStyleVisible = !demoStyleVisible"
|
|
66
|
+
@blur="demoStyleVisible = false"
|
|
67
|
+
>
|
|
68
|
+
<style-settings-icon class="settings-icon style-settings-icon"></style-settings-icon>
|
|
52
69
|
</div>
|
|
53
|
-
</tiny-tooltip>
|
|
54
|
-
<template #dropdown>
|
|
55
|
-
<tiny-dropdown-menu popper-class="opt-menu style-settings-menu">
|
|
56
|
-
<div v-for="(item, index) in styleSettings" :key="index" class="style-settings-item">
|
|
57
|
-
<p class="style-settings-title">{{ item.title }}</p>
|
|
58
|
-
<tiny-radio-group
|
|
59
|
-
v-model="apiModeState[item.name]"
|
|
60
|
-
class="style-settings-options-group"
|
|
61
|
-
@change="onSettingsChange(item.name)"
|
|
62
|
-
>
|
|
63
|
-
<tiny-radio v-for="option in item.options" :key="option" :label="option.value">{{
|
|
64
|
-
option.text
|
|
65
|
-
}}</tiny-radio>
|
|
66
|
-
</tiny-radio-group>
|
|
67
|
-
</div>
|
|
68
|
-
</tiny-dropdown-menu>
|
|
69
70
|
</template>
|
|
70
|
-
</tiny-
|
|
71
|
+
</tiny-popover>
|
|
71
72
|
|
|
72
73
|
<!-- 返回顶部 -->
|
|
73
74
|
<div v-show="showBackTop" @click="onBackTop">
|
|
@@ -87,7 +88,7 @@
|
|
|
87
88
|
|
|
88
89
|
<script>
|
|
89
90
|
import { defineComponent, reactive, toRefs, onMounted, onUnmounted, watch, nextTick, ref } from 'vue'
|
|
90
|
-
import {
|
|
91
|
+
import { Tooltip, Radio, RadioGroup, Popover } from '@opentiny/vue'
|
|
91
92
|
import { iconUpWard } from '@opentiny/vue-icon'
|
|
92
93
|
import debounce from '@opentiny/vue-renderless/common/deps/debounce'
|
|
93
94
|
import { i18nByKey, useApiMode, useTemplateMode } from '@/tools'
|
|
@@ -100,13 +101,11 @@ import StyleSettingsIcon from '@/assets/images/style-settings.svg'
|
|
|
100
101
|
export default defineComponent({
|
|
101
102
|
name: 'FloatSettings',
|
|
102
103
|
components: {
|
|
103
|
-
TinyDropdown: Dropdown,
|
|
104
|
-
TinyDropdownMenu: DropdownMenu,
|
|
105
104
|
TinyTooltip: Tooltip,
|
|
106
105
|
TinyRadio: Radio,
|
|
107
106
|
TinyRadioGroup: RadioGroup,
|
|
108
|
-
TinyButton: Button,
|
|
109
107
|
IconUpWard: iconUpWard(),
|
|
108
|
+
TinyPopover: Popover,
|
|
110
109
|
ThemeSettingsIcon,
|
|
111
110
|
StyleSettingsIcon
|
|
112
111
|
},
|
|
@@ -120,9 +119,8 @@ export default defineComponent({
|
|
|
120
119
|
const isPlus = import.meta.env.VITE_APP_MODE === 'plus'
|
|
121
120
|
|
|
122
121
|
const state = reactive({
|
|
122
|
+
demoStyleVisible: false,
|
|
123
123
|
themeData: [],
|
|
124
|
-
showThemeMenu: false,
|
|
125
|
-
showStyleMenu: false,
|
|
126
124
|
styleSettings: getStyleSettings(i18nByKey),
|
|
127
125
|
settingsStyle: {
|
|
128
126
|
bottom: DEFAULT_BOTTOM_VAL
|
|
@@ -133,7 +131,7 @@ export default defineComponent({
|
|
|
133
131
|
})
|
|
134
132
|
|
|
135
133
|
if (isPlus) {
|
|
136
|
-
state.styleSettings = state.styleSettings.filter((item) => item.
|
|
134
|
+
state.styleSettings = state.styleSettings.filter((item) => item.name !== 'apiMode')
|
|
137
135
|
apiModeState.apiMode = 'Options'
|
|
138
136
|
}
|
|
139
137
|
|
|
@@ -147,6 +145,10 @@ export default defineComponent({
|
|
|
147
145
|
},
|
|
148
146
|
onSettingsChange(modeType) {
|
|
149
147
|
switch (modeType) {
|
|
148
|
+
case 'localeMode': {
|
|
149
|
+
apiModeFn.changeLocaleMode(apiModeState[modeType])
|
|
150
|
+
break
|
|
151
|
+
}
|
|
150
152
|
case 'apiMode': {
|
|
151
153
|
apiModeFn.changeApiMode(apiModeState[modeType])
|
|
152
154
|
break
|
|
@@ -162,21 +164,16 @@ export default defineComponent({
|
|
|
162
164
|
themeItemClick(node) {
|
|
163
165
|
const val = node?.value || 'tiny-smb-theme'
|
|
164
166
|
changeTheme(val)
|
|
165
|
-
},
|
|
166
|
-
|
|
167
|
-
toggleMenuShow(visible, type) {
|
|
168
|
-
if (type === 'theme') {
|
|
169
|
-
state.showThemeMenu = visible
|
|
170
|
-
} else if (type === 'style') {
|
|
171
|
-
state.showStyleMenu = visible
|
|
172
|
-
}
|
|
173
167
|
}
|
|
174
168
|
}
|
|
175
169
|
|
|
176
170
|
const getThemeOptions = () => {
|
|
177
171
|
const themeData = getThemeData().map((item) => ({
|
|
178
172
|
value: item.value[0],
|
|
179
|
-
text: item.label
|
|
173
|
+
text: item.label,
|
|
174
|
+
tips: item.tips,
|
|
175
|
+
icon: item.icon,
|
|
176
|
+
bgImage: item.bgImage
|
|
180
177
|
}))
|
|
181
178
|
state.themeData = themeData
|
|
182
179
|
}
|
|
@@ -261,7 +258,7 @@ export default defineComponent({
|
|
|
261
258
|
display: flex;
|
|
262
259
|
flex-direction: column;
|
|
263
260
|
column-gap: var(--ti-common-space-3x);
|
|
264
|
-
z-index:
|
|
261
|
+
z-index: var(--docs-float-settings-zindex);
|
|
265
262
|
transition: all 0.3s linear;
|
|
266
263
|
|
|
267
264
|
&.float-settings--aside {
|
|
@@ -306,10 +303,6 @@ export default defineComponent({
|
|
|
306
303
|
width: var(--ti-common-size-4x);
|
|
307
304
|
height: var(--ti-common-size-4x);
|
|
308
305
|
color: #595959;
|
|
309
|
-
|
|
310
|
-
&.is-active {
|
|
311
|
-
color: var(--ti-common-color-primary-normal);
|
|
312
|
-
}
|
|
313
306
|
}
|
|
314
307
|
}
|
|
315
308
|
}
|
|
@@ -320,13 +313,6 @@ export default defineComponent({
|
|
|
320
313
|
border-radius: var(--ti-common-space-3x);
|
|
321
314
|
box-shadow: 0px 4px 20px 0px rgba(0, 0, 0, 0.15);
|
|
322
315
|
|
|
323
|
-
&.theme-settings-menu {
|
|
324
|
-
display: flex;
|
|
325
|
-
flex-direction: column;
|
|
326
|
-
justify-content: center;
|
|
327
|
-
align-items: center;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
316
|
&.style-settings-menu {
|
|
331
317
|
padding: 14px;
|
|
332
318
|
|
|
@@ -338,6 +324,7 @@ export default defineComponent({
|
|
|
338
324
|
font-size: var(--ti-common-font-size-base);
|
|
339
325
|
line-height: var(--ti-common-line-height-6);
|
|
340
326
|
font-weight: 600;
|
|
327
|
+
color: #000000;
|
|
341
328
|
}
|
|
342
329
|
|
|
343
330
|
.style-settings-options-group {
|
|
@@ -357,25 +344,64 @@ export default defineComponent({
|
|
|
357
344
|
}
|
|
358
345
|
}
|
|
359
346
|
}
|
|
347
|
+
}
|
|
348
|
+
.tiny-popover.tiny-popper.theme-settings-popover {
|
|
349
|
+
border-radius: 12px;
|
|
350
|
+
background-color: #ffffff;
|
|
351
|
+
}
|
|
360
352
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
353
|
+
.theme-settings-menu {
|
|
354
|
+
width: 404px;
|
|
355
|
+
display: flex;
|
|
356
|
+
padding: 15px 32px;
|
|
357
|
+
flex-direction: column;
|
|
358
|
+
margin: 0;
|
|
359
|
+
.theme-settings-title {
|
|
360
|
+
height: 20px;
|
|
361
|
+
line-height: 20px;
|
|
362
|
+
color: #000000;
|
|
363
|
+
font-weight: 700;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
.theme-option-list {
|
|
367
|
+
display: flex;
|
|
368
|
+
align-items: center;
|
|
369
|
+
justify-content: start;
|
|
370
|
+
background-color: aliceblue;
|
|
371
|
+
cursor: pointer;
|
|
372
|
+
margin-top: 20px;
|
|
373
|
+
width: 308px;
|
|
374
|
+
height: 64px;
|
|
375
|
+
border: 1px solid #ffffff;
|
|
376
|
+
border-radius: 8px;
|
|
377
|
+
background-repeat: no-repeat;
|
|
378
|
+
.theme-option-list-icon {
|
|
379
|
+
width: 32px;
|
|
380
|
+
height: 32px;
|
|
381
|
+
margin: 16px 24px;
|
|
382
|
+
}
|
|
383
|
+
.theme-option-list-text {
|
|
384
|
+
height: 22px;
|
|
385
|
+
line-height: 22px;
|
|
386
|
+
font-size: 14px;
|
|
387
|
+
color: #202e54;
|
|
388
|
+
font-weight: 700;
|
|
389
|
+
}
|
|
390
|
+
.theme-option-list-tips {
|
|
391
|
+
height: 20px;
|
|
392
|
+
line-height: 20px;
|
|
393
|
+
font-size: 14px;
|
|
394
|
+
color: #808080;
|
|
395
|
+
font-weight: 500;
|
|
377
396
|
}
|
|
378
397
|
}
|
|
398
|
+
.theme-option-list:hover {
|
|
399
|
+
border-color: rgba(0, 0, 0, 0.05);
|
|
400
|
+
box-shadow: 0px 4px 20px 0px rgba(0, 0, 0, 0.15);
|
|
401
|
+
}
|
|
402
|
+
.is-active-popover {
|
|
403
|
+
border-color: #1476ff;
|
|
404
|
+
}
|
|
379
405
|
|
|
380
406
|
@media (max-width: 1279px) {
|
|
381
407
|
.float-settings {
|
package/vite.config.ts
CHANGED
|
@@ -111,7 +111,8 @@ export default defineConfig((config) => {
|
|
|
111
111
|
__VUE_I18N_LEGACY_API__: true,
|
|
112
112
|
__INTLIFY_PROD_DEVTOOLS__: false,
|
|
113
113
|
__INTLIFY_JIT_COMPILATION__: false,
|
|
114
|
-
__INTLIFY_DROP_MESSAGE_COMPILER__: false
|
|
114
|
+
__INTLIFY_DROP_MESSAGE_COMPILER__: false,
|
|
115
|
+
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="flex justify-between">
|
|
3
|
-
<tiny-time-line :data="data">
|
|
4
|
-
<template #left="data">
|
|
5
|
-
<div class="ml-1.5 -mt-1.5">
|
|
6
|
-
<tiny-user-head type="image" round v-model="imgUrl" :size="32"></tiny-user-head>
|
|
7
|
-
</div>
|
|
8
|
-
<span class="ml-2 inline-block text-xs leading-5 mb-6">
|
|
9
|
-
{{ data.slotScope.title }}
|
|
10
|
-
</span>
|
|
11
|
-
</template>
|
|
12
|
-
</tiny-time-line>
|
|
13
|
-
|
|
14
|
-
<tiny-time-line :data="data1">
|
|
15
|
-
<template #left="data1">
|
|
16
|
-
<div class="ml-1.5 -mt-1.5">
|
|
17
|
-
<tiny-user-head type="image" round v-model="imgUrl" :size="32"></tiny-user-head>
|
|
18
|
-
</div>
|
|
19
|
-
<span class="ml-2 inline-block text-xs leading-5 mb-6">
|
|
20
|
-
{{ data1.slotScope.title }}
|
|
21
|
-
</span>
|
|
22
|
-
</template>
|
|
23
|
-
</tiny-time-line>
|
|
24
|
-
</div>
|
|
25
|
-
</template>
|
|
26
|
-
|
|
27
|
-
<script>
|
|
28
|
-
import { TimeLineNew, UserHead } from '@opentiny/vue'
|
|
29
|
-
import { IconLoading } from '@opentiny/vue-icon'
|
|
30
|
-
|
|
31
|
-
export default {
|
|
32
|
-
components: {
|
|
33
|
-
TinyTimeLine: TimeLineNew,
|
|
34
|
-
TinyUserHead: UserHead
|
|
35
|
-
},
|
|
36
|
-
data() {
|
|
37
|
-
return {
|
|
38
|
-
imgUrl: `${import.meta.env.VITE_APP_BUILD_BASE_URL}static/images/1.jpg`,
|
|
39
|
-
data: [{ title: '节点标题1' }, { title: '节点标题2' }, { title: '节点标题3' }, { title: '节点标题4' }],
|
|
40
|
-
data1: [
|
|
41
|
-
{ title: '节点标题1' },
|
|
42
|
-
{ title: '节点标题2' },
|
|
43
|
-
{ title: '节点标题3' },
|
|
44
|
-
{ title: '节点标题4' },
|
|
45
|
-
{ title: '节点标题5', autoColor: IconLoading() }
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
</script>
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<tiny-time-line :data="data"></tiny-time-line>
|
|
3
|
-
</template>
|
|
4
|
-
|
|
5
|
-
<script>
|
|
6
|
-
import { TimeLineNew } from '@opentiny/vue'
|
|
7
|
-
|
|
8
|
-
export default {
|
|
9
|
-
components: {
|
|
10
|
-
TinyTimeLine: TimeLineNew
|
|
11
|
-
},
|
|
12
|
-
data() {
|
|
13
|
-
return {
|
|
14
|
-
data: [
|
|
15
|
-
{ name: '节点标题', time: '2022-11-11 00:01:30' },
|
|
16
|
-
{ name: '节点标题', time: '2022-11-12 14:20:15' },
|
|
17
|
-
{ name: '节点标题', time: '2022-11-14 20:45:50' },
|
|
18
|
-
{ name: '节点标题', time: '2022-11-14 20:45:50' }
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
</script>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<tiny-time-line :data="data" vertical></tiny-time-line>
|
|
3
|
-
</template>
|
|
4
|
-
|
|
5
|
-
<script>
|
|
6
|
-
import { TimeLineNew } from '@opentiny/vue'
|
|
7
|
-
|
|
8
|
-
export default {
|
|
9
|
-
components: {
|
|
10
|
-
TinyTimeLine: TimeLineNew
|
|
11
|
-
},
|
|
12
|
-
data() {
|
|
13
|
-
return {
|
|
14
|
-
active: 1,
|
|
15
|
-
data: [
|
|
16
|
-
{ name: '节点标题', time: '2019-11-11 00:01:30' },
|
|
17
|
-
{ name: '节点标题', time: '2019-11-12 14:20:15' },
|
|
18
|
-
{ name: '节点标题', time: '2019-11-14 20:45:50' },
|
|
19
|
-
{ name: '节点标题', time: '2019-11-11 00:01:30' },
|
|
20
|
-
{ name: '节点标题', time: '2019-11-12 14:20:15' },
|
|
21
|
-
{ name: '节点标题', time: '2019-11-14 20:45:50' },
|
|
22
|
-
{ name: '节点标题', time: '2019-11-11 00:01:30' },
|
|
23
|
-
{ name: '节点标题', time: '2019-11-12 14:20:15' },
|
|
24
|
-
{ name: '节点标题', time: '2019-11-14 20:45:50' }
|
|
25
|
-
]
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
</script>
|