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.
@@ -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';
@@ -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) // 增加类型\n\nexport default ZnTimeline\n"],"names":["ZnTimeline","withInstall","index"],"mappings":"sHAKa,MAAAA,EAAaC,EAAYC"}
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,resolveComponent as t,createBlock as n,openBlock as l,withCtx as r,createElementBlock as m,Fragment as i,renderList as o,mergeProps as u}from"vue";import"./component/timelineItem.vue.mjs";import a from"./component/timelineItem.vue2.mjs";var p=Object.defineProperty,f=e({name:"ZnTimeline",__name:"index",props:{list:{type:Array,required:!0,default:((e,t)=>p(e,"name",{value:t,configurable:!0}))((()=>[]),"default")}},setup:e=>(p,f)=>{const s=t("el-timeline");return l(),n(s,null,{default:r((()=>[(l(!0),m(i,null,o(e.list,((e,t)=>(l(),n(a,u({key:t,ref_for:!0},e),null,16
2
- /* FULL_PROPS */)))),128
3
- /* KEYED_FRAGMENT */))])),_:1
4
- /* STABLE */})}});export{f as default};
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.72","欢迎使用znyg-frontend-common,在线文档:http://192.168.99.34:10000/znyg-frontend-common-docs/");export{o as default,e as log};
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.72'\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":"yhFAUAA,WAAWC,IAAMA,EAEuB,mBAA7BD,YAAYC,KAAKC,SACfF,WAAAC,IAAIE,QAFD,SAEkB"}
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';
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./znChart/index.js"),r=require("./znTable/index.js"),n=require("./znTreeFilter/index.js"),i=require("./znCountTo/index.js"),s=require("./znForm/index.js"),t=require("./znTimeLine/index.js"),o=require("./znGrid/index.js"),u=require("./znTest/index.js"),x=require("./znWorkGrid/index.js"),Z=require("./znSearch/index.js"),a=require("./znNumberScroll/index.js");require("./znVirtualTable/index.js");var l=require("./znForm/src/hooks/useZnForm.js"),d=require("./znSearch/src/hooks/useProSearch.js"),T=require("./znVirtualTable/src/index.vue2.js"),p=require("./znVirtualTable/src/utils/vxe-setup.js");exports.ZnChart=e.ZnChart,exports.ZnTable=r.ZnTable,exports.ZnTreeFilter=n.ZnTreeFilter,exports.ZnCountTo=i.ZnCountTo,exports.ZnForm=s.ZnForm,exports.ZnTimeline=t.ZnTimeline,exports.ZnGrid=o.ZnGrid,exports.ZnGridItem=o.ZnGridItem,exports.ZnTest=u.ZnTest,exports.ZnWorkGrid=x.ZnWorkGrid,exports.ZnSearch=Z.ZnSearch,exports.ZnNumberScroll=a.ZnNumberScroll,exports.useZnForm=l.useZnForm,exports.useZnSearch=d.useZnSearch,exports.ZnVirtualTable=T.default,exports.initVXETable=p.initVXETable;
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) // 增加类型\n\nexport default ZnTimeline\n"],"names":["ZnTimeline","withInstall","index","default"],"mappings":"+KAKa,MAAAA,EAAaC,cAAYC,EAAKC"}
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"),r=Object.defineProperty,n=(e,t)=>r(e,"name",{value:t,configurable:!0}),l=e.defineComponent({name:"ZnTimeline",__name:"index",props:{list:{type:Array,required:!0,default:n((()=>[]),"default")}},setup:r=>(n,l)=>{const o=e.resolveComponent("el-timeline");return e.openBlock(),e.createBlock(o,null,{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.list,((r,n)=>(e.openBlock(),e.createBlock(t.default,e.mergeProps({key:n,ref_for:!0},r),null,16
2
- /* FULL_PROPS */)))),128
3
- /* KEYED_FRAGMENT */))])),_:1
4
- /* STABLE */})}});exports.default=l;
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"),h=require("./directives/modules/tooltip.js"),T=require("./directives/modules/confirm.js"),g=require("./directives/modules/countTo.js"),V=require("./functions/modules/uitls.js"),Z=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"),D=require("./components/znChart/index.js"),k=require("./components/znCountTo/index.js"),y=require("./components/znTest/index.js"),z=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/znVirtualTable/src/index.vue2.js"),G=require("./components/znVirtualTable/src/utils/vxe-setup.js");globalThis.log=r.default;"function"==typeof globalThis?.log?.success&&globalThis.log.primary("1.0.72","欢迎使用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=h.default,exports.vConfirm=T.default,exports.vCountTo=g.default,exports.utils=V.default,exports.is=Z,exports.useZnForm=W.useZnForm,exports.useZnSearch=f.useZnSearch,exports.ZnTable=P.ZnTable,exports.ZnTreeFilter=v.ZnTreeFilter,exports.ZnChart=D.ZnChart,exports.ZnCountTo=k.ZnCountTo,exports.ZnTest=y.ZnTest,exports.ZnForm=z.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.ZnVirtualTable=B.default,exports.initVXETable=G.initVXETable;
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.72'\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":"o3DAUAA,WAAWC,IAAMA,EAAAC,QAEuB,mBAA7BF,YAAYC,KAAKE,SACfH,WAAAC,IAAIG,QAFD,SAEkB"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "znyg-frontend-common",
3
- "version": "1.0.72",
3
+ "version": "1.0.73",
4
4
  "description": "前端公用库",
5
5
  "license": "MIT",
6
6
  "keywords": [