@morya-ui/mcp 0.3.2 → 0.3.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/README.md +151 -149
- package/bin/morya-ui-mcp.js +2 -2
- package/data/catalog.json +70 -53
- package/data/example-coverage.json +8 -6
- package/data/golden-pages/dashboard-page.vue +138 -138
- package/data/golden-pages/detail-page.vue +178 -178
- package/data/golden-pages/empty-state.vue +56 -56
- package/data/golden-pages/form-in-dialog.vue +166 -166
- package/data/golden-pages/form-page.vue +107 -107
- package/data/golden-pages/landing-page.vue +358 -358
- package/data/golden-pages/list-page-dense.vue +166 -0
- package/data/golden-pages/list-page-rail.vue +270 -0
- package/data/golden-pages/list-page.vue +220 -216
- package/data/golden-pages/login-page.vue +231 -231
- package/data/golden-pages/result-page.vue +84 -84
- package/data/golden-pages/settings-page.vue +163 -163
- package/data/golden-pages/wizard-form.vue +182 -182
- package/dist/__tests__/tools.test.js +93 -1
- package/dist/decisions.d.ts +14 -0
- package/dist/decisions.js +818 -41
- package/dist/golden-pages.d.ts +13 -0
- package/dist/golden-pages.js +55 -2
- package/dist/index.js +9 -3
- package/dist/page-snippets.js +254 -225
- package/dist/patterns.d.ts +2 -2
- package/dist/patterns.js +20 -9
- package/dist/style-presets.d.ts +52 -0
- package/dist/style-presets.js +322 -0
- package/dist/tools.d.ts +20 -0
- package/dist/tools.js +336 -216
- package/package.json +16 -12
- package/LICENSE +0 -21
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-09-
|
|
3
|
-
"catalogGeneratedAt": "2026-09-
|
|
2
|
+
"generatedAt": "2026-09-25T03:12:09.409Z",
|
|
3
|
+
"catalogGeneratedAt": "2026-09-25T03:12:04.732Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"id": "Accordion",
|
|
@@ -198,8 +198,8 @@
|
|
|
198
198
|
"exportName": "MButton",
|
|
199
199
|
"examples": 20,
|
|
200
200
|
"props": {
|
|
201
|
-
"total":
|
|
202
|
-
"covered":
|
|
201
|
+
"total": 27,
|
|
202
|
+
"covered": 22,
|
|
203
203
|
"missing": [
|
|
204
204
|
"variant",
|
|
205
205
|
"ripple",
|
|
@@ -1924,10 +1924,11 @@
|
|
|
1924
1924
|
"exportName": "MPageContent",
|
|
1925
1925
|
"examples": 10,
|
|
1926
1926
|
"props": {
|
|
1927
|
-
"total":
|
|
1927
|
+
"total": 25,
|
|
1928
1928
|
"covered": 19,
|
|
1929
1929
|
"missing": [
|
|
1930
1930
|
"bands",
|
|
1931
|
+
"fill",
|
|
1931
1932
|
"expandLabel",
|
|
1932
1933
|
"collapseLabel",
|
|
1933
1934
|
"headingLevel",
|
|
@@ -2764,11 +2765,12 @@
|
|
|
2764
2765
|
"exportName": "MTable",
|
|
2765
2766
|
"examples": 26,
|
|
2766
2767
|
"props": {
|
|
2767
|
-
"total":
|
|
2768
|
+
"total": 66,
|
|
2768
2769
|
"covered": 16,
|
|
2769
2770
|
"missing": [
|
|
2770
2771
|
"fit",
|
|
2771
2772
|
"selectedItem",
|
|
2773
|
+
"fill",
|
|
2772
2774
|
"rowHover",
|
|
2773
2775
|
"sortField",
|
|
2774
2776
|
"sortOrder",
|
|
@@ -1,138 +1,138 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* 黄金样例:仪表盘页
|
|
4
|
-
* @see DESIGN.md · morya-ui-pages references/page-layouts.md · visual-craft § Ops polish
|
|
5
|
-
*/
|
|
6
|
-
import {
|
|
7
|
-
MBreadcrumb,
|
|
8
|
-
MCard,
|
|
9
|
-
MConfigProvider,
|
|
10
|
-
MGrid,
|
|
11
|
-
MGridItem,
|
|
12
|
-
MLayout,
|
|
13
|
-
MLayoutContent,
|
|
14
|
-
MLayoutHeader,
|
|
15
|
-
MPageContent,
|
|
16
|
-
MEmpty,
|
|
17
|
-
MPageHeader,
|
|
18
|
-
MPageStat,
|
|
19
|
-
MStatus,
|
|
20
|
-
MTable,
|
|
21
|
-
MTag,
|
|
22
|
-
zhCN,
|
|
23
|
-
} from 'morya-ui'
|
|
24
|
-
|
|
25
|
-
const stats = [
|
|
26
|
-
{ label: '总用户', value: '12,480', trend: '+8.2%', trendDirection: 'up' as const, trendLabel: '较上月', icon: 'users' },
|
|
27
|
-
{ label: '今日活跃', value: '1,926', trend: '+3.1%', trendDirection: 'up' as const, trendLabel: '较昨日', icon: 'activity' },
|
|
28
|
-
{ label: '待处理工单', value: '47', trend: '-12%', trendDirection: 'down' as const, trendLabel: '较上周', trendSeverity: 'warn' as const, icon: 'clipboard' },
|
|
29
|
-
{ label: '系统健康', value: '99.9%', trend: '稳定', trendSeverity: 'secondary' as const, icon: 'heart' },
|
|
30
|
-
]
|
|
31
|
-
|
|
32
|
-
const recentColumns = [
|
|
33
|
-
{ key: 'id', label: '工单号', width: 96 },
|
|
34
|
-
{ key: 'title', label: '标题' },
|
|
35
|
-
{ key: 'priority', label: '优先级', width: 96 },
|
|
36
|
-
{ key: 'status', label: '状态', width: 110 },
|
|
37
|
-
]
|
|
38
|
-
|
|
39
|
-
const recentRows = [
|
|
40
|
-
{ id: 'WO-1024', title: '登录异常反馈', priority: 'high', status: 'open' },
|
|
41
|
-
{ id: 'WO-1023', title: '导出任务超时', priority: 'medium', status: 'progress' },
|
|
42
|
-
{ id: 'WO-1022', title: '权限配置咨询', priority: 'low', status: 'done' },
|
|
43
|
-
]
|
|
44
|
-
|
|
45
|
-
function prioritySeverity(p: string) {
|
|
46
|
-
if (p === 'high') return 'danger'
|
|
47
|
-
if (p === 'medium') return 'warn'
|
|
48
|
-
return 'secondary'
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function priorityLabel(p: string) {
|
|
52
|
-
if (p === 'high') return '高'
|
|
53
|
-
if (p === 'medium') return '中'
|
|
54
|
-
return '低'
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function statusLabel(s: string) {
|
|
58
|
-
if (s === 'open') return '待处理'
|
|
59
|
-
if (s === 'progress') return '进行中'
|
|
60
|
-
return '已完成'
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function statusSeverity(s: string) {
|
|
64
|
-
if (s === 'open') return 'warn'
|
|
65
|
-
if (s === 'progress') return 'info'
|
|
66
|
-
return 'success'
|
|
67
|
-
}
|
|
68
|
-
</script>
|
|
69
|
-
|
|
70
|
-
<template>
|
|
71
|
-
<MConfigProvider :locale="zhCN">
|
|
72
|
-
<MLayout fill-viewport>
|
|
73
|
-
<MLayoutHeader padding="var(--m-space-4) var(--m-space-6)">
|
|
74
|
-
<MBreadcrumb :model="[{ label: '首页' }, { label: '仪表盘' }]" />
|
|
75
|
-
</MLayoutHeader>
|
|
76
|
-
|
|
77
|
-
<MLayoutContent>
|
|
78
|
-
<MPageContent density="spacious">
|
|
79
|
-
<MPageHeader
|
|
80
|
-
title="运营概览"
|
|
81
|
-
description="关注今日活跃与待处理工单,异常优先下钻。"
|
|
82
|
-
/>
|
|
83
|
-
|
|
84
|
-
<MGrid :cols="4" :x-gap="16" :y-gap="16" responsive="screen">
|
|
85
|
-
<MGridItem v-for="item in stats" :key="item.label" :span="1">
|
|
86
|
-
<MPageStat
|
|
87
|
-
:label="item.label"
|
|
88
|
-
:value="item.value"
|
|
89
|
-
:trend="item.trend"
|
|
90
|
-
:trend-severity="item.trendSeverity ?? 'primary'"
|
|
91
|
-
:trend-direction="item.trendDirection"
|
|
92
|
-
:trend-label="item.trendLabel"
|
|
93
|
-
:icon="item.icon"
|
|
94
|
-
/>
|
|
95
|
-
</MGridItem>
|
|
96
|
-
</MGrid>
|
|
97
|
-
|
|
98
|
-
<MGrid :cols="2" :x-gap="16" :y-gap="16" responsive="screen">
|
|
99
|
-
<MGridItem :span="1">
|
|
100
|
-
<MCard title="趋势概览" shadow="always">
|
|
101
|
-
<MEmpty
|
|
102
|
-
description="接入图表组件后展示近 7 日活跃与转化。"
|
|
103
|
-
icon="chart-bar"
|
|
104
|
-
/>
|
|
105
|
-
</MCard>
|
|
106
|
-
</MGridItem>
|
|
107
|
-
<MGridItem :span="1">
|
|
108
|
-
<MCard title="最近工单" shadow="always">
|
|
109
|
-
<MTable
|
|
110
|
-
:columns="recentColumns"
|
|
111
|
-
:rows="recentRows"
|
|
112
|
-
size="small"
|
|
113
|
-
:paginator="false"
|
|
114
|
-
bordered
|
|
115
|
-
row-key="id"
|
|
116
|
-
aria-label="最近工单"
|
|
117
|
-
>
|
|
118
|
-
<template #cell-priority="{ value }">
|
|
119
|
-
<MTag
|
|
120
|
-
:value="priorityLabel(String(value))"
|
|
121
|
-
:severity="prioritySeverity(String(value))"
|
|
122
|
-
/>
|
|
123
|
-
</template>
|
|
124
|
-
<template #cell-status="{ value }">
|
|
125
|
-
<MStatus
|
|
126
|
-
:label="statusLabel(String(value))"
|
|
127
|
-
:severity="statusSeverity(String(value))"
|
|
128
|
-
/>
|
|
129
|
-
</template>
|
|
130
|
-
</MTable>
|
|
131
|
-
</MCard>
|
|
132
|
-
</MGridItem>
|
|
133
|
-
</MGrid>
|
|
134
|
-
</MPageContent>
|
|
135
|
-
</MLayoutContent>
|
|
136
|
-
</MLayout>
|
|
137
|
-
</MConfigProvider>
|
|
138
|
-
</template>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* 黄金样例:仪表盘页
|
|
4
|
+
* @see DESIGN.md · morya-ui-pages references/page-layouts.md · visual-craft § Ops polish
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
MBreadcrumb,
|
|
8
|
+
MCard,
|
|
9
|
+
MConfigProvider,
|
|
10
|
+
MGrid,
|
|
11
|
+
MGridItem,
|
|
12
|
+
MLayout,
|
|
13
|
+
MLayoutContent,
|
|
14
|
+
MLayoutHeader,
|
|
15
|
+
MPageContent,
|
|
16
|
+
MEmpty,
|
|
17
|
+
MPageHeader,
|
|
18
|
+
MPageStat,
|
|
19
|
+
MStatus,
|
|
20
|
+
MTable,
|
|
21
|
+
MTag,
|
|
22
|
+
zhCN,
|
|
23
|
+
} from 'morya-ui'
|
|
24
|
+
|
|
25
|
+
const stats = [
|
|
26
|
+
{ label: '总用户', value: '12,480', trend: '+8.2%', trendDirection: 'up' as const, trendLabel: '较上月', icon: 'users' },
|
|
27
|
+
{ label: '今日活跃', value: '1,926', trend: '+3.1%', trendDirection: 'up' as const, trendLabel: '较昨日', icon: 'activity' },
|
|
28
|
+
{ label: '待处理工单', value: '47', trend: '-12%', trendDirection: 'down' as const, trendLabel: '较上周', trendSeverity: 'warn' as const, icon: 'clipboard' },
|
|
29
|
+
{ label: '系统健康', value: '99.9%', trend: '稳定', trendSeverity: 'secondary' as const, icon: 'heart' },
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
const recentColumns = [
|
|
33
|
+
{ key: 'id', label: '工单号', width: 96 },
|
|
34
|
+
{ key: 'title', label: '标题' },
|
|
35
|
+
{ key: 'priority', label: '优先级', width: 96 },
|
|
36
|
+
{ key: 'status', label: '状态', width: 110 },
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
const recentRows = [
|
|
40
|
+
{ id: 'WO-1024', title: '登录异常反馈', priority: 'high', status: 'open' },
|
|
41
|
+
{ id: 'WO-1023', title: '导出任务超时', priority: 'medium', status: 'progress' },
|
|
42
|
+
{ id: 'WO-1022', title: '权限配置咨询', priority: 'low', status: 'done' },
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
function prioritySeverity(p: string) {
|
|
46
|
+
if (p === 'high') return 'danger'
|
|
47
|
+
if (p === 'medium') return 'warn'
|
|
48
|
+
return 'secondary'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function priorityLabel(p: string) {
|
|
52
|
+
if (p === 'high') return '高'
|
|
53
|
+
if (p === 'medium') return '中'
|
|
54
|
+
return '低'
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function statusLabel(s: string) {
|
|
58
|
+
if (s === 'open') return '待处理'
|
|
59
|
+
if (s === 'progress') return '进行中'
|
|
60
|
+
return '已完成'
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function statusSeverity(s: string) {
|
|
64
|
+
if (s === 'open') return 'warn'
|
|
65
|
+
if (s === 'progress') return 'info'
|
|
66
|
+
return 'success'
|
|
67
|
+
}
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
<template>
|
|
71
|
+
<MConfigProvider :locale="zhCN">
|
|
72
|
+
<MLayout fill-viewport>
|
|
73
|
+
<MLayoutHeader padding="var(--m-space-4) var(--m-space-6)">
|
|
74
|
+
<MBreadcrumb :model="[{ label: '首页' }, { label: '仪表盘' }]" />
|
|
75
|
+
</MLayoutHeader>
|
|
76
|
+
|
|
77
|
+
<MLayoutContent>
|
|
78
|
+
<MPageContent density="spacious">
|
|
79
|
+
<MPageHeader
|
|
80
|
+
title="运营概览"
|
|
81
|
+
description="关注今日活跃与待处理工单,异常优先下钻。"
|
|
82
|
+
/>
|
|
83
|
+
|
|
84
|
+
<MGrid :cols="4" :x-gap="16" :y-gap="16" responsive="screen">
|
|
85
|
+
<MGridItem v-for="item in stats" :key="item.label" :span="1">
|
|
86
|
+
<MPageStat
|
|
87
|
+
:label="item.label"
|
|
88
|
+
:value="item.value"
|
|
89
|
+
:trend="item.trend"
|
|
90
|
+
:trend-severity="item.trendSeverity ?? 'primary'"
|
|
91
|
+
:trend-direction="item.trendDirection"
|
|
92
|
+
:trend-label="item.trendLabel"
|
|
93
|
+
:icon="item.icon"
|
|
94
|
+
/>
|
|
95
|
+
</MGridItem>
|
|
96
|
+
</MGrid>
|
|
97
|
+
|
|
98
|
+
<MGrid :cols="2" :x-gap="16" :y-gap="16" responsive="screen">
|
|
99
|
+
<MGridItem :span="1">
|
|
100
|
+
<MCard title="趋势概览" shadow="always">
|
|
101
|
+
<MEmpty
|
|
102
|
+
description="接入图表组件后展示近 7 日活跃与转化。"
|
|
103
|
+
icon="chart-bar"
|
|
104
|
+
/>
|
|
105
|
+
</MCard>
|
|
106
|
+
</MGridItem>
|
|
107
|
+
<MGridItem :span="1">
|
|
108
|
+
<MCard title="最近工单" shadow="always">
|
|
109
|
+
<MTable
|
|
110
|
+
:columns="recentColumns"
|
|
111
|
+
:rows="recentRows"
|
|
112
|
+
size="small"
|
|
113
|
+
:paginator="false"
|
|
114
|
+
bordered
|
|
115
|
+
row-key="id"
|
|
116
|
+
aria-label="最近工单"
|
|
117
|
+
>
|
|
118
|
+
<template #cell-priority="{ value }">
|
|
119
|
+
<MTag
|
|
120
|
+
:value="priorityLabel(String(value))"
|
|
121
|
+
:severity="prioritySeverity(String(value))"
|
|
122
|
+
/>
|
|
123
|
+
</template>
|
|
124
|
+
<template #cell-status="{ value }">
|
|
125
|
+
<MStatus
|
|
126
|
+
:label="statusLabel(String(value))"
|
|
127
|
+
:severity="statusSeverity(String(value))"
|
|
128
|
+
/>
|
|
129
|
+
</template>
|
|
130
|
+
</MTable>
|
|
131
|
+
</MCard>
|
|
132
|
+
</MGridItem>
|
|
133
|
+
</MGrid>
|
|
134
|
+
</MPageContent>
|
|
135
|
+
</MLayoutContent>
|
|
136
|
+
</MLayout>
|
|
137
|
+
</MConfigProvider>
|
|
138
|
+
</template>
|