smirk-ui 0.0.24 → 0.1.1
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 +76 -27
- package/dist/kit.es.js +6 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
>
|
|
7
7
|
> 2. 主要基于 Naive UI 二次封装。包含大屏组件和业务组件等。
|
|
8
8
|
>
|
|
9
|
-
>
|
|
9
|
+
> **注:开发大屏项目时,可搭配 `smirk-kit` 使用。其中 `useDsCore` 数据源引擎,为交互、接口轮询、数据管理等工作提供了极大便利。
|
|
10
|
+
>
|
|
11
|
+
> smirk-ui@0.0.24 中已将 smirk-kit 迁移过来。导入方式 `import kit from 'smirk-ui/kit'`
|
|
10
12
|
|
|
11
13
|
## 安装
|
|
12
14
|
|
|
@@ -40,6 +42,7 @@
|
|
|
40
42
|
app.use(SmirkUI)
|
|
41
43
|
// 或者 按需引入
|
|
42
44
|
import { SmViewport } from 'smirk-ui'
|
|
45
|
+
import kit from 'smirk-ui/kit'
|
|
43
46
|
```
|
|
44
47
|
|
|
45
48
|
## 组件
|
|
@@ -112,21 +115,7 @@ const ecMap = reactive({
|
|
|
112
115
|
})
|
|
113
116
|
|
|
114
117
|
function getOptionFn () {
|
|
115
|
-
return {
|
|
116
|
-
xAxis: {
|
|
117
|
-
type: 'category',
|
|
118
|
-
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
|
119
|
-
},
|
|
120
|
-
yAxis: {
|
|
121
|
-
type: 'value'
|
|
122
|
-
},
|
|
123
|
-
series: [
|
|
124
|
-
{
|
|
125
|
-
data: [150, 230, 224, 218, 135, 147, 260],
|
|
126
|
-
type: 'line'
|
|
127
|
-
}
|
|
128
|
-
]
|
|
129
|
-
}
|
|
118
|
+
return {}
|
|
130
119
|
}
|
|
131
120
|
|
|
132
121
|
onMounted(() => {
|
|
@@ -134,10 +123,10 @@ onMounted(() => {
|
|
|
134
123
|
ecMap.vmRender()
|
|
135
124
|
/** 注:此刻,ecMap 对象中会增加几个属性,用于操作图表
|
|
136
125
|
ecMap = {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
126
|
+
vmBox, // 这是宿主元素
|
|
127
|
+
vmSelf, // 这是图表实例,即 myChart
|
|
128
|
+
vmRender, // 渲染方法,可传入新的 option 进行重绘
|
|
129
|
+
vmClear // 清除
|
|
141
130
|
}
|
|
142
131
|
*/
|
|
143
132
|
})
|
|
@@ -145,7 +134,7 @@ onMounted(() => {
|
|
|
145
134
|
|
|
146
135
|
|
|
147
136
|
|
|
148
|
-
###
|
|
137
|
+
### smx-rolling
|
|
149
138
|
|
|
150
139
|
> 基础滚动组件。基于 vue3-seamless-scroll 封装(不是虚拟列表的设计,进行了一些优化)。
|
|
151
140
|
>
|
|
@@ -171,7 +160,7 @@ onMounted(() => {
|
|
|
171
160
|
|
|
172
161
|
|
|
173
162
|
|
|
174
|
-
###
|
|
163
|
+
### smx-rolling-list
|
|
175
164
|
|
|
176
165
|
> 滚动的数据表格组件。为尽可能减少入参,样式可在父组件中设置。
|
|
177
166
|
|
|
@@ -257,7 +246,7 @@ onMounted(() => {
|
|
|
257
246
|
|
|
258
247
|
### sm-multiple-picker
|
|
259
248
|
|
|
260
|
-
>
|
|
249
|
+
> 筛选器组件。多类别、多选、可折叠。
|
|
261
250
|
|
|
262
251
|
`Props`
|
|
263
252
|
|
|
@@ -317,7 +306,7 @@ onMounted(() => {
|
|
|
317
306
|
| 名称 | 参数 | 说明 |
|
|
318
307
|
| ------- | ---- | ---- |
|
|
319
308
|
| item-before | { p, m, s } | |
|
|
320
|
-
| elem | { p, m, s, vf, vc } | 表单组件(内置
|
|
309
|
+
| elem | { p, m, s, vf, vc } | 表单组件(内置 14 种表单组件,其中日期组件又包含11种形式),共 24 种。若仍不满足,由此处插入自定义组件。 |
|
|
321
310
|
| item-after | { p, m, s } | |
|
|
322
311
|
|
|
323
312
|
`Methods`
|
|
@@ -329,13 +318,17 @@ onMounted(() => {
|
|
|
329
318
|
| setCellAttrs | (attrs, codes) | |
|
|
330
319
|
| setDsFilter | | |
|
|
331
320
|
|
|
321
|
+
### sm-doc-editor
|
|
322
|
+
|
|
323
|
+
> 文档编辑器组件。跟 sm-form 配置类似,需传入 template 参数(富文本字符串,字段位置用 @{ fieldCode } 占位)。一般用于合同模板、统计清单等场景。
|
|
324
|
+
|
|
332
325
|
### sm-table
|
|
333
326
|
|
|
334
327
|
> 略略略...
|
|
335
328
|
|
|
336
329
|
### sm-dropdown-buttons
|
|
337
330
|
|
|
338
|
-
>
|
|
331
|
+
> 主要是在 sm-table 的操作列使用,超过 :count 个按钮时,折叠成下拉菜单。
|
|
339
332
|
>
|
|
340
333
|
|
|
341
334
|
### sm-tabs
|
|
@@ -346,6 +339,62 @@ onMounted(() => {
|
|
|
346
339
|
|
|
347
340
|
> 略略略...
|
|
348
341
|
|
|
349
|
-
###
|
|
342
|
+
### smx-file-viewer
|
|
343
|
+
|
|
344
|
+
> 略略略...
|
|
345
|
+
>
|
|
346
|
+
|
|
347
|
+
### 【smirk-ui/kit】useDsCore
|
|
348
|
+
|
|
349
|
+
> 还是记录下吧。久了自己都不会用了 O(∩_∩)O~~
|
|
350
|
+
>
|
|
351
|
+
> 数据源管理(常用于大屏项目)。基于 pinia 实现(主要能够在 vue-devtools 中调试),采用发布订阅模式,使请求的触发和响应解耦。支持多个 request 聚合;支持设置轮询;支持响应结果预处理以及创建新的数据源等。
|
|
352
|
+
>
|
|
353
|
+
`Methods`
|
|
354
|
+
```
|
|
355
|
+
deps() ——查看当前所有的依赖参数
|
|
356
|
+
initDeps(params) ——初始化依赖参数
|
|
357
|
+
updateDeps(params) ——更新依赖参数,关联的 request 会发起请求
|
|
358
|
+
provide(obj|arr) ——启动数据源引擎
|
|
359
|
+
send(reqOrName, opts) ——触发一个数据源任务,共享数据源维护的依赖参数,但不会被动执行,响应结果也不会放进数据池
|
|
360
|
+
listener(name, callback) ——监听数据源
|
|
361
|
+
stop(name) ——停止轮询
|
|
362
|
+
get(name) ——获取某数据源,一般搭配计算属性使用
|
|
363
|
+
set(name, data) ——手动新增或更新某数据源,可在 interceptor 中拦截,将一个 request 响应分别存储到多个数据源
|
|
364
|
+
reload() ——全部更新
|
|
365
|
+
```
|
|
366
|
+
`示例:`
|
|
367
|
+
```javascript
|
|
368
|
+
// apis 定义任务
|
|
369
|
+
const dsTasks = {
|
|
370
|
+
foo: {
|
|
371
|
+
interval: 10,
|
|
372
|
+
deps: ['id'],
|
|
373
|
+
request: p => fetch('/api/foo?id=' + p.id),
|
|
374
|
+
interceptor: (res, o) => {
|
|
375
|
+
// 响应结果预处理
|
|
376
|
+
// 增加数据源 o.set('name1', res.xx)
|
|
377
|
+
return res
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
// 组件中 实例化
|
|
382
|
+
import smkit from 'smirk-ui/kit'
|
|
383
|
+
const dsCore = smkit.useDsCore(/*可以传个字符串,以创建多个数据源管理*/)
|
|
384
|
+
|
|
385
|
+
// 启动所有任务
|
|
386
|
+
dsCore.provide(dsTasks)
|
|
387
|
+
|
|
388
|
+
// 更新依赖
|
|
389
|
+
dsCore.updateDeps({ id: 2 })
|
|
390
|
+
|
|
391
|
+
// 接收响应结果
|
|
392
|
+
const foo = computed(() => dsCore.get('foo') ?? {})
|
|
393
|
+
// 或
|
|
394
|
+
dsCore.listener('foo', res => {
|
|
395
|
+
console.log('foo:', res)
|
|
396
|
+
})
|
|
397
|
+
```
|
|
398
|
+
|
|
350
399
|
|
|
351
|
-
>
|
|
400
|
+
>
|
package/dist/kit.es.js
CHANGED
|
@@ -558,7 +558,7 @@ const trsListToTree = (list, idField = "id", parentIdField = "parentId") => {
|
|
|
558
558
|
});
|
|
559
559
|
return tree;
|
|
560
560
|
};
|
|
561
|
-
const getTreePathById = (tree, targetId, idField = "id", childrenField = "children") => {
|
|
561
|
+
const getTreePathById = (tree, targetId, idField = "id", removeChild = true, childrenField = "children") => {
|
|
562
562
|
if (!Array.isArray(tree) || !targetId && targetId !== 0) return [];
|
|
563
563
|
const findPath = (nodes, path = []) => {
|
|
564
564
|
for (const node of nodes) {
|
|
@@ -587,6 +587,10 @@ const getTreePathById = (tree, targetId, idField = "id", childrenField = "childr
|
|
|
587
587
|
} else {
|
|
588
588
|
newNode[childrenField] = [];
|
|
589
589
|
}
|
|
590
|
+
} else {
|
|
591
|
+
if (removeChild) {
|
|
592
|
+
delete newNode[childrenField];
|
|
593
|
+
}
|
|
590
594
|
}
|
|
591
595
|
newNodeList.push(newNode);
|
|
592
596
|
return newNodeList;
|
|
@@ -622,7 +626,7 @@ const getTreeByLevel = (tree, maxLevel, childrenField = "children", topLevel = 0
|
|
|
622
626
|
return tree.map((node) => {
|
|
623
627
|
const newNode = { ...node };
|
|
624
628
|
if (topLevel < maxLevel && newNode.children && Array.isArray(newNode.children)) {
|
|
625
|
-
newNode.children =
|
|
629
|
+
newNode.children = getTreeByLevel(newNode.children, maxLevel, "children", topLevel + 1);
|
|
626
630
|
} else {
|
|
627
631
|
delete newNode.children;
|
|
628
632
|
}
|