znyg-frontend-common 1.0.72 → 1.0.73
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/es/components/index.d.ts +2 -1
- package/es/components/index.mjs +1 -1
- package/es/components/znTimeLine/index.d.ts +53 -0
- package/es/components/znTimeLine/index.mjs.map +1 -1
- package/es/components/znTimeLine/src/index.vue.d.ts +69 -0
- package/es/components/znTimeLine/src/index.vue2.mjs +16 -4
- package/es/components/znTimeLine/src/index.vue2.mjs.map +1 -1
- package/es/index.mjs +1 -1
- package/es/index.mjs.map +1 -1
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +1 -1
- package/lib/components/znTimeLine/index.d.ts +53 -0
- package/lib/components/znTimeLine/index.js.map +1 -1
- package/lib/components/znTimeLine/src/index.vue.d.ts +69 -0
- package/lib/components/znTimeLine/src/index.vue2.js +16 -4
- package/lib/components/znTimeLine/src/index.vue2.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/es/components/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ZnChart from './znChart/index';
|
|
2
2
|
import { ZnTable, type ZnTableProps, type SearchProps, type ColumnProps } from './znTable/index';
|
|
3
|
+
import { ZnTreeSelect } from './znTreeSelect/index';
|
|
3
4
|
import ZnTreeFilter from './znTreeFilter/index';
|
|
4
5
|
import ZnCountTo from './znCountTo/index';
|
|
5
6
|
import { default as ZnForm } from './znForm/index';
|
|
@@ -13,5 +14,5 @@ import ZnVirtualTable, { initVXETable, type ZnVirtualTableProps } from './znVirt
|
|
|
13
14
|
export { type ZnFormProps, type ZnFormSchemaProps, type ZnElFormProps, useZnForm } from './znForm/index';
|
|
14
15
|
export type { ZnWorkGridProps, ZnWorkGridItemsProps, ZnWorkGridWrokListProps } from './znWorkGrid/index';
|
|
15
16
|
export type { ZnTableProps, SearchProps, ColumnProps, ZnTimelineItemPro, ZnGridProps, ZnGridItemProps, ZnVirtualTableProps };
|
|
16
|
-
export { ZnTable, ZnTreeFilter, ZnChart, ZnCountTo, ZnTest, ZnForm, ZnTimeline, ZnWorkGrid, ZnGrid, ZnGridItem, ZnSearch, ZnNumberScroll, ZnVirtualTable, initVXETable };
|
|
17
|
+
export { ZnTable, ZnTreeFilter, ZnChart, ZnCountTo, ZnTest, ZnForm, ZnTimeline, ZnWorkGrid, ZnGrid, ZnGridItem, ZnSearch, ZnNumberScroll, ZnTreeSelect, ZnVirtualTable, initVXETable };
|
|
17
18
|
export { useZnSearch, type ZnSearchProps, type ZnSearchSchemaProps } from './znSearch/index';
|
package/es/components/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{ZnChart}from"./znChart/index.mjs";export{ZnTable}from"./znTable/index.mjs";export{ZnTreeFilter}from"./znTreeFilter/index.mjs";export{ZnCountTo}from"./znCountTo/index.mjs";export{ZnForm}from"./znForm/index.mjs";export{ZnTimeline}from"./znTimeLine/index.mjs";export{ZnGrid,ZnGridItem}from"./znGrid/index.mjs";export{ZnTest}from"./znTest/index.mjs";export{ZnWorkGrid}from"./znWorkGrid/index.mjs";export{ZnSearch}from"./znSearch/index.mjs";export{ZnNumberScroll}from"./znNumberScroll/index.mjs";import"./znVirtualTable/index.mjs";export{useZnForm}from"./znForm/src/hooks/useZnForm.mjs";export{useZnSearch}from"./znSearch/src/hooks/useProSearch.mjs";export{default as ZnVirtualTable}from"./znVirtualTable/src/index.vue2.mjs";export{initVXETable}from"./znVirtualTable/src/utils/vxe-setup.mjs";
|
|
1
|
+
export{ZnChart}from"./znChart/index.mjs";export{ZnTable}from"./znTable/index.mjs";export{ZnTreeSelect}from"./znTreeSelect/index.mjs";export{ZnTreeFilter}from"./znTreeFilter/index.mjs";export{ZnCountTo}from"./znCountTo/index.mjs";export{ZnForm}from"./znForm/index.mjs";export{ZnTimeline}from"./znTimeLine/index.mjs";export{ZnGrid,ZnGridItem}from"./znGrid/index.mjs";export{ZnTest}from"./znTest/index.mjs";export{ZnWorkGrid}from"./znWorkGrid/index.mjs";export{ZnSearch}from"./znSearch/index.mjs";export{ZnNumberScroll}from"./znNumberScroll/index.mjs";import"./znVirtualTable/index.mjs";export{useZnForm}from"./znForm/src/hooks/useZnForm.mjs";export{useZnSearch}from"./znSearch/src/hooks/useProSearch.mjs";export{default as ZnVirtualTable}from"./znVirtualTable/src/index.vue2.mjs";export{initVXETable}from"./znVirtualTable/src/utils/vxe-setup.mjs";
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -5,8 +5,37 @@ export declare const ZnTimeline: import("../../types").SFCWithInstall<import("vu
|
|
|
5
5
|
required: true;
|
|
6
6
|
default: () => any[];
|
|
7
7
|
};
|
|
8
|
+
chunkSize: {
|
|
9
|
+
type: NumberConstructor;
|
|
10
|
+
required: false;
|
|
11
|
+
default: number;
|
|
12
|
+
};
|
|
13
|
+
renderDelay: {
|
|
14
|
+
type: NumberConstructor;
|
|
15
|
+
required: false;
|
|
16
|
+
default: number;
|
|
17
|
+
};
|
|
18
|
+
lazy: {
|
|
19
|
+
type: BooleanConstructor;
|
|
20
|
+
required: false;
|
|
21
|
+
default: boolean;
|
|
22
|
+
};
|
|
23
|
+
keyField: {
|
|
24
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
25
|
+
required: false;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
8
28
|
}>, {
|
|
9
29
|
props: any;
|
|
30
|
+
renderedCount: import("vue").Ref<number, number>;
|
|
31
|
+
isRendering: import("vue").Ref<boolean, boolean>;
|
|
32
|
+
renderTimer: import("vue").Ref<NodeJS.Timeout, NodeJS.Timeout>;
|
|
33
|
+
renderedItems: import("vue").ComputedRef<any>;
|
|
34
|
+
hasMoreItems: import("vue").ComputedRef<boolean>;
|
|
35
|
+
getItemKey: (item: import("./src/component/timelineItem.vue").ZnTimelineItemPro, index: number) => any;
|
|
36
|
+
renderChunk: () => Promise<void>;
|
|
37
|
+
resetRender: () => void;
|
|
38
|
+
startRender: () => void;
|
|
10
39
|
timelineItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
11
40
|
result: {
|
|
12
41
|
type: StringConstructor;
|
|
@@ -106,7 +135,31 @@ export declare const ZnTimeline: import("../../types").SFCWithInstall<import("vu
|
|
|
106
135
|
required: true;
|
|
107
136
|
default: () => any[];
|
|
108
137
|
};
|
|
138
|
+
chunkSize: {
|
|
139
|
+
type: NumberConstructor;
|
|
140
|
+
required: false;
|
|
141
|
+
default: number;
|
|
142
|
+
};
|
|
143
|
+
renderDelay: {
|
|
144
|
+
type: NumberConstructor;
|
|
145
|
+
required: false;
|
|
146
|
+
default: number;
|
|
147
|
+
};
|
|
148
|
+
lazy: {
|
|
149
|
+
type: BooleanConstructor;
|
|
150
|
+
required: false;
|
|
151
|
+
default: boolean;
|
|
152
|
+
};
|
|
153
|
+
keyField: {
|
|
154
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
155
|
+
required: false;
|
|
156
|
+
default: string;
|
|
157
|
+
};
|
|
109
158
|
}>> & Readonly<{}>, {
|
|
159
|
+
lazy: boolean;
|
|
110
160
|
list: unknown[];
|
|
161
|
+
chunkSize: number;
|
|
162
|
+
renderDelay: number;
|
|
163
|
+
keyField: string | Function;
|
|
111
164
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
|
|
112
165
|
export default ZnTimeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/znTimeLine/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/install'\nimport index from './src/index.vue'\n\nexport type { ZnTimelineItemPro } from './src/component/timelineItem.vue'\n\nexport const ZnTimeline = withInstall(index) //
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/znTimeLine/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/install'\nimport index from './src/index.vue'\n\nexport type { ZnTimelineItemPro } from './src/component/timelineItem.vue'\n\nexport const ZnTimeline = withInstall(index) // 分片渲染优化版本\n\nexport default ZnTimeline\n"],"names":["ZnTimeline","withInstall","index"],"mappings":"sHAKa,MAAAA,EAAaC,EAAYC"}
|
|
@@ -4,6 +4,22 @@ export interface ProTimeLineProps {
|
|
|
4
4
|
* 数据
|
|
5
5
|
*/
|
|
6
6
|
list: Array<ZnTimelineItemPro>;
|
|
7
|
+
/**
|
|
8
|
+
* 分片大小,每次渲染的项目数量
|
|
9
|
+
*/
|
|
10
|
+
chunkSize?: number;
|
|
11
|
+
/**
|
|
12
|
+
* 渲染间隔(毫秒)
|
|
13
|
+
*/
|
|
14
|
+
renderDelay?: number;
|
|
15
|
+
/**
|
|
16
|
+
* 是否启用懒加载
|
|
17
|
+
*/
|
|
18
|
+
lazy?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* 获取唯一key的函数
|
|
21
|
+
*/
|
|
22
|
+
keyField?: string | ((item: ZnTimelineItemPro, index: number) => string | number);
|
|
7
23
|
}
|
|
8
24
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
9
25
|
list: {
|
|
@@ -11,8 +27,37 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11
27
|
required: true;
|
|
12
28
|
default: () => any[];
|
|
13
29
|
};
|
|
30
|
+
chunkSize: {
|
|
31
|
+
type: NumberConstructor;
|
|
32
|
+
required: false;
|
|
33
|
+
default: number;
|
|
34
|
+
};
|
|
35
|
+
renderDelay: {
|
|
36
|
+
type: NumberConstructor;
|
|
37
|
+
required: false;
|
|
38
|
+
default: number;
|
|
39
|
+
};
|
|
40
|
+
lazy: {
|
|
41
|
+
type: BooleanConstructor;
|
|
42
|
+
required: false;
|
|
43
|
+
default: boolean;
|
|
44
|
+
};
|
|
45
|
+
keyField: {
|
|
46
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
47
|
+
required: false;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
14
50
|
}>, {
|
|
15
51
|
props: any;
|
|
52
|
+
renderedCount: import("vue").Ref<number, number>;
|
|
53
|
+
isRendering: import("vue").Ref<boolean, boolean>;
|
|
54
|
+
renderTimer: import("vue").Ref<NodeJS.Timeout, NodeJS.Timeout>;
|
|
55
|
+
renderedItems: import("vue").ComputedRef<any>;
|
|
56
|
+
hasMoreItems: import("vue").ComputedRef<boolean>;
|
|
57
|
+
getItemKey: (item: ZnTimelineItemPro, index: number) => any;
|
|
58
|
+
renderChunk: () => Promise<void>;
|
|
59
|
+
resetRender: () => void;
|
|
60
|
+
startRender: () => void;
|
|
16
61
|
timelineItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
17
62
|
result: {
|
|
18
63
|
type: StringConstructor;
|
|
@@ -112,7 +157,31 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
112
157
|
required: true;
|
|
113
158
|
default: () => any[];
|
|
114
159
|
};
|
|
160
|
+
chunkSize: {
|
|
161
|
+
type: NumberConstructor;
|
|
162
|
+
required: false;
|
|
163
|
+
default: number;
|
|
164
|
+
};
|
|
165
|
+
renderDelay: {
|
|
166
|
+
type: NumberConstructor;
|
|
167
|
+
required: false;
|
|
168
|
+
default: number;
|
|
169
|
+
};
|
|
170
|
+
lazy: {
|
|
171
|
+
type: BooleanConstructor;
|
|
172
|
+
required: false;
|
|
173
|
+
default: boolean;
|
|
174
|
+
};
|
|
175
|
+
keyField: {
|
|
176
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
177
|
+
required: false;
|
|
178
|
+
default: string;
|
|
179
|
+
};
|
|
115
180
|
}>> & Readonly<{}>, {
|
|
181
|
+
lazy: boolean;
|
|
116
182
|
list: unknown[];
|
|
183
|
+
chunkSize: number;
|
|
184
|
+
renderDelay: number;
|
|
185
|
+
keyField: string | Function;
|
|
117
186
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
118
187
|
export default _default;
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import{defineComponent as e,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import{defineComponent as e,ref as l,computed as t,nextTick as a,watch as u,onMounted as i,resolveComponent as r,createBlock as n,openBlock as d,withCtx as o,createCommentVNode as m,createElementBlock as s,Fragment as v,renderList as y,mergeProps as c,createVNode as p}from"vue";import"./component/timelineItem.vue.mjs";import f from"./component/timelineItem.vue2.mjs";var k=Object.defineProperty,h=(e,l)=>k(e,"name",{value:l,configurable:!0}),w=e({name:"ZnTimeline",__name:"index",props:{list:{type:Array,required:!0,default:h((()=>[]),"default")},chunkSize:{type:Number,required:!1,default:20},renderDelay:{type:Number,required:!1,default:16},lazy:{type:Boolean,required:!1,default:!0},keyField:{type:[String,Function],required:!1,default:"id"}},setup(e,{expose:k}){const w=e,b=l(0),g=l(!1),q=l(),z=t((()=>w.list.slice(0,b.value))),F=t((()=>b.value<w.list.length)),x=h(((e,l)=>"function"==typeof w.keyField?w.keyField(e,l):"string"==typeof w.keyField&&e[w.keyField]?e[w.keyField]:l),"getItemKey"),I=h((async()=>{if(!F.value||g.value)return;g.value=!0;const e=Math.min(b.value+w.chunkSize,w.list.length);await new Promise((l=>{const t=h((()=>{b.value=e,l()}),"callback");window.requestIdleCallback?window.requestIdleCallback(t,{timeout:w.renderDelay}):setTimeout(t,w.renderDelay)})),await a(),g.value=!1,F.value&&w.lazy&&(q.value=setTimeout(I,w.renderDelay))}),"renderChunk"),T=h((()=>{q.value&&clearTimeout(q.value),b.value=0,g.value=!1}),"resetRender"),_=h((()=>{T(),w.lazy?I():b.value=w.list.length}),"startRender");return u((()=>w.list),(()=>{_()}),{immediate:!0,deep:!1}),u((()=>w.chunkSize),(()=>{w.lazy&&F.value&&I()})),i((()=>{_()})),k({
|
|
2
|
+
/**
|
|
3
|
+
* 手动触发渲染下一批
|
|
4
|
+
*/
|
|
5
|
+
renderNext:I,
|
|
6
|
+
/**
|
|
7
|
+
* 重新开始渲染
|
|
8
|
+
*/
|
|
9
|
+
restart:_,
|
|
10
|
+
/**
|
|
11
|
+
* 停止渲染
|
|
12
|
+
*/
|
|
13
|
+
stop:h((()=>{q.value&&clearTimeout(q.value),g.value=!1}),"stop")}),(e,l)=>{const t=r("el-skeleton"),a=r("el-timeline-item"),u=r("el-timeline");return d(),n(u,null,{default:o((()=>[m(" 使用分片渲染 "),(d(!0),s(v,null,y(z.value,((e,l)=>(d(),n(f,c({key:x(e,l),ref_for:!0},e,{"data-index":l}),null,16,["data-index"])))),128
|
|
14
|
+
/* KEYED_FRAGMENT */)),m(" 骨架屏显示正在加载的内容 "),g.value&&F.value?(d(),n(a,{key:0},{default:o((()=>[p(t,{rows:3,animated:""})])),_:1
|
|
15
|
+
/* STABLE */})):m("v-if",!0)])),_:1
|
|
16
|
+
/* STABLE */})}}});export{w as default};
|
|
5
17
|
//# sourceMappingURL=index.vue2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../../../../packages/components/znTimeLine/src/index.vue"],"sourcesContent":["<template>\n <el-timeline>\n <!-- 使用分片渲染 -->\n <timelineItem \n v-for=\"(item, index) in renderedItems\" \n :key=\"getItemKey(item, index)\" \n v-bind=\"item\"\n :data-index=\"index\"\n />\n \n <!-- 骨架屏显示正在加载的内容 -->\n <el-timeline-item v-if=\"isRendering && hasMoreItems\">\n <el-skeleton :rows=\"3\" animated />\n </el-timeline-item>\n </el-timeline>\n</template>\n\n<script setup lang=\"tsx\">\nimport { ref, computed, onMounted, nextTick, watch } from 'vue'\nimport { default as timelineItem, type ZnTimelineItemPro } from './component/timelineItem.vue'\n\ndefineOptions({\n name: 'ZnTimeline'\n})\n\nexport interface ProTimeLineProps {\n /**\n * 数据\n */\n list: Array<ZnTimelineItemPro>\n /**\n * 分片大小,每次渲染的项目数量\n */\n chunkSize?: number\n /**\n * 渲染间隔(毫秒)\n */\n renderDelay?: number\n /**\n * 是否启用懒加载\n */\n lazy?: boolean\n /**\n * 获取唯一key的函数\n */\n keyField?: string | ((item: ZnTimelineItemPro, index: number) => string | number)\n}\n\nconst props = defineProps({\n list: { type: Array, required: true, default: () => [] },\n chunkSize: { type: Number, required: false, default: 20 },\n renderDelay: { type: Number, required: false, default: 16 },\n lazy: { type: Boolean, required: false, default: true },\n keyField: { type: [String, Function], required: false, default: 'id' }\n})\n\n// 状态管理\nconst renderedCount = ref(0)\nconst isRendering = ref(false)\nconst renderTimer = ref<NodeJS.Timeout>()\n\n// 计算属性\nconst renderedItems = computed(() => {\n return props.list.slice(0, renderedCount.value)\n})\n\nconst hasMoreItems = computed(() => {\n return renderedCount.value < props.list.length\n})\n\n// 获取项目唯一key\nconst getItemKey = (item: ZnTimelineItemPro, index: number) => {\n if (typeof props.keyField === 'function') {\n return props.keyField(item, index)\n }\n if (typeof props.keyField === 'string' && item[props.keyField as keyof ZnTimelineItemPro]) {\n return item[props.keyField as keyof ZnTimelineItemPro] as string | number\n }\n return index\n}\n\n// 分片渲染函数\nconst renderChunk = async () => {\n if (!hasMoreItems.value || isRendering.value) return\n \n isRendering.value = true\n \n const nextCount = Math.min(\n renderedCount.value + props.chunkSize,\n props.list.length\n )\n \n // 使用 requestIdleCallback 或 setTimeout 进行分片\n await new Promise<void>((resolve) => {\n const callback = () => {\n renderedCount.value = nextCount\n resolve()\n }\n \n // 优先使用 requestIdleCallback,fallback 到 setTimeout\n if (window.requestIdleCallback) {\n window.requestIdleCallback(callback, { timeout: props.renderDelay })\n } else {\n setTimeout(callback, props.renderDelay)\n }\n })\n \n await nextTick()\n isRendering.value = false\n \n // 如果还有更多项目,继续渲染\n if (hasMoreItems.value && props.lazy) {\n renderTimer.value = setTimeout(renderChunk, props.renderDelay)\n }\n}\n\n// 重置渲染状态\nconst resetRender = () => {\n if (renderTimer.value) {\n clearTimeout(renderTimer.value)\n }\n renderedCount.value = 0\n isRendering.value = false\n}\n\n// 开始渲染\nconst startRender = () => {\n resetRender()\n \n if (!props.lazy) {\n // 非懒加载模式,一次性渲染所有\n renderedCount.value = props.list.length\n } else {\n // 懒加载模式,分片渲染\n renderChunk()\n }\n}\n\n// 监听数据变化\nwatch(() => props.list, () => {\n startRender()\n}, { immediate: true, deep: false })\n\n// 监听chunkSize变化\nwatch(() => props.chunkSize, () => {\n if (props.lazy && hasMoreItems.value) {\n renderChunk()\n }\n})\n\n// 组件挂载时开始渲染\nonMounted(() => {\n startRender()\n})\n\n// 暴露方法给父组件\ndefineExpose({\n /**\n * 手动触发渲染下一批\n */\n renderNext: renderChunk,\n /**\n * 重新开始渲染\n */\n restart: startRender,\n /**\n * 停止渲染\n */\n stop: () => {\n if (renderTimer.value) {\n clearTimeout(renderTimer.value)\n }\n isRendering.value = false\n }\n})\n</script>\n"],"names":["props","__props","renderedCount","ref","isRendering","renderTimer","renderedItems","computed","list","slice","value","hasMoreItems","length","getItemKey","item","index","keyField","renderChunk","__name","async","nextCount","Math","min","chunkSize","Promise","resolve","callback","window","requestIdleCallback","timeout","renderDelay","nextTick","lazy","setTimeout","resetRender","clearTimeout","startRender","watch","immediate","deep","onMounted","__expose","renderNext","restart","stop"],"mappings":"gwBAgDA,MAAMA,EAAQC,EASRC,EAAgBC,EAAI,GACpBC,EAAcD,GAAI,GAClBE,EAAcF,IAGdG,EAAgBC,GAAS,IACtBP,EAAMQ,KAAKC,MAAM,EAAGP,EAAcQ,SAGrCC,EAAeJ,GAAS,IACrBL,EAAcQ,MAAQV,EAAMQ,KAAKI,SAIpCC,EAAcC,GAAAA,CAAAA,EAAyBC,IACb,mBAAnBf,EAAMgB,SACRhB,EAAMgB,SAASF,EAAMC,GAEA,iBAAnBf,EAAMgB,UAAyBF,EAAKd,EAAMgB,UAC5CF,EAAKd,EAAMgB,UAEbD,GAPUF,cAWbI,EAA0BC,GAAAC,UAC9B,IAAKR,EAAaD,OAASN,EAAYM,MAAO,OAE9CN,EAAYM,OAAQ,EAEdU,MAAAA,EAAYC,KAAKC,IACrBpB,EAAcQ,MAAQV,EAAMuB,UAC5BvB,EAAMQ,KAAKI,cAIP,IAAIY,SAA2BC,IACnC,MAAMC,EAAiBR,GAAA,KACrBhB,EAAcQ,MAAQU,EACdK,GAAA,GAFOC,YAMbC,OAAOC,oBACTD,OAAOC,oBAAoBF,EAAU,CAAEG,QAAS7B,EAAM8B,cAE3CJ,WAAAA,EAAU1B,EAAM8B,YAAW,UAIpCC,IACN3B,EAAYM,OAAQ,EAGhBC,EAAaD,OAASV,EAAMgC,OAC9B3B,EAAYK,MAAQuB,WAAWhB,EAAajB,EAAM8B,aAAW,GA9B7C,eAmCdI,EAAoBhB,GAAA,KACpBb,EAAYK,OACdyB,aAAa9B,EAAYK,OAE3BR,EAAcQ,MAAQ,EACtBN,EAAYM,OAAQ,CAAA,GALFwB,eASdE,EAAoBlB,GAAA,KACZgB,IAEPlC,EAAMgC,KAKGf,IAHEP,EAAAA,MAAQV,EAAMQ,KAAKI,MAGrB,GARIwB,sBAadC,GAAA,IAAMrC,EAAMQ,OAAM,KACV4B,GAAA,GACX,CAAEE,WAAW,EAAMC,MAAM,IAGtBF,GAAA,IAAMrC,EAAMuB,YAAW,KACvBvB,EAAMgC,MAAQrB,EAAaD,OACjBO,GAAA,IAKhBuB,GAAU,KACIJ,GAAA,IAIDK,EAAA;;;;AAIXC,WAAYzB;;;;AAIZ0B,QAASP;;;;AAITQ,KAAY1B,GAAA,KACNb,EAAYK,OACdyB,aAAa9B,EAAYK,OAE3BN,EAAYM,OAAQ,CAAA,GAJhBkC;;;"}
|
package/es/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"./installer.mjs";export{install}from"./installer.mjs";import"./functions/index.mjs";import"./hooks/index.mjs";export{copyText,formatValue,treeListUtil,treeToList}from"./utils/index.mjs";import"./directives/index.mjs";import"./components/index.mjs";import e from"./functions/modules/log.mjs";export{useDialogV2}from"./hooks/useDialogV2/index.mjs";export{useDrawerV2}from"./hooks/useDrawerV2/index.mjs";export{closeAllDrawers}from"./hooks/useDrawerV2/src/index.mjs";export{closePopWindowById,closePopWindowByTag,getAllPopWindows,showPopWindow}from"./hooks/usePopWindow/src/index.mjs";export{usePopWindow}from"./hooks/usePopWindow/index.mjs";export{closePopWindowByIdV2,closePopWindowByTagV2,getAllPopWindowsV2,showPopWindowV2}from"./hooks/usePopWindowV2/src/index.mjs";export{usePopWindowV2}from"./hooks/usePopWindowV2/index.mjs";export{useDialog}from"./hooks/useDialog/index.mjs";export{default as ImageViewer}from"./hooks/useImageViewer/src/index.vue2.mjs";export{useImageViewer}from"./hooks/useImageViewer/index.mjs";export{useDrawer}from"./hooks/useDrawer/index.mjs";export{withInstall,withInstallDirectives}from"./utils/install.mjs";export{default as vCopy}from"./directives/modules/copy.mjs";export{default as vDrag}from"./directives/modules/drag.mjs";export{default as vAutoScroll}from"./directives/modules/autoScroll.mjs";export{default as vTooltip}from"./directives/modules/tooltip.mjs";export{default as vConfirm}from"./directives/modules/confirm.mjs";export{default as vCountTo}from"./directives/modules/countTo.mjs";export{default as utils}from"./functions/modules/uitls.mjs";import*as s from"./functions/modules/is.mjs";export{s as is};export{useZnForm}from"./components/znForm/src/hooks/useZnForm.mjs";export{useZnSearch}from"./components/znSearch/src/hooks/useProSearch.mjs";export{ZnTable}from"./components/znTable/index.mjs";export{ZnTreeFilter}from"./components/znTreeFilter/index.mjs";export{ZnChart}from"./components/znChart/index.mjs";export{ZnCountTo}from"./components/znCountTo/index.mjs";export{ZnTest}from"./components/znTest/index.mjs";export{ZnForm}from"./components/znForm/index.mjs";export{ZnTimeline}from"./components/znTimeLine/index.mjs";export{ZnWorkGrid}from"./components/znWorkGrid/index.mjs";export{ZnGrid,ZnGridItem}from"./components/znGrid/index.mjs";export{ZnSearch}from"./components/znSearch/index.mjs";export{ZnNumberScroll}from"./components/znNumberScroll/index.mjs";export{default as ZnVirtualTable}from"./components/znVirtualTable/src/index.vue2.mjs";export{initVXETable}from"./components/znVirtualTable/src/utils/vxe-setup.mjs";globalThis.log=e;"function"==typeof globalThis?.log?.success&&globalThis.log.primary("1.0.
|
|
1
|
+
import o from"./installer.mjs";export{install}from"./installer.mjs";import"./functions/index.mjs";import"./hooks/index.mjs";export{copyText,formatValue,treeListUtil,treeToList}from"./utils/index.mjs";import"./directives/index.mjs";import"./components/index.mjs";import e from"./functions/modules/log.mjs";export{useDialogV2}from"./hooks/useDialogV2/index.mjs";export{useDrawerV2}from"./hooks/useDrawerV2/index.mjs";export{closeAllDrawers}from"./hooks/useDrawerV2/src/index.mjs";export{closePopWindowById,closePopWindowByTag,getAllPopWindows,showPopWindow}from"./hooks/usePopWindow/src/index.mjs";export{usePopWindow}from"./hooks/usePopWindow/index.mjs";export{closePopWindowByIdV2,closePopWindowByTagV2,getAllPopWindowsV2,showPopWindowV2}from"./hooks/usePopWindowV2/src/index.mjs";export{usePopWindowV2}from"./hooks/usePopWindowV2/index.mjs";export{useDialog}from"./hooks/useDialog/index.mjs";export{default as ImageViewer}from"./hooks/useImageViewer/src/index.vue2.mjs";export{useImageViewer}from"./hooks/useImageViewer/index.mjs";export{useDrawer}from"./hooks/useDrawer/index.mjs";export{withInstall,withInstallDirectives}from"./utils/install.mjs";export{default as vCopy}from"./directives/modules/copy.mjs";export{default as vDrag}from"./directives/modules/drag.mjs";export{default as vAutoScroll}from"./directives/modules/autoScroll.mjs";export{default as vTooltip}from"./directives/modules/tooltip.mjs";export{default as vConfirm}from"./directives/modules/confirm.mjs";export{default as vCountTo}from"./directives/modules/countTo.mjs";export{default as utils}from"./functions/modules/uitls.mjs";import*as s from"./functions/modules/is.mjs";export{s as is};export{useZnForm}from"./components/znForm/src/hooks/useZnForm.mjs";export{useZnSearch}from"./components/znSearch/src/hooks/useProSearch.mjs";export{ZnTable}from"./components/znTable/index.mjs";export{ZnTreeFilter}from"./components/znTreeFilter/index.mjs";export{ZnChart}from"./components/znChart/index.mjs";export{ZnCountTo}from"./components/znCountTo/index.mjs";export{ZnTest}from"./components/znTest/index.mjs";export{ZnForm}from"./components/znForm/index.mjs";export{ZnTimeline}from"./components/znTimeLine/index.mjs";export{ZnWorkGrid}from"./components/znWorkGrid/index.mjs";export{ZnGrid,ZnGridItem}from"./components/znGrid/index.mjs";export{ZnSearch}from"./components/znSearch/index.mjs";export{ZnNumberScroll}from"./components/znNumberScroll/index.mjs";export{ZnTreeSelect}from"./components/znTreeSelect/index.mjs";export{default as ZnVirtualTable}from"./components/znVirtualTable/src/index.vue2.mjs";export{initVXETable}from"./components/znVirtualTable/src/utils/vxe-setup.mjs";globalThis.log=e;"function"==typeof globalThis?.log?.success&&globalThis.log.primary("1.0.73","欢迎使用znyg-frontend-common,在线文档:http://192.168.99.34:10000/znyg-frontend-common-docs/");export{o as default,e as log};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/es/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../packages/index.ts"],"sourcesContent":["import installer from './installer'\nimport { log } from './functions'\nexport * from './hooks'\nexport * from './utils'\nexport * from './installer'\nexport * from './directives'\nexport * from './functions'\nexport * from './components'\n\nexport default installer\nglobalThis.log = log\nconst version = '1.0.
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../packages/index.ts"],"sourcesContent":["import installer from './installer'\nimport { log } from './functions'\nexport * from './hooks'\nexport * from './utils'\nexport * from './installer'\nexport * from './directives'\nexport * from './functions'\nexport * from './components'\n\nexport default installer\nglobalThis.log = log\nconst version = '1.0.73'\nif (typeof globalThis?.log?.success === 'function') {\n globalThis.log.primary(version, '欢迎使用znyg-frontend-common,在线文档:http://192.168.99.34:10000/znyg-frontend-common-docs/')\n}\n"],"names":["globalThis","log","success","primary"],"mappings":"ulFAUAA,WAAWC,IAAMA,EAEuB,mBAA7BD,YAAYC,KAAKC,SACfF,WAAAC,IAAIE,QAFD,SAEkB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ZnChart from './znChart/index';
|
|
2
2
|
import { ZnTable, type ZnTableProps, type SearchProps, type ColumnProps } from './znTable/index';
|
|
3
|
+
import { ZnTreeSelect } from './znTreeSelect/index';
|
|
3
4
|
import ZnTreeFilter from './znTreeFilter/index';
|
|
4
5
|
import ZnCountTo from './znCountTo/index';
|
|
5
6
|
import { default as ZnForm } from './znForm/index';
|
|
@@ -13,5 +14,5 @@ import ZnVirtualTable, { initVXETable, type ZnVirtualTableProps } from './znVirt
|
|
|
13
14
|
export { type ZnFormProps, type ZnFormSchemaProps, type ZnElFormProps, useZnForm } from './znForm/index';
|
|
14
15
|
export type { ZnWorkGridProps, ZnWorkGridItemsProps, ZnWorkGridWrokListProps } from './znWorkGrid/index';
|
|
15
16
|
export type { ZnTableProps, SearchProps, ColumnProps, ZnTimelineItemPro, ZnGridProps, ZnGridItemProps, ZnVirtualTableProps };
|
|
16
|
-
export { ZnTable, ZnTreeFilter, ZnChart, ZnCountTo, ZnTest, ZnForm, ZnTimeline, ZnWorkGrid, ZnGrid, ZnGridItem, ZnSearch, ZnNumberScroll, ZnVirtualTable, initVXETable };
|
|
17
|
+
export { ZnTable, ZnTreeFilter, ZnChart, ZnCountTo, ZnTest, ZnForm, ZnTimeline, ZnWorkGrid, ZnGrid, ZnGridItem, ZnSearch, ZnNumberScroll, ZnTreeSelect, ZnVirtualTable, initVXETable };
|
|
17
18
|
export { useZnSearch, type ZnSearchProps, type ZnSearchSchemaProps } from './znSearch/index';
|
package/lib/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./znChart/index.js"),r=require("./znTable/index.js"),n=require("./
|
|
1
|
+
"use strict";var e=require("./znChart/index.js"),r=require("./znTable/index.js"),n=require("./znTreeSelect/index.js"),i=require("./znTreeFilter/index.js"),s=require("./znCountTo/index.js"),t=require("./znForm/index.js"),o=require("./znTimeLine/index.js"),u=require("./znGrid/index.js"),x=require("./znTest/index.js"),Z=require("./znWorkGrid/index.js"),l=require("./znSearch/index.js"),a=require("./znNumberScroll/index.js");require("./znVirtualTable/index.js");var T=require("./znForm/src/hooks/useZnForm.js"),d=require("./znSearch/src/hooks/useProSearch.js"),c=require("./znVirtualTable/src/index.vue2.js"),p=require("./znVirtualTable/src/utils/vxe-setup.js");exports.ZnChart=e.ZnChart,exports.ZnTable=r.ZnTable,exports.ZnTreeSelect=n.ZnTreeSelect,exports.ZnTreeFilter=i.ZnTreeFilter,exports.ZnCountTo=s.ZnCountTo,exports.ZnForm=t.ZnForm,exports.ZnTimeline=o.ZnTimeline,exports.ZnGrid=u.ZnGrid,exports.ZnGridItem=u.ZnGridItem,exports.ZnTest=x.ZnTest,exports.ZnWorkGrid=Z.ZnWorkGrid,exports.ZnSearch=l.ZnSearch,exports.ZnNumberScroll=a.ZnNumberScroll,exports.useZnForm=T.useZnForm,exports.useZnSearch=d.useZnSearch,exports.ZnVirtualTable=c.default,exports.initVXETable=p.initVXETable;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -5,8 +5,37 @@ export declare const ZnTimeline: import("../../types").SFCWithInstall<import("vu
|
|
|
5
5
|
required: true;
|
|
6
6
|
default: () => any[];
|
|
7
7
|
};
|
|
8
|
+
chunkSize: {
|
|
9
|
+
type: NumberConstructor;
|
|
10
|
+
required: false;
|
|
11
|
+
default: number;
|
|
12
|
+
};
|
|
13
|
+
renderDelay: {
|
|
14
|
+
type: NumberConstructor;
|
|
15
|
+
required: false;
|
|
16
|
+
default: number;
|
|
17
|
+
};
|
|
18
|
+
lazy: {
|
|
19
|
+
type: BooleanConstructor;
|
|
20
|
+
required: false;
|
|
21
|
+
default: boolean;
|
|
22
|
+
};
|
|
23
|
+
keyField: {
|
|
24
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
25
|
+
required: false;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
8
28
|
}>, {
|
|
9
29
|
props: any;
|
|
30
|
+
renderedCount: import("vue").Ref<number, number>;
|
|
31
|
+
isRendering: import("vue").Ref<boolean, boolean>;
|
|
32
|
+
renderTimer: import("vue").Ref<NodeJS.Timeout, NodeJS.Timeout>;
|
|
33
|
+
renderedItems: import("vue").ComputedRef<any>;
|
|
34
|
+
hasMoreItems: import("vue").ComputedRef<boolean>;
|
|
35
|
+
getItemKey: (item: import("./src/component/timelineItem.vue").ZnTimelineItemPro, index: number) => any;
|
|
36
|
+
renderChunk: () => Promise<void>;
|
|
37
|
+
resetRender: () => void;
|
|
38
|
+
startRender: () => void;
|
|
10
39
|
timelineItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
11
40
|
result: {
|
|
12
41
|
type: StringConstructor;
|
|
@@ -106,7 +135,31 @@ export declare const ZnTimeline: import("../../types").SFCWithInstall<import("vu
|
|
|
106
135
|
required: true;
|
|
107
136
|
default: () => any[];
|
|
108
137
|
};
|
|
138
|
+
chunkSize: {
|
|
139
|
+
type: NumberConstructor;
|
|
140
|
+
required: false;
|
|
141
|
+
default: number;
|
|
142
|
+
};
|
|
143
|
+
renderDelay: {
|
|
144
|
+
type: NumberConstructor;
|
|
145
|
+
required: false;
|
|
146
|
+
default: number;
|
|
147
|
+
};
|
|
148
|
+
lazy: {
|
|
149
|
+
type: BooleanConstructor;
|
|
150
|
+
required: false;
|
|
151
|
+
default: boolean;
|
|
152
|
+
};
|
|
153
|
+
keyField: {
|
|
154
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
155
|
+
required: false;
|
|
156
|
+
default: string;
|
|
157
|
+
};
|
|
109
158
|
}>> & Readonly<{}>, {
|
|
159
|
+
lazy: boolean;
|
|
110
160
|
list: unknown[];
|
|
161
|
+
chunkSize: number;
|
|
162
|
+
renderDelay: number;
|
|
163
|
+
keyField: string | Function;
|
|
111
164
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
|
|
112
165
|
export default ZnTimeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../packages/components/znTimeLine/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/install'\nimport index from './src/index.vue'\n\nexport type { ZnTimelineItemPro } from './src/component/timelineItem.vue'\n\nexport const ZnTimeline = withInstall(index) //
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../packages/components/znTimeLine/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/install'\nimport index from './src/index.vue'\n\nexport type { ZnTimelineItemPro } from './src/component/timelineItem.vue'\n\nexport const ZnTimeline = withInstall(index) // 分片渲染优化版本\n\nexport default ZnTimeline\n"],"names":["ZnTimeline","withInstall","index","default"],"mappings":"+KAKa,MAAAA,EAAaC,cAAYC,EAAKC"}
|
|
@@ -4,6 +4,22 @@ export interface ProTimeLineProps {
|
|
|
4
4
|
* 数据
|
|
5
5
|
*/
|
|
6
6
|
list: Array<ZnTimelineItemPro>;
|
|
7
|
+
/**
|
|
8
|
+
* 分片大小,每次渲染的项目数量
|
|
9
|
+
*/
|
|
10
|
+
chunkSize?: number;
|
|
11
|
+
/**
|
|
12
|
+
* 渲染间隔(毫秒)
|
|
13
|
+
*/
|
|
14
|
+
renderDelay?: number;
|
|
15
|
+
/**
|
|
16
|
+
* 是否启用懒加载
|
|
17
|
+
*/
|
|
18
|
+
lazy?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* 获取唯一key的函数
|
|
21
|
+
*/
|
|
22
|
+
keyField?: string | ((item: ZnTimelineItemPro, index: number) => string | number);
|
|
7
23
|
}
|
|
8
24
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
9
25
|
list: {
|
|
@@ -11,8 +27,37 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11
27
|
required: true;
|
|
12
28
|
default: () => any[];
|
|
13
29
|
};
|
|
30
|
+
chunkSize: {
|
|
31
|
+
type: NumberConstructor;
|
|
32
|
+
required: false;
|
|
33
|
+
default: number;
|
|
34
|
+
};
|
|
35
|
+
renderDelay: {
|
|
36
|
+
type: NumberConstructor;
|
|
37
|
+
required: false;
|
|
38
|
+
default: number;
|
|
39
|
+
};
|
|
40
|
+
lazy: {
|
|
41
|
+
type: BooleanConstructor;
|
|
42
|
+
required: false;
|
|
43
|
+
default: boolean;
|
|
44
|
+
};
|
|
45
|
+
keyField: {
|
|
46
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
47
|
+
required: false;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
14
50
|
}>, {
|
|
15
51
|
props: any;
|
|
52
|
+
renderedCount: import("vue").Ref<number, number>;
|
|
53
|
+
isRendering: import("vue").Ref<boolean, boolean>;
|
|
54
|
+
renderTimer: import("vue").Ref<NodeJS.Timeout, NodeJS.Timeout>;
|
|
55
|
+
renderedItems: import("vue").ComputedRef<any>;
|
|
56
|
+
hasMoreItems: import("vue").ComputedRef<boolean>;
|
|
57
|
+
getItemKey: (item: ZnTimelineItemPro, index: number) => any;
|
|
58
|
+
renderChunk: () => Promise<void>;
|
|
59
|
+
resetRender: () => void;
|
|
60
|
+
startRender: () => void;
|
|
16
61
|
timelineItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
17
62
|
result: {
|
|
18
63
|
type: StringConstructor;
|
|
@@ -112,7 +157,31 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
112
157
|
required: true;
|
|
113
158
|
default: () => any[];
|
|
114
159
|
};
|
|
160
|
+
chunkSize: {
|
|
161
|
+
type: NumberConstructor;
|
|
162
|
+
required: false;
|
|
163
|
+
default: number;
|
|
164
|
+
};
|
|
165
|
+
renderDelay: {
|
|
166
|
+
type: NumberConstructor;
|
|
167
|
+
required: false;
|
|
168
|
+
default: number;
|
|
169
|
+
};
|
|
170
|
+
lazy: {
|
|
171
|
+
type: BooleanConstructor;
|
|
172
|
+
required: false;
|
|
173
|
+
default: boolean;
|
|
174
|
+
};
|
|
175
|
+
keyField: {
|
|
176
|
+
type: (StringConstructor | FunctionConstructor)[];
|
|
177
|
+
required: false;
|
|
178
|
+
default: string;
|
|
179
|
+
};
|
|
115
180
|
}>> & Readonly<{}>, {
|
|
181
|
+
lazy: boolean;
|
|
116
182
|
list: unknown[];
|
|
183
|
+
chunkSize: number;
|
|
184
|
+
renderDelay: number;
|
|
185
|
+
keyField: string | Function;
|
|
117
186
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
118
187
|
export default _default;
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue");require("./component/timelineItem.vue.js");var t=require("./component/timelineItem.vue2.js"),
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue");require("./component/timelineItem.vue.js");var t=require("./component/timelineItem.vue2.js"),l=Object.defineProperty,a=(e,t)=>l(e,"name",{value:t,configurable:!0}),r=e.defineComponent({name:"ZnTimeline",__name:"index",props:{list:{type:Array,required:!0,default:a((()=>[]),"default")},chunkSize:{type:Number,required:!1,default:20},renderDelay:{type:Number,required:!1,default:16},lazy:{type:Boolean,required:!1,default:!0},keyField:{type:[String,Function],required:!1,default:"id"}},setup(l,{expose:r}){const n=l,u=e.ref(0),o=e.ref(!1),i=e.ref(),d=e.computed((()=>n.list.slice(0,u.value))),c=e.computed((()=>u.value<n.list.length)),m=a(((e,t)=>"function"==typeof n.keyField?n.keyField(e,t):"string"==typeof n.keyField&&e[n.keyField]?e[n.keyField]:t),"getItemKey"),s=a((async()=>{if(!c.value||o.value)return;o.value=!0;const t=Math.min(u.value+n.chunkSize,n.list.length);await new Promise((e=>{const l=a((()=>{u.value=t,e()}),"callback");window.requestIdleCallback?window.requestIdleCallback(l,{timeout:n.renderDelay}):setTimeout(l,n.renderDelay)})),await e.nextTick(),o.value=!1,c.value&&n.lazy&&(i.value=setTimeout(s,n.renderDelay))}),"renderChunk"),v=a((()=>{i.value&&clearTimeout(i.value),u.value=0,o.value=!1}),"resetRender"),p=a((()=>{v(),n.lazy?s():u.value=n.list.length}),"startRender");return e.watch((()=>n.list),(()=>{p()}),{immediate:!0,deep:!1}),e.watch((()=>n.chunkSize),(()=>{n.lazy&&c.value&&s()})),e.onMounted((()=>{p()})),r({
|
|
2
|
+
/**
|
|
3
|
+
* 手动触发渲染下一批
|
|
4
|
+
*/
|
|
5
|
+
renderNext:s,
|
|
6
|
+
/**
|
|
7
|
+
* 重新开始渲染
|
|
8
|
+
*/
|
|
9
|
+
restart:p,
|
|
10
|
+
/**
|
|
11
|
+
* 停止渲染
|
|
12
|
+
*/
|
|
13
|
+
stop:a((()=>{i.value&&clearTimeout(i.value),o.value=!1}),"stop")}),(l,a)=>{const r=e.resolveComponent("el-skeleton"),n=e.resolveComponent("el-timeline-item"),u=e.resolveComponent("el-timeline");return e.openBlock(),e.createBlock(u,null,{default:e.withCtx((()=>[e.createCommentVNode(" 使用分片渲染 "),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,((l,a)=>(e.openBlock(),e.createBlock(t.default,e.mergeProps({key:m(l,a),ref_for:!0},l,{"data-index":a}),null,16,["data-index"])))),128
|
|
14
|
+
/* KEYED_FRAGMENT */)),e.createCommentVNode(" 骨架屏显示正在加载的内容 "),o.value&&c.value?(e.openBlock(),e.createBlock(n,{key:0},{default:e.withCtx((()=>[e.createVNode(r,{rows:3,animated:""})])),_:1
|
|
15
|
+
/* STABLE */})):e.createCommentVNode("v-if",!0)])),_:1
|
|
16
|
+
/* STABLE */})}}});exports.default=r;
|
|
5
17
|
//# sourceMappingURL=index.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":["../../../../../../packages/components/znTimeLine/src/index.vue"],"sourcesContent":["<template>\n <el-timeline>\n <!-- 使用分片渲染 -->\n <timelineItem \n v-for=\"(item, index) in renderedItems\" \n :key=\"getItemKey(item, index)\" \n v-bind=\"item\"\n :data-index=\"index\"\n />\n \n <!-- 骨架屏显示正在加载的内容 -->\n <el-timeline-item v-if=\"isRendering && hasMoreItems\">\n <el-skeleton :rows=\"3\" animated />\n </el-timeline-item>\n </el-timeline>\n</template>\n\n<script setup lang=\"tsx\">\nimport { ref, computed, onMounted, nextTick, watch } from 'vue'\nimport { default as timelineItem, type ZnTimelineItemPro } from './component/timelineItem.vue'\n\ndefineOptions({\n name: 'ZnTimeline'\n})\n\nexport interface ProTimeLineProps {\n /**\n * 数据\n */\n list: Array<ZnTimelineItemPro>\n /**\n * 分片大小,每次渲染的项目数量\n */\n chunkSize?: number\n /**\n * 渲染间隔(毫秒)\n */\n renderDelay?: number\n /**\n * 是否启用懒加载\n */\n lazy?: boolean\n /**\n * 获取唯一key的函数\n */\n keyField?: string | ((item: ZnTimelineItemPro, index: number) => string | number)\n}\n\nconst props = defineProps({\n list: { type: Array, required: true, default: () => [] },\n chunkSize: { type: Number, required: false, default: 20 },\n renderDelay: { type: Number, required: false, default: 16 },\n lazy: { type: Boolean, required: false, default: true },\n keyField: { type: [String, Function], required: false, default: 'id' }\n})\n\n// 状态管理\nconst renderedCount = ref(0)\nconst isRendering = ref(false)\nconst renderTimer = ref<NodeJS.Timeout>()\n\n// 计算属性\nconst renderedItems = computed(() => {\n return props.list.slice(0, renderedCount.value)\n})\n\nconst hasMoreItems = computed(() => {\n return renderedCount.value < props.list.length\n})\n\n// 获取项目唯一key\nconst getItemKey = (item: ZnTimelineItemPro, index: number) => {\n if (typeof props.keyField === 'function') {\n return props.keyField(item, index)\n }\n if (typeof props.keyField === 'string' && item[props.keyField as keyof ZnTimelineItemPro]) {\n return item[props.keyField as keyof ZnTimelineItemPro] as string | number\n }\n return index\n}\n\n// 分片渲染函数\nconst renderChunk = async () => {\n if (!hasMoreItems.value || isRendering.value) return\n \n isRendering.value = true\n \n const nextCount = Math.min(\n renderedCount.value + props.chunkSize,\n props.list.length\n )\n \n // 使用 requestIdleCallback 或 setTimeout 进行分片\n await new Promise<void>((resolve) => {\n const callback = () => {\n renderedCount.value = nextCount\n resolve()\n }\n \n // 优先使用 requestIdleCallback,fallback 到 setTimeout\n if (window.requestIdleCallback) {\n window.requestIdleCallback(callback, { timeout: props.renderDelay })\n } else {\n setTimeout(callback, props.renderDelay)\n }\n })\n \n await nextTick()\n isRendering.value = false\n \n // 如果还有更多项目,继续渲染\n if (hasMoreItems.value && props.lazy) {\n renderTimer.value = setTimeout(renderChunk, props.renderDelay)\n }\n}\n\n// 重置渲染状态\nconst resetRender = () => {\n if (renderTimer.value) {\n clearTimeout(renderTimer.value)\n }\n renderedCount.value = 0\n isRendering.value = false\n}\n\n// 开始渲染\nconst startRender = () => {\n resetRender()\n \n if (!props.lazy) {\n // 非懒加载模式,一次性渲染所有\n renderedCount.value = props.list.length\n } else {\n // 懒加载模式,分片渲染\n renderChunk()\n }\n}\n\n// 监听数据变化\nwatch(() => props.list, () => {\n startRender()\n}, { immediate: true, deep: false })\n\n// 监听chunkSize变化\nwatch(() => props.chunkSize, () => {\n if (props.lazy && hasMoreItems.value) {\n renderChunk()\n }\n})\n\n// 组件挂载时开始渲染\nonMounted(() => {\n startRender()\n})\n\n// 暴露方法给父组件\ndefineExpose({\n /**\n * 手动触发渲染下一批\n */\n renderNext: renderChunk,\n /**\n * 重新开始渲染\n */\n restart: startRender,\n /**\n * 停止渲染\n */\n stop: () => {\n if (renderTimer.value) {\n clearTimeout(renderTimer.value)\n }\n isRendering.value = false\n }\n})\n</script>\n"],"names":["props","__props","renderedCount","ref","isRendering","renderTimer","renderedItems","computed","list","slice","value","hasMoreItems","length","getItemKey","item","index","keyField","renderChunk","__name","async","nextCount","Math","min","chunkSize","Promise","resolve","callback","window","requestIdleCallback","timeout","renderDelay","nextTick","lazy","setTimeout","resetRender","clearTimeout","startRender","watch","immediate","deep","onMounted","__expose","renderNext","restart","stop"],"mappings":"ilBAgDA,MAAMA,EAAQC,EASRC,EAAgBC,MAAI,GACpBC,EAAcD,OAAI,GAClBE,EAAcF,EAAAA,MAGdG,EAAgBC,EAAAA,UAAS,IACtBP,EAAMQ,KAAKC,MAAM,EAAGP,EAAcQ,SAGrCC,EAAeJ,EAAAA,UAAS,IACrBL,EAAcQ,MAAQV,EAAMQ,KAAKI,SAIpCC,EAAcC,GAAAA,CAAAA,EAAyBC,IACb,mBAAnBf,EAAMgB,SACRhB,EAAMgB,SAASF,EAAMC,GAEA,iBAAnBf,EAAMgB,UAAyBF,EAAKd,EAAMgB,UAC5CF,EAAKd,EAAMgB,UAEbD,GAPUF,cAWbI,EAA0BC,GAAAC,UAC9B,IAAKR,EAAaD,OAASN,EAAYM,MAAO,OAE9CN,EAAYM,OAAQ,EAEdU,MAAAA,EAAYC,KAAKC,IACrBpB,EAAcQ,MAAQV,EAAMuB,UAC5BvB,EAAMQ,KAAKI,cAIP,IAAIY,SAA2BC,IACnC,MAAMC,EAAiBR,GAAA,KACrBhB,EAAcQ,MAAQU,EACdK,GAAA,GAFOC,YAMbC,OAAOC,oBACTD,OAAOC,oBAAoBF,EAAU,CAAEG,QAAS7B,EAAM8B,cAE3CJ,WAAAA,EAAU1B,EAAM8B,YAAW,UAIpCC,aACN3B,EAAYM,OAAQ,EAGhBC,EAAaD,OAASV,EAAMgC,OAC9B3B,EAAYK,MAAQuB,WAAWhB,EAAajB,EAAM8B,aAAW,GA9B7C,eAmCdI,EAAoBhB,GAAA,KACpBb,EAAYK,OACdyB,aAAa9B,EAAYK,OAE3BR,EAAcQ,MAAQ,EACtBN,EAAYM,OAAQ,CAAA,GALFwB,eASdE,EAAoBlB,GAAA,KACZgB,IAEPlC,EAAMgC,KAKGf,IAHEP,EAAAA,MAAQV,EAAMQ,KAAKI,MAGrB,GARIwB,sBAadC,SAAA,IAAMrC,EAAMQ,OAAM,KACV4B,GAAA,GACX,CAAEE,WAAW,EAAMC,MAAM,IAGtBF,SAAA,IAAMrC,EAAMuB,YAAW,KACvBvB,EAAMgC,MAAQrB,EAAaD,OACjBO,GAAA,IAKhBuB,EAAAA,WAAU,KACIJ,GAAA,IAIDK,EAAA;;;;AAIXC,WAAYzB;;;;AAIZ0B,QAASP;;;;AAITQ,KAAY1B,GAAA,KACNb,EAAYK,OACdyB,aAAa9B,EAAYK,OAE3BN,EAAYM,OAAQ,CAAA,GAJhBkC;;;"}
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./installer.js");require("./functions/index.js"),require("./hooks/index.js");var o=require("./utils/index.js");require("./directives/index.js"),require("./components/index.js");var r=require("./functions/modules/log.js"),s=require("./hooks/useDialogV2/index.js"),i=require("./hooks/useDrawerV2/index.js"),n=require("./hooks/useDrawerV2/src/index.js"),t=require("./hooks/usePopWindow/src/index.js"),u=require("./hooks/usePopWindow/index.js"),l=require("./hooks/usePopWindowV2/src/index.js"),p=require("./hooks/usePopWindowV2/index.js"),d=require("./hooks/useDialog/index.js"),x=require("./hooks/useImageViewer/src/index.vue2.js"),a=require("./hooks/useImageViewer/index.js"),c=require("./hooks/useDrawer/index.js"),m=require("./utils/install.js"),w=require("./directives/modules/copy.js"),j=require("./directives/modules/drag.js"),q=require("./directives/modules/autoScroll.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./installer.js");require("./functions/index.js"),require("./hooks/index.js");var o=require("./utils/index.js");require("./directives/index.js"),require("./components/index.js");var r=require("./functions/modules/log.js"),s=require("./hooks/useDialogV2/index.js"),i=require("./hooks/useDrawerV2/index.js"),n=require("./hooks/useDrawerV2/src/index.js"),t=require("./hooks/usePopWindow/src/index.js"),u=require("./hooks/usePopWindow/index.js"),l=require("./hooks/usePopWindowV2/src/index.js"),p=require("./hooks/usePopWindowV2/index.js"),d=require("./hooks/useDialog/index.js"),x=require("./hooks/useImageViewer/src/index.vue2.js"),a=require("./hooks/useImageViewer/index.js"),c=require("./hooks/useDrawer/index.js"),m=require("./utils/install.js"),w=require("./directives/modules/copy.js"),j=require("./directives/modules/drag.js"),q=require("./directives/modules/autoScroll.js"),T=require("./directives/modules/tooltip.js"),h=require("./directives/modules/confirm.js"),Z=require("./directives/modules/countTo.js"),g=require("./functions/modules/uitls.js"),V=require("./functions/modules/is.js"),W=require("./components/znForm/src/hooks/useZnForm.js"),f=require("./components/znSearch/src/hooks/useProSearch.js"),P=require("./components/znTable/index.js"),v=require("./components/znTreeFilter/index.js"),z=require("./components/znChart/index.js"),D=require("./components/znCountTo/index.js"),k=require("./components/znTest/index.js"),y=require("./components/znForm/index.js"),b=require("./components/znTimeLine/index.js"),I=require("./components/znWorkGrid/index.js"),S=require("./components/znGrid/index.js"),F=require("./components/znSearch/index.js"),C=require("./components/znNumberScroll/index.js"),B=require("./components/znTreeSelect/index.js"),G=require("./components/znVirtualTable/src/index.vue2.js"),A=require("./components/znVirtualTable/src/utils/vxe-setup.js");globalThis.log=r.default;"function"==typeof globalThis?.log?.success&&globalThis.log.primary("1.0.73","欢迎使用znyg-frontend-common,在线文档:http://192.168.99.34:10000/znyg-frontend-common-docs/"),exports.default=e.default,exports.install=e.install,exports.copyText=o.copyText,exports.formatValue=o.formatValue,exports.treeListUtil=o.treeListUtil,exports.treeToList=o.treeToList,exports.log=r.default,exports.useDialogV2=s.useDialogV2,exports.useDrawerV2=i.useDrawerV2,exports.closeAllDrawers=n.closeAllDrawers,exports.closePopWindowById=t.closePopWindowById,exports.closePopWindowByTag=t.closePopWindowByTag,exports.getAllPopWindows=t.getAllPopWindows,exports.showPopWindow=t.showPopWindow,exports.usePopWindow=u.usePopWindow,exports.closePopWindowByIdV2=l.closePopWindowByIdV2,exports.closePopWindowByTagV2=l.closePopWindowByTagV2,exports.getAllPopWindowsV2=l.getAllPopWindowsV2,exports.showPopWindowV2=l.showPopWindowV2,exports.usePopWindowV2=p.usePopWindowV2,exports.useDialog=d.useDialog,exports.ImageViewer=x.default,exports.useImageViewer=a.useImageViewer,exports.useDrawer=c.useDrawer,exports.withInstall=m.withInstall,exports.withInstallDirectives=m.withInstallDirectives,exports.vCopy=w.default,exports.vDrag=j.default,exports.vAutoScroll=q.default,exports.vTooltip=T.default,exports.vConfirm=h.default,exports.vCountTo=Z.default,exports.utils=g.default,exports.is=V,exports.useZnForm=W.useZnForm,exports.useZnSearch=f.useZnSearch,exports.ZnTable=P.ZnTable,exports.ZnTreeFilter=v.ZnTreeFilter,exports.ZnChart=z.ZnChart,exports.ZnCountTo=D.ZnCountTo,exports.ZnTest=k.ZnTest,exports.ZnForm=y.ZnForm,exports.ZnTimeline=b.ZnTimeline,exports.ZnWorkGrid=I.ZnWorkGrid,exports.ZnGrid=S.ZnGrid,exports.ZnGridItem=S.ZnGridItem,exports.ZnSearch=F.ZnSearch,exports.ZnNumberScroll=C.ZnNumberScroll,exports.ZnTreeSelect=B.ZnTreeSelect,exports.ZnVirtualTable=G.default,exports.initVXETable=A.initVXETable;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../packages/index.ts"],"sourcesContent":["import installer from './installer'\nimport { log } from './functions'\nexport * from './hooks'\nexport * from './utils'\nexport * from './installer'\nexport * from './directives'\nexport * from './functions'\nexport * from './components'\n\nexport default installer\nglobalThis.log = log\nconst version = '1.0.
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../packages/index.ts"],"sourcesContent":["import installer from './installer'\nimport { log } from './functions'\nexport * from './hooks'\nexport * from './utils'\nexport * from './installer'\nexport * from './directives'\nexport * from './functions'\nexport * from './components'\n\nexport default installer\nglobalThis.log = log\nconst version = '1.0.73'\nif (typeof globalThis?.log?.success === 'function') {\n globalThis.log.primary(version, '欢迎使用znyg-frontend-common,在线文档:http://192.168.99.34:10000/znyg-frontend-common-docs/')\n}\n"],"names":["globalThis","log","default","success","primary"],"mappings":"o6DAUAA,WAAWC,IAAMA,EAAAC,QAEuB,mBAA7BF,YAAYC,KAAKE,SACfH,WAAAC,IAAIG,QAFD,SAEkB"}
|