znyg-frontend-common 1.1.19 → 1.1.20

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.
Files changed (110) hide show
  1. package/es/components/znTableV2/index.mjs +2 -0
  2. package/es/components/znTableV2/index.mjs.map +1 -0
  3. package/es/components/znTableV2/src/assets/notData.png.mjs +2 -0
  4. package/es/components/znTableV2/src/assets/notData.png.mjs.map +1 -0
  5. package/es/components/znTableV2/src/components/ColSetting.vue.mjs +2 -0
  6. package/es/components/znTableV2/src/components/ColSetting.vue.mjs.map +1 -0
  7. package/es/components/znTableV2/src/components/ColSetting.vue2.mjs +12 -0
  8. package/es/components/znTableV2/src/components/ColSetting.vue2.mjs.map +1 -0
  9. package/es/components/znTableV2/src/components/Grid/components/GridItem.vue.mjs +2 -0
  10. package/es/components/znTableV2/src/components/Grid/components/GridItem.vue.mjs.map +1 -0
  11. package/es/components/znTableV2/src/components/Grid/components/GridItem.vue2.mjs +3 -0
  12. package/es/components/znTableV2/src/components/Grid/components/GridItem.vue2.mjs.map +1 -0
  13. package/es/components/znTableV2/src/components/Grid/index.vue.mjs +2 -0
  14. package/es/components/znTableV2/src/components/Grid/index.vue.mjs.map +1 -0
  15. package/es/components/znTableV2/src/components/Grid/index.vue2.mjs +3 -0
  16. package/es/components/znTableV2/src/components/Grid/index.vue2.mjs.map +1 -0
  17. package/es/components/znTableV2/src/components/Grid/interface/index.mjs +2 -0
  18. package/es/components/znTableV2/src/components/Grid/interface/index.mjs.map +1 -0
  19. package/es/components/znTableV2/src/components/OperationBtns/index.vue.mjs +2 -0
  20. package/es/components/znTableV2/src/components/OperationBtns/index.vue.mjs.map +1 -0
  21. package/es/components/znTableV2/src/components/OperationBtns/index.vue2.mjs +16 -0
  22. package/es/components/znTableV2/src/components/OperationBtns/index.vue2.mjs.map +1 -0
  23. package/es/components/znTableV2/src/components/Pagination.vue.mjs +2 -0
  24. package/es/components/znTableV2/src/components/Pagination.vue.mjs.map +1 -0
  25. package/es/components/znTableV2/src/components/Pagination.vue2.mjs +3 -0
  26. package/es/components/znTableV2/src/components/Pagination.vue2.mjs.map +1 -0
  27. package/es/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue.mjs +2 -0
  28. package/es/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue.mjs.map +1 -0
  29. package/es/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue2.mjs +5 -0
  30. package/es/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue2.mjs.map +1 -0
  31. package/es/components/znTableV2/src/components/SearchForm/index.vue.mjs +2 -0
  32. package/es/components/znTableV2/src/components/SearchForm/index.vue.mjs.map +1 -0
  33. package/es/components/znTableV2/src/components/SearchForm/index.vue2.mjs +20 -0
  34. package/es/components/znTableV2/src/components/SearchForm/index.vue2.mjs.map +1 -0
  35. package/es/components/znTableV2/src/components/TableColumn.vue.mjs +2 -0
  36. package/es/components/znTableV2/src/components/TableColumn.vue.mjs.map +1 -0
  37. package/es/components/znTableV2/src/components/TableColumn.vue2.mjs +3 -0
  38. package/es/components/znTableV2/src/components/TableColumn.vue2.mjs.map +1 -0
  39. package/es/components/znTableV2/src/hooks/interface/index.mjs +2 -0
  40. package/es/components/znTableV2/src/hooks/interface/index.mjs.map +1 -0
  41. package/es/components/znTableV2/src/hooks/useSelection.mjs +2 -0
  42. package/es/components/znTableV2/src/hooks/useSelection.mjs.map +1 -0
  43. package/es/components/znTableV2/src/hooks/useTable.mjs +20 -0
  44. package/es/components/znTableV2/src/hooks/useTable.mjs.map +1 -0
  45. package/es/components/znTableV2/src/index.vue.mjs +2 -0
  46. package/es/components/znTableV2/src/index.vue.mjs.map +1 -0
  47. package/es/components/znTableV2/src/index.vue2.mjs +34 -0
  48. package/es/components/znTableV2/src/index.vue2.mjs.map +1 -0
  49. package/es/components/znTableV2/src/interface/index.mjs +2 -0
  50. package/es/components/znTableV2/src/interface/index.mjs.map +1 -0
  51. package/es/components/znTableV2/src/utils.mjs +2 -0
  52. package/es/components/znTableV2/src/utils.mjs.map +1 -0
  53. package/es/index.mjs +1 -1
  54. package/es/index.mjs.map +1 -1
  55. package/global.d.ts +1 -0
  56. package/lib/components/znTableV2/index.js +2 -0
  57. package/lib/components/znTableV2/index.js.map +1 -0
  58. package/lib/components/znTableV2/src/assets/notData.png.js +2 -0
  59. package/lib/components/znTableV2/src/assets/notData.png.js.map +1 -0
  60. package/lib/components/znTableV2/src/components/ColSetting.vue.js +2 -0
  61. package/lib/components/znTableV2/src/components/ColSetting.vue.js.map +1 -0
  62. package/lib/components/znTableV2/src/components/ColSetting.vue2.js +12 -0
  63. package/lib/components/znTableV2/src/components/ColSetting.vue2.js.map +1 -0
  64. package/lib/components/znTableV2/src/components/Grid/components/GridItem.vue.js +2 -0
  65. package/lib/components/znTableV2/src/components/Grid/components/GridItem.vue.js.map +1 -0
  66. package/lib/components/znTableV2/src/components/Grid/components/GridItem.vue2.js +3 -0
  67. package/lib/components/znTableV2/src/components/Grid/components/GridItem.vue2.js.map +1 -0
  68. package/lib/components/znTableV2/src/components/Grid/index.vue.js +2 -0
  69. package/lib/components/znTableV2/src/components/Grid/index.vue.js.map +1 -0
  70. package/lib/components/znTableV2/src/components/Grid/index.vue2.js +3 -0
  71. package/lib/components/znTableV2/src/components/Grid/index.vue2.js.map +1 -0
  72. package/lib/components/znTableV2/src/components/Grid/interface/index.js +2 -0
  73. package/lib/components/znTableV2/src/components/Grid/interface/index.js.map +1 -0
  74. package/lib/components/znTableV2/src/components/OperationBtns/index.vue.js +2 -0
  75. package/lib/components/znTableV2/src/components/OperationBtns/index.vue.js.map +1 -0
  76. package/lib/components/znTableV2/src/components/OperationBtns/index.vue2.js +16 -0
  77. package/lib/components/znTableV2/src/components/OperationBtns/index.vue2.js.map +1 -0
  78. package/lib/components/znTableV2/src/components/Pagination.vue.js +2 -0
  79. package/lib/components/znTableV2/src/components/Pagination.vue.js.map +1 -0
  80. package/lib/components/znTableV2/src/components/Pagination.vue2.js +3 -0
  81. package/lib/components/znTableV2/src/components/Pagination.vue2.js.map +1 -0
  82. package/lib/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue.js +2 -0
  83. package/lib/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue.js.map +1 -0
  84. package/lib/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue2.js +5 -0
  85. package/lib/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue2.js.map +1 -0
  86. package/lib/components/znTableV2/src/components/SearchForm/index.vue.js +2 -0
  87. package/lib/components/znTableV2/src/components/SearchForm/index.vue.js.map +1 -0
  88. package/lib/components/znTableV2/src/components/SearchForm/index.vue2.js +20 -0
  89. package/lib/components/znTableV2/src/components/SearchForm/index.vue2.js.map +1 -0
  90. package/lib/components/znTableV2/src/components/TableColumn.vue.js +2 -0
  91. package/lib/components/znTableV2/src/components/TableColumn.vue.js.map +1 -0
  92. package/lib/components/znTableV2/src/components/TableColumn.vue2.js +3 -0
  93. package/lib/components/znTableV2/src/components/TableColumn.vue2.js.map +1 -0
  94. package/lib/components/znTableV2/src/hooks/interface/index.js +2 -0
  95. package/lib/components/znTableV2/src/hooks/interface/index.js.map +1 -0
  96. package/lib/components/znTableV2/src/hooks/useSelection.js +2 -0
  97. package/lib/components/znTableV2/src/hooks/useSelection.js.map +1 -0
  98. package/lib/components/znTableV2/src/hooks/useTable.js +20 -0
  99. package/lib/components/znTableV2/src/hooks/useTable.js.map +1 -0
  100. package/lib/components/znTableV2/src/index.vue.js +2 -0
  101. package/lib/components/znTableV2/src/index.vue.js.map +1 -0
  102. package/lib/components/znTableV2/src/index.vue2.js +34 -0
  103. package/lib/components/znTableV2/src/index.vue2.js.map +1 -0
  104. package/lib/components/znTableV2/src/interface/index.js +2 -0
  105. package/lib/components/znTableV2/src/interface/index.js.map +1 -0
  106. package/lib/components/znTableV2/src/utils.js +2 -0
  107. package/lib/components/znTableV2/src/utils.js.map +1 -0
  108. package/lib/index.js +1 -1
  109. package/lib/index.js.map +1 -1
  110. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import{withInstall as s}from"../../utils/install.mjs";import"./src/index.vue.mjs";import m from"./src/index.vue2.mjs";const r=s(m);export{r as ZnTableV2,r as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/znTableV2/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/install'\nimport { default as index, type ZnTableProps } from './src/index.vue'\nimport type { SearchProps, ColumnProps, OperationBtnProps, OperationBtnsProps } from './src/interface/index'\n\nexport const ZnTableV2 = withInstall(index) // 增加类型\n\nexport { type ZnTableProps, SearchProps, ColumnProps, OperationBtnProps, OperationBtnsProps }\nexport default ZnTableV2\n"],"names":["ZnTableV2","withInstall","index"],"mappings":"sHAIa,MAAAA,EAAYC,EAAYC"}
@@ -0,0 +1,2 @@
1
+ var f="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAzCAMAAAA3r39rAAABEVBMVEUAAADb29va2trY2Njj4+PX19fZ2dng4ODf39/X19fj4+Py8vLk5OTt7e3V1dX09PT29vbZ2dn39/fY2Nj29vbb29v29vb29vb19fX29vbV1dX39/f29vb29vb19fXc3NzZ2dnd3d3e3t7h4eH19fX19fXZ2dn19fX39/fb29vb29vW1tb19fXT09P29vbf39/29vb19fXU1NTn5+fc3NzR0dH29vb19fX19fX29vbT09P39/f19fX39/ff39/39/fX19f19fXr6+vo6OjZ2dnn5+fb29vj4+Pd3d319fXm5ubm5ubj4+PY2Nja2tr39/fk5OT6+vr09PTm5ub39/f8/Pzx8fHi4uLp6enr6+vt7e37h5dsAAAAUXRSTlMAQpJ0ChanzshV+g7jBMAS47ONcNMd++jew4heMx7LwJ5HI/j387y3rKx3XFNPSeSabWswKyjt2b2ikYWBc108mZZsaT339evZsKycgX5QGL+U+rOeAAAC3UlEQVRYw+WV13qiQBiGiaIbJaAgFgTsvZds7DG9l3UEBnP/F7IIDyYmgDB7uO8R4Mc7/8z8I5gdhabfgfMC5pHfvnrOZ0uu7vvt0TfN9vNHtuSvqLQnYzxNneNOAfy8ko679xEv2QHpHCGvqRfCrQ8fZF/xg6FGZYC79DUpN9MJvFJNd8a3is9VUxR8lZCb3BGdc7mBhRydP5waBulTzCWn9frw4KhB+ghzzQ0dLBxowAs6hHngjc7FERraHtK5IyKx7BWBeYK4zjYitg14TW9/9Gj001e4XfkVXwDzTGBKN0nL+kIU5W+3Qyb5uMNa53exdjtGUSHcaqSLu+7xr0+Og7Zdmw/uBbt3FwErYbD4AZQdQIH1U7t+hspXPopBa2EYyKsdsqx0G9bCxokif02CsLPQzEnw2Vr4vNYD7oUm8Im07IYndbWHa6FasVzEYXYjowmV7rR9c/SNm/a0CxAqNIzFh+MfPBSVFYLQVP5EKw9ZaDaH81NnIQK2wlwRrNCExZyVkEjfowrv04SFEI+doApPYriNUP7PhAN04cBKGPGjCy2+bYTQz4ZRdzn8py8Qe7bOrMaNbteowvXtiKvNOqZT5BmuDCSwRheq2utljuHF7V4se1Gg8Q9CRRdqRHtLHGtx2pUhhIqMJoSa0JBwLWycMHQS+EAUyhuo6AKNxBjT52s4obqSNfSUcfU5gH4jf8N4Iq0hkCRgEMUuk6ZQ2kBVAZ5RVLjRfEaNyUtsyET1SW9vVQjXnoFwY7oTUWaonRC+miztRvMuVLcLuKWUrPL6icHFDsMm9EkDFCT9vQTLdETzSJPikp/X2JKESImtzfmlSO7/NwitBTOpZlJl4IFyKlOdMIuWEMGsIN+FVn/Wq1W5DJuKJs/KpcRnU5kkSuWzZDTFZrhqrTfrt4R3EnOAxAkiIgodfjFnepPHcSbDjlJb+VaSGrFsZvw4uWTmC74jiBGCwL/b/gIpvWL/TS00iAAAAABJRU5ErkJggg==";export{f as default};
2
+ //# sourceMappingURL=notData.png.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notData.png.mjs","sources":["../../../../../../../packages/components/znTableV2/src/assets/notData.png"],"sourcesContent":["var img = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAzCAMAAAA3r39rAAABEVBMVEUAAADb29va2trY2Njj4+PX19fZ2dng4ODf39/X19fj4+Py8vLk5OTt7e3V1dX09PT29vbZ2dn39/fY2Nj29vbb29v29vb29vb19fX29vbV1dX39/f29vb29vb19fXc3NzZ2dnd3d3e3t7h4eH19fX19fXZ2dn19fX39/fb29vb29vW1tb19fXT09P29vbf39/29vb19fXU1NTn5+fc3NzR0dH29vb19fX19fX29vbT09P39/f19fX39/ff39/39/fX19f19fXr6+vo6OjZ2dnn5+fb29vj4+Pd3d319fXm5ubm5ubj4+PY2Nja2tr39/fk5OT6+vr09PTm5ub39/f8/Pzx8fHi4uLp6enr6+vt7e37h5dsAAAAUXRSTlMAQpJ0ChanzshV+g7jBMAS47ONcNMd++jew4heMx7LwJ5HI/j387y3rKx3XFNPSeSabWswKyjt2b2ikYWBc108mZZsaT339evZsKycgX5QGL+U+rOeAAAC3UlEQVRYw+WV13qiQBiGiaIbJaAgFgTsvZds7DG9l3UEBnP/F7IIDyYmgDB7uO8R4Mc7/8z8I5gdhabfgfMC5pHfvnrOZ0uu7vvt0TfN9vNHtuSvqLQnYzxNneNOAfy8ko679xEv2QHpHCGvqRfCrQ8fZF/xg6FGZYC79DUpN9MJvFJNd8a3is9VUxR8lZCb3BGdc7mBhRydP5waBulTzCWn9frw4KhB+ghzzQ0dLBxowAs6hHngjc7FERraHtK5IyKx7BWBeYK4zjYitg14TW9/9Gj001e4XfkVXwDzTGBKN0nL+kIU5W+3Qyb5uMNa53exdjtGUSHcaqSLu+7xr0+Og7Zdmw/uBbt3FwErYbD4AZQdQIH1U7t+hspXPopBa2EYyKsdsqx0G9bCxokif02CsLPQzEnw2Vr4vNYD7oUm8Im07IYndbWHa6FasVzEYXYjowmV7rR9c/SNm/a0CxAqNIzFh+MfPBSVFYLQVP5EKw9ZaDaH81NnIQK2wlwRrNCExZyVkEjfowrv04SFEI+doApPYriNUP7PhAN04cBKGPGjCy2+bYTQz4ZRdzn8py8Qe7bOrMaNbteowvXtiKvNOqZT5BmuDCSwRheq2utljuHF7V4se1Gg8Q9CRRdqRHtLHGtx2pUhhIqMJoSa0JBwLWycMHQS+EAUyhuo6AKNxBjT52s4obqSNfSUcfU5gH4jf8N4Iq0hkCRgEMUuk6ZQ2kBVAZ5RVLjRfEaNyUtsyET1SW9vVQjXnoFwY7oTUWaonRC+miztRvMuVLcLuKWUrPL6icHFDsMm9EkDFCT9vQTLdETzSJPikp/X2JKESImtzfmlSO7/NwitBTOpZlJl4IFyKlOdMIuWEMGsIN+FVn/Wq1W5DJuKJs/KpcRnU5kkSuWzZDTFZrhqrTfrt4R3EnOAxAkiIgodfjFnepPHcSbDjlJb+VaSGrFsZvw4uWTmC74jiBGCwL/b/gIpvWL/TS00iAAAAABJRU5ErkJggg==\";\n export default img;"],"names":["img"],"mappings":"AAAG,IAACA,EAAM"}
@@ -0,0 +1,2 @@
1
+ import t from"./ColSetting.vue2.mjs";export{t as default};
2
+ //# sourceMappingURL=ColSetting.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColSetting.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import{defineComponent as e,ref as l,getCurrentInstance as t,watch as a,nextTick as o,onUnmounted as n,resolveComponent as r,createElementBlock as s,openBlock as i,Fragment as d,createCommentVNode as u,createVNode as c,withCtx as m,createElementVNode as p,unref as f,normalizeClass as h,renderSlot as v}from"vue";import g from"../assets/notData.png.mjs";import b from"sortablejs";import{DCaret as y}from"@element-plus/icons-vue";var w=Object.defineProperty,S=(e,l)=>w(e,"name",{value:l,configurable:!0});const U={class:"col-setting-header",style:{display:"flex","align-items":"center"}},C=["id"],V={style:{display:"flex","align-items":"center"}},_={class:"table-main"};var x=e({__name:"ColSetting",props:{colSetting:{type:Array,required:!0}},emits:["update:colSetting","updateColumns"],setup(e,{expose:w,emit:x}){const O=e,T=x,k=l(!1),I=l();let J=null;const N=t(),j=l([]),A=l(!1);let E=null;const $=S(((e,l)=>{if(N&&!N.isUnmounted)try{T(e,l)}catch(l){console.warn(`发送事件 ${e} 时出错:`,l)}else console.warn("组件已销毁,跳过事件发送",{hasInstance:!!N,isUnmounted:N?.isUnmounted})}),"safeEmit"),q=S((e=>{E&&clearTimeout(E),E=window.setTimeout((()=>{if(N&&!N.isUnmounted)try{const l=JSON.parse(JSON.stringify(e));$("updateColumns",l)}catch(e){console.warn("更新数据时出错:",e)}}),100)}),"debouncedUpdate");a((()=>O.colSetting),(e=>{if(e&&Array.isArray(e)){A.value=!0;try{j.value=JSON.parse(JSON.stringify(e))}catch(l){console.warn("更新本地列设置时出错:",l),j.value=[...e]}o((()=>{setTimeout((()=>{A.value=!1}),50)}))}}),{immediate:!0,deep:!0});const D=S((()=>{N&&!N.isUnmounted&&o((()=>{if(N&&!N.isUnmounted&&I.value)try{const e=I.value.$el?.querySelector("tbody");if(!e)return void console.warn("未找到tbody元素");if(J){try{J.destroy()}catch(e){console.warn("销毁sortable实例时出错:",e)}J=null}J=b.create(e,{handle:".drag-handle",animation:300,ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",forceFallback:!0,fallbackTolerance:3,
2
+ // 禁用原生HTML5拖拽
3
+ dragoverBubble:!1,removeCloneOnHide:!0,onStart:S((e=>{if(!e.item||!e.from||!N||N.isUnmounted)return!1}),"onStart"),onEnd:S((e=>{if(!N||N.isUnmounted)return;if(A.value)return;const{oldIndex:l,newIndex:t}=e;if(void 0!==l&&void 0!==t&&l!==t&&!(l<0||t<0||l>=j.value.length||t>=j.value.length))try{const e=[...j.value],a=e.splice(l,1)[0];a&&(e.splice(t,0,a),j.value=e,q(e))}catch(e){console.warn("拖拽排序时出错:",e)}}),"onEnd")})}catch(e){console.warn("初始化sortable时出错:",e)}}))}),"initSortable"),H=S((()=>{N&&!N.isUnmounted&&(k.value=!0,setTimeout((()=>{N&&!N.isUnmounted&&D()}),200))}),"openColSetting"),z=S((()=>{N&&!N.isUnmounted&&(k.value=!1)}),"closeColSetting"),B=S((()=>{if(N&&!N.isUnmounted&&!A.value)try{q(j.value)}catch(e){console.warn("开关切换时出错:",e)}}),"handleSwitchChange");return a(k,(e=>{if(!e&&J)try{J.destroy(),J=null}catch(e){console.warn("关闭抽屉时销毁sortable实例出错:",e)}})),n((()=>{if(E&&(clearTimeout(E),E=null),J)try{J.destroy(),J=null}catch(e){console.warn("组件销毁时清理sortable实例出错:",e)}})),w({openColSetting:H,closeColSetting:z}),(e,l)=>{const t=r("el-icon"),a=r("el-table-column"),o=r("el-switch"),n=r("el-table"),b=r("el-drawer");return i(),s(d,null,[u(" 列设置 "),c(b,{modelValue:k.value,"onUpdate:modelValue":l[0]||(l[0]=e=>k.value=e),title:"列设置",size:"450px"},{header:m((({close:l,titleId:t,titleClass:a})=>[p("div",U,[p("h4",{id:t,class:h(a)},"列设置",10,C),p("div",V,[u(" 列设置头部插槽 "),v(e.$slots,"colSettingHeader")])])])),default:m((()=>[p("div",_,[c(n,{ref_key:"tableRef",ref:I,data:j.value,border:!0,"row-key":"prop","default-expand-all":"","tree-props":{children:"_children"}},{empty:m((()=>l[1]||(l[1]=[p("div",{class:"table-empty"},[p("img",{src:g,alt:"notData"}),p("div",null,"暂无可配置列")],-1
4
+ /* HOISTED */)]))),default:m((()=>[c(a,{align:"center",label:"拖拽",width:"60"},{default:m((()=>[c(t,{class:"drag-handle",style:{color:"#409eff",cursor:"move"}},{default:m((()=>[c(f(y))])),_:1
5
+ /* STABLE */})])),_:1
6
+ /* STABLE */}),c(a,{prop:"label",align:"center",label:"列名"}),c(a,{prop:"isShow",align:"center",label:"显示"},{default:m((e=>[c(o,{modelValue:e.row.isShow,"onUpdate:modelValue":S((l=>e.row.isShow=l),"onUpdate:modelValue"),onChange:B},null,8,["modelValue","onUpdate:modelValue"])])),_:1
7
+ /* STABLE */}),c(a,{prop:"sortable",align:"center",label:"排序"},{default:m((e=>[c(o,{modelValue:e.row.sortable,"onUpdate:modelValue":S((l=>e.row.sortable=l),"onUpdate:modelValue"),onChange:B},null,8,["modelValue","onUpdate:modelValue"])])),_:1
8
+ /* STABLE */})])),_:1
9
+ /* STABLE */},8,["data"])])])),_:3
10
+ /* FORWARDED */},8,["modelValue"])],2112
11
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */)}}});export{x as default};
12
+ //# sourceMappingURL=ColSetting.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColSetting.vue2.mjs","sources":["../../../../../../../packages/components/znTableV2/src/components/ColSetting.vue"],"sourcesContent":["<template>\n <!-- 列设置 -->\n <el-drawer v-model=\"drawerVisible\" title=\"列设置\" size=\"450px\">\n <!-- 自定义头部 -->\n <template #header=\"{ close, titleId, titleClass }\">\n <div class=\"col-setting-header\" style=\"display: flex; align-items: center;\">\n <h4 :id=\"titleId\" :class=\"titleClass\">列设置</h4>\n <div style=\"display: flex; align-items: center;\">\n <!-- 列设置头部插槽 -->\n <slot name=\"colSettingHeader\"></slot>\n </div>\n </div>\n </template>\n\n <div class=\"table-main\">\n <el-table ref=\"tableRef\" :data=\"localColSetting\" :border=\"true\" row-key=\"prop\" default-expand-all :tree-props=\"{ children: '_children' }\">\n <el-table-column align=\"center\" label=\"拖拽\" width=\"60\">\n <template #default>\n <el-icon class=\"drag-handle\" style=\" color: #409eff;cursor: move\">\n <DCaret />\n </el-icon>\n </template>\n </el-table-column>\n <el-table-column prop=\"label\" align=\"center\" label=\"列名\" />\n <el-table-column v-slot=\"scope\" prop=\"isShow\" align=\"center\" label=\"显示\">\n <el-switch v-model=\"scope.row.isShow\" @change=\"handleSwitchChange\"></el-switch>\n </el-table-column>\n <el-table-column v-slot=\"scope\" prop=\"sortable\" align=\"center\" label=\"排序\">\n <el-switch v-model=\"scope.row.sortable\" @change=\"handleSwitchChange\"></el-switch>\n </el-table-column>\n <template #empty>\n <div class=\"table-empty\">\n <img src=\"../assets/notData.png\" alt=\"notData\" />\n <div>暂无可配置列</div>\n </div>\n </template>\n </el-table>\n </div>\n </el-drawer>\n</template>\n\n<script setup lang=\"ts\" name=\"ColSetting\">\n import { nextTick, onMounted, onUnmounted, ref, watch, getCurrentInstance } from 'vue'\n import Sortable from 'sortablejs'\n\n import { ColumnProps } from '../interface'\n import { DCaret } from '@element-plus/icons-vue'\n\n const props = defineProps({\n colSetting: { type: Array, required: true }\n})\n const emit = defineEmits(['update:colSetting', 'updateColumns'])\n\n const drawerVisible = ref<boolean>(false)\n const tableRef = ref()\n let sortableInstance: Sortable | null = null\n\n // 获取当前组件实例,用于检查组件是否已销毁\n const instance = getCurrentInstance()\n\n // 添加本地状态\n const localColSetting = ref<ColumnProps[]>([])\n\n // 添加更新标志,防止循环更新\n const isUpdatingFromParent = ref(false)\n\n // 防抖标志\n let updateTimer: number | null = null\n\n // 安全的emit函数\n const safeEmit = (eventName: string, data: any) => {\n // console.log('safeEmit调用:', {\n // eventName,\n // hasInstance: !!instance,\n // isUnmounted: instance?.isUnmounted,\n // dataLength: Array.isArray(data) ? data.length : 'not array'\n // })\n\n // 检查组件实例是否还存在\n if (!instance || instance.isUnmounted) {\n console.warn('组件已销毁,跳过事件发送', {\n hasInstance: !!instance,\n isUnmounted: instance?.isUnmounted\n })\n return\n }\n\n try {\n // console.log('正在发送事件:', eventName)\n emit(eventName as any, data)\n // console.log('事件发送成功:', eventName)\n } catch (error) {\n console.warn(`发送事件 ${eventName} 时出错:`, error)\n }\n }\n\n // 防抖的更新函数\n const debouncedUpdate = (data: ColumnProps[]) => {\n // console.log('debouncedUpdate调用:', {\n // hasData: !!data,\n // dataLength: Array.isArray(data) ? data.length : 'not array',\n // hasTimer: !!updateTimer\n // })\n\n if (updateTimer) {\n // console.log('清除之前的定时器')\n clearTimeout(updateTimer)\n }\n\n updateTimer = window.setTimeout(() => {\n // console.log('防抖定时器执行:', {\n // hasInstance: !!instance,\n // isUnmounted: instance?.isUnmounted\n // })\n\n if (!instance || instance.isUnmounted) {\n // console.warn('防抖更新时组件已销毁')\n return\n }\n\n try {\n // 深拷贝数据避免响应式问题\n const clonedData = JSON.parse(JSON.stringify(data))\n // console.log('开始发送防抖更新事件')\n // safeEmit('update:colSetting', clonedData) // 移除这个事件,避免双重更新\n safeEmit('updateColumns', clonedData)\n } catch (error) {\n console.warn('更新数据时出错:', error)\n }\n }, 100) // 100ms防抖\n }\n\n // 监听 props 变化,更新本地状态\n watch(\n () => props.colSetting,\n (newVal) => {\n if (!newVal || !Array.isArray(newVal)) return\n\n // 设置标志,表示正在从父组件更新\n isUpdatingFromParent.value = true\n // 不要过滤 isShow 为 false 的列,否则用户无法再将其设置为显示\n try {\n localColSetting.value = JSON.parse(JSON.stringify(newVal))\n } catch (error) {\n console.warn('更新本地列设置时出错:', error)\n localColSetting.value = [...newVal]\n }\n\n // 延迟重置标志,确保本次更新完成\n nextTick(() => {\n setTimeout(() => {\n isUpdatingFromParent.value = false\n }, 50)\n })\n },\n { immediate: true, deep: true }\n )\n\n // 初始化拖拽排序\n const initSortable = () => {\n if (!instance || instance.isUnmounted) {\n return\n }\n\n nextTick(() => {\n if (!instance || instance.isUnmounted || !tableRef.value) {\n return\n }\n\n try {\n const tbody = tableRef.value.$el?.querySelector('tbody')\n if (!tbody) {\n console.warn('未找到tbody元素')\n return\n }\n\n // 销毁之前的实例\n if (sortableInstance) {\n try {\n sortableInstance.destroy()\n } catch (error) {\n console.warn('销毁sortable实例时出错:', error)\n }\n sortableInstance = null\n }\n\n sortableInstance = Sortable.create(tbody, {\n handle: '.drag-handle',\n animation: 300,\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n forceFallback: true,\n fallbackTolerance: 3,\n // 禁用原生HTML5拖拽\n dragoverBubble: false,\n removeCloneOnHide: true,\n onStart: (evt) => {\n if (!evt.item || !evt.from || !instance || instance.isUnmounted) {\n return false\n }\n },\n onEnd: (evt) => {\n // 检查组件状态\n if (!instance || instance.isUnmounted) {\n return\n }\n\n // 如果正在从父组件更新,跳过事件发送\n if (isUpdatingFromParent.value) {\n return\n }\n\n const { oldIndex, newIndex } = evt\n\n if (oldIndex === undefined || newIndex === undefined || oldIndex === newIndex) {\n return\n }\n\n if (oldIndex < 0 || newIndex < 0 || oldIndex >= localColSetting.value.length || newIndex >= localColSetting.value.length) {\n return\n }\n\n try {\n const newData = [...localColSetting.value]\n const movedItem = newData.splice(oldIndex, 1)[0]\n\n if (movedItem) {\n newData.splice(newIndex, 0, movedItem)\n localColSetting.value = newData\n\n // 使用防抖更新\n debouncedUpdate(newData)\n }\n } catch (error) {\n console.warn('拖拽排序时出错:', error)\n }\n }\n })\n } catch (error) {\n console.warn('初始化sortable时出错:', error)\n }\n })\n }\n\n const openColSetting = () => {\n if (!instance || instance.isUnmounted) {\n return\n }\n\n drawerVisible.value = true\n\n // 延迟初始化拖拽\n setTimeout(() => {\n if (!instance || instance.isUnmounted) {\n return\n }\n initSortable()\n }, 200)\n }\n\n const closeColSetting = () => {\n if (!instance || instance.isUnmounted) {\n return\n }\n\n drawerVisible.value = false\n }\n\n const handleSwitchChange = () => {\n // console.log('handleSwitchChange调用:', {\n // hasInstance: !!instance,\n // isUnmounted: instance?.isUnmounted,\n // localColSettingLength: localColSetting.value.length\n // })\n\n if (!instance || instance.isUnmounted) {\n // console.warn('开关切换时组件已销毁')\n return\n }\n\n // 如果正在从父组件更新,跳过事件发送\n if (isUpdatingFromParent.value) {\n return\n }\n\n try {\n // console.log('开关切换,准备防抖更新')\n // 使用防抖更新\n debouncedUpdate(localColSetting.value)\n } catch (error) {\n console.warn('开关切换时出错:', error)\n }\n }\n\n // 监听抽屉关闭,清理拖拽实例\n watch(drawerVisible, (newVal) => {\n if (!newVal && sortableInstance) {\n try {\n sortableInstance.destroy()\n sortableInstance = null\n } catch (error) {\n console.warn('关闭抽屉时销毁sortable实例出错:', error)\n }\n }\n })\n\n // 组件销毁时清理\n onUnmounted(() => {\n if (updateTimer) {\n clearTimeout(updateTimer)\n updateTimer = null\n }\n\n if (sortableInstance) {\n try {\n sortableInstance.destroy()\n sortableInstance = null\n } catch (error) {\n console.warn('组件销毁时清理sortable实例出错:', error)\n }\n }\n })\n\n defineExpose({\n openColSetting,\n closeColSetting\n })\n</script>\n"],"names":["props","__props","emit","__emit","drawerVisible","ref","tableRef","sortableInstance","instance","getCurrentInstance","localColSetting","isUpdatingFromParent","updateTimer","safeEmit","__name","eventName","data","isUnmounted","error","console","warn","hasInstance","debouncedUpdate","clearTimeout","window","setTimeout","clonedData","JSON","parse","stringify","watch","colSetting","newVal","Array","isArray","value","nextTick","immediate","deep","initSortable","tbody","$el","querySelector","destroy","Sortable","create","handle","animation","ghostClass","chosenClass","dragClass","forceFallback","fallbackTolerance","dragoverBubble","removeCloneOnHide","onStart","evt","item","from","onEnd","oldIndex","newIndex","length","newData","movedItem","splice","openColSetting","closeColSetting","handleSwitchChange","onUnmounted","__expose"],"mappings":"6yBAgDE,MAAMA,EAAQC,EAGRC,EAAOC,EAEPC,EAAgBC,GAAa,GAC7BC,EAAWD,IACjB,IAAIE,EAAoC,KAGxC,MAAMC,EAAWC,IAGXC,EAAkBL,EAAmB,IAGrCM,EAAuBN,GAAI,GAGjC,IAAIO,EAA6B,KAG3B,MAAAC,EAAYC,GAAA,CAAAC,EAAmBC,KAS/B,GAACR,IAAYA,EAASS,YAQtB,IAEFf,EAAKa,EAAkBC,SAEhBE,GACPC,QAAQC,KAAK,QAAQL,SAAkBG,EAAK,MAZ5CC,QAAQC,KAAK,eAAgB,CAC3BC,cAAeb,EACfS,YAAaT,GAAUS,aAUmB,GAtB/B,YA2BXK,KAAmBN,IAOnBJ,GAEFW,aAAaX,GAGDA,EAAAY,OAAOC,YAAW,KAM1B,GAACjB,IAAYA,EAASS,YAKtB,IAEF,MAAMS,EAAaC,KAAKC,MAAMD,KAAKE,UAAUb,IAG7CH,EAAS,gBAAiBa,SACnBR,GACCC,QAAAC,KAAK,WAAYF,EAAK,IAE/B,IAAG,GAhCgB,mBAoCxBY,GACE,IAAM9B,EAAM+B,aACXC,IACC,GAAKA,GAAWC,MAAMC,QAAQF,GAA9B,CAGArB,EAAqBwB,OAAQ,EAEzB,IACFzB,EAAgByB,MAAQR,KAAKC,MAAMD,KAAKE,UAAUG,UAC3Cd,GACCC,QAAAC,KAAK,cAAeF,GACZR,EAAAyB,MAAQ,IAAIH,EAAM,CAIpCI,GAAS,KACPX,YAAW,KACTd,EAAqBwB,OAAQ,CAAA,GAC5B,GAAE,GAhBgC,CAiBtC,GAEH,CAAEE,WAAW,EAAMC,MAAM,IAI3B,MAAMC,EAAqBzB,GAAA,KACpBN,IAAYA,EAASS,aAI1BmB,GAAS,KACP,GAAK5B,IAAYA,EAASS,aAAgBX,EAAS6B,MAI/C,IACF,MAAMK,EAAQlC,EAAS6B,MAAMM,KAAKC,cAAc,SAChD,IAAKF,EAEH,YADArB,QAAQC,KAAK,cAKf,GAAIb,EAAkB,CAChB,IACFA,EAAiBoC,gBACVzB,GACCC,QAAAC,KAAK,mBAAoBF,EAAK,CAErBX,EAAA,IAAA,CAGFA,EAAAqC,EAASC,OAAOL,EAAO,CACxCM,OAAQ,eACRC,UAAW,IACXC,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACXC,eAAe,EACfC,kBAAmB;;AAEnBC,gBAAgB,EAChBC,mBAAmB,EACnBC,WAAUC,IACJ,IAACA,EAAIC,OAASD,EAAIE,OAASlD,GAAYA,EAASS,YAC3C,OAAA,CAAA,GAFF,WAKT0C,SAAQH,IAEF,IAAChD,GAAYA,EAASS,YACxB,OAIF,GAAIN,EAAqBwB,MACvB,OAGI,MAAAyB,SAAEA,EAAUC,SAAAA,GAAaL,EAE/B,QAAiB,IAAbI,QAAuC,IAAbC,GAA0BD,IAAaC,KAIjED,EAAW,GAAKC,EAAW,GAAKD,GAAYlD,EAAgByB,MAAM2B,QAAUD,GAAYnD,EAAgByB,MAAM2B,QAI9G,IACF,MAAMC,EAAU,IAAIrD,EAAgByB,OAC9B6B,EAAYD,EAAQE,OAAOL,EAAU,GAAG,GAE1CI,IACMD,EAAAE,OAAOJ,EAAU,EAAGG,GAC5BtD,EAAgByB,MAAQ4B,EAGxBzC,EAAgByC,UAEX7C,GACCC,QAAAC,KAAK,WAAYF,EAAK,IAjC3B,iBAqCFA,GACCC,QAAAC,KAAK,kBAAmBF,EAAK,IAExC,GAnFkB,gBAsFfgD,EAAuBpD,GAAA,KACtBN,IAAYA,EAASS,cAI1Bb,EAAc+B,OAAQ,EAGtBV,YAAW,KACJjB,IAAYA,EAASS,aAGbsB,GAAA,GACZ,KAAG,GAbe,kBAgBjB4B,EAAwBrD,GAAA,KACvBN,IAAYA,EAASS,cAI1Bb,EAAc+B,OAAQ,EAAA,GALA,mBAQlBiC,EAA2BtD,GAAA,KAO3B,GAACN,IAAYA,EAASS,cAMtBN,EAAqBwB,MAIrB,IAGFb,EAAgBZ,EAAgByB,aACzBjB,GACCC,QAAAC,KAAK,WAAYF,EAAK,IAtBP,6BA2BrBY,EAAA1B,GAAgB4B,IAChB,IAACA,GAAUzB,EACT,IACFA,EAAiBoC,UACEpC,EAAA,WACZW,GACCC,QAAAC,KAAK,uBAAwBF,EAAK,CAC5C,IAKJmD,GAAY,KAMV,GALIzD,IACFW,aAAaX,GACCA,EAAA,MAGZL,EACE,IACFA,EAAiBoC,UACEpC,EAAA,WACZW,GACCC,QAAAC,KAAK,uBAAwBF,EAAK,CAC5C,IAISoD,EAAA,CACXJ,iBACAC;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ import e from"./GridItem.vue2.mjs";export{e as default};
2
+ //# sourceMappingURL=GridItem.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridItem.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import{defineComponent as e,useAttrs as t,ref as u,inject as a,watch as d,computed as r,withDirectives as l,openBlock as i,createElementBlock as n,normalizeStyle as s,renderSlot as f,vShow as o}from"vue";var p=e({__name:"GridItem",props:{offset:{type:Number,required:!1,default:0},span:{type:Number,required:!1,default:1},suffix:{type:Boolean,required:!1,default:!1},xs:{type:Object,required:!1,default:void 0},sm:{type:Object,required:!1,default:void 0},md:{type:Object,required:!1,default:void 0},lg:{type:Object,required:!1,default:void 0},xl:{type:Object,required:!1,default:void 0}},setup(e){const p=e,v=t(),m=u(!0),c=a("breakPoint",u("xl")),x=a("shouldHiddenIndex",u(-1));d((()=>[x.value,c.value]),(e=>{v.index&&(m.value=!(-1!==e[0]&&parseInt(v.index)>=Number(e[0])))}),{immediate:!0});const $=a("gap",0),b=a("cols",u(4)),y=r((()=>{let e=p[c.value]?.span??p.span,t=p[c.value]?.offset??p.offset;return p.suffix?{gridColumnStart:b.value-e-t+1,gridColumnEnd:`span ${e+t}`,marginLeft:0!==t?`calc(((100% + ${$}px) / ${e+t}) * ${t})`:"unset"}:{gridColumn:`span ${e+t>b.value?b.value:e+t}/span ${e+t>b.value?b.value:e+t}`,marginLeft:0!==t?`calc(((100% + ${$}px) / ${e+t}) * ${t})`:"unset"}}));return(e,t)=>l((i(),n("div",{style:s(y.value)},[f(e.$slots,"default")],4
2
+ /* STYLE */)),[[o,m.value]])}});export{p as default};
3
+ //# sourceMappingURL=GridItem.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridItem.vue2.mjs","sources":["../../../../../../../../../packages/components/znTableV2/src/components/Grid/components/GridItem.vue"],"sourcesContent":["<template>\n <div v-show=\"isShow\" :style=\"style\">\n <slot></slot>\n </div>\n</template>\n<script setup lang=\"ts\" name=\"GridItem\">\nimport { computed, inject, Ref, ref, useAttrs, watch } from 'vue'\n\nimport { BreakPoint, Responsive } from '../interface/index'\n\ntype Props = {\n offset?: number;\n span?: number;\n suffix?: boolean;\n xs?: Responsive;\n sm?: Responsive;\n md?: Responsive;\n lg?: Responsive;\n xl?: Responsive;\n};\n\nconst props = defineProps({\n offset: { type: Number, required: false, default: 0 },\n span: { type: Number, required: false, default: 1 },\n suffix: { type: Boolean, required: false, default: false },\n xs: { type: Object, required: false, default: undefined },\n sm: { type: Object, required: false, default: undefined },\n md: { type: Object, required: false, default: undefined },\n lg: { type: Object, required: false, default: undefined },\n xl: { type: Object, required: false, default: undefined }\n})\n\nconst attrs = useAttrs() as { index: string }\nconst isShow = ref(true)\n\n// 注入断点\nconst breakPoint = inject<Ref<BreakPoint>>('breakPoint', ref('xl'))\nconst shouldHiddenIndex = inject<Ref<number>>('shouldHiddenIndex', ref(-1))\nwatch(\n () => [shouldHiddenIndex.value, breakPoint.value],\n n => {\n if (attrs.index) {\n isShow.value = !(n[0] !== -1 && parseInt(attrs.index) >= Number(n[0]))\n }\n },\n { immediate: true }\n)\n\nconst gap = inject('gap', 0)\nconst cols = inject('cols', ref(4))\nconst style = computed(() => {\n let span = props[breakPoint.value]?.span ?? props.span\n let offset = props[breakPoint.value]?.offset ?? props.offset\n if (props.suffix) {\n return {\n gridColumnStart: cols.value - span - offset + 1,\n gridColumnEnd: `span ${span + offset}`,\n marginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : 'unset'\n }\n } else {\n return {\n gridColumn: `span ${span + offset > cols.value ? cols.value : span + offset}/span ${\n span + offset > cols.value ? cols.value : span + offset\n }`,\n marginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : 'unset'\n }\n }\n})\n</script>\n"],"names":["props","__props","attrs","useAttrs","isShow","ref","breakPoint","inject","shouldHiddenIndex","watch","value","n","index","parseInt","Number","immediate","gap","cols","style","computed","span","offset","suffix","gridColumnStart","gridColumnEnd","marginLeft","gridColumn"],"mappings":"qlBAqBA,MAAMA,EAAQC,EAWRC,EAAQC,IACRC,EAASC,GAAI,GAGbC,EAAaC,EAAwB,aAAcF,EAAI,OACvDG,EAAoBD,EAAoB,oBAAqBF,OACnEI,GACE,IAAM,CAACD,EAAkBE,MAAOJ,EAAWI,SACtCC,IACCT,EAAMU,QACRR,EAAOM,SAAmB,IAATC,EAAE,IAAaE,SAASX,EAAMU,QAAUE,OAAOH,EAAE,KAAE,GAGxE,CAAEI,WAAW,IAGT,MAAAC,EAAMT,EAAO,MAAO,GACpBU,EAAOV,EAAO,OAAQF,EAAI,IAC1Ba,EAAQC,GAAS,KACrB,IAAIC,EAAOpB,EAAMM,EAAWI,QAAQU,MAAQpB,EAAMoB,KAC9CC,EAASrB,EAAMM,EAAWI,QAAQW,QAAUrB,EAAMqB,OACtD,OAAIrB,EAAMsB,OACD,CACLC,gBAAiBN,EAAKP,MAAQU,EAAOC,EAAS,EAC9CG,cAAe,QAAQJ,EAAOC,IAC9BI,WAAuB,IAAXJ,EAAe,iBAAiBL,UAAYI,EAAOC,QAAaA,KAAY,SAGnF,CACLK,WAAY,QAAQN,EAAOC,EAASJ,EAAKP,MAAQO,EAAKP,MAAQU,EAAOC,UACnED,EAAOC,EAASJ,EAAKP,MAAQO,EAAKP,MAAQU,EAAOC,IAEnDI,WAAuB,IAAXJ,EAAe,iBAAiBL,UAAYI,EAAOC,QAAaA,KAAY,QAC1F;"}
@@ -0,0 +1,2 @@
1
+ import e from"./index.vue2.mjs";export{e as default};
2
+ //# sourceMappingURL=index.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import{defineComponent as e,onBeforeMount as a,onMounted as r,onActivated as l,onUnmounted as s,onDeactivated as t,ref as o,provide as p,computed as i,useSlots as n,watch as u,createElementBlock as d,openBlock as c,normalizeStyle as f,renderSlot as v}from"vue";var g=Object.defineProperty,b=(e,a)=>g(e,"name",{value:a,configurable:!0}),y=e({__name:"index",props:{cols:{type:[Number,Object],required:!1,default:b((()=>({xs:1,sm:2,md:2,lg:3,xl:4})),"default")},collapsed:{type:Boolean,required:!1,default:!1},collapsedRows:{type:Number,required:!1,default:1},gap:{type:[Array,Number],required:!1,default:0}},setup(e,{expose:g}){const y=e;a((()=>y.collapsed&&k())),r((()=>{m({target:{innerWidth:globalThis.innerWidth}}),globalThis.addEventListener("resize",m)})),l((()=>{m({target:{innerWidth:globalThis.innerWidth}}),globalThis.addEventListener("resize",m)})),s((()=>{globalThis.removeEventListener("resize",m)})),t((()=>{globalThis.removeEventListener("resize",m)}));const m=b((e=>{let a=e.target.innerWidth;switch(!!a){case a<768:h.value="xs";break;case a>=768&&a<992:h.value="sm";break;case a>=992&&a<1200:h.value="md";break;case a>=1200&&a<1920:h.value="lg";break;case a>=1920:h.value="xl"}}),"resize");p("gap",Array.isArray(y.gap)?y.gap[0]:y.gap);let h=o("xl");p("breakPoint",h);const x=o(-1);p("shouldHiddenIndex",x);const A=i((()=>"object"==typeof y.cols?y.cols[h.value]??y.cols:y.cols));p("cols",A);const T=n().default(),k=b((()=>{let e=[],a=null;T.forEach((r=>{"object"==typeof r.type&&"GridItem"===r.type.name&&void 0!==r.props?.suffix&&(a=r),"symbol"==typeof r.type&&Array.isArray(r.children)&&e.push(...r.children)}));let r=0;a&&(r=(a.props[h.value]?.span??a.props?.span??1)+(a.props[h.value]?.offset??a.props?.offset??0));try{let a=!1;e.reduce(((e=0,l,s)=>{if(e+=(l.props[h.value]?.span??l.props?.span??1)+(l.props[h.value]?.offset??l.props?.offset??0),Number(e)>y.collapsedRows*A.value-r)throw x.value=s,a=!0,"find it";return e}),0),a||(x.value=-1)}catch(e){}}),"findIndex");u((()=>h.value),(()=>{y.collapsed&&k()})),u((()=>y.collapsed),(e=>{if(e)return k();x.value=-1}));const z=i((()=>"number"==typeof y.gap?`${y.gap}px`:Array.isArray(y.gap)?`${y.gap[1]}px ${y.gap[0]}px`:"unset")),E=i((()=>({display:"grid",gridGap:z.value,gridTemplateColumns:`repeat(${A.value}, minmax(0, 1fr))`})));return g({breakPoint:h}),(e,a)=>(c(),d("div",{style:f(E.value)},[v(e.$slots,"default")],4
2
+ /* STYLE */))}});export{y as default};
3
+ //# sourceMappingURL=index.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../../../../../../packages/components/znTableV2/src/components/Grid/index.vue"],"sourcesContent":["<template>\n <div :style=\"style\">\n <slot></slot>\n </div>\n</template>\n\n<script setup lang=\"ts\" name=\"Grid\">\n import { computed, onActivated, onBeforeMount, onDeactivated, onMounted, onUnmounted, provide, ref, useSlots, VNode, VNodeArrayChildren, watch } from 'vue'\n\n import type { BreakPoint } from './interface/index'\n\n type Props = {\n cols?: number | Record<BreakPoint, number>\n collapsed?: boolean\n collapsedRows?: number\n gap?: [number, number] | number\n }\n\n const props = defineProps({\n cols: { type: [Number, Object], required: false, default: () => ({ xs: 1, sm: 2, md: 2, lg: 3, xl: 4 }) },\n collapsed: { type: Boolean, required: false, default: false },\n collapsedRows: { type: Number, required: false, default: 1 },\n gap: { type: [Array, Number], required: false, default: 0 }\n})\n\n onBeforeMount(() => props.collapsed && findIndex())\n onMounted(() => {\n resize({ target: { innerWidth: globalThis.innerWidth } } as unknown as UIEvent)\n globalThis.addEventListener('resize', resize)\n })\n onActivated(() => {\n resize({ target: { innerWidth: globalThis.innerWidth } } as unknown as UIEvent)\n globalThis.addEventListener('resize', resize)\n })\n onUnmounted(() => {\n globalThis.removeEventListener('resize', resize)\n })\n onDeactivated(() => {\n globalThis.removeEventListener('resize', resize)\n })\n\n // 监听屏幕变化\n const resize = (e: UIEvent) => {\n let width = (e.target as Window).innerWidth\n switch (!!width) {\n case width < 768:\n breakPoint.value = 'xs'\n break\n case width >= 768 && width < 992:\n breakPoint.value = 'sm'\n break\n case width >= 992 && width < 1200:\n breakPoint.value = 'md'\n break\n case width >= 1200 && width < 1920:\n breakPoint.value = 'lg'\n break\n case width >= 1920:\n breakPoint.value = 'xl'\n break\n }\n }\n\n // 注入 gap 间距\n provide('gap', Array.isArray(props.gap) ? props.gap[0] : props.gap)\n\n // 注入响应式断点\n let breakPoint = ref<BreakPoint>('xl')\n provide('breakPoint', breakPoint)\n\n // 注入要开始折叠的 index\n const hiddenIndex = ref(-1)\n provide('shouldHiddenIndex', hiddenIndex)\n\n // 注入 cols\n const gridCols = computed(() => {\n if (typeof props.cols === 'object') return props.cols[breakPoint.value] ?? props.cols\n return props.cols\n })\n provide('cols', gridCols)\n\n // 寻找需要开始折叠的字段 index\n const slots = useSlots().default!()\n\n const findIndex = () => {\n let fields: VNodeArrayChildren = []\n let suffix: VNode | null = null\n slots.forEach((slot: any) => {\n // suffix\n if (typeof slot.type === 'object' && slot.type.name === 'GridItem' && slot.props?.suffix !== undefined) suffix = slot\n // slot children\n if (typeof slot.type === 'symbol' && Array.isArray(slot.children)) fields.push(...slot.children)\n })\n\n // 计算 suffix 所占用的列\n let suffixCols = 0\n if (suffix) {\n suffixCols =\n ((suffix as VNode).props![breakPoint.value]?.span ?? (suffix as VNode).props?.span ?? 1) +\n ((suffix as VNode).props![breakPoint.value]?.offset ?? (suffix as VNode).props?.offset ?? 0)\n }\n try {\n let find = false\n fields.reduce((prev = 0, current, index) => {\n prev +=\n ((current as VNode)!.props![breakPoint.value]?.span ?? (current as VNode)!.props?.span ?? 1) +\n ((current as VNode)!.props![breakPoint.value]?.offset ?? (current as VNode)!.props?.offset ?? 0)\n if (Number(prev) > props.collapsedRows * gridCols.value - suffixCols) {\n hiddenIndex.value = index\n find = true\n throw 'find it'\n }\n return prev\n }, 0)\n if (!find) hiddenIndex.value = -1\n } catch (e) {\n // console.warn(e);\n }\n }\n\n // 断点变化时执行 findIndex\n watch(\n () => breakPoint.value,\n () => {\n if (props.collapsed) findIndex()\n }\n )\n\n // 监听 collapsed\n watch(\n () => props.collapsed,\n (value) => {\n if (value) return findIndex()\n hiddenIndex.value = -1\n }\n )\n\n // 设置间距\n const gridGap = computed(() => {\n if (typeof props.gap === 'number') return `${props.gap}px`\n if (Array.isArray(props.gap)) return `${props.gap[1]}px ${props.gap[0]}px`\n return 'unset'\n })\n\n // 设置 style\n const style = computed(() => {\n return {\n display: 'grid',\n gridGap: gridGap.value,\n gridTemplateColumns: `repeat(${gridCols.value}, minmax(0, 1fr))`\n }\n })\n\n defineExpose({ breakPoint })\n</script>\n"],"names":["props","__props","onBeforeMount","collapsed","findIndex","onMounted","resize","target","innerWidth","globalThis","addEventListener","onActivated","onUnmounted","removeEventListener","onDeactivated","e","width","breakPoint","value","provide","Array","isArray","gap","ref","hiddenIndex","gridCols","computed","cols","slots","useSlots","default","__name","fields","suffix","forEach","slot","type","name","children","push","suffixCols","span","offset","find","reduce","prev","current","index","Number","collapsedRows","watch","gridGap","style","display","gridTemplateColumns","__expose"],"mappings":"knBAkBE,MAAMA,EAAQC,EAOdC,GAAc,IAAMF,EAAMG,WAAaC,MACvCC,GAAU,KACRC,EAAO,CAAEC,OAAQ,CAAEC,WAAYC,WAAWD,cAC/BC,WAAAC,iBAAiB,SAAUJ,EAAM,IAE9CK,GAAY,KACVL,EAAO,CAAEC,OAAQ,CAAEC,WAAYC,WAAWD,cAC/BC,WAAAC,iBAAiB,SAAUJ,EAAM,IAE9CM,GAAY,KACCH,WAAAI,oBAAoB,SAAUP,EAAM,IAEjDQ,GAAc,KACDL,WAAAI,oBAAoB,SAAUP,EAAM,IAI3C,MAAAA,KAAUS,IACV,IAAAC,EAASD,EAAER,OAAkBC,WACzB,SAAEQ,GACR,KAAKA,EAAQ,IACXC,EAAWC,MAAQ,KACnB,MACF,KAAKF,GAAS,KAAOA,EAAQ,IAC3BC,EAAWC,MAAQ,KACnB,MACF,KAAKF,GAAS,KAAOA,EAAQ,KAC3BC,EAAWC,MAAQ,KACnB,MACF,KAAKF,GAAS,MAAQA,EAAQ,KAC5BC,EAAWC,MAAQ,KACnB,MACF,KAAKF,GAAS,KACZC,EAAWC,MAAQ,KACnB,GAjBS,UAsBPC,EAAA,MAAOC,MAAMC,QAAQrB,EAAMsB,KAAOtB,EAAMsB,IAAI,GAAKtB,EAAMsB,KAG3D,IAAAL,EAAaM,EAAgB,MACjCJ,EAAQ,aAAcF,GAGhB,MAAAO,EAAcD,GAAM,GAC1BJ,EAAQ,oBAAqBK,GAGvB,MAAAC,EAAWC,GAAS,IACE,iBAAf1B,EAAM2B,KAA0B3B,EAAM2B,KAAKV,EAAWC,QAAUlB,EAAM2B,KAC1E3B,EAAM2B,OAEfR,EAAQ,OAAQM,GAGV,MAAAG,EAAQC,IAAWC,UAEnB1B,EAAkB2B,GAAA,KACtB,IAAIC,EAA6B,GAC7BC,EAAuB,KACrBL,EAAAM,SAASC,IAEY,iBAAdA,EAAKC,MAAwC,aAAnBD,EAAKC,KAAKC,WAA8C,IAAvBF,EAAKnC,OAAOiC,SAA+BA,EAAAE,GAExF,iBAAdA,EAAKC,MAAqBhB,MAAMC,QAAQc,EAAKG,WAAWN,EAAOO,QAAQJ,EAAKG,SAAQ,IAIjG,IAAIE,EAAa,EACbP,IACFO,GACIP,EAAiBjC,MAAOiB,EAAWC,QAAQuB,MAASR,EAAiBjC,OAAOyC,MAAQ,IACpFR,EAAiBjC,MAAOiB,EAAWC,QAAQwB,QAAWT,EAAiBjC,OAAO0C,QAAU,IAE1F,IACF,IAAIC,GAAO,EACXX,EAAOY,QAAO,CAACC,EAAO,EAAGC,EAASC,KAIhC,GAHAF,IACIC,EAAmB9C,MAAOiB,EAAWC,QAAQuB,MAASK,EAAmB9C,OAAOyC,MAAQ,IACxFK,EAAmB9C,MAAOiB,EAAWC,QAAQwB,QAAWI,EAAmB9C,OAAO0C,QAAU,GAC5FM,OAAOH,GAAQ7C,EAAMiD,cAAgBxB,EAASP,MAAQsB,EAGlD,MAFNhB,EAAYN,MAAQ6B,EACbJ,GAAA,EACD,UAED,OAAAE,CAAA,GACN,GACEF,IAAMnB,EAAYN,OAAQ,SACxBH,GAAG,IA/BI,aAqClBmC,GACE,IAAMjC,EAAWC,QACjB,KACMlB,EAAMG,WAAqBC,GAAA,IAKnC8C,GACE,IAAMlD,EAAMG,YACXe,IACK,GAAAA,SAAcd,IAClBoB,EAAYN,OAAQ,CAAA,IAKlB,MAAAiC,EAAUzB,GAAS,IACE,iBAAd1B,EAAMsB,IAAyB,GAAGtB,EAAMsB,QAC/CF,MAAMC,QAAQrB,EAAMsB,KAAa,GAAGtB,EAAMsB,IAAI,QAAQtB,EAAMsB,IAAI,OAC7D,UAIH8B,EAAQ1B,GAAS,KACd,CACL2B,QAAS,OACTF,QAASA,EAAQjC,MACjBoC,oBAAqB,UAAU7B,EAASP,oCAI/BqC,EAAA,CAAEtC;"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import e from"./index.vue2.mjs";export{e as default};
2
+ //# sourceMappingURL=index.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import{defineComponent as e,computed as l,resolveComponent as i,createElementBlock as n,openBlock as t,createCommentVNode as o,createBlock as a,Fragment as r,renderList as u,withCtx as d,createTextVNode as s,toDisplayString as m,createVNode as c,unref as p,withDirectives as f,resolveDynamicComponent as v,vShow as y}from"vue";import{ArrowDown as b}from"@element-plus/icons-vue";import{useLocalStorage as k}from"@vueuse/core";var h=Object.defineProperty,C=(e,l)=>h(e,"name",{value:l,configurable:!0});const g={class:"operation-btns",style:{display:"flex","align-items":"center","justify-content":"center"}};var w=e({__name:"index",props:{btns:{type:Array,required:!1},maxCount:{type:Number,required:!1,default:3},moreText:{type:String,required:!1,default:"更多"},minWidth:{type:String,required:!1,default:"120px"},row:{required:!1},index:{type:Number,required:!1}},emits:["btnClick"],setup(e,{emit:h}){const w=e,x=h,_=k("znyg",{dictMap:{},privileges:[]}),z=l((()=>w.row||{})),q=l((()=>w.index)),B=l((()=>(w.btns||[]).filter((e=>T(e))))),S=l((()=>B.value.slice(0,w.maxCount))),j=l((()=>B.value.slice(w.maxCount))),N=l((()=>j.value.length>0)),T=C((e=>{let l=!0;if(void 0!==e.show&&null!==e.show&&("boolean"==typeof e.show?l=e.show:"function"==typeof e.show&&(l=e.show(z.value))),!l)return!1;if(e.privilege){if(!(_.value?.privileges||[]).some((l=>l.code===e.privilege)))return!1}return!0}),"shouldShowBtn"),W=C((e=>"function"==typeof e.label?e.label(z.value):e.label),"getBtnLabel"),A=C((e=>{e.onClick&&"function"==typeof e.onClick&&e.onClick(z.value,e,q.value),x("btnClick",e.name,z.value,e,q.value)}),"handleBtnClick"),D=C((e=>{e.onClick&&"function"==typeof e.onClick&&e.onClick(z.value,e,q.value),x("btnClick",e.name,z.value,e,q.value)}),"handleDropdownCommand");return(e,l)=>{const k=i("el-button"),h=i("el-icon"),x=i("el-dropdown-item"),_=i("el-dropdown-menu"),z=i("el-dropdown");return t(),n("div",g,[o(" 直接显示的按钮 "),(t(!0),n(r,null,u(S.value,((e,l)=>(t(),n(r,{key:e.name},[T(e)?(t(),a(k,{key:0,type:e.type||"primary",size:e.size||"small",disabled:e.disabled,icon:e.icon,link:"",onClick:C((l=>A(e)),"onClick")},{default:d((()=>[s(m(W(e)),1
2
+ /* TEXT */)])),_:2
3
+ /* DYNAMIC */},1032,["type","size","disabled","icon","onClick"])):o("v-if",!0)],64
4
+ /* STABLE_FRAGMENT */)))),128
5
+ /* KEYED_FRAGMENT */)),o(" 更多按钮下拉菜单 "),N.value?(t(),a(z,{key:0,style:{"margin-left":"8px"},trigger:"hover","min-width":w.minWidth||"120px",onCommand:D},{dropdown:d((()=>[c(_,null,{default:d((()=>[(t(!0),n(r,null,u(j.value,(e=>f((t(),a(x,{key:e.name,command:e,disabled:e.disabled},{default:d((()=>[e.icon?(t(),a(h,{key:0,style:{"margin-right":"5px"}},{default:d((()=>[(t(),a(v(e.icon)))])),_:2
6
+ /* DYNAMIC */},1024
7
+ /* DYNAMIC_SLOTS */)):o("v-if",!0),s(" "+m(W(e)),1
8
+ /* TEXT */)])),_:2
9
+ /* DYNAMIC */},1032,["command","disabled"])),[[y,T(e)]]))),128
10
+ /* KEYED_FRAGMENT */))])),_:1
11
+ /* STABLE */})])),default:d((()=>[c(k,{type:"primary",size:w.size||"small",link:""},{default:d((()=>[s(m(w.moreText||"更多")+" ",1
12
+ /* TEXT */),c(h,{class:"el-icon--right"},{default:d((()=>[c(p(b))])),_:1
13
+ /* STABLE */})])),_:1
14
+ /* STABLE */},8,["size"])])),_:1
15
+ /* STABLE */},8,["min-width"])):o("v-if",!0)])}}});export{w as default};
16
+ //# sourceMappingURL=index.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../../../../../../packages/components/znTableV2/src/components/OperationBtns/index.vue"],"sourcesContent":["<template>\n <div class=\"operation-btns\" style=\"display: flex; align-items: center; justify-content: center\">\n <!-- 直接显示的按钮 -->\n <template v-for=\"(btn, index) in visibleBtns\" :key=\"btn.name\">\n <el-button\n v-if=\"shouldShowBtn(btn)\"\n :type=\"btn.type || 'primary'\"\n :size=\"btn.size || 'small'\"\n :disabled=\"btn.disabled\"\n :icon=\"btn.icon\"\n link\n @click=\"handleBtnClick(btn)\">\n {{ getBtnLabel(btn) }}\n </el-button>\n </template>\n\n <!-- 更多按钮下拉菜单 -->\n <el-dropdown v-if=\"hasMoreBtns\" style=\"margin-left: 8px\" trigger=\"hover\" :min-width=\"props.minWidth || '120px'\" @command=\"handleDropdownCommand\">\n <el-button type=\"primary\" :size=\"props.size || 'small'\" link>\n {{ props.moreText || '更多' }}\n <el-icon class=\"el-icon--right\">\n <ArrowDown />\n </el-icon>\n </el-button>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item v-for=\"btn in moreBtns\" :key=\"btn.name\" :command=\"btn\" :disabled=\"btn.disabled\" v-show=\"shouldShowBtn(btn)\">\n <el-icon v-if=\"btn.icon\" style=\"margin-right: 5px\">\n <component :is=\"btn.icon\" />\n </el-icon>\n {{ getBtnLabel(btn) }}\n </el-dropdown-item>\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n</template>\n\n<script setup lang=\"ts\" name=\"OperationBtns\">\n import { computed, inject } from 'vue'\n import { ArrowDown } from '@element-plus/icons-vue'\n import type { OperationBtnProps } from '../../interface'\n import { useLocalStorage } from '@vueuse/core'\n\n interface Props {\n /** 操作按钮配置 */\n btns?: OperationBtnProps[]\n /** 最大显示按钮数量,默认为3 */\n maxCount?: number\n /** 更多按钮文本 */\n moreText?: string\n /** 下拉菜单最小宽度 */\n minWidth?: string\n [key: string]: any\n row?: any,\n index?: number\n }\n\n const props = defineProps({\n btns: { type: Array, required: false },\n maxCount: { type: Number, required: false, default: 3 },\n moreText: { type: String, required: false, default: '更多' },\n minWidth: { type: String, required: false, default: '120px' },\n row: { required: false },\n index: { type: Number, required: false }\n})\n\n const emit = defineEmits([\"btnClick\"])\n\n // 获取权限数据\n const znygStore = useLocalStorage('znyg', { dictMap: {}, privileges: [] })\n\n // 获取当前行数据的注入,用于按钮显示逻辑判断\n const currentRow = computed(() => props.row || {})\n\n // 获取当前行索引\n const currentIndex = computed(() => props.index)\n\n // 过滤出需要显示的按钮\n const availableBtns = computed(() => {\n return (props.btns || []).filter((btn) => shouldShowBtn(btn))\n })\n\n // 直接显示的按钮\n const visibleBtns = computed(() => {\n return availableBtns.value.slice(0, props.maxCount)\n })\n\n // 更多菜单中的按钮\n const moreBtns = computed(() => {\n return availableBtns.value.slice(props.maxCount)\n })\n\n // 是否有更多按钮\n const hasMoreBtns = computed(() => {\n return moreBtns.value.length > 0\n })\n\n // 判断按钮是否应该显示\n const shouldShowBtn = (btn: OperationBtnProps): boolean => {\n // 首先检查 show 属性\n let showResult = true\n if (btn.show !== undefined && btn.show !== null) {\n if (typeof btn.show === 'boolean') {\n showResult = btn.show\n } else if (typeof btn.show === 'function') {\n showResult = btn.show(currentRow.value)\n }\n }\n\n // 如果 show 为 false,直接返回 false\n if (!showResult) return false\n\n // 检查权限\n if (btn.privilege) {\n // 从 znygStore 中获取权限列表\n const privileges = znygStore.value?.privileges || []\n\n // 检查权限列表中是否存在code为 btn.privilege 的权限\n const hasPrivilege = privileges.some((privilege: any) => {\n // 只判断 code 字段\n return privilege.code === btn.privilege\n })\n\n // 只有当权限存在时才显示按钮\n if (!hasPrivilege) return false\n }\n\n return true\n }\n\n // 获取按钮标签\n const getBtnLabel = (btn: OperationBtnProps): string => {\n if (typeof btn.label === 'function') return btn.label(currentRow.value)\n return btn.label\n }\n\n // 处理按钮点击事件\n const handleBtnClick = (btn: OperationBtnProps) => {\n // 如果配置了 onClick 事件,优先执行\n if (btn.onClick && typeof btn.onClick === 'function') {\n btn.onClick(currentRow.value, btn, currentIndex.value)\n }\n\n // 保持原有逻辑:触发 emit 事件\n emit('btnClick', btn.name, currentRow.value, btn, currentIndex.value)\n }\n\n // 处理下拉菜单点击事件\n const handleDropdownCommand = (btn: OperationBtnProps) => {\n // 如果配置了 onClick 事件,优先执行\n if (btn.onClick && typeof btn.onClick === 'function') {\n btn.onClick(currentRow.value, btn, currentIndex.value)\n }\n\n // 保持原有逻辑:触发 emit 事件\n emit('btnClick', btn.name, currentRow.value, btn, currentIndex.value)\n }\n</script>\n"],"names":["props","__props","emit","__emit","znygStore","useLocalStorage","dictMap","privileges","currentRow","computed","row","currentIndex","index","availableBtns","btns","filter","btn","shouldShowBtn","visibleBtns","value","slice","maxCount","moreBtns","hasMoreBtns","length","showResult","show","privilege","some","code","getBtnLabel","label","handleBtnClick","onClick","name","handleDropdownCommand"],"mappings":"o4BA0DE,MAAMA,EAAQC,EASRC,EAAOC,EAGPC,EAAYC,EAAgB,OAAQ,CAAEC,QAAS,GAAIC,WAAY,KAG/DC,EAAaC,GAAS,IAAMT,EAAMU,KAAO,CAAA,IAGzCC,EAAeF,GAAS,IAAMT,EAAMY,QAGpCC,EAAgBJ,GAAS,KACrBT,EAAMc,MAAQ,IAAIC,QAAQC,GAAQC,EAAcD,OAIpDE,EAAcT,GAAS,IACpBI,EAAcM,MAAMC,MAAM,EAAGpB,EAAMqB,YAItCC,EAAWb,GAAS,IACjBI,EAAcM,MAAMC,MAAMpB,EAAMqB,YAInCE,EAAcd,GAAS,IACpBa,EAASH,MAAMK,OAAS,IAI3BP,KAAiBD,IAErB,IAAIS,GAAa,EAUb,QATa,IAAbT,EAAIU,MAAmC,OAAbV,EAAIU,OACR,kBAAbV,EAAIU,KACbD,EAAaT,EAAIU,KACY,mBAAbV,EAAIU,OACPD,EAAAT,EAAIU,KAAKlB,EAAWW,UAKhCM,EAAmB,OAAA,EAGxB,GAAIT,EAAIW,UAAW,CAWb,KATevB,EAAUe,OAAOZ,YAAc,IAGlBqB,MAAMD,GAE7BA,EAAUE,OAASb,EAAIW,YAIN,OAAA,CAAA,CAGrB,OAAA,CAAA,GA7Ba,iBAiChBG,KAAed,GACM,mBAAdA,EAAIe,MAA6Bf,EAAIe,MAAMvB,EAAWW,OAC1DH,EAAIe,OAFO,eAMdC,KAAkBhB,IAElBA,EAAIiB,SAAkC,mBAAhBjB,EAAIiB,SAC5BjB,EAAIiB,QAAQzB,EAAWW,MAAOH,EAAKL,EAAaQ,OAIlDjB,EAAK,WAAYc,EAAIkB,KAAM1B,EAAWW,MAAOH,EAAKL,EAAaQ,MAAK,GAP/C,kBAWjBgB,KAAyBnB,IAEzBA,EAAIiB,SAAkC,mBAAhBjB,EAAIiB,SAC5BjB,EAAIiB,QAAQzB,EAAWW,MAAOH,EAAKL,EAAaQ,OAIlDjB,EAAK,WAAYc,EAAIkB,KAAM1B,EAAWW,MAAOH,EAAKL,EAAaQ,MAAK,GAPxC;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ import a from"./Pagination.vue2.mjs";export{a as default};
2
+ //# sourceMappingURL=Pagination.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import{defineComponent as e,ref as a,watch as n,resolveComponent as t,createElementBlock as r,openBlock as p,Fragment as g,createCommentVNode as i,createVNode as u}from"vue";var l=Object.defineProperty,o=e({__name:"Pagination",props:{pageable:{type:Object,required:!0},handleSizeChange:{type:Function,required:!0},handleCurrentChange:{type:Function,required:!0},pageSizeOptions:{type:Array,required:!1,default:((e,a)=>l(e,"name",{value:a,configurable:!0}))((()=>[10,25,50,100]),"default")}},setup(e){const l=e,o=a([10]);return n((()=>l.pageable.pageSize),(()=>{let e=[...l.pageSizeOptions];e.includes(l.pageable.pageSize)||e.push(l.pageable.pageSize);const a=e.sort(((e,a)=>e-a));o.value=a}),{immediate:!0,deep:!0}),(a,n)=>{const l=t("el-pagination");return p(),r(g,null,[i(" 分页组件 "),u(l,{background:!0,"current-page":e.pageable.pageNum,"page-size":e.pageable.pageSize,"page-sizes":o.value,total:e.pageable.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:e.handleSizeChange,onCurrentChange:e.handleCurrentChange},null,8,["current-page","page-size","page-sizes","total","onSizeChange","onCurrentChange"])],2112
2
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */)}}});export{o as default};
3
+ //# sourceMappingURL=Pagination.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.vue2.mjs","sources":["../../../../../../../packages/components/znTableV2/src/components/Pagination.vue"],"sourcesContent":["<template>\n <!-- 分页组件 -->\n <el-pagination\n :background=\"true\"\n :current-page=\"pageable.pageNum\"\n :page-size=\"pageable.pageSize\"\n :page-sizes=\"pageSizes\"\n :total=\"pageable.total\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n ></el-pagination>\n</template>\n\n<script setup lang=\"ts\" name=\"Pagination\">\n import { ref,unref,watch } from \"vue\";\n interface Pageable {\n pageNum: number\n pageSize: number\n total: number\n }\n\n interface PaginationProps {\n pageable: Pageable\n handleSizeChange: (size: number) => void\n handleCurrentChange: (currentPage: number) => void\n pageSizeOptions?: number[] // 页面大小选项配置\n }\n\n const props = defineProps({\n pageable: { type: Object, required: true },\n handleSizeChange: { type: Function, required: true },\n handleCurrentChange: { type: Function, required: true },\n pageSizeOptions: { type: Array, required: false, default: () => [10, 25, 50, 100] }\n})\n const pageSizes = ref([10])\n\n watch(\n () => props.pageable.pageSize,\n () => {\n let pageList = [...props.pageSizeOptions] // 使用配置的页面大小选项\n if (!pageList.includes(props.pageable.pageSize)) {\n pageList.push(props.pageable.pageSize)\n }\n const sizes = pageList.sort((a, b) => a - b)\n pageSizes.value = sizes\n },\n {\n immediate: true,\n deep: true\n }\n )\n</script>\n"],"names":["props","__props","pageSizes","ref","watch","pageable","pageSize","pageList","pageSizeOptions","includes","push","sizes","sort","a","b","value","immediate","deep"],"mappings":"ofA6BE,MAAMA,EAAQC,EAMRC,EAAYC,EAAI,CAAC,YAEvBC,GACE,IAAMJ,EAAMK,SAASC,WACrB,KACE,IAAIC,EAAW,IAAIP,EAAMQ,iBACpBD,EAASE,SAAST,EAAMK,SAASC,WAC3BC,EAAAG,KAAKV,EAAMK,SAASC,UAE/B,MAAMK,EAAQJ,EAASK,MAAK,CAACC,EAAGC,IAAMD,EAAIC,IAC1CZ,EAAUa,MAAQJ,CAAA,GAEpB,CACEK,WAAW,EACXC,MAAM;"}
@@ -0,0 +1,2 @@
1
+ import e from"./SearchFormItem.vue2.mjs";export{e as default};
2
+ //# sourceMappingURL=SearchFormItem.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchFormItem.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import{defineComponent as e,computed as l,inject as a,ref as r,createBlock as u,openBlock as c,resolveDynamicComponent as o,mergeProps as n,unref as s,createSlots as t,withCtx as d,createElementBlock as m,renderSlot as p,Fragment as v,renderList as h,createElementVNode as i,toDisplayString as b}from"vue";import{handleProp as f}from"../../../utils.mjs";var y=e({__name:"SearchFormItem",props:{column:{required:!0},searchParam:{required:!0}},setup(e){const y=e,g=l((()=>y.searchParam)),P=l((()=>{let e=y.column.fieldNames?.label??"label",l=y.column.fieldNames?.value??"value";const{dictCode:a}=y.column;return a&&(e="name",l="code"),{label:e,value:l,children:y.column.fieldNames?.children??"children"}})),k=a("enumMap",r(new Map)),V=l((()=>{let e=k.value.get(y.column.prop);return e?("select-v2"===y.column.search?.el&&y.column.fieldNames&&(e=e.map((e=>({...e,label:e[P.value.label],value:e[P.value.value]})))),e):[]})),N=l((()=>{const e=P.value.label,l=P.value.value,a=P.value.children,r=y.column.search?.el;let u=y.column.search?.props??{};return"tree-select"===r&&(u={...u,props:{...u,label:e,children:a},nodeKey:l}),"cascader"===r&&(u={...u,props:{...u,label:e,value:l,children:a}}),u})),S=l((()=>{const e=y.column.search;if(["datetimerange","daterange","monthrange"].includes(e?.props?.type)||e?.props?.isRange)return{rangeSeparator:e?.props?.rangeSeparator??"至",startPlaceholder:e?.props?.startPlaceholder??"开始时间",endPlaceholder:e?.props?.endPlaceholder??"结束时间"};return{placeholder:e?.props?.placeholder??(e?.el?.includes("input")?"请输入":"请选择")}})),_=l((()=>{const e=y.column.search;return e?.props?.clearable??(null==e?.defaultValue||null==e?.defaultValue)}));return(l,a)=>(c(),u(o(e.column.search?.render??`el-${e.column.search?.el}`),n({...N.value,...S.value,searchParam:g.value,clearable:_.value},{modelValue:g.value[e.column.search?.key??s(f)(e.column.prop)],"onUpdate:modelValue":a[0]||(a[0]=l=>g.value[e.column.search?.key??s(f)(e.column.prop)]=l),data:"tree-select"===e.column.search?.el?V.value:[],options:["cascader","select-v2"].includes(e.column.search?.el)?V.value:[]}),t({default:d((()=>["select"===e.column.search?.el?(c(!0),m(v,{key:0},h(V.value,((e,l)=>(c(),u(o("el-option"),{key:l,label:e[P.value.label],value:e[P.value.value]},null,8,["label","value"])))),128
2
+ /* KEYED_FRAGMENT */)):p(l.$slots,"default",{key:1})])),_:2
3
+ /* DYNAMIC */},["cascader"===e.column.search?.el?{name:"default",fn:d((({data:e})=>[i("span",null,b(e[P.value.label]),1
4
+ /* TEXT */)])),key:"0"}:void 0]),1040,["modelValue","data","options"]))}});export{y as default};
5
+ //# sourceMappingURL=SearchFormItem.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchFormItem.vue2.mjs","sources":["../../../../../../../../../packages/components/znTableV2/src/components/SearchForm/components/SearchFormItem.vue"],"sourcesContent":["<!--\n * @Author: lugege 2307332659@qq.com\n * @Date: 2025-06-04 16:14:32\n * @LastEditors: lugege 2307332659@qq.com\n * @LastEditTime: 2025-06-06 14:34:34\n * @FilePath: \\znyg-frontend-common\\packages\\components\\znTable\\src\\components\\SearchForm\\components\\SearchFormItem.vue\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n-->\n<template>\n <component\n :is=\"column.search?.render ?? `el-${column.search?.el}`\"\n v-bind=\"{ ...handleSearchProps, ...placeholder, searchParam: _searchParam, clearable }\"\n v-model=\"_searchParam[column.search?.key ?? handleProp(column.prop!)]\"\n :data=\"column.search?.el === 'tree-select' ? columnEnum : []\"\n :options=\"['cascader', 'select-v2'].includes(column.search?.el!) ? columnEnum : []\">\n <template v-if=\"column.search?.el === 'cascader'\" #default=\"{ data }\">\n <span>{{ data[fieldNames.label] }}</span>\n </template>\n <template v-if=\"column.search?.el === 'select'\">\n <component :is=\"`el-option`\" v-for=\"(col, index) in columnEnum\" :key=\"index\" :label=\"col[fieldNames.label]\" :value=\"col[fieldNames.value]\"></component>\n </template>\n <slot v-else></slot>\n </component>\n</template>\n\n<script setup lang=\"ts\" name=\"SearchFormItem\">\n import { computed, inject, ref } from 'vue'\n\n import { ColumnProps } from '../../../interface'\n import { handleProp } from '../../../utils'\n\n interface SearchFormItem {\n column: ColumnProps\n searchParam: { [key: string]: any }\n }\n const props = defineProps({\n column: { required: true },\n searchParam: { required: true }\n})\n\n // Re receive SearchParam\n const _searchParam = computed(() => props.searchParam)\n\n // 判断 fieldNames 设置 label && value && children 的 key 值\n const fieldNames = computed(() => {\n let label = props.column.fieldNames?.label ?? 'label'\n let value = props.column.fieldNames?.value ?? 'value'\n\n const { dictCode } = props.column\n if (dictCode) {\n label = 'name'\n value = 'code'\n }\n return {\n label: label,\n value: value,\n children: props.column.fieldNames?.children ?? 'children'\n }\n })\n\n // 接收 enumMap (el 为 select-v2 需单独处理 enumData)\n\n const enumMap = inject('enumMap', ref(new Map()))\n const columnEnum = computed(() => {\n let enumData = enumMap.value.get(props.column.prop)\n if (!enumData) return []\n if (props.column.search?.el === 'select-v2' && props.column.fieldNames) {\n enumData = enumData.map((item: { [key: string]: any }) => {\n return { ...item, label: item[fieldNames.value.label], value: item[fieldNames.value.value] }\n })\n }\n return enumData\n })\n\n // 处理透传的 searchProps (el 为 tree-select、cascader 的时候需要给下默认 label && value && children)\n const handleSearchProps = computed(() => {\n const label = fieldNames.value.label\n const value = fieldNames.value.value\n const children = fieldNames.value.children\n const searchEl = props.column.search?.el\n let searchProps = props.column.search?.props ?? {}\n if (searchEl === 'tree-select') {\n searchProps = { ...searchProps, props: { ...searchProps, label, children }, nodeKey: value }\n }\n if (searchEl === 'cascader') {\n searchProps = { ...searchProps, props: { ...searchProps, label, value, children } }\n }\n return searchProps\n })\n\n // 处理默认 placeholder\n const placeholder = computed(() => {\n const search = props.column.search\n if (['datetimerange', 'daterange', 'monthrange'].includes(search?.props?.type) || search?.props?.isRange) {\n return {\n rangeSeparator: search?.props?.rangeSeparator ?? '至',\n startPlaceholder: search?.props?.startPlaceholder ?? '开始时间',\n endPlaceholder: search?.props?.endPlaceholder ?? '结束时间'\n }\n }\n const placeholder = search?.props?.placeholder ?? (search?.el?.includes('input') ? '请输入' : '请选择')\n return { placeholder }\n })\n\n // 是否有清除按钮 (当搜索项有默认值时,清除按钮不显示)\n const clearable = computed(() => {\n const search = props.column.search\n return search?.props?.clearable ?? (search?.defaultValue == null || search?.defaultValue == undefined)\n })\n</script>\n"],"names":["props","__props","_searchParam","computed","searchParam","fieldNames","label","column","value","dictCode","children","enumMap","inject","ref","Map","columnEnum","enumData","get","prop","search","el","map","item","handleSearchProps","searchEl","searchProps","nodeKey","placeholder","includes","type","isRange","rangeSeparator","startPlaceholder","endPlaceholder","clearable","defaultValue"],"mappings":"mcAmCE,MAAMA,EAAQC,EAMRC,EAAeC,GAAS,IAAMH,EAAMI,cAGpCC,EAAaF,GAAS,KAC1B,IAAIG,EAAQN,EAAMO,OAAOF,YAAYC,OAAS,QAC1CE,EAAQR,EAAMO,OAAOF,YAAYG,OAAS,QAExC,MAAAC,SAAEA,GAAaT,EAAMO,OAKpB,OAJHE,IACMH,EAAA,OACAE,EAAA,QAEH,CACLF,QACAE,QACAE,SAAUV,EAAMO,OAAOF,YAAYK,UAAY,WACjD,IAKIC,EAAUC,EAAO,UAAWC,EAAQ,IAAAC,MACpCC,EAAaZ,GAAS,KAC1B,IAAIa,EAAWL,EAAQH,MAAMS,IAAIjB,EAAMO,OAAOW,MAC1C,OAACF,GAC2B,cAA5BhB,EAAMO,OAAOY,QAAQC,IAAsBpB,EAAMO,OAAOF,aAC/CW,EAAAA,EAASK,KAAKC,IAChB,IAAKA,EAAMhB,MAAOgB,EAAKjB,EAAWG,MAAMF,OAAQE,MAAOc,EAAKjB,EAAWG,MAAMA,YAGjFQ,GANe,EAMf,IAIHO,EAAoBpB,GAAS,KAC3B,MAAAG,EAAQD,EAAWG,MAAMF,MACzBE,EAAQH,EAAWG,MAAMA,MACzBE,EAAWL,EAAWG,MAAME,SAC5Bc,EAAWxB,EAAMO,OAAOY,QAAQC,GACtC,IAAIK,EAAczB,EAAMO,OAAOY,QAAQnB,OAAS,CAAC,EAO1C,MANU,gBAAbwB,IACYC,EAAA,IAAKA,EAAazB,MAAO,IAAKyB,EAAanB,QAAOI,YAAYgB,QAASlB,IAEtE,aAAbgB,IACYC,EAAA,IAAKA,EAAazB,MAAO,IAAKyB,EAAanB,QAAOE,QAAOE,cAElEe,CAAA,IAIHE,EAAcxB,GAAS,KACrB,MAAAgB,EAASnB,EAAMO,OAAOY,OAC5B,GAAI,CAAC,gBAAiB,YAAa,cAAcS,SAAST,GAAQnB,OAAO6B,OAASV,GAAQnB,OAAO8B,QACxF,MAAA,CACLC,eAAgBZ,GAAQnB,OAAO+B,gBAAkB,IACjDC,iBAAkBb,GAAQnB,OAAOgC,kBAAoB,OACrDC,eAAgBd,GAAQnB,OAAOiC,gBAAkB,QAI9C,MAAA,CAAEN,YADWR,GAAQnB,OAAO2B,cAAgBR,GAAQC,IAAIQ,SAAS,SAAW,MAAQ,OACtE,IAIjBM,EAAY/B,GAAS,KACnB,MAAAgB,EAASnB,EAAMO,OAAOY,OAC5B,OAAOA,GAAQnB,OAAOkC,YAAsC,MAAxBf,GAAQgB,cAAgD,MAAxBhB,GAAQgB,aAAgB;;;"}
@@ -0,0 +1,2 @@
1
+ import e from"./index.vue2.mjs";export{e as default};
2
+ //# sourceMappingURL=index.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import{defineComponent as e,ref as r,computed as a,resolveComponent as l,createElementBlock as o,createCommentVNode as s,openBlock as t,createVNode as c,withCtx as n,Fragment as u,renderList as i,createBlock as m,mergeProps as f,createElementVNode as p,toDisplayString as d,normalizeClass as h,unref as v,createTextVNode as y,resolveDynamicComponent as _}from"vue";import"./components/SearchFormItem.vue.mjs";import"../Grid/components/GridItem.vue.mjs";import"../Grid/index.vue.mjs";import{Search as k,Delete as b,ArrowDown as x,ArrowUp as C}from"@element-plus/icons-vue";import g from"../Grid/index.vue2.mjs";import j from"../Grid/components/GridItem.vue2.mjs";import G from"./components/SearchFormItem.vue2.mjs";var q=Object.defineProperty,P=(e,r)=>q(e,"name",{value:r,configurable:!0});const F={key:0,class:"card table-search"},I={class:"operation"};var O=e({__name:"index",props:{columns:{type:Array,required:!1,default:P((()=>[]),"default")},searchParam:{required:!1,default:P((()=>({})),"default")},searchCol:{type:[Number,Object],required:!0},search:{type:Function,required:!0},reset:{type:Function,required:!0}},setup(e){const q=e,O=P((e=>({span:e.search?.span,offset:e.search?.offset??0,xs:e.search?.xs,sm:e.search?.sm,md:e.search?.md,lg:e.search?.lg,xl:e.search?.xl})),"getResponsive"),R=r(!0),S=r(),w=a((()=>S.value?.breakPoint)),z=a((()=>{let e=!1;return q.columns.reduce(((r,a)=>(r+=(a.search[w.value]?.span??a.search?.span??1)+(a.search[w.value]?.offset??a.search?.offset??0),"number"!=typeof q.searchCol?r>=q.searchCol[w.value]&&(e=!0):r>=q.searchCol&&(e=!0),r)),0),e}));return(r,a)=>{const q=l("el-tooltip"),P=l("el-space"),w=l("el-form-item"),A=l("el-button"),N=l("el-icon"),$=l("el-form");return e.columns.length?(t(),o("div",F,[c($,{ref:"formRef",model:e.searchParam},{default:n((()=>[c(g,{ref_key:"gridRef",ref:S,collapsed:R.value,gap:[20,0],cols:e.searchCol},{default:n((()=>[(t(!0),o(u,null,i(e.columns,((r,l)=>(t(),m(j,f({key:r.prop,ref_for:!0},O(r),{index:l}),{default:n((()=>[c(w,null,{label:n((()=>[c(P,{size:4},{default:n((()=>[p("span",null,d(`${r.search?.label??r.label}`),1
2
+ /* TEXT */),r.search?.tooltip?(t(),m(q,{key:0,effect:"dark",content:r.search?.tooltip,placement:"top"},{default:n((()=>a[1]||(a[1]=[p("i",{class:h("iconfont icon-yiwen")},null,-1
3
+ /* HOISTED */)]))),_:2
4
+ /* DYNAMIC */},1032,["content"])):s("v-if",!0)])),_:2
5
+ /* DYNAMIC */},1024
6
+ /* DYNAMIC_SLOTS */),a[2]||(a[2]=p("span",null," :",-1
7
+ /* HOISTED */))])),default:n((()=>[c(G,{column:r,"search-param":e.searchParam},null,8,["column","search-param"])])),_:2
8
+ /* DYNAMIC */},1024
9
+ /* DYNAMIC_SLOTS */)])),_:2
10
+ /* DYNAMIC */},1040,["index"])))),128
11
+ /* KEYED_FRAGMENT */)),c(j,{suffix:""},{default:n((()=>[p("div",I,[c(A,{type:"primary",icon:v(k),onClick:e.search},{default:n((()=>a[3]||(a[3]=[y("搜索")]))),_:1
12
+ /* STABLE */},8,["icon","onClick"]),c(A,{icon:v(b),onClick:e.reset},{default:n((()=>a[4]||(a[4]=[y("重置")]))),_:1
13
+ /* STABLE */},8,["icon","onClick"]),z.value?(t(),m(A,{key:0,type:"primary",link:"",class:"search-isOpen",onClick:a[0]||(a[0]=e=>R.value=!R.value)},{default:n((()=>[y(d(R.value?"展开":"合并")+" ",1
14
+ /* TEXT */),c(N,{class:"el-icon--right"},{default:n((()=>[(t(),m(_(R.value?v(x):v(C))))])),_:1
15
+ /* STABLE */})])),_:1
16
+ /* STABLE */})):s("v-if",!0)])])),_:1
17
+ /* STABLE */})])),_:1
18
+ /* STABLE */},8,["collapsed","cols"])])),_:1
19
+ /* STABLE */},8,["model"])])):s("v-if",!0)}}});export{O as default};
20
+ //# sourceMappingURL=index.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../../../../../../packages/components/znTableV2/src/components/SearchForm/index.vue"],"sourcesContent":["<template>\n <div v-if=\"columns.length\" class=\"card table-search\">\n <el-form ref=\"formRef\" :model=\"searchParam\">\n <Grid ref=\"gridRef\" :collapsed=\"collapsed\" :gap=\"[20, 0]\" :cols=\"searchCol\">\n <GridItem v-for=\"(item, index) in columns\" :key=\"item.prop\" v-bind=\"getResponsive(item)\" :index=\"index\">\n <el-form-item>\n <template #label>\n <el-space :size=\"4\">\n <span>{{ `${item.search?.label ?? item.label}` }}</span>\n <el-tooltip v-if=\"item.search?.tooltip\" effect=\"dark\" :content=\"item.search?.tooltip\" placement=\"top\">\n <i :class=\"'iconfont icon-yiwen'\"></i>\n </el-tooltip>\n </el-space>\n <span>&nbsp;:</span>\n </template>\n <SearchFormItem :column=\"item\" :search-param=\"searchParam\" />\n </el-form-item>\n </GridItem>\n <GridItem suffix>\n <div class=\"operation\">\n <el-button type=\"primary\" :icon=\"Search\" @click=\"search\">搜索</el-button>\n <el-button :icon=\"Delete\" @click=\"reset\">重置</el-button>\n <el-button v-if=\"showCollapse\" type=\"primary\" link class=\"search-isOpen\" @click=\"collapsed = !collapsed\">\n {{ collapsed ? '展开' : '合并' }}\n <el-icon class=\"el-icon--right\">\n <component :is=\"collapsed ? ArrowDown : ArrowUp\"></component>\n </el-icon>\n </el-button>\n </div>\n </GridItem>\n </Grid>\n </el-form>\n </div>\n</template>\n<script setup lang=\"ts\" name=\"SearchForm\">\n import { computed, ref } from 'vue'\n\n import SearchFormItem from './components/SearchFormItem.vue'\n import GridItem from '../Grid/components/GridItem.vue'\n import Grid from '../Grid/index.vue'\n\n import { BreakPoint } from '../Grid/interface'\n import { ColumnProps } from '../../interface'\n import { ArrowDown, ArrowUp, Delete, Search } from '@element-plus/icons-vue'\n\n interface ZnTableProps {\n columns?: ColumnProps[] // 搜索配置列\n searchParam?: { [key: string]: any } // 搜索参数\n searchCol: number | Record<BreakPoint, number>\n search: (params: any) => void // 搜索方法\n reset: (params: any) => void // 重置方法\n }\n\n // 默认值\n const props = defineProps({\n columns: { type: Array, required: false, default: () => [] },\n searchParam: { required: false, default: () => ({}) },\n searchCol: { type: [Number, Object], required: true },\n search: { type: Function, required: true },\n reset: { type: Function, required: true }\n})\n\n // 获取响应式设置\n const getResponsive = (item: ColumnProps) => {\n return {\n span: item.search?.span,\n offset: item.search?.offset ?? 0,\n xs: item.search?.xs,\n sm: item.search?.sm,\n md: item.search?.md,\n lg: item.search?.lg,\n xl: item.search?.xl\n }\n }\n\n // 是否默认折叠搜索项\n const collapsed = ref(true)\n\n // 获取响应式断点\n const gridRef = ref()\n const breakPoint = computed<BreakPoint>(() => gridRef.value?.breakPoint)\n\n // 判断是否显示 展开/合并 按钮\n const showCollapse = computed(() => {\n let show = false\n props.columns.reduce((prev, current) => {\n prev +=\n (current.search![breakPoint.value]?.span ?? current.search?.span ?? 1) + (current.search![breakPoint.value]?.offset ?? current.search?.offset ?? 0)\n if (typeof props.searchCol !== 'number') {\n if (prev >= props.searchCol[breakPoint.value]) show = true\n } else {\n if (prev >= props.searchCol) show = true\n }\n return prev\n }, 0)\n return show\n })\n</script>\n"],"names":["props","__props","getResponsive","item","span","search","offset","xs","sm","md","lg","xl","collapsed","ref","gridRef","breakPoint","computed","value","showCollapse","show","columns","reduce","prev","current","searchCol"],"mappings":"ymCAsDE,MAAMA,EAAQC,EASRC,KAAiBC,IACd,CACLC,KAAMD,EAAKE,QAAQD,KACnBE,OAAQH,EAAKE,QAAQC,QAAU,EAC/BC,GAAIJ,EAAKE,QAAQE,GACjBC,GAAIL,EAAKE,QAAQG,GACjBC,GAAIN,EAAKE,QAAQI,GACjBC,GAAIP,EAAKE,QAAQK,GACjBC,GAAIR,EAAKE,QAAQM,MARC,iBAahBC,EAAYC,GAAI,GAGhBC,EAAUD,IACVE,EAAaC,GAAqB,IAAMF,EAAQG,OAAOF,aAGvDG,EAAeF,GAAS,KAC5B,IAAIG,GAAO,EAWJ,OAVPnB,EAAMoB,QAAQC,QAAO,CAACC,EAAMC,KAC1BD,IACGC,EAAQlB,OAAQU,EAAWE,QAAQb,MAAQmB,EAAQlB,QAAQD,MAAQ,IAAMmB,EAAQlB,OAAQU,EAAWE,QAAQX,QAAUiB,EAAQlB,QAAQC,QAAU,GACpH,iBAApBN,EAAMwB,UACXF,GAAQtB,EAAMwB,UAAUT,EAAWE,SAAeE,GAAA,GAElDG,GAAQtB,EAAMwB,YAAkBL,GAAA,GAE/BG,IACN,GACIH,CAAA;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ import e from"./TableColumn.vue2.mjs";export{e as default};
2
+ //# sourceMappingURL=TableColumn.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumn.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import{isVNode as e,defineComponent as r,useSlots as o,inject as t,ref as l,createVNode as n,Fragment as p,resolveComponent as a,mergeProps as i,unref as u,createTextVNode as d,createBlock as m,openBlock as s,normalizeProps as f,guardReactiveProps as c}from"vue";import{filterEnum as w,formatValue as g,handleRowAccordingToProp as b,handleProp as h}from"../utils.mjs";import y from"dayjs";var v=Object.defineProperty,j=(e,r)=>v(e,"name",{value:r,configurable:!0});function O(r){return"function"==typeof r||"[object Object]"===Object.prototype.toString.call(r)&&!e(r)}j(O,"_isSlot");var T=r({__name:"TableColumn",props:{column:{type:Object,required:!0},isView:{type:Boolean,required:!0}},setup(e){const r=e,v=o(),T=t("enumMap",l(new Map)),_=j(((e,r)=>T.value.get(e.prop)&&e.isFilterEnum?w(b(r.row,e.prop),T.value.get(e.prop),e.fieldNames,null,e):g(b(r.row,e.prop))),"renderCellData"),V=j(((e,r)=>w(b(r.row,e.prop),T.value.get(e.prop),e.fieldNames,"tag")||"primary"),"getTagType"),C=j((e=>n(p,null,[e.isShow&&n(a("el-table-column"),i(e,{align:e.align??"center",showOverflowTooltip:e.showOverflowTooltip??"operation"!==e.prop}),{default:j((o=>{let t;return u(r.isView)?r.column?.renderInView?e.renderInView(o):n("span",null,[_(e,o)]):e._children?e._children.map((e=>C(e))):e.render?"string"==typeof e.render?e.render.startsWith("dateFormat@")?o.row[e.prop]?n("span",null,[y(o.row[e.prop]).format(e.render.split("dateFormat@")[1])]):n("span",null,[d("--")]):e.render:e.render(o):v[h(e.prop)]?v[h(e.prop)](o):e.tag?n(a("el-tag"),{type:V(e,o)},O(t=_(e,o))?t:{default:j((()=>[t]),"default")}):_(e,o)}),"default"),header:j((r=>e.headerRender?e.headerRender(r):v[`${h(e.prop)}Header`]?v[`${h(e.prop)}Header`](r):e.label),"header")})])),"RenderTableColumn");return(r,o)=>(s(),m(C,f(c(e.column)),null,16
2
+ /* FULL_PROPS */))}});export{T as default};
3
+ //# sourceMappingURL=TableColumn.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumn.vue2.mjs","sources":["../../../../../../../packages/components/znTableV2/src/components/TableColumn.vue"],"sourcesContent":["<template>\n <RenderTableColumn v-bind=\"column\" />\n</template>\n\n<script setup lang=\"tsx\" name=\"TableColumn\">\n import { inject, ref, useSlots, unref } from 'vue'\n\n import { ColumnProps, HeaderRenderScope, RenderScope } from '../interface'\n import { filterEnum, formatValue, handleProp, handleRowAccordingToProp } from '../utils'\n import dayjs from 'dayjs'\n\n const props = defineProps({\n column: { type: Object, required: true },\n isView: { type: Boolean, required: true }\n})\n\n const slots = useSlots()\n\n const enumMap = inject('enumMap', ref(new Map()))\n\n // 渲染表格数据\n const renderCellData = (item: ColumnProps, scope: RenderScope<any>) => {\n return enumMap.value.get(item.prop) && item.isFilterEnum\n ? filterEnum(handleRowAccordingToProp(scope.row, item.prop!), enumMap.value.get(item.prop)!, item.fieldNames, null, item)\n : formatValue(handleRowAccordingToProp(scope.row, item.prop!))\n }\n\n // 获取 tag 类型\n const getTagType = (item: ColumnProps, scope: RenderScope<any>) => {\n return filterEnum(handleRowAccordingToProp(scope.row, item.prop!), enumMap.value.get(item.prop), item.fieldNames, 'tag') || 'primary'\n }\n\n const RenderTableColumn = (item: ColumnProps) => {\n return (\n <>\n {item.isShow && (\n <el-table-column {...item} align={item.align ?? 'center'} showOverflowTooltip={item.showOverflowTooltip ?? item.prop !== 'operation'}>\n {{\n default: (scope: RenderScope<any>) => {\n if (unref(props.isView)) {\n return props.column?.renderInView ? item.renderInView(scope) : <span>{renderCellData(item, scope)}</span>\n }\n if (item._children) return item._children.map((child) => RenderTableColumn(child))\n if (item.render) {\n if (typeof item.render === 'string') {\n if (item.render.startsWith('dateFormat@')) {\n if (scope.row[item.prop]) {\n return <span>{dayjs(scope.row[item.prop!]).format(item.render.split('dateFormat@')[1])}</span>\n } else {\n return <span>--</span>\n }\n }\n return item.render\n } else {\n return item.render(scope)\n }\n }\n if (slots[handleProp(item.prop!)]) return slots[handleProp(item.prop!)]!(scope)\n if (item.tag) return <el-tag type={getTagType(item, scope)}>{renderCellData(item, scope)}</el-tag>\n return renderCellData(item, scope)\n },\n header: (scope: HeaderRenderScope<any>) => {\n if (item.headerRender) return item.headerRender(scope)\n if (slots[`${handleProp(item.prop!)}Header`]) return slots[`${handleProp(item.prop!)}Header`]!(scope)\n return item.label\n }\n }}\n </el-table-column>\n )}\n </>\n )\n }\n</script>\n"],"names":["_isSlot","s","_isVNode","Object","prototype","toString","call","props","__props","slots","useSlots","enumMap","inject","ref","Map","renderCellData","item","scope","value","get","prop","isFilterEnum","filterEnum","handleRowAccordingToProp","row","fieldNames","formatValue","getTagType","RenderTableColumn","__name","_createVNode","_Fragment","isShow","_resolveComponent","_mergeProps","align","showOverflowTooltip","default","_slot","unref","isView","column","renderInView","_children","map","child","render","startsWith","dayjs","format","split","_createTextVNode","handleProp","tag","type","header","headerRender","label"],"mappings":"gdAS0B,SAAAA,EAAAC,GAAA,MAAA,mBAAAA,GAAAC,oBAAAC,OAAAC,UAAAC,SAAAC,KAAAL,KAAAC,EAAAD,EAAA,CAAAD,EAAAA,EAAAA,6HAExB,MAAMO,EAAQC,EAKRC,EAAQC,IAERC,EAAUC,EAAO,UAAWC,EAAQC,IAAAA,MAGpCC,EAAkBC,GAAAA,CAAAA,EAAmBC,IAClCN,EAAQO,MAAMC,IAAIH,EAAKI,OAASJ,EAAKK,aACxCC,EAAWC,EAAyBN,EAAMO,IAAKR,EAAKI,MAAQT,EAAQO,MAAMC,IAAIH,EAAKI,MAAQJ,EAAKS,WAAY,KAAMT,GAClHU,EAAYH,EAAyBN,EAAMO,IAAKR,EAAKI,QAHpCL,kBAOjBY,EAAcX,GAAAA,CAAAA,EAAmBC,IAC9BK,EAAWC,EAAyBN,EAAMO,IAAKR,EAAKI,MAAQT,EAAQO,MAAMC,IAAIH,EAAKI,MAAOJ,EAAKS,WAAY,QAAU,WAD3GE,cAIbC,EAA2CC,GAAAb,GAC/Cc,EAAAC,EAAA,KAAA,CAEKf,EAAKgB,QAAMF,EAAAG,EAAAC,mBAAAA,EACWlB,EAAI,CAAAmB,MAASnB,EAAKmB,OAAS,SAAQC,oBAAuBpB,EAAKoB,qBAAqC,cAAdpB,EAAKI,OAAoB,CAEhIiB,QAAsCR,GAAAZ,IAAAqB,IAAAA,EAChCC,OAAAA,EAAMhC,EAAMiC,QACPjC,EAAMkC,QAAQC,aAAe1B,EAAK0B,aAAazB,GAAMa,EAAUf,OAAAA,KAAAA,CAAAA,EAAeC,EAAMC,KAEzFD,EAAK2B,UAAkB3B,EAAK2B,UAAUC,KAAKC,GAAUjB,EAAkBiB,KACvE7B,EAAK8B,OACoB,iBAAhB9B,EAAK8B,OACV9B,EAAK8B,OAAOC,WAAW,eACrB9B,EAAMO,IAAIR,EAAKI,MACjBU,EAAckB,OAAAA,KAAAA,CAAAA,EAAM/B,EAAMO,IAAIR,EAAKI,OAAQ6B,OAAOjC,EAAK8B,OAAOI,MAAM,eAAe,MAEnFpB,eAAAqB,EAAA,QAGGnC,EAAK8B,OAEL9B,EAAK8B,OAAO7B,GAGnBR,EAAM2C,EAAWpC,EAAKI,OAAgBX,EAAM2C,EAAWpC,EAAKI,OAASH,GACrED,EAAKqC,IAAKvB,EAAAG,EAAA,UAAA,CAAAqB,KAAqB3B,EAAWX,EAAMC,IAAMjB,EAAAsC,EAAGvB,EAAeC,EAAMC,IAAMqB,EAAA,CAAAD,QAAAA,GAAAA,IAAA,CAAAC,IAAAD,aACjFtB,EAAeC,EAAMC,EAAK,GArBzBA,WAuBVsC,OAA2C1B,GAAAZ,GACrCD,EAAKwC,aAAqBxC,EAAKwC,aAAavC,GAC5CR,EAAM,GAAG2C,EAAWpC,EAAKI,eAAwBX,EAAM,GAAG2C,EAAWpC,EAAKI,eAAiBH,GACxFD,EAAKyC,OAHLxC,eA7BMD;"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{ref as e,computed as t}from"vue";var l=Object.defineProperty,n=(e,t)=>l(e,"name",{value:t,configurable:!0});const r=n(((l="id")=>{const r=e(!1),s=e([]),a=t((()=>{let e=[];return s.value.forEach((t=>e.push(t[l]))),e})),c=n((e=>{e.length?r.value=!0:r.value=!1,s.value=e}),"selectionChange");return{isSelected:r,selectedList:s,selectedListIds:a,selectionChange:c}}),"useSelection");export{r as useSelection};
2
+ //# sourceMappingURL=useSelection.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelection.mjs","sources":["../../../../../../../packages/components/znTableV2/src/hooks/useSelection.ts"],"sourcesContent":["import { computed, ref } from 'vue'\n\n/**\n * @description 表格多选数据操作\n * @param {String} rowKey 当表格可以多选时,所指定的 id\n * */\nexport const useSelection = (rowKey: string = 'id') => {\n const isSelected = ref<boolean>(false)\n const selectedList = ref<{ [key: string]: any }[]>([])\n\n // 当前选中的所有 ids 数组\n const selectedListIds = computed((): string[] => {\n let ids: string[] = []\n selectedList.value.forEach(item => ids.push(item[rowKey]))\n return ids\n })\n\n /**\n * @description 多选操作\n * @param {Array} rowArr 当前选择的所有数据\n * @return void\n */\n const selectionChange = (rowArr: { [key: string]: any }[]) => {\n rowArr.length ? (isSelected.value = true) : (isSelected.value = false)\n selectedList.value = rowArr\n }\n\n return {\n isSelected,\n selectedList,\n selectedListIds,\n selectionChange\n }\n}\n"],"names":["useSelection","__name","rowKey","isSelected","ref","selectedList","selectedListIds","computed","ids","value","forEach","item","push","selectionChange","rowArr","length"],"mappings":"mHAMa,MAAAA,EAAgBC,GAAA,CAAAC,EAAiB,QACtC,MAAAC,EAAaC,GAAa,GAC1BC,EAAeD,EAA8B,IAG7CE,EAAkBC,GAAS,KAC/B,IAAIC,EAAgB,GAEb,OADMH,EAAAI,MAAMC,SAAgBC,GAAAH,EAAII,KAAKD,EAAKT,MAC1CM,CAAA,IAQHK,KAAmBC,IACvBA,EAAOC,OAAUZ,EAAWM,OAAQ,EAASN,EAAWM,OAAQ,EAChEJ,EAAaI,MAAQK,CAAA,GAFC,mBAKjB,MAAA,CACLX,aACAE,eACAC,kBACAO,kBACF,GA1B0B"}
@@ -0,0 +1,20 @@
1
+ import{reactive as a,computed as e,toRefs as t}from"vue";var r=Object.defineProperty,l=(a,e)=>r(a,"name",{value:e,configurable:!0});const s=l(((r,s={},g=!0,i,n,o=15,m,c,p)=>{const P=a({
2
+ // 表格数据
3
+ tableData:[],
4
+ // 分页数据
5
+ pageable:{
6
+ // 当前页数
7
+ pageNum:1,
8
+ // 每页显示条数
9
+ pageSize:o,
10
+ // 总条数
11
+ total:0},
12
+ // 查询参数(只包括查询)
13
+ searchParam:{},
14
+ // 初始化默认的查询参数
15
+ searchInitParam:{},
16
+ // 总参数(包含分页和查询参数)
17
+ totalParam:{},loading:!1}),b=e({get:l((()=>({currPage:P.pageable.pageNum,pageSize:P.pageable.pageSize})),"get"),set:l((a=>{console.log("我是分页更新之后的值",a)}),"set")}),h=l((async()=>{if(r)try{Object.assign(P.totalParam,g?b.value:{},s),"params"in P.totalParam||(P.totalParam.params={...P.searchInitParam}),P.loading=!0;let{result:a}=await r({
18
+ // ...state.searchInitParam,
19
+ ...P.totalParam});if(P.loading=!1,i&&(a=i(a)),g?a&&a.list&&Array.isArray(a.list)?P.tableData=a.list:(console.warn("API 返回的 list 不是数组:",a?.list),P.tableData=[]):Array.isArray(a)?P.tableData=a:(console.warn("API 返回的数据不是数组:",a),P.tableData=[]),g){const{currPage:e,limit:t,total:r}=a;d({pageNum:e,pageSize:t,total:r})}}catch(a){P.loading=!1,n&&n(a)}}),"getTableList"),u=l((()=>{P.totalParam={};const a={};for(const e in P.searchParam)(P.searchParam[e]||!1===P.searchParam[e]||0===P.searchParam[e])&&(e.startsWith("__")||(a[e]=P.searchParam[e]));Object.assign(P.totalParam,{params:a},g?b.value:{})}),"updatedTotalParam"),d=l((a=>{Object.assign(P.pageable,a)}),"updatePageable"),y=l((()=>{P.pageable.pageNum=1,p&&c(),m(),u(),h()}),"search"),z=l((()=>{P.pageable.pageNum=1,P.searchParam={...P.searchInitParam},p&&c(),m(),u(),h()}),"reset"),N=l((a=>{P.pageable.pageNum=1,P.pageable.pageSize=a,h()}),"handleSizeChange"),S=l((a=>{P.pageable.pageNum=a,h()}),"handleCurrentChange");return{...t(P),getTableList:h,search:y,reset:z,handleSizeChange:N,handleCurrentChange:S,updatedTotalParam:u}}),"useTable");export{s as useTable};
20
+ //# sourceMappingURL=useTable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTable.mjs","sources":["../../../../../../../packages/components/znTableV2/src/hooks/useTable.ts"],"sourcesContent":["import { computed, reactive, toRefs } from 'vue'\n\nimport type { Pageable, StateProps } from './interface'\n\n/**\n * @description table 页面操作方法封装\n * @param {Function} api 获取表格数据 api 方法 (必传)\n * @param {Object} initParam 获取数据初始化参数 (非必传,默认为{})\n * @param {Boolean} isPageable 是否有分页 (非必传,默认为true)\n * @param {Function} dataCallBack 对后台返回的数据进行处理的方法 (非必传)\n * @param {Function} requestError 请求错误回调 (非必传)\n * @param {Number} pageSize 默认每页显示条数 (非必传,默认为15)\n * */\nexport const useTable = (\n api?: (params: any) => Promise<any>,\n initParam: object = {},\n isPageable: boolean = true,\n dataCallBack?: (data: any) => any,\n requestError?: (error: any) => void,\n pageSize: number = 15,\n scrollToTop?: () => void,\n resetScrollPagination?: () => void,\n enableScrollPagination?: boolean\n) => {\n const state = reactive<StateProps>({\n // 表格数据\n tableData: [],\n // 分页数据\n pageable: {\n // 当前页数\n pageNum: 1,\n // 每页显示条数\n pageSize: pageSize,\n // 总条数\n total: 0\n },\n // 查询参数(只包括查询)\n searchParam: {},\n // 初始化默认的查询参数\n searchInitParam: {},\n // 总参数(包含分页和查询参数)\n totalParam: {},\n loading: false\n })\n\n /**\n * @description 分页查询参数(只包括分页和表格字段排序,其他排序方式可自行配置)\n * */\n const pageParam = computed({\n get: () => {\n return {\n currPage: state.pageable.pageNum,\n pageSize: state.pageable.pageSize\n }\n },\n set: (newVal: any) => {\n console.log('我是分页更新之后的值', newVal)\n }\n })\n\n /**\n * @description 获取表格数据\n * @return void\n * */\n const getTableList = async () => {\n if (!api) return\n try {\n // 先把初始化参数和分页参数放到总参数里面\n // const initedParam = 'params' in initParam ? initParam : { params: initParam }\n // if ('params' in state.totalParam && 'params' in initParam) {\n // let params = {}\n // Object.assign(params, state.totalParam.params, initParam.params)\n // Object.assign(state.totalParam, isPageable ? pageParam.value : {})\n // state.totalParam.params = params\n // } else {\n Object.assign(state.totalParam, isPageable ? pageParam.value : {}, initParam)\n // }\n if (!('params' in state.totalParam)) {\n state.totalParam.params = { ...state.searchInitParam }\n }\n\n state.loading = true\n let { result } = await api({\n // ...state.searchInitParam,\n ...state.totalParam\n })\n state.loading = false\n dataCallBack && (result = dataCallBack(result))\n \n // 确保返回的数据是数组\n if (isPageable) {\n if (result && result.list && Array.isArray(result.list)) {\n state.tableData = result.list\n } else {\n console.warn('API 返回的 list 不是数组:', result?.list)\n state.tableData = []\n }\n } else {\n if (Array.isArray(result)) {\n state.tableData = result\n } else {\n console.warn('API 返回的数据不是数组:', result)\n state.tableData = []\n }\n }\n // 解构后台返回的分页数据 (如果有分页更新分页信息)\n if (isPageable) {\n const { currPage, limit, total } = result\n updatePageable({ pageNum: currPage, pageSize: limit, total })\n }\n } catch (error) {\n state.loading = false\n requestError && requestError(error)\n }\n }\n\n /**\n * @description 更新查询参数\n * @return void\n * */\n const updatedTotalParam = () => {\n state.totalParam = {}\n // 处理查询参数,可以给查询参数加自定义前缀操作\n const nowSearchParam: StateProps['searchParam'] = {}\n // 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n for (const key in state.searchParam) {\n // 某些情况下参数为 false/0 也应该携带参数\n if (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n // __开头的不添加到搜索条件中\n if (!key.startsWith('__')) {\n nowSearchParam[key] = state.searchParam[key]\n }\n }\n }\n Object.assign(state.totalParam, { params: nowSearchParam }, isPageable ? pageParam.value : {})\n }\n\n /**\n * @description 更新分页信息\n * @param {Object} pageable 后台返回的分页数据\n * @return void\n * */\n const updatePageable = (pageable: Pageable) => {\n Object.assign(state.pageable, pageable)\n }\n\n /**\n * @description 表格数据查询\n * @return void\n * */\n const search = () => {\n state.pageable.pageNum = 1\n if (enableScrollPagination) {\n resetScrollPagination()\n }\n scrollToTop()\n updatedTotalParam()\n getTableList()\n }\n\n /**\n * @description 表格数据重置\n * @return void\n * */\n const reset = () => {\n state.pageable.pageNum = 1\n // 重置搜索表单的时,如果有默认搜索参数,则重置默认的搜索参数\n state.searchParam = { ...state.searchInitParam }\n if (enableScrollPagination) {\n resetScrollPagination()\n }\n scrollToTop()\n updatedTotalParam()\n getTableList()\n }\n\n /**\n * @description 每页条数改变\n * @param {Number} val 当前条数\n * @return void\n * */\n const handleSizeChange = (val: number) => {\n state.pageable.pageNum = 1\n state.pageable.pageSize = val\n getTableList()\n }\n\n /**\n * @description 当前页改变\n * @param {Number} val 当前页\n * @return void\n * */\n const handleCurrentChange = (val: number) => {\n state.pageable.pageNum = val\n getTableList()\n }\n\n return {\n ...toRefs(state),\n getTableList,\n search,\n reset,\n handleSizeChange,\n handleCurrentChange,\n updatedTotalParam\n }\n}\n"],"names":["useTable","__name","api","initParam","isPageable","dataCallBack","requestError","pageSize","scrollToTop","resetScrollPagination","enableScrollPagination","state","reactive","tableData","pageable","pageNum","total","searchParam","searchInitParam","totalParam","loading","pageParam","computed","get","currPage","set","newVal","console","log","getTableList","async","Object","assign","value","params","result","list","Array","isArray","warn","limit","updatePageable","error","updatedTotalParam","nowSearchParam","key","startsWith","search","reset","handleSizeChange","val","handleCurrentChange","toRefs"],"mappings":"oIAaO,MAAMA,EAAWC,GAAA,CACtBC,EACAC,EAAoB,CAAA,EACpBC,GAAsB,EACtBC,EACAC,EACAC,EAAmB,GACnBC,EACAC,EACAC,KAEA,MAAMC,EAAQC,EAAqB;;AAEjCC,UAAW;;AAEXC,SAAU;;AAERC,QAAS;;AAETR;;AAEAS,MAAO;;AAGTC,YAAa,CAAC;;AAEdC,gBAAiB,CAAC;;AAElBC,WAAY,CAAC,EACbC,SAAS,IAMLC,EAAYC,EAAS,CACzBC,IAAWtB,GAAA,KACF,CACLuB,SAAUb,EAAMG,SAASC,QACzBR,SAAUI,EAAMG,SAASP,YAHxB,OAMLkB,OAAMC,IACIC,QAAAC,IAAI,aAAcF,EAAM,GAD7B,SASDG,EAA2B5B,GAAA6B,UAC/B,GAAK5B,EACD,IASK6B,OAAAC,OAAOrB,EAAMQ,WAAYf,EAAaiB,EAAUY,MAAQ,GAAI9B,GAE7D,WAAYQ,EAAMQ,aACtBR,EAAMQ,WAAWe,OAAS,IAAKvB,EAAMO,kBAGvCP,EAAMS,SAAU,EAChB,IAAIe,OAAEA,SAAiBjC,EAAI;;GAEtBS,EAAMQ,aAsBX,GApBAR,EAAMS,SAAU,EACCf,IAAA8B,EAAS9B,EAAa8B,IAGnC/B,EACE+B,GAAUA,EAAOC,MAAQC,MAAMC,QAAQH,EAAOC,MAChDzB,EAAME,UAAYsB,EAAOC,MAEjBT,QAAAY,KAAK,qBAAsBJ,GAAQC,MAC3CzB,EAAME,UAAY,IAGhBwB,MAAMC,QAAQH,GAChBxB,EAAME,UAAYsB,GAEVR,QAAAY,KAAK,iBAAkBJ,GAC/BxB,EAAME,UAAY,IAIlBT,EAAY,CACd,MAAMoB,SAAEA,EAAAgB,MAAUA,EAAOxB,MAAAA,GAAUmB,EACnCM,EAAe,CAAE1B,QAASS,EAAUjB,SAAUiC,EAAOxB,SAAO,QAEvD0B,GACP/B,EAAMS,SAAU,EAChBd,GAAgBA,EAAaoC,EAAK,IAhDjB,gBAwDfC,EAA0B1C,GAAA,KAC9BU,EAAMQ,WAAa,CAAC,EAEpB,MAAMyB,EAA4C,CAAC,EAExC,IAAA,MAAAC,KAAOlC,EAAMM,aAElBN,EAAMM,YAAY4B,KAAmC,IAA3BlC,EAAMM,YAAY4B,IAA6C,IAA3BlC,EAAMM,YAAY4B,MAE7EA,EAAIC,WAAW,QAClBF,EAAeC,GAAOlC,EAAMM,YAAY4B,KAIvCd,OAAAC,OAAOrB,EAAMQ,WAAY,CAAEe,OAAQU,GAAkBxC,EAAaiB,EAAUY,MAAQ,CAAA,EAAE,GAdrE,qBAsBpBQ,KAAkB3B,IACfiB,OAAAC,OAAOrB,EAAMG,SAAUA,EAAQ,GADjB,kBAQjBiC,EAAe9C,GAAA,KACnBU,EAAMG,SAASC,QAAU,EACrBL,GACoBD,IAEZD,IACMmC,IACLd,GAAA,GAPA,UAcTmB,EAAc/C,GAAA,KAClBU,EAAMG,SAASC,QAAU,EAEzBJ,EAAMM,YAAc,IAAKN,EAAMO,iBAC3BR,GACoBD,IAEZD,IACMmC,IACLd,GAAA,GATD,SAiBRoB,KAAoBC,IACxBvC,EAAMG,SAASC,QAAU,EACzBJ,EAAMG,SAASP,SAAW2C,EACbrB,GAAA,GAHU,oBAWnBsB,KAAuBD,IAC3BvC,EAAMG,SAASC,QAAUmC,EACZrB,GAAA,GAFa,uBAKrB,MAAA,IACFuB,EAAOzC,GACVkB,eACAkB,SACAC,QACAC,mBACAE,sBACAR,oBACF,GAhMsB"}
@@ -0,0 +1,2 @@
1
+ import e from"./index.vue2.mjs";export{e as default};
2
+ //# sourceMappingURL=index.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import{defineComponent as e,getCurrentInstance as t,ref as a,computed as l,onMounted as r,onUnmounted as o,toRaw as n,reactive as i,watch as s,nextTick as u,unref as c,provide as p,resolveComponent as d,resolveDirective as h,createElementBlock as m,openBlock as g,createCommentVNode as v,withDirectives as f,createElementVNode as y,createBlock as S,createVNode as b,vShow as C,normalizeClass as w,renderSlot as _,mergeProps as k,withCtx as q,Fragment as x,renderList as T,toDisplayString as A,resolveDynamicComponent as B,createSlots as E}from"vue";import P from"./assets/notData.png.mjs";import"./components/ColSetting.vue.mjs";import"./components/Pagination.vue.mjs";import"./components/TableColumn.vue.mjs";import"./components/SearchForm/index.vue.mjs";import"./components/OperationBtns/index.vue.mjs";import{useSelection as N}from"./hooks/useSelection.mjs";import{useTable as O}from"./hooks/useTable.mjs";import{generateUUID as F,handleProp as L}from"./utils.mjs";import{Refresh as M,Operation as z,Search as $,DCaret as j,Loading as I}from"@element-plus/icons-vue";import{useLocalStorage as U,useResizeObserver as H}from"@vueuse/core";import V from"./components/SearchForm/index.vue2.mjs";import R from"./components/OperationBtns/index.vue2.mjs";import D from"./components/TableColumn.vue2.mjs";import K from"./components/Pagination.vue2.mjs";import G from"./components/ColSetting.vue2.mjs";var X=Object.defineProperty,J=(e,t)=>X(e,"name",{value:t,configurable:!0});const Z={class:"table-box"},Q={class:"table-header"},W={class:"header-button-lf"},Y={key:0,class:"header-button-ri"},ee={key:0},te={key:0,style:{display:"flex","align-items":"center","justify-content":"center",padding:"20px 0",color:"#909399","font-size":"14px"}},ae={key:0,style:{display:"flex","align-items":"center",gap:"8px"}},le={key:1,style:{color:"#909399"}},re={class:"table-empty"};var oe=e({name:"ZnTable",__name:"index",props:{columns:{type:Array,required:!0,default:J((()=>[]),"default")},data:{type:Array,required:!1},requestApi:{type:Function,required:!1},requestAuto:{type:Boolean,required:!1,default:!0},requestError:{type:Function,required:!1},dataCallback:{type:Function,required:!1},title:{type:String,required:!1},pagination:{type:Boolean,required:!1,default:!0},pageSizeOptions:{type:Array,required:!1,default:J((()=>[10,25,50,100]),"default")},pageSize:{type:Number,required:!1,default:15},initParam:{required:!1,default:{}},border:{type:Boolean,required:!1,default:!0},toolButton:{type:[Array,Boolean],required:!1,default:!0},rowKey:{type:String,required:!1,default:"id"},searchCol:{type:[Number,Object],required:!1,default:J((()=>({xs:1,sm:2,md:2,lg:3,xl:4})),"default")},height:{type:[String,Number],required:!1},heightOffset:{type:Number,required:!1,default:0},minHeight:{type:[String,Number],required:!1,default:200},onlyTable:{type:Boolean,required:!1,default:!1},isView:{type:Boolean,required:!1,default:!1},searchFormShow:{type:Boolean,required:!1,default:!0},enableScrollPagination:{type:Boolean,required:!1,default:!1},scrollPaginationThreshold:{type:Number,required:!1,default:100}},emits:["search","reset","dragSort","handleOperateBtnsClick"],setup(e,{expose:X,emit:oe}){const ne=e,ie=t(),se=U("znyg",{dictMap:{}}),ue=a(0);H(document.body,(e=>{const t=e[0],{height:a}=t.contentRect;ue.value=a}));const ce=l((()=>{if(ne.height){if("auto"===ne.height){if(!(Re.value&&Re.value.length>0)){const e="number"==typeof ne.minHeight?ne.minHeight:parseInt(ne.minHeight.toString());return Math.max(e,200)}}return ne.height}const e=ue.value-100-(ye.value?120:40)-(ne.pagination?150:0)-ne.heightOffset,t="number"==typeof ne.minHeight?ne.minHeight:parseInt(ne.minHeight.toString());return e>t?e:t})),pe=a(),de=a("id-"+F()),he={
2
+ // 前置特殊列(显示在表格最前面)
3
+ FRONT_COLUMNS:["selection","radio","index","expand","sort"],
4
+ // 后置特殊列(显示在表格最后面)
5
+ BACK_COLUMNS:["operationBtns"],
6
+ // 需要从列设置中排除的列(除了特殊列类型,还可以包括特定的 prop)
7
+ EXCLUDE_FROM_SETTING:{props:["operation"],
8
+ // 按 prop 排除
9
+ types:[],
10
+ // 按 type 排除(会自动包含所有特殊列类型)
11
+ fixed:!0}},me=[...he.FRONT_COLUMNS,...he.BACK_COLUMNS],ge=J((e=>e&&he.FRONT_COLUMNS.includes(e)),"isFrontSpecialColumn"),ve=J((e=>e&&he.BACK_COLUMNS.includes(e)),"isBackSpecialColumn"),fe=J((e=>{const{type:t,prop:a,fixed:l}=e;return!(!a||!Ke.has(a))||(!(!t||!me.includes(t))||(!(!a||!he.EXCLUDE_FROM_SETTING.props.includes(a))||!(!he.EXCLUDE_FROM_SETTING.fixed||!l)))}),"shouldExcludeFromSetting"),ye=a(ne.searchFormShow),Se=J((e=>Array.isArray(ne.toolButton)?ne.toolButton.includes(e):ne.toolButton),"showToolButton"),be=a(""),{selectionChange:Ce,selectedList:we,selectedListIds:_e,isSelected:ke}=N(ne.rowKey),qe=J((()=>{const e=pe.value?.$el;if(e){const t=e.querySelector(".el-scrollbar__wrap");t&&(t.scrollTop=0)}}),"scrollToTop"),xe=J((()=>{je.value=!0,$e.value=!1,Ie.value=!1}),"resetScrollPagination"),{tableData:Te,pageable:Ae,searchParam:Be,searchInitParam:Ee,getTableList:Pe,search:Ne,reset:Oe,handleSizeChange:Fe,handleCurrentChange:Le,loading:Me}=O(ne.requestApi,ne.initParam,ne.pagination||ne.enableScrollPagination,ne.dataCallback,ne.requestError,ne.pageSize,qe,xe,ne.enableScrollPagination),ze=J((async()=>{ne.enableScrollPagination&&xe(),await Pe()}),"getTableList"),$e=a(!1),je=a(!0),Ie=a(!1),Ue=J((async()=>{if($e.value||!je.value||Ie.value||!ne.enableScrollPagination)return;if(0===Ae.value.total)return;const e=Math.ceil(Ae.value.total/Ae.value.pageSize);if(Ae.value.pageNum>=e)je.value=!1;else try{$e.value=!0,Ie.value=!0;const e=Ae.value.pageNum+1,t={...Ee.value,...Be.value,currPage:e,pageSize:Ae.value.pageSize,params:{...Ee.value,...Be.value}};if(ne.requestApi){const{result:e}=await ne.requestApi(t),a=ne.dataCallback?ne.dataCallback(e):e;if(a&&a.list&&Array.isArray(a.list)&&a.list.length>0){Array.isArray(Te.value)||(Te.value=[]),Te.value.push(...a.list);const{currPage:e,limit:t,total:l}=a;Ae.value.pageNum=e,Ae.value.pageSize=t,Ae.value.total=l;const r=Math.ceil(l/t);je.value=e<r}else je.value=!1,console.log("❌ 滚动翻页没有更多数据")}}catch(e){ne.requestError&&ne.requestError(e)}finally{$e.value=!1,setTimeout((()=>{Ie.value=!1}),1e3)}}),"handleScrollPagination"),He=J((e=>{if(!ne.enableScrollPagination||!ne.requestApi)return;if($e.value||!je.value)return;const t=pe.value?.$el;if(!t)return;const a=t.querySelector(".el-scrollbar__wrap");if(!a)return;const l=a.scrollTop;a.scrollHeight-l-a.clientHeight<=ne.scrollPaginationThreshold&&Ue()}),"handleScroll"),Ve=J((()=>{pe.value&&pe.value.clearSelection()}),"clearSelection");r((()=>{ne.requestAuto&&ze(),ne.data&&(Ae.value.total=ne.data.length),ne.enableScrollPagination&&setTimeout((()=>{const e=pe.value?.$el;if(e){const t=e.querySelector(".el-scrollbar__wrap");t&&(t.removeEventListener("scroll",He),t.addEventListener("scroll",He,{passive:!0}))}}),500)})),o((()=>{if(ne.enableScrollPagination){const e=pe.value?.$el;if(e){const t=e.querySelector(".el-scrollbar__wrap");t&&t.removeEventListener("scroll",He)}}}));const Re=l((()=>{if(Array.isArray(Te.value)||(Te.value=[]),ne.data){if(!Array.isArray(ne.data))return console.warn("props.data 不是数组:",ne.data),[];if(!ne.pagination)return ne.data;const e=n(ne.data).slice((Ae.value.pageNum-1)*Ae.value.pageSize,Ae.value.pageSize*Ae.value.pageNum);return i(e)}return Te.value}));s((()=>ne.initParam),(()=>{ze()}),{deep:!0}),s((()=>Te.value),(()=>{ne.enableScrollPagination&&je.value&&u((()=>{setTimeout((()=>{const e=pe.value?.$el;if(e){e.querySelector(".el-scrollbar__wrap")&&He({})}}),100)}))}),{deep:!0});let De=i(ne.columns);const Ke=new Set,Ge=J((e=>{e.forEach((e=>{!1===e.isShow&&(e.search?.el||e.search?.render)&&e.prop&&Ke.add(e.prop),e._children?.length&&Ge(e._children)}))}),"recordInitialFilterOnlyColumns");Ge(ne.columns);const Xe=l((()=>Qe(De))),Je=a(new Map),Ze=J((async({prop:e,enum:t,dictCode:a})=>{if(a&&se&&se.value?.dictMap)return void Je.value.set(e,se.value.dictMap[a?.toString()]??[]);if(!t)return;if(Je.value.has(e)&&("function"==typeof t||Je.value.get(e)===t))return;if("function"!=typeof t)return Je.value.set(e,c(t));Je.value.set(e,[]);let l=await t();l=l?.result||l,Je.value.set(e,l)}),"setEnumMap");p("enumMap",Je);const Qe=J(((e,t=[])=>(e.forEach((async e=>{e._children?.length&&t.push(...Qe(e._children)),t.push(e),e.isShow=e.isShow??!0,e.isShowInView=e.isShowInView??!0,e.isFilterEnum=e.isFilterEnum??!0,await Ze(e)})),t.filter((e=>!e._children?.length)))),"flatColumnsFunc"),We=l((()=>Xe.value?.filter((e=>e.search?.el||e.search?.render)).sort(((e,t)=>e.search.order-t.search.order))));We.value?.forEach(((e,t)=>{e.search.order=e.search?.order??t+2;const a=e.search?.key??L(e.prop),l=e.search?.defaultValue;null!=l&&(Ee.value[a]=l,Be.value[a]=l)}));const Ye=a(),et=a([]),tt=a(!1),at=J((()=>{et.value=De.filter((e=>!fe(e)))}),"initColSetting");at(),s((()=>De),(()=>{tt.value||(console.log("检测到 tableColumns 变化,同步更新 colSetting"),at())}),{deep:!0});const lt=J((e=>{if(!tt.value)if(ie&&!ie.isUnmounted)try{if(tt.value=!0,!e||!Array.isArray(e)||0===e.length)return void console.warn("updateTableColumns: 无效的列设置数据",{hasNewColSetting:!!e,isArray:Array.isArray(e),length:e?.length});let t;try{t=JSON.parse(JSON.stringify(e))}catch(a){console.warn("深拷贝列设置数据失败,使用浅拷贝"),t=[...e]}const a=new Map,l=[...De];l.forEach((e=>{e&&e.prop&&a.set(e.prop,e)}));const r=[],o=new Set;l.forEach((e=>{e&&(ge(e.type)||"left"===e.fixed)&&(r.push(e),e.prop&&o.add(e.prop))})),t.forEach((e=>{if(e&&e.prop&&a.has(e.prop)&&!o.has(e.prop)){const t=a.get(e.prop);if(t)try{const a={...t};a.isShow=e.isShow,a.sortable=e.sortable,r.push(a),o.add(e.prop)}catch(a){console.warn("更新列配置时出错:",a),r.push(t),o.add(e.prop)}}})),l.forEach((e=>{!e||e.prop&&o.has(e.prop)||!ve(e.type)&&(me.includes(e.type)||"left"===e.fixed)||r.push(e)})),setTimeout((()=>{if(ie&&!ie.isUnmounted)try{De.length=0,r.forEach((e=>{e&&De.push(e)})),et.value=t}catch(e){console.warn("更新表格列时出错:",e)}finally{tt.value=!1}else console.warn("延迟更新时组件已销毁")}),50)}catch(e){console.warn("updateTableColumns执行时出错:",e),tt.value=!1}else console.warn("组件已销毁,跳过列更新")}),"updateTableColumns"),rt=J((()=>{Ye.value.openColSetting()}),"openColSetting"),ot=J((()=>{Ye.value.closeColSetting()}),"closeColSetting"),nt=oe,it=J((()=>{Ne(),nt("search")}),"_search"),st=J((()=>{Oe(),nt("reset")}),"_reset"),ut=J(((e,t,a,l)=>{nt("handleOperateBtnsClick",e,t,a,l)}),"handleOperateBtnsClick"),ct=J((()=>{ze()}),"refreshTable");return X({element:pe,tableData:Re,radio:be,pageable:Ae,searchParam:Be,searchInitParam:Ee,getTableList:ze,search:Ne,reset:Oe,handleSizeChange:Fe,handleCurrentChange:Le,clearSelection:Ve,enumMap:Je,isSelected:ke,selectedList:we,selectedListIds:_e,refreshTable:ct,setSearchFormShow:J((e=>{ye.value=e}),"setSearchFormShow"),getColumns:J((()=>De),"getColumns"),getColSetting:J((()=>et.value),"getColSetting"),openColSetting:rt,closeColSetting:ot}),(t,a)=>{const l=d("el-button"),r=d("el-radio"),o=d("el-icon"),n=d("el-tag"),i=d("el-table-column"),s=d("el-table-v2"),u=h("loading");return g(),m("div",Z,[v(" 查询表单 "),f(b(V,{search:it,reset:st,columns:We.value,"search-param":c(Be),"search-col":e.searchCol},null,8,["columns","search-param","search-col"]),[[C,ye.value]]),v(" 表格主体 "),y("div",{class:w([e.onlyTable?"only-table":"card table-main"])},[v(" 表格头部 操作按钮 "),y("div",Q,[y("div",W,[_(t.$slots,"tableHeader",{selectedList:c(we),selectedListIds:c(_e),isSelected:c(ke)})]),e.toolButton?(g(),m("div",Y,[_(t.$slots,"toolButton",{},(()=>[Se("refresh")?(g(),S(l,{key:0,icon:c(M),circle:"",onClick:ze},null,8,["icon"])):v("v-if",!0),Se("setting")&&e.columns.length?(g(),S(l,{key:1,icon:c(z),circle:"",onClick:rt},null,8,["icon"])):v("v-if",!0),Se("search")&&We.value?.length?(g(),S(l,{key:2,icon:c($),circle:"",onClick:a[0]||(a[0]=e=>ye.value=!ye.value)},null,8,["icon"])):v("v-if",!0)]))])):v("v-if",!0)]),v(" 表格主体 "),f((g(),S(s,k({ref_key:"tableRef",ref:pe},t.$attrs,{data:Re.value,border:e.border,id:de.value,"row-key":e.rowKey,height:ce.value,onSelectionChange:c(Ce),onScroll:He}),{append:q((()=>[_(t.$slots,"append"),v(" 滚动翻页加载状态 "),!ne.enableScrollPagination||!$e.value&&je.value?v("v-if",!0):(g(),m("div",te,[$e.value?(g(),m("div",ae,[b(o,{class:"is-loading"},{default:q((()=>[b(c(I))])),_:1
12
+ /* STABLE */}),a[3]||(a[3]=y("span",null,"正在加载更多数据...",-1
13
+ /* HOISTED */))])):je.value?v("v-if",!0):(g(),m("div",le,a[4]||(a[4]=[y("span",null,"没有更多数据了",-1
14
+ /* HOISTED */)])))]))])),empty:q((()=>[y("div",re,[_(t.$slots,"empty",{},(()=>[a[5]||(a[5]=y("img",{src:P,alt:"notData"},null,-1
15
+ /* HOISTED */)),a[6]||(a[6]=y("div",null,"暂无数据",-1
16
+ /* HOISTED */))]))])])),default:q((()=>[_(t.$slots,"default"),(g(!0),m(x,null,T(c(De),(l=>(g(),m(x,{key:l},[v(" selection || radio || index || expand || sort "),l.type&&me.includes(l.type)?(g(),S(i,k({key:0,ref_for:!0},l,{selectable:J((e=>null==e.selectable||null==e.selectable||e.selectable),"selectable"),align:l.align??"center","reserve-selection":"selection"==l.type}),{default:q((i=>[v(" index "),"index"==l.type?(g(),m("span",ee,A(e.pagination&&!e.enableScrollPagination?(c(Ae).pageNum-1)*c(Ae).pageSize+i.$index+1:i.$index+1),1
17
+ /* TEXT */)):"expand"==l.type?(g(),m(x,{key:1},[v(" expand "),l.render?(g(),S(B(l.render),k({key:0,ref_for:!0},i),null,16
18
+ /* FULL_PROPS */)):_(t.$slots,l.type,k({key:1,ref_for:!0},i))],64
19
+ /* STABLE_FRAGMENT */)):"radio"==l.type?(g(),m(x,{key:2},[v(" radio "),b(r,{modelValue:be.value,"onUpdate:modelValue":a[1]||(a[1]=e=>be.value=e),label:i.row[e.rowKey]},{default:q((()=>a[2]||(a[2]=[y("i",null,null,-1
20
+ /* HOISTED */)]))),_:2
21
+ /* DYNAMIC */},1032,["modelValue","label"])],2112
22
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */)):"sort"==l.type?(g(),m(x,{key:3},[v(" sort "),b(n,{class:"move"},{default:q((()=>[b(o,null,{default:q((()=>[b(c(j))])),_:1
23
+ /* STABLE */})])),_:1
24
+ /* STABLE */})],2112
25
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */)):"operationBtns"==l.type?(g(),m(x,{key:4},[v(" operationBtns "),b(R,k({ref_for:!0},l.props,{row:i.row,index:i.$index,onBtnClick:ut}),null,16,["row","index"])],2112
26
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */)):v("v-if",!0)])),_:2
27
+ /* DYNAMIC */},1040,["selectable","align","reserve-selection"])):v("v-if",!0),v(" other "),!l.type&&l.prop&&l.isShow&&(!c(e.isView)||c(e.isView)&&l.isShowInView)?(g(),S(D,{key:1,column:l,"is-view":e.isView},E({_:2
28
+ /* DYNAMIC */},[T(Object.keys(t.$slots),(e=>({name:e,fn:q((a=>[_(t.$slots,e,k({ref_for:!0},a))]))})))]),1032,["column","is-view"])):v("v-if",!0)],64
29
+ /* STABLE_FRAGMENT */)))),128
30
+ /* KEYED_FRAGMENT */))])),_:3
31
+ /* FORWARDED */},16,["data","border","id","row-key","height","onSelectionChange"])),[[u,c(Me)]]),v(" 分页组件 "),_(t.$slots,"pagination",{},(()=>[e.pagination&&!e.enableScrollPagination?(g(),S(K,{key:0,pageable:c(Ae),"handle-size-change":c(Fe),"handle-current-change":c(Le),"page-size-options":e.pageSizeOptions},null,8,["pageable","handle-size-change","handle-current-change","page-size-options"])):v("v-if",!0)]))],2
32
+ /* CLASS */),v(" 列设置 "),e.toolButton?(g(),S(G,{key:0,ref_key:"colRef",ref:Ye,"col-setting":et.value,onUpdateColumns:lt},{colSettingHeader:q((()=>[_(t.$slots,"colSettingHeader")])),_:3
33
+ /* FORWARDED */},8,["col-setting"])):v("v-if",!0)])}}});export{oe as default};
34
+ //# sourceMappingURL=index.vue2.mjs.map