@litianxiang/portal-ui 0.0.6 → 0.0.8
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 +402 -6
- package/dist/index.d.ts +0 -10
- package/dist/index.js +1832 -2629
- package/dist/portal-ui.css +1 -1
- package/package.json +5 -8
- package/dist/styles/global.scss +0 -205
- package/dist/styles/iconfont.css +0 -1719
- package/dist/styles/iconfont.ttf +0 -0
- package/dist/styles/iconfont.woff +0 -0
- package/dist/styles/iconfont.woff2 +0 -0
- package/src/assets/iconfont/demo.css +0 -539
- package/src/assets/iconfont/demo_index.html +0 -9986
- package/src/assets/iconfont/iconfont.css +0 -1719
- package/src/assets/iconfont/iconfont.js +0 -1
- package/src/assets/iconfont/iconfont.json +0 -2991
- package/src/assets/iconfont/iconfont.ttf +0 -0
- package/src/assets/iconfont/iconfont.woff +0 -0
- package/src/assets/iconfont/iconfont.woff2 +0 -0
- package/src/assets/styles/element-ui.scss +0 -3772
- package/src/assets/styles/form.scss +0 -161
- package/src/assets/styles/global.scss +0 -205
- package/src/components/control/base/base-button.vue +0 -118
- package/src/components/control/base/base-checkbox.vue +0 -217
- package/src/components/control/base/base-china-area.vue +0 -555
- package/src/components/control/base/base-collapse-toggle.vue +0 -28
- package/src/components/control/base/base-date.vue +0 -148
- package/src/components/control/base/base-dialog.vue +0 -155
- package/src/components/control/base/base-file-preview.vue +0 -204
- package/src/components/control/base/base-input.vue +0 -130
- package/src/components/control/base/base-link.vue +0 -110
- package/src/components/control/base/base-messagebox.vue +0 -154
- package/src/components/control/base/base-number.vue +0 -139
- package/src/components/control/base/base-pagination.vue +0 -60
- package/src/components/control/base/base-radio.vue +0 -140
- package/src/components/control/base/base-select.vue +0 -156
- package/src/components/control/base/base-switch.vue +0 -134
- package/src/components/control/base/base-table.vue +0 -614
- package/src/components/control/base/base-textarea.vue +0 -117
- package/src/components/control/base/base-time.vue +0 -138
- package/src/components/control/base/base-upload.vue +0 -538
- package/src/components/control/busi/busi-approval-record.vue +0 -236
- package/src/components/control/busi/busi-dept.vue +0 -290
- package/src/components/control/busi/busi-file-preview.vue +0 -194
- package/src/components/control/busi/busi-outuser.vue +0 -210
- package/src/components/control/busi/busi-user-dialog.vue +0 -195
- package/src/components/control/busi/busi-user.vue +0 -321
- package/src/components/layout/global-loading.vue +0 -70
- package/src/components/layout/main-aside.vue +0 -179
- package/src/components/layout/main-fullscreen.vue +0 -79
- package/src/components/layout/main-header-crumb.vue +0 -78
- package/src/components/layout/main-header-info.vue +0 -150
- package/src/components/layout/main-header-tab.vue +0 -391
- package/src/components/layout/main-header.vue +0 -111
- package/src/components/layout/main-language.vue +0 -28
- package/src/components/layout/main-layout.vue +0 -252
- package/src/components/layout/main-menu.vue +0 -56
- package/src/file-preview.d.ts +0 -4
- package/src/file-preview.ts +0 -4
- package/src/index.d.ts +0 -38
- package/src/index.ts +0 -41
- package/src/utils/http.ts +0 -55
- package/src/vue-office.d.ts +0 -66
package/README.md
CHANGED
|
@@ -1,11 +1,407 @@
|
|
|
1
1
|
# @litianxiang/portal-ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
统一的流程表单公共控件库,聚焦:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- Base 系列基础表单控件
|
|
6
|
+
- Busi 系列业务控件
|
|
7
|
+
- 统一消息弹框与文件预览能力
|
|
8
|
+
- 与 `@litianxiang/portal-core` 对齐的 http 初始化桥接
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
> 样式边界约定:
|
|
11
|
+
>
|
|
12
|
+
> - `portal-ui` 负责 `element-ui.scss`、`form.scss`、`portal-ui.css`
|
|
13
|
+
> - `iconfont.css` 与 `global.scss` 已拆分到 `@litianxiang/portal-layout`
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @litianxiang/portal-ui
|
|
19
|
+
# 或
|
|
20
|
+
npm i @litianxiang/portal-ui
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 快速接入
|
|
24
|
+
|
|
25
|
+
### 1) 在 `main.ts` 引入样式
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import '@litianxiang/portal-ui/styles/portal-ui.css'
|
|
29
|
+
import '@litianxiang/portal-ui/styles/element-ui.scss'
|
|
30
|
+
import '@litianxiang/portal-ui/styles/form.scss'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2) 初始化 portal-ui 的 http
|
|
34
|
+
|
|
35
|
+
推荐在应用启动时注入已有实例,或由 portal-ui 自行初始化:
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import { initPortalUiHttp } from '@litianxiang/portal-ui'
|
|
39
|
+
|
|
40
|
+
initPortalUiHttp({
|
|
41
|
+
getUserStore: () => useUserStore(),
|
|
42
|
+
getLoadingStore: () => useLoadingStore(),
|
|
43
|
+
baseURL: '',
|
|
44
|
+
onShowError: (msg) => warning(msg)
|
|
45
|
+
})
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
如果你已有统一 http:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { setPortalUiHttp } from '@litianxiang/portal-ui'
|
|
52
|
+
|
|
53
|
+
setPortalUiHttp(http, logoutToAuth)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 导出 API
|
|
57
|
+
|
|
58
|
+
### 组件导出(详细)
|
|
59
|
+
|
|
60
|
+
> 所有组件均可通过以下方式按需引入:
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
import {
|
|
64
|
+
BaseInput,
|
|
65
|
+
BaseSelect,
|
|
66
|
+
BaseDate,
|
|
67
|
+
BaseUpload,
|
|
68
|
+
BaseTable
|
|
69
|
+
} from '@litianxiang/portal-ui'
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### Base 系列
|
|
73
|
+
|
|
74
|
+
1. **BaseInput**
|
|
75
|
+
|
|
76
|
+
- 用途:单行文本输入。
|
|
77
|
+
- 适用场景:姓名、标题、编号、关键字等普通输入。
|
|
78
|
+
- 示例:
|
|
79
|
+
|
|
80
|
+
```vue
|
|
81
|
+
<BaseInput v-model="formData.name" placeholder="请输入姓名" clearable />
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
2. **BaseButton**
|
|
85
|
+
|
|
86
|
+
- 用途:统一按钮风格封装。
|
|
87
|
+
- 适用场景:提交、查询、重置、删除等操作按钮。
|
|
88
|
+
- 示例:
|
|
89
|
+
|
|
90
|
+
```vue
|
|
91
|
+
<BaseButton type="primary" @click="handleSubmit">提交</BaseButton>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
3. **BaseCollapseToggle**
|
|
95
|
+
|
|
96
|
+
- 用途:展开/折叠状态切换按钮。
|
|
97
|
+
- 适用场景:高级筛选区域、表单分段折叠。
|
|
98
|
+
- 示例:
|
|
99
|
+
|
|
100
|
+
```vue
|
|
101
|
+
<BaseCollapseToggle v-model="expanded" />
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
4. **BaseSwitch**
|
|
105
|
+
|
|
106
|
+
- 用途:布尔状态开关。
|
|
107
|
+
- 适用场景:启用/禁用、开/关类字段。
|
|
108
|
+
- 示例:
|
|
109
|
+
|
|
110
|
+
```vue
|
|
111
|
+
<BaseSwitch v-model="formData.enabled" />
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
5. **BaseTable**
|
|
115
|
+
|
|
116
|
+
- 用途:统一表格封装(表头、操作列、插槽能力)。
|
|
117
|
+
- 适用场景:列表页、主从明细、可编辑网格。
|
|
118
|
+
- 示例:
|
|
119
|
+
|
|
120
|
+
```vue
|
|
121
|
+
<BaseTable :data="tableData" :columns="columns" row-key="id" />
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
6. **BaseSelect**
|
|
125
|
+
|
|
126
|
+
- 用途:下拉单选/多选封装。
|
|
127
|
+
- 适用场景:字典项、状态、分类等选项输入。
|
|
128
|
+
- 示例:
|
|
129
|
+
|
|
130
|
+
```vue
|
|
131
|
+
<BaseSelect v-model="formData.status" :options="statusOptions" clearable />
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
7. **BaseNumber**
|
|
135
|
+
|
|
136
|
+
- 用途:数字输入封装。
|
|
137
|
+
- 适用场景:数量、金额、排序号等数值字段。
|
|
138
|
+
- 示例:
|
|
139
|
+
|
|
140
|
+
```vue
|
|
141
|
+
<BaseNumber v-model="formData.count" :min="0" :max="9999" />
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
8. **BaseTextarea**
|
|
145
|
+
|
|
146
|
+
- 用途:多行文本输入。
|
|
147
|
+
- 适用场景:备注、说明、审批意见。
|
|
148
|
+
- 示例:
|
|
149
|
+
|
|
150
|
+
```vue
|
|
151
|
+
<BaseTextarea v-model="formData.remark" :rows="4" placeholder="请输入备注" />
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
9. **BaseDate**
|
|
155
|
+
|
|
156
|
+
- 用途:日期/日期区间选择。
|
|
157
|
+
- 适用场景:申请日期、生效日期、统计区间。
|
|
158
|
+
- 示例:
|
|
159
|
+
|
|
160
|
+
```vue
|
|
161
|
+
<BaseDate v-model="formData.applyDate" type="date" />
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
10. **BaseTime**
|
|
165
|
+
|
|
166
|
+
- 用途:时间选择。
|
|
167
|
+
- 适用场景:上班时间、会议时间、时段配置。
|
|
168
|
+
- 示例:
|
|
169
|
+
|
|
170
|
+
```vue
|
|
171
|
+
<BaseTime v-model="formData.startTime" />
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
11. **BaseUpload**
|
|
175
|
+
|
|
176
|
+
- 用途:统一附件上传控件。
|
|
177
|
+
- 适用场景:流程附件、证明材料、图片/PDF/文档上传。
|
|
178
|
+
- 示例:
|
|
179
|
+
|
|
180
|
+
```vue
|
|
181
|
+
<BaseUpload v-model="formData.files" :proc-bid="procBid" />
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
12. **BaseCheckbox**
|
|
185
|
+
|
|
186
|
+
- 用途:多选复选框组。
|
|
187
|
+
- 适用场景:标签多选、权限项多选、条件组合。
|
|
188
|
+
- 示例:
|
|
189
|
+
|
|
190
|
+
```vue
|
|
191
|
+
<BaseCheckbox v-model="formData.tags" :options="tagOptions" />
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
13. **BaseRadio**
|
|
195
|
+
|
|
196
|
+
- 用途:单选按钮组。
|
|
197
|
+
- 适用场景:性别、类型、单一状态选择。
|
|
198
|
+
- 示例:
|
|
199
|
+
|
|
200
|
+
```vue
|
|
201
|
+
<BaseRadio v-model="formData.type" :options="typeOptions" />
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
14. **BaseLink**
|
|
205
|
+
|
|
206
|
+
- 用途:统一样式的链接文本。
|
|
207
|
+
- 适用场景:详情跳转、附件下载、辅助操作入口。
|
|
208
|
+
- 示例:
|
|
209
|
+
|
|
210
|
+
```vue
|
|
211
|
+
<BaseLink @click="openDetail(row)">查看详情</BaseLink>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
15. **BaseDialog**
|
|
215
|
+
|
|
216
|
+
- 用途:弹窗容器封装。
|
|
217
|
+
- 适用场景:新增/编辑弹窗、确认操作弹窗。
|
|
218
|
+
- 示例:
|
|
219
|
+
|
|
220
|
+
```vue
|
|
221
|
+
<BaseDialog v-model="dialogVisible" title="编辑信息">
|
|
222
|
+
<div>...</div>
|
|
223
|
+
</BaseDialog>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
16. **BaseChinaArea**
|
|
227
|
+
|
|
228
|
+
- 用途:中国省市区联动选择。
|
|
229
|
+
- 适用场景:户籍地址、办公地址、收件地址。
|
|
230
|
+
- 示例:
|
|
231
|
+
|
|
232
|
+
```vue
|
|
233
|
+
<BaseChinaArea v-model="formData.area" />
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
17. **BasePagination**
|
|
237
|
+
|
|
238
|
+
- 用途:统一分页组件。
|
|
239
|
+
- 适用场景:列表分页与查询联动。
|
|
240
|
+
- 示例:
|
|
241
|
+
|
|
242
|
+
```vue
|
|
243
|
+
<BasePagination
|
|
244
|
+
:current-page="page.current"
|
|
245
|
+
:page-size="page.size"
|
|
246
|
+
:total="page.total"
|
|
247
|
+
@change="handlePageChange"
|
|
248
|
+
/>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
#### Busi 系列
|
|
252
|
+
|
|
253
|
+
18. **BaseApprovalRecord**
|
|
254
|
+
|
|
255
|
+
- 用途:审批记录展示(业务封装)。
|
|
256
|
+
- 适用场景:流程单据详情中的审批轨迹。
|
|
257
|
+
- 示例:
|
|
258
|
+
|
|
259
|
+
```vue
|
|
260
|
+
<BaseApprovalRecord :proc-inst-id="procInstId" />
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
19. **BaseUser**
|
|
264
|
+
|
|
265
|
+
- 用途:人员选择控件。
|
|
266
|
+
- 适用场景:申请人、审批人、抄送人选择。
|
|
267
|
+
- 示例:
|
|
268
|
+
|
|
269
|
+
```vue
|
|
270
|
+
<BaseUser v-model="formData.user" />
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
20. **BusiDept**
|
|
274
|
+
|
|
275
|
+
- 用途:部门选择控件。
|
|
276
|
+
- 适用场景:组织归属、发起部门、统计维度部门。
|
|
277
|
+
- 示例:
|
|
278
|
+
|
|
279
|
+
```vue
|
|
280
|
+
<BusiDept v-model="formData.dept" />
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
21. **BusiOutUser**
|
|
284
|
+
|
|
285
|
+
- 用途:外包顾问选择控件。
|
|
286
|
+
- 适用场景:外包人员派工、顾问信息录入。
|
|
287
|
+
- 示例:
|
|
288
|
+
|
|
289
|
+
```vue
|
|
290
|
+
<BusiOutUser v-model="formData.outUser" />
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
22. **BusiUserDialog**
|
|
294
|
+
|
|
295
|
+
- 用途:人员选择弹窗组件。
|
|
296
|
+
- 适用场景:复杂筛选+批量选择人员。
|
|
297
|
+
- 示例:
|
|
298
|
+
|
|
299
|
+
```vue
|
|
300
|
+
<BusiUserDialog v-model="userDialogVisible" @confirm="handleUserConfirm" />
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
#### 文件预览组件
|
|
304
|
+
|
|
305
|
+
23. **BaseFilePreview**
|
|
306
|
+
|
|
307
|
+
- 用途:基础文件预览容器。
|
|
308
|
+
- 适用场景:单文件预览、附件详情预览。
|
|
309
|
+
- 示例:
|
|
310
|
+
|
|
311
|
+
```vue
|
|
312
|
+
<BaseFilePreview :file-url="fileUrl" :file-name="fileName" />
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
24. **BusiFilePreview**
|
|
316
|
+
|
|
317
|
+
- 用途:业务场景文件预览组件(推荐)。
|
|
318
|
+
- 适用场景:流程单附件列表预览。
|
|
319
|
+
- 示例:
|
|
320
|
+
|
|
321
|
+
```vue
|
|
322
|
+
<BusiFilePreview :files="attachmentList" />
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
25. **WorkflowFilePreview(兼容导出,已废弃)**
|
|
326
|
+
|
|
327
|
+
- 用途:历史命名兼容。
|
|
328
|
+
- 说明:已等价映射到 `BusiFilePreview`,新代码请直接使用 `BusiFilePreview`。
|
|
329
|
+
|
|
330
|
+
### 方法导出(详细)
|
|
331
|
+
|
|
332
|
+
#### 1) `baseMessageBox`
|
|
333
|
+
|
|
334
|
+
- 作用:统一消息弹框能力(`confirm/alert/success/warning`)。
|
|
335
|
+
- 典型场景:提交前确认、删除确认、统一警告提示。
|
|
336
|
+
- 示例:
|
|
337
|
+
|
|
338
|
+
```ts
|
|
339
|
+
import { baseMessageBox } from '@litianxiang/portal-ui'
|
|
340
|
+
|
|
341
|
+
await baseMessageBox.confirm('确认提交当前表单吗?')
|
|
342
|
+
baseMessageBox.success('保存成功')
|
|
343
|
+
baseMessageBox.warning('请先完善必填项')
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
#### 2) `initPortalUiHttp(options)`
|
|
347
|
+
|
|
348
|
+
- 作用:创建并注册 portal-ui 默认 http(内部基于 `@litianxiang/portal-core` 的 `createAuthHttpClient`)。
|
|
349
|
+
- 入参:
|
|
350
|
+
- `getUserStore: () => any`:返回 user store。
|
|
351
|
+
- `getLoadingStore: () => any`:返回 loading store。
|
|
352
|
+
- `baseURL?: string`:可选请求前缀。
|
|
353
|
+
- `onShowError?: (msg: string) => void`:可选统一错误提示。
|
|
354
|
+
- 返回:`{ http, logoutToAuth }`。
|
|
355
|
+
- 示例:
|
|
356
|
+
|
|
357
|
+
```ts
|
|
358
|
+
import { initPortalUiHttp } from '@litianxiang/portal-ui'
|
|
359
|
+
|
|
360
|
+
const { http, logoutToAuth } = initPortalUiHttp({
|
|
361
|
+
getUserStore: () => useUserStore(),
|
|
362
|
+
getLoadingStore: () => useLoadingStore(),
|
|
363
|
+
onShowError: (msg) => warning(msg)
|
|
364
|
+
})
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
#### 3) `setPortalUiHttp(http, logoutToAuth?)`
|
|
368
|
+
|
|
369
|
+
- 作用:将业务系统已创建的 http 实例注入 portal-ui,避免重复创建拦截器。
|
|
370
|
+
- 入参:
|
|
371
|
+
- `http: any`:宿主项目的统一 http 实例。
|
|
372
|
+
- `logoutToAuth?: () => void`:可选统一退出函数。
|
|
373
|
+
- 典型场景:主项目已有 `http.ts`,portal-ui 只复用。
|
|
374
|
+
- 示例:
|
|
375
|
+
|
|
376
|
+
```ts
|
|
377
|
+
import { setPortalUiHttp } from '@litianxiang/portal-ui'
|
|
378
|
+
import { http, logoutToAuth } from '@/utils/http'
|
|
379
|
+
|
|
380
|
+
setPortalUiHttp(http, logoutToAuth)
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## 与 portal-core / portal-layout 的关系
|
|
384
|
+
|
|
385
|
+
- `portal-ui`:控件与表单样式
|
|
386
|
+
- `portal-layout`:布局组件、iconfont、global 样式
|
|
387
|
+
- `portal-core`:路由、鉴权、请求拦截、权限/菜单/用户状态内核
|
|
388
|
+
|
|
389
|
+
建议业务站点统一按此分层依赖,避免职责交叉。
|
|
390
|
+
|
|
391
|
+
## 本地开发
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
pnpm install
|
|
395
|
+
pnpm run build
|
|
396
|
+
pnpm run pack:check
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
`pack:check` 会先构建再打包到临时目录,用于发布前检查产物。
|
|
400
|
+
|
|
401
|
+
## 发布建议
|
|
402
|
+
|
|
403
|
+
1. 修改版本号(遵循 patch 递增)
|
|
404
|
+
2. 执行 `pnpm run pack:check`
|
|
405
|
+
3. 确认产物仅包含预期的 `dist` 与类型声明
|
|
406
|
+
4. 执行 `npm publish --access public --registry=https://registry.npmjs.org/`
|
|
8
407
|
|
|
9
|
-
- `portal.ui` 内部新增专属别名:`@ui/* -> src/*`
|
|
10
|
-
- 该别名仅用于 `portal.ui` 工程内的类型解析与开发体验
|
|
11
|
-
- 当前包以 `src` 源码形式发布给宿主项目,库内运行时导入建议继续使用相对路径,避免宿主缺少 `@ui` 解析配置导致构建失败
|
package/dist/index.d.ts
CHANGED
|
@@ -22,16 +22,6 @@ export { default as BaseUser } from './components/control/busi/busi-user.vue'
|
|
|
22
22
|
export { default as BusiDept } from './components/control/busi/busi-dept.vue'
|
|
23
23
|
export { default as BusiOutUser } from './components/control/busi/busi-outuser.vue'
|
|
24
24
|
export { default as BusiUserDialog } from './components/control/busi/busi-user-dialog.vue'
|
|
25
|
-
export { default as MainLayout } from './components/layout/main-layout.vue'
|
|
26
|
-
export { default as MainAside } from './components/layout/main-aside.vue'
|
|
27
|
-
export { default as MainHeader } from './components/layout/main-header.vue'
|
|
28
|
-
export { default as MainHeaderCrumb } from './components/layout/main-header-crumb.vue'
|
|
29
|
-
export { default as MainHeaderInfo } from './components/layout/main-header-info.vue'
|
|
30
|
-
export { default as MainHeaderTab } from './components/layout/main-header-tab.vue'
|
|
31
|
-
export { default as MainFullscreen } from './components/layout/main-fullscreen.vue'
|
|
32
|
-
export { default as MainLanguage } from './components/layout/main-language.vue'
|
|
33
|
-
export { default as MainMenu } from './components/layout/main-menu.vue'
|
|
34
|
-
export { default as GlobalLoading } from './components/layout/global-loading.vue'
|
|
35
25
|
export { baseMessageBox } from './components/control/base/base-messagebox.vue'
|
|
36
26
|
|
|
37
27
|
export type { InitPortalUiHttpOptions } from './utils/http'
|