@fmdevui/fm-dev 1.0.97 → 1.0.99

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 (137) hide show
  1. package/es/_virtual/de-DE.mjs +1 -1
  2. package/es/_virtual/en-US.mjs +1 -1
  3. package/es/_virtual/es-ES.mjs +1 -1
  4. package/es/_virtual/fr-FR.mjs +1 -1
  5. package/es/_virtual/it-IT.mjs +1 -1
  6. package/es/_virtual/ja-JP.mjs +1 -1
  7. package/es/_virtual/ko-KR.mjs +1 -1
  8. package/es/_virtual/nb-NO.mjs +1 -1
  9. package/es/_virtual/pt-BR.mjs +1 -1
  10. package/es/_virtual/ru-RU.mjs +1 -1
  11. package/es/_virtual/th-TH.mjs +1 -1
  12. package/es/_virtual/vi-VN.mjs +1 -1
  13. package/es/_virtual/zh-CN.mjs +1 -1
  14. package/es/_virtual/zh-HK.mjs +1 -1
  15. package/es/_virtual/zh-TW.mjs +1 -1
  16. package/es/component.mjs +2 -1
  17. package/es/core/hook/useVxeTableOptionsHook.d.ts +16 -8
  18. package/es/core/ui/components/fmtree/index.vue.d.ts +1 -2
  19. package/es/core/ui/components/index.d.ts +379 -25
  20. package/es/core/ui/components/inpttable/index.vue.d.ts +503 -0
  21. package/es/core/ui/components/querycondition/index.vue.d.ts +1 -1
  22. package/es/core/ui/components/selecttable/index.vue.d.ts +6 -6
  23. package/es/{defaults.css → index.css} +3 -0
  24. package/es/index.mjs +1 -1
  25. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/de.mjs +51 -8
  26. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/en.mjs +9 -3
  27. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/es.mjs +52 -3
  28. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/fi.mjs +51 -3
  29. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/fr.mjs +14 -4
  30. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/id.mjs +49 -3
  31. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/it.mjs +52 -3
  32. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ja.mjs +47 -4
  33. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ko.mjs +20 -2
  34. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ms.mjs +13 -5
  35. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/no.mjs +12 -5
  36. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/pl.mjs +47 -5
  37. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/pt.mjs +51 -3
  38. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ru.mjs +47 -5
  39. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/th.mjs +47 -4
  40. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/vi.mjs +47 -4
  41. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/zh-cn.mjs +12 -5
  42. package/es/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/zh-tw.mjs +9 -2
  43. package/es/packages/core/index.mjs +1 -1
  44. package/es/packages/core/locales/index.mjs +18 -18
  45. package/es/packages/core/ui/components/index.mjs +3 -1
  46. package/es/packages/core/ui/components/inpttable/index.vue.mjs +8 -0
  47. package/es/packages/core/ui/components/inpttable/index.vue2.mjs +772 -0
  48. package/es/packages/core/ui/components/inpttable/index.vue3.mjs +3 -0
  49. package/es/packages/core/ui/components/inpttable/index.vue4.mjs +3 -0
  50. package/index.css +129 -0
  51. package/index.js +1425 -94
  52. package/index.min.css +3 -0
  53. package/index.min.js +51 -30
  54. package/index.min.mjs +48 -27
  55. package/index.mjs +1426 -96
  56. package/lib/_virtual/de-DE.js +1 -1
  57. package/lib/_virtual/en-US.js +1 -1
  58. package/lib/_virtual/es-ES.js +1 -1
  59. package/lib/_virtual/fr-FR.js +1 -1
  60. package/lib/_virtual/it-IT.js +1 -1
  61. package/lib/_virtual/ja-JP.js +1 -1
  62. package/lib/_virtual/ko-KR.js +1 -1
  63. package/lib/_virtual/nb-NO.js +1 -1
  64. package/lib/_virtual/pt-BR.js +1 -1
  65. package/lib/_virtual/ru-RU.js +1 -1
  66. package/lib/_virtual/th-TH.js +1 -1
  67. package/lib/_virtual/vi-VN.js +1 -1
  68. package/lib/_virtual/zh-CN.js +1 -1
  69. package/lib/_virtual/zh-HK.js +1 -1
  70. package/lib/_virtual/zh-TW.js +1 -1
  71. package/lib/component.js +1 -0
  72. package/lib/core/hook/useVxeTableOptionsHook.d.ts +16 -8
  73. package/lib/core/ui/components/fmtree/index.vue.d.ts +1 -2
  74. package/lib/core/ui/components/index.d.ts +379 -25
  75. package/lib/core/ui/components/inpttable/index.vue.d.ts +503 -0
  76. package/lib/core/ui/components/querycondition/index.vue.d.ts +1 -1
  77. package/lib/core/ui/components/selecttable/index.vue.d.ts +6 -6
  78. package/lib/index.css +3 -0
  79. package/lib/index.js +1 -0
  80. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/de.js +51 -8
  81. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/en.js +9 -3
  82. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/es.js +52 -3
  83. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/fi.js +51 -3
  84. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/fr.js +14 -4
  85. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/id.js +49 -3
  86. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/it.js +52 -3
  87. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ja.js +47 -4
  88. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ko.js +20 -2
  89. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ms.js +13 -5
  90. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/no.js +12 -5
  91. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/pl.js +47 -5
  92. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/pt.js +51 -3
  93. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/ru.js +47 -5
  94. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/th.js +47 -4
  95. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/vi.js +47 -4
  96. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/zh-cn.js +12 -5
  97. package/lib/node_modules/.pnpm/{element-plus@2.11.1_vue@3.5.22_typescript@5.8.3_ → element-plus@2.11.7_vue@3.5.22_typescript@5.8.3_}/node_modules/element-plus/es/locale/lang/zh-tw.js +9 -2
  98. package/lib/packages/core/index.js +1 -0
  99. package/lib/packages/core/locales/index.js +18 -18
  100. package/lib/packages/core/ui/components/index.js +3 -0
  101. package/lib/packages/core/ui/components/inpttable/index.vue.js +12 -0
  102. package/lib/packages/core/ui/components/inpttable/index.vue2.js +776 -0
  103. package/lib/packages/core/ui/components/inpttable/index.vue3.js +7 -0
  104. package/lib/packages/core/ui/components/inpttable/index.vue4.js +7 -0
  105. package/package.json +1 -1
  106. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/de-DE.mjs +0 -0
  107. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/en-US.mjs +0 -0
  108. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/es-ES.mjs +0 -0
  109. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/fr-FR.mjs +0 -0
  110. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/it-IT.mjs +0 -0
  111. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ja-JP.mjs +0 -0
  112. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ko-KR.mjs +0 -0
  113. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/nb-NO.mjs +0 -0
  114. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/pt-BR.mjs +0 -0
  115. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ru-RU.mjs +0 -0
  116. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/th-TH.mjs +0 -0
  117. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/vi-VN.mjs +0 -0
  118. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CHT.mjs +0 -0
  119. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CN.mjs +0 -0
  120. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-HK.mjs +0 -0
  121. /package/es/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-TW.mjs +0 -0
  122. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/de-DE.js +0 -0
  123. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/en-US.js +0 -0
  124. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/es-ES.js +0 -0
  125. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/fr-FR.js +0 -0
  126. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/it-IT.js +0 -0
  127. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ja-JP.js +0 -0
  128. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ko-KR.js +0 -0
  129. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/nb-NO.js +0 -0
  130. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/pt-BR.js +0 -0
  131. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ru-RU.js +0 -0
  132. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/th-TH.js +0 -0
  133. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/vi-VN.js +0 -0
  134. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CHT.js +0 -0
  135. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CN.js +0 -0
  136. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-HK.js +0 -0
  137. /package/lib/node_modules/.pnpm/{vxe-table@4.17.4_vue@3.5.22_typescript@5.8.3_ → vxe-table@4.17.7_vue@3.5.22_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-TW.js +0 -0
@@ -0,0 +1,772 @@
1
+ import { defineComponent, ref, reactive, computed, onMounted, onUnmounted, watch, resolveComponent, resolveDirective, createElementBlock, openBlock, Fragment, createCommentVNode, createVNode, mergeProps, withCtx, withDirectives, renderList, createBlock, withModifiers, renderSlot, createTextVNode } from 'vue';
2
+ import { ElMessage } from 'element-plus';
3
+ import { useBaseApi } from '../../../api/base/index.mjs';
4
+
5
+ const _hoisted_1 = { class: "w100 selector-loading-container" };
6
+ var _sfc_main = /* @__PURE__ */ defineComponent({
7
+ ...{
8
+ name: "Fminputtable"
9
+ },
10
+ __name: "index",
11
+ props: {
12
+ /**
13
+ * 使用示例:
14
+ *
15
+ * 单选模式:
16
+ * <pulldown-selecter
17
+ * v-model="state.ruleForm.userId"
18
+ * :defaultOptions="[ id: state.ruleForm.userId, realName: state.ruleForm.realName ]"
19
+ * :fetch-options="handleSysUserTable"
20
+ * :queryParams="state.queryParams"
21
+ * :dropdown-width="dropdownWidth"
22
+ * :placeholder="placeholder"
23
+ * :label-prop="realName"
24
+ * :value-prop="id"
25
+ * @@change="handelChange"
26
+ * filterable
27
+ * clearable
28
+ * class="w100"
29
+ * >
30
+ *
31
+ * 多选模式:
32
+ * <pulldown-selecter
33
+ * v-model="state.ruleForm.userIds"
34
+ * :defaultOptions="state.ruleForm.defaultUsers"
35
+ * :fetch-options="handleSysUserTable"
36
+ * :queryParams="state.queryParams"
37
+ * :dropdown-width="dropdownWidth"
38
+ * :placeholder="placeholder"
39
+ * :label-prop="realName"
40
+ * :value-prop="id"
41
+ * @@change="handelChange"
42
+ * multiple
43
+ * filterable
44
+ * clearable
45
+ * class="w100"
46
+ * >
47
+ *
48
+ * 查询条件表单插槽:
49
+ * <template #queryForm="{ query, handleQuery }">
50
+ * <el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
51
+ * <el-form-item label="姓名" prop="realName">
52
+ * <el-input v-model="query.realName" placeholder="请输入姓名" class="w100" clearable @keydown.enter.native="handleQuery()" />
53
+ * </el-form-item>
54
+ * </el-col>
55
+ * <el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
56
+ * <el-form-item label="电话" prop="phone">
57
+ * <el-input v-model="query.phone" placeholder="请输入电话" class="w100" clearable @keydown.enter.native="handleQuery()" />
58
+ * </el-form-item>
59
+ * </el-col>
60
+ * </template>
61
+ *
62
+ * 表格列插槽:
63
+ * <template #columns>
64
+ * <el-table-column prop="realName" label="姓名" />
65
+ * <el-table-column prop="account" label="账号" width="160"/ >
66
+ * <el-table-column prop="idCardNo" label="身份证号" width="140" />
67
+ * <el-table-column prop="cardNo" label="卡号" width="140" />
68
+ * <el-table-column prop="gender" label="性别" width="85">
69
+ * <template #default="{ row }">
70
+ * <g-sys-dict v-model="row.gender" code="GenderEnum" />
71
+ * </template>
72
+ * </el-table-column>
73
+ * <el-table-column prop="birthday" label="生日">
74
+ * <template #default="{ row, $index }">
75
+ * {{ commonFun.dateFormatYMD(row, $index, row.birthday) }}
76
+ * </template>
77
+ * </el-table-column>
78
+ * <el-table-column prop="phone" label="联系电话" width="100" />
79
+ * </template>
80
+ * </pulldown-selecter>
81
+ */
82
+ // v-model绑定的值,支持字符串、数字、数组或null类型
83
+ modelValue: [String, Number, Array, null],
84
+ /**
85
+ * 获取表格数据的异步方法(必填)
86
+ * @example
87
+ * const handleSysUserTable = (params: any) => {
88
+ * return getAPI(SysUserApi).apiSysUserPagePost(params);
89
+ * };
90
+ */
91
+ fetchOptions: {
92
+ type: Function,
93
+ // 函数类型
94
+ required: true
95
+ // 必填项
96
+ },
97
+ /**
98
+ * api service name
99
+ */
100
+ apiService: {
101
+ type: String,
102
+ default: "baseData"
103
+ },
104
+ /**
105
+ * api service 下的方法
106
+ */
107
+ apiAction: {
108
+ type: String,
109
+ default: "BaseData"
110
+ },
111
+ /**
112
+ * 基础编码 自动获取数据
113
+ */
114
+ method: {
115
+ type: String,
116
+ default: "post"
117
+ },
118
+ /**
119
+ * 选中记录后绑定值的属性名
120
+ * 默认为'id',即选中某行后,会取该行数据的id字段作为值
121
+ */
122
+ valueProp: {
123
+ type: String,
124
+ default: "id"
125
+ },
126
+ /**
127
+ * 选中记录后显示文本的属性名
128
+ * 默认为'name',即在下拉框中显示的文本取自该字段
129
+ */
130
+ labelProp: {
131
+ type: String,
132
+ default: "name"
133
+ },
134
+ /**
135
+ * 显示值的格式化方法
136
+ * 可以自定义选中后在输入框中显示的文本格式
137
+ * @example
138
+ * :labelFormat="(item: any) => `${item.realName}(${item.account})`"
139
+ */
140
+ labelFormat: {
141
+ type: Function,
142
+ default: (item) => void 0
143
+ // 默认不进行格式化
144
+ },
145
+ /**
146
+ * 默认查询条件的属性名
147
+ * 在输入框中输入的关键词会赋值给该字段
148
+ */
149
+ keywordProp: {
150
+ type: String,
151
+ default: "keyword"
152
+ },
153
+ /**
154
+ * 下拉框的宽度
155
+ */
156
+ dropdownWidth: {
157
+ type: String,
158
+ default: "100%"
159
+ },
160
+ /**
161
+ * 下拉框的高度
162
+ */
163
+ dropdownHeight: {
164
+ type: String,
165
+ default: "550px"
166
+ },
167
+ /**
168
+ * 输入框的占位符文本
169
+ */
170
+ placeholder: {
171
+ type: String,
172
+ default: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD"
173
+ },
174
+ /**
175
+ * 默认选项,用于回显已选中的数据
176
+ * 当数据不在当前页时,通过该属性提供数据进行回显
177
+ */
178
+ defaultOptions: {
179
+ type: Array,
180
+ default: []
181
+ },
182
+ /**
183
+ * 查询表单的高度偏移量
184
+ * 用于计算表格高度时减去查询表单占用的高度
185
+ */
186
+ queryHeightOffset: {
187
+ type: Number,
188
+ default: 35
189
+ },
190
+ /**
191
+ * 查询表单标签的宽度
192
+ */
193
+ queryLabelWidth: {
194
+ type: String
195
+ },
196
+ /**
197
+ * 查询参数对象
198
+ * 父组件传入的额外查询条件,会与组件内部的查询条件合并
199
+ */
200
+ queryParams: {
201
+ type: Object,
202
+ default: () => {
203
+ return {};
204
+ }
205
+ },
206
+ /**
207
+ * 是否显示分页组件
208
+ */
209
+ pagination: {
210
+ type: Boolean,
211
+ default: true
212
+ },
213
+ /**
214
+ * 是否禁用组件
215
+ */
216
+ disabled: Boolean,
217
+ /**
218
+ * 是否多选模式
219
+ */
220
+ multiple: Boolean,
221
+ /**
222
+ * 是否可清空
223
+ */
224
+ clearable: Boolean
225
+ },
226
+ emits: ["update:modelValue", "change"],
227
+ setup(__props, { expose: __expose, emit: __emit }) {
228
+ const CONSTANTS = {
229
+ MAX_PAGE_SIZE: 99999,
230
+ // 不分页时的最大页面大小
231
+ DROPDOWN_DELAY: 1e3,
232
+ // 下拉框打开后的延迟时间(毫秒)
233
+ TABLE_HEIGHT_OFFSET: 175
234
+ // 表格高度基础偏移量(像素)
235
+ };
236
+ const props = __props;
237
+ const tableRef = ref();
238
+ const selectRef = ref();
239
+ const emit = __emit;
240
+ const state = reactive({
241
+ // 当前选中的值,单选时为字符串/数字,多选时为数组
242
+ selectedValues: "",
243
+ // 表格查询参数对象
244
+ tableQuery: {
245
+ [props.keywordProp]: "",
246
+ // 动态属性名,默认为'keyword',用于存储搜索关键词
247
+ page: props.queryParams.page,
248
+ // 当前页码,从父组件传入
249
+ pageSize: props.queryParams?.pageSize
250
+ // 每页显示数量,从父组件传入
251
+ },
252
+ // 表格数据对象
253
+ tableData: {
254
+ items: [],
255
+ // 当前页的数据列表
256
+ total: 0
257
+ // 总数据条数
258
+ },
259
+ // 默认选项数组,用于回显
260
+ defaultOptions: props.defaultOptions,
261
+ // 加载状态标识
262
+ loading: false,
263
+ // 选中的行数据数组,用于表格高亮显示和跨页选择
264
+ selectedRows: [],
265
+ // 查询执行标识,防止重复执行
266
+ isQuerying: false,
267
+ // 下拉框是否刚打开的标识(用于防止remoteMethod在打开时重复查询)
268
+ justOpened: false
269
+ });
270
+ const currentRowIndex = ref(-1);
271
+ const tableHeight = computed(() => {
272
+ const baseHeight = `${props.dropdownHeight} - ${CONSTANTS.TABLE_HEIGHT_OFFSET}px`;
273
+ const queryOffset = props.queryHeightOffset > 0 ? ` - ${props.queryHeightOffset}px` : "";
274
+ return `calc(${baseHeight}${queryOffset})`;
275
+ });
276
+ const mergeSelectedRows = (values) => {
277
+ const currentPageRows = state.tableData.items.filter(
278
+ (item) => values.includes(item[props.valueProp])
279
+ );
280
+ const previousRows = state.selectedRows.filter(
281
+ (item) => values.includes(item[props.valueProp])
282
+ );
283
+ const allRows = [...currentPageRows];
284
+ previousRows.forEach((row) => {
285
+ if (!allRows.find((item) => item[props.valueProp] === row[props.valueProp])) {
286
+ allRows.push(row);
287
+ }
288
+ });
289
+ return allRows;
290
+ };
291
+ const isRowSelected = (row) => {
292
+ if (!row || row[props.valueProp] === void 0 || row[props.valueProp] === null) {
293
+ return false;
294
+ }
295
+ if (props.multiple) {
296
+ if (!Array.isArray(state.selectedValues)) {
297
+ return false;
298
+ }
299
+ return state.selectedValues.some((val) => val === row[props.valueProp]);
300
+ } else {
301
+ return state.selectedValues !== null && state.selectedValues !== void 0 && state.selectedValues === row[props.valueProp];
302
+ }
303
+ };
304
+ const updateSelectedRows = () => {
305
+ if (props.multiple) {
306
+ const selectedValues = Array.isArray(state.selectedValues) ? state.selectedValues : [];
307
+ state.selectedRows = mergeSelectedRows(selectedValues);
308
+ } else {
309
+ const selectedRow = state.tableData.items.find(
310
+ (item) => item[props.valueProp] === state.selectedValues
311
+ );
312
+ state.selectedRows = selectedRow ? [selectedRow] : [];
313
+ }
314
+ };
315
+ const handleKeydown = (e) => {
316
+ const tableData = state.tableData?.items || [];
317
+ if (!tableData.length) return;
318
+ if (e.key === "ArrowDown" || e.key === "ArrowUp") {
319
+ e.preventDefault();
320
+ const direction = e.key === "ArrowDown" ? 1 : -1;
321
+ const newIndex = Math.max(0, Math.min(currentRowIndex.value + direction, tableData.length - 1));
322
+ if (newIndex !== currentRowIndex.value) {
323
+ currentRowIndex.value = newIndex;
324
+ const row = tableData[newIndex];
325
+ tableRef.value?.setCurrentRow(row);
326
+ }
327
+ } else if (e.key === "Enter") {
328
+ const row = tableData[currentRowIndex.value];
329
+ handleChange(row);
330
+ }
331
+ };
332
+ const handleSizeChange = (pageSize) => {
333
+ state.loading = true;
334
+ state.tableQuery.pageSize = pageSize;
335
+ state.tableQuery.page = 1;
336
+ executeQuery();
337
+ };
338
+ const handleCurrentChange = (page) => {
339
+ state.loading = true;
340
+ state.tableQuery.page = page;
341
+ executeQuery();
342
+ };
343
+ onMounted(() => {
344
+ selectRef.value?.inputRef?.addEventListener("keydown", handleKeydown);
345
+ });
346
+ onUnmounted(() => {
347
+ selectRef.value?.inputRef?.removeEventListener("keydown", handleKeydown);
348
+ });
349
+ const executeQuery = () => {
350
+ if (state.isQuerying) {
351
+ return;
352
+ }
353
+ state.isQuerying = true;
354
+ state.loading = true;
355
+ const finalParams = Object.assign({}, props.queryParams, state.tableQuery);
356
+ if (typeof props.fetchOptions === "function") {
357
+ props.fetchOptions(finalParams).then((res) => {
358
+ const result = res.data?.result;
359
+ state.tableData.items = result?.items ?? [];
360
+ state.tableData.total = result?.total ?? 0;
361
+ state.loading = false;
362
+ state.isQuerying = false;
363
+ updateSelectedRows();
364
+ }).catch((error) => {
365
+ ElMessage.error("\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
366
+ state.tableData.items = [];
367
+ state.tableData.total = 0;
368
+ state.loading = false;
369
+ state.isQuerying = false;
370
+ });
371
+ } else {
372
+ if (props.method == "post") {
373
+ useBaseApi(props.apiAction).post(finalParams, props.apiAction).then((res) => {
374
+ const result = res.data?.result;
375
+ state.tableData.items = result?.items ?? [];
376
+ state.tableData.total = result?.total ?? 0;
377
+ state.loading = false;
378
+ state.isQuerying = false;
379
+ updateSelectedRows();
380
+ }).catch((error) => {
381
+ ElMessage.error("\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
382
+ state.tableData.items = [];
383
+ state.tableData.total = 0;
384
+ state.loading = false;
385
+ state.isQuerying = false;
386
+ });
387
+ } else {
388
+ useBaseApi(props.apiAction).get(finalParams, props.apiAction).then((res) => {
389
+ const result = res.data?.result;
390
+ state.tableData.items = result?.items ?? [];
391
+ state.tableData.total = result?.total ?? 0;
392
+ state.loading = false;
393
+ state.isQuerying = false;
394
+ updateSelectedRows();
395
+ }).catch((error) => {
396
+ ElMessage.error("\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
397
+ state.tableData.items = [];
398
+ state.tableData.total = 0;
399
+ state.loading = false;
400
+ state.isQuerying = false;
401
+ });
402
+ }
403
+ }
404
+ };
405
+ const resetQuery = () => {
406
+ state.loading = true;
407
+ const currentPageSize = state.tableQuery.pageSize;
408
+ state.tableQuery = Object.assign({}, props.queryParams, { pageSize: currentPageSize });
409
+ state.tableQuery.page = 1;
410
+ executeQuery();
411
+ };
412
+ const remoteMethod = (query) => {
413
+ if (state.justOpened) {
414
+ state.justOpened = false;
415
+ return;
416
+ }
417
+ if (state.isQuerying) {
418
+ return;
419
+ }
420
+ state.loading = true;
421
+ if (typeof query === "string") {
422
+ state.tableQuery[props.keywordProp] = query.trim();
423
+ state.tableQuery.page = 1;
424
+ }
425
+ executeQuery();
426
+ };
427
+ const handleQuery = (clearKeyword = false) => {
428
+ state.loading = true;
429
+ if (clearKeyword) {
430
+ state.tableQuery[props.keywordProp] = void 0;
431
+ const input = selectRef.value.$el.querySelector("input");
432
+ if (input) input.value = "";
433
+ }
434
+ state.tableQuery.page = 1;
435
+ remoteMethod(state.tableQuery);
436
+ };
437
+ const handleQueryClick = () => {
438
+ state.loading = true;
439
+ state.tableQuery.page = 1;
440
+ executeQuery();
441
+ };
442
+ const handleChange = (row) => {
443
+ if (!row || !row[props.valueProp]) return;
444
+ if (typeof row[props.valueProp] === "string") row[props.valueProp] = row[props.valueProp]?.trim();
445
+ setDefaultOptions([row]);
446
+ if (props.multiple) {
447
+ if (!Array.isArray(state.selectedValues)) {
448
+ state.selectedValues = [];
449
+ }
450
+ const currentValues = Array.isArray(state.selectedValues) ? [...state.selectedValues] : [];
451
+ const valueIndex = currentValues.indexOf(row[props.valueProp]);
452
+ if (valueIndex > -1) {
453
+ currentValues.splice(valueIndex, 1);
454
+ state.selectedRows = state.selectedRows.filter((item) => item[props.valueProp] !== row[props.valueProp]);
455
+ } else {
456
+ currentValues.push(row[props.valueProp]);
457
+ const existingRow = state.selectedRows.find((item) => item[props.valueProp] === row[props.valueProp]);
458
+ if (!existingRow) {
459
+ state.selectedRows.push(row);
460
+ }
461
+ }
462
+ state.selectedValues = currentValues;
463
+ } else {
464
+ state.selectedValues = row[props.valueProp];
465
+ state.selectedRows = [row];
466
+ }
467
+ emit("update:modelValue", state.selectedValues);
468
+ emit("change", state.selectedValues, props.multiple ? state.selectedRows : row);
469
+ if (!props.multiple) {
470
+ tableRef.value?.setCurrentRow(row);
471
+ selectRef.value?.blur();
472
+ }
473
+ };
474
+ const selectVisibleChange = (visible) => {
475
+ if (visible) {
476
+ state.loading = true;
477
+ state.justOpened = true;
478
+ const paginationParams = {
479
+ page: state.tableQuery.page,
480
+ // 保留当前页码
481
+ pageSize: state.tableQuery.pageSize,
482
+ // 保留分页大小
483
+ [props.keywordProp]: void 0
484
+ // 清空关键词(打开时不带搜索条件)
485
+ };
486
+ state.tableQuery = Object.assign({}, props.queryParams, paginationParams);
487
+ executeQuery();
488
+ setTimeout(() => {
489
+ state.justOpened = false;
490
+ }, CONSTANTS.DROPDOWN_DELAY);
491
+ } else {
492
+ state.loading = false;
493
+ state.justOpened = false;
494
+ }
495
+ };
496
+ const setDefaultOptions = (options) => {
497
+ const map = /* @__PURE__ */ new Map();
498
+ for (const item of [...options ?? [], ...state.defaultOptions]) {
499
+ const value = item?.[props.valueProp];
500
+ const label = props.labelFormat?.(item) || item?.[props.labelProp];
501
+ if (value && label) {
502
+ map.set(value, { [props.valueProp]: value, [props.labelProp]: label });
503
+ }
504
+ }
505
+ state.defaultOptions = Array.from(map.values());
506
+ };
507
+ const setQueryParams = (query, append = true) => {
508
+ if (!props.pagination) {
509
+ query = Object.assign(query, {
510
+ pageSize: CONSTANTS.MAX_PAGE_SIZE
511
+ });
512
+ }
513
+ query = Object.assign({}, props.queryParams, query ?? {});
514
+ state.tableQuery = append ? Object.assign(state.tableQuery, query) : query;
515
+ };
516
+ const setValue = (option, row) => {
517
+ option = Array.isArray(option) ? option : [option];
518
+ state.tableData.total = option.length;
519
+ state.tableData.items = option;
520
+ if (props.multiple) {
521
+ state.selectedValues = option.map((item) => item[props.valueProp]);
522
+ state.selectedRows = option;
523
+ emit("update:modelValue", state.selectedValues);
524
+ emit("change", state.selectedValues, option);
525
+ } else {
526
+ state.selectedValues = option[0]?.[props.valueProp];
527
+ state.selectedRows = option[0] ? [option[0]] : [];
528
+ emit("update:modelValue", state.selectedValues);
529
+ emit("change", state.selectedValues, option[0]);
530
+ }
531
+ };
532
+ const selectedValuesChange = (val) => {
533
+ state.selectedValues = val;
534
+ emit("update:modelValue", val);
535
+ if (props.multiple) {
536
+ const selectedValues = Array.isArray(val) ? val : [];
537
+ const allSelectedRows = mergeSelectedRows(selectedValues);
538
+ state.selectedRows = allSelectedRows;
539
+ emit("change", val, allSelectedRows);
540
+ } else {
541
+ const selectedRow = state.tableData?.items?.find((item) => item[props.valueProp] === val);
542
+ if (selectedRow) {
543
+ state.selectedRows = [selectedRow];
544
+ tableRef.value?.setCurrentRow(selectedRow);
545
+ } else {
546
+ state.selectedRows = [];
547
+ tableRef.value?.setCurrentRow(null);
548
+ }
549
+ emit("change", val, selectedRow);
550
+ }
551
+ };
552
+ const getRowStyle = ({ row }) => {
553
+ return isRowSelected(row) ? {
554
+ backgroundColor: "var(--el-color-primary-light-9)",
555
+ borderLeft: "3px solid var(--el-color-primary)"
556
+ } : {};
557
+ };
558
+ const getRowClassName = ({ row }) => {
559
+ return isRowSelected(row) ? "selected-row" : "";
560
+ };
561
+ watch(
562
+ () => props.modelValue,
563
+ // 监听的数据源
564
+ (val) => {
565
+ if (props.multiple) {
566
+ state.selectedValues = Array.isArray(val) ? val : val ? [val] : [];
567
+ } else {
568
+ state.selectedValues = val;
569
+ }
570
+ updateSelectedRows();
571
+ },
572
+ { immediate: true }
573
+ // 立即执行一次,确保初始化时也能正确设置
574
+ );
575
+ watch(
576
+ () => props.defaultOptions,
577
+ // 监听的数据源
578
+ (val) => setDefaultOptions(val),
579
+ // 调用设置方法
580
+ { immediate: true }
581
+ // 立即执行一次
582
+ );
583
+ __expose({
584
+ setValue,
585
+ // 设置选中值(用于程序化设置选中的数据)
586
+ handleQuery,
587
+ // 执行查询(用于手动触发查询,可选择是否清空关键词)
588
+ setQueryParams,
589
+ // 设置查询参数(用于动态修改查询条件)
590
+ setDefaultOptions
591
+ // 设置默认选项(用于手动添加回显选项)
592
+ });
593
+ return (_ctx, _cache) => {
594
+ const _component_el_option = resolveComponent("el-option");
595
+ const _component_el_button = resolveComponent("el-button");
596
+ const _component_el_button_group = resolveComponent("el-button-group");
597
+ const _component_el_row = resolveComponent("el-row");
598
+ const _component_el_form = resolveComponent("el-form");
599
+ const _component_el_empty = resolveComponent("el-empty");
600
+ const _component_el_table = resolveComponent("el-table");
601
+ const _component_el_pagination = resolveComponent("el-pagination");
602
+ const _component_el_select = resolveComponent("el-select");
603
+ const _directive_reclick = resolveDirective("reclick");
604
+ const _directive_loading = resolveDirective("loading");
605
+ return openBlock(), createElementBlock(
606
+ Fragment,
607
+ null,
608
+ [
609
+ createCommentVNode(" Element Plus\u4E0B\u62C9\u9009\u62E9\u5668\u7EC4\u4EF6 "),
610
+ createVNode(_component_el_select, mergeProps(_ctx.$attrs, {
611
+ modelValue: state.selectedValues,
612
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.selectedValues = $event),
613
+ clearable: __props.clearable,
614
+ multiple: __props.multiple,
615
+ disabled: __props.disabled,
616
+ placeholder: __props.placeholder,
617
+ "remote-method": remoteMethod,
618
+ onVisibleChange: selectVisibleChange,
619
+ onChange: selectedValuesChange,
620
+ style: { width: __props.dropdownWidth },
621
+ "popper-class": "popper-class",
622
+ ref_key: "selectRef",
623
+ ref: selectRef,
624
+ "remote-show-suffix": "",
625
+ filterable: "",
626
+ remote: ""
627
+ }), {
628
+ default: withCtx(() => [
629
+ createCommentVNode(" \u9690\u85CF\u7684\u9009\u9879\uFF0C\u7528\u4E8E\u5360\u4F4D\uFF0C\u9632\u6B62Element Plus\u8B66\u544A "),
630
+ createVNode(_component_el_option, {
631
+ style: { "width": "0", "height": "0" },
632
+ value: ""
633
+ }),
634
+ createCommentVNode(" \u9ED8\u8BA4\u9009\u9879\uFF0C\u7528\u4E8E\u56DE\u663E\u6570\u636E "),
635
+ createCommentVNode(" \u5F53\u9009\u4E2D\u7684\u6570\u636E\u4E0D\u5728\u5F53\u524D\u9875\u65F6\uFF0C\u901A\u8FC7\u8FD9\u4E9B\u9690\u85CF\u9009\u9879\u8FDB\u884C\u56DE\u663E "),
636
+ (openBlock(true), createElementBlock(
637
+ Fragment,
638
+ null,
639
+ renderList(state.defaultOptions ?? [], (item) => {
640
+ return openBlock(), createBlock(_component_el_option, {
641
+ key: item[__props.valueProp],
642
+ label: __props.labelFormat(item) || item[__props.labelProp],
643
+ value: item[__props.valueProp],
644
+ style: { "width": "0", "height": "0" }
645
+ }, null, 8, ["label", "value"]);
646
+ }),
647
+ 128
648
+ /* KEYED_FRAGMENT */
649
+ )),
650
+ createCommentVNode(" \u4E0B\u62C9\u6846\u5185\u5BB9\u533A\u57DF "),
651
+ createCommentVNode(' \r\n v-loading\u6307\u4EE4\uFF1A\u663E\u793A\u52A0\u8F7D\u52A8\u753B\r\n \u6CE8\u610F\uFF1Aloading\u72B6\u6001\u653E\u5728div\u4E0A\u800C\u4E0D\u662Ftable\u4E0A\uFF0C\u662F\u4E3A\u4E86\u8986\u76D6\u6574\u4E2A\u4E0B\u62C9\u533A\u57DF\uFF08\u5305\u62EC\u67E5\u8BE2\u8868\u5355\u548C\u5206\u9875\uFF09\r\n \u8FD9\u6837\u53EF\u4EE5\u907F\u514D\u67E5\u8BE2\u65F6\u95EA\u73B0"\u6682\u65E0\u6570\u636E"\u7684\u63D0\u793A\r\n '),
652
+ withDirectives((openBlock(), createElementBlock("div", _hoisted_1, [
653
+ createCommentVNode(" \u67E5\u8BE2\u8868\u5355\u533A\u57DF\uFF08\u4EC5\u5F53\u7236\u7EC4\u4EF6\u63D0\u4F9B\u4E86queryForm\u63D2\u69FD\u65F6\u663E\u793A\uFF09 "),
654
+ _ctx.$slots.queryForm ? (openBlock(), createBlock(_component_el_form, {
655
+ key: 0,
656
+ model: state.tableQuery,
657
+ class: "mg5 query-form",
658
+ "label-width": __props.queryLabelWidth ?? "",
659
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
660
+ }, ["stop"]))
661
+ }, {
662
+ default: withCtx(() => [
663
+ createVNode(_component_el_row, { gutter: 10 }, {
664
+ default: withCtx(() => [
665
+ createCommentVNode(" \u67E5\u8BE2\u8868\u5355\u63D2\u69FD\uFF1A\u7531\u7236\u7EC4\u4EF6\u63D0\u4F9B\u8868\u5355\u5185\u5BB9 "),
666
+ renderSlot(_ctx.$slots, "queryForm", {
667
+ query: state.tableQuery,
668
+ handleQuery: () => handleQuery(true)
669
+ }, void 0, true),
670
+ createCommentVNode(" \u67E5\u8BE2\u548C\u91CD\u7F6E\u6309\u94AE\u7EC4 "),
671
+ createVNode(_component_el_button_group, { style: { "position": "absolute", "right": "10px" } }, {
672
+ default: withCtx(() => [
673
+ createCommentVNode(" \u67E5\u8BE2\u6309\u94AE\uFF1A\u70B9\u51FB\u65F6\u7ACB\u5373\u663E\u793A\u52A0\u8F7D\u52A8\u753B\u5E76\u6267\u884C\u67E5\u8BE2 "),
674
+ withDirectives((openBlock(), createBlock(_component_el_button, {
675
+ type: "primary",
676
+ icon: "ele-Search",
677
+ onClick: handleQueryClick
678
+ }, {
679
+ default: withCtx(() => [..._cache[2] || (_cache[2] = [
680
+ createTextVNode(
681
+ " \u67E5\u8BE2 ",
682
+ -1
683
+ /* CACHED */
684
+ )
685
+ ])]),
686
+ _: 1
687
+ /* STABLE */
688
+ })), [
689
+ [_directive_reclick, 1e3]
690
+ ]),
691
+ createCommentVNode(" \u91CD\u7F6E\u6309\u94AE\uFF1A\u91CD\u7F6E\u67E5\u8BE2\u6761\u4EF6\u5E76\u91CD\u65B0\u67E5\u8BE2 "),
692
+ withDirectives((openBlock(), createBlock(_component_el_button, {
693
+ icon: "ele-Refresh",
694
+ onClick: resetQuery
695
+ }, {
696
+ default: withCtx(() => [..._cache[3] || (_cache[3] = [
697
+ createTextVNode(
698
+ " \u91CD\u7F6E ",
699
+ -1
700
+ /* CACHED */
701
+ )
702
+ ])]),
703
+ _: 1
704
+ /* STABLE */
705
+ })), [
706
+ [_directive_reclick, 1e3]
707
+ ])
708
+ ]),
709
+ _: 1
710
+ /* STABLE */
711
+ })
712
+ ]),
713
+ _: 3
714
+ /* FORWARDED */
715
+ })
716
+ ]),
717
+ _: 3
718
+ /* FORWARDED */
719
+ }, 8, ["model", "label-width"])) : createCommentVNode("v-if", true),
720
+ createCommentVNode(" \r\n \u6570\u636E\u8868\u683C \r\n \u5173\u952E\u914D\u7F6E\u8BF4\u660E\uFF1A\r\n 1. height: \u52A8\u6001\u8BA1\u7B97\u9AD8\u5EA6\uFF0C\u6709\u67E5\u8BE2\u8868\u5355\u65F6\u4F7F\u7528\u8BA1\u7B97\u5C5E\u6027tableHeight\uFF0C\u5426\u5219\u4F7F\u7528\u56FA\u5B9A\u8BA1\u7B97\u5F0F\r\n 2. highlight-current-row: \u5355\u9009\u6A21\u5F0F\u542F\u7528\u884C\u9AD8\u4EAE\uFF0C\u591A\u9009\u6A21\u5F0F\u7981\u7528\uFF08\u591A\u9009\u7528row-style\u5B9E\u73B0\uFF09\r\n 3. row-class-name: \u4E3A\u9009\u4E2D\u884C\u6DFB\u52A0'selected-row'\u7C7B\u540D\uFF0C\u7528\u4E8ECSS\u6837\u5F0F\u63A7\u5236\r\n 4. row-style: \u4E3A\u9009\u4E2D\u884C\u6DFB\u52A0\u5185\u8054\u6837\u5F0F\uFF08\u80CC\u666F\u8272\u548C\u5DE6\u8FB9\u6846\uFF09\uFF0C\u786E\u4FDD\u8DE8\u6D4F\u89C8\u5668\u517C\u5BB9\u6027\r\n\r\n ({ row }: { row: any }) => isRowSelected(row) ? 'selected-row' : ''\r\n ({ row }: { row: any }) => isRowSelected(row) ? { backgroundColor: 'var(--el-color-primary-light-9)', borderLeft: '3px solid var(--el-color-primary)' } : {}\r\n "),
721
+ createVNode(_component_el_table, {
722
+ ref_key: "tableRef",
723
+ ref: tableRef,
724
+ onRowClick: handleChange,
725
+ data: state.tableData?.items ?? [],
726
+ height: _ctx.$slots.queryForm ? tableHeight.value : `calc(${__props.dropdownHeight} - ${CONSTANTS.TABLE_HEIGHT_OFFSET}px)`,
727
+ "highlight-current-row": !__props.multiple,
728
+ "row-class-name": getRowClassName,
729
+ "row-style": getRowStyle
730
+ }, {
731
+ empty: withCtx(() => [
732
+ !state.loading ? (openBlock(), createBlock(_component_el_empty, {
733
+ key: 0,
734
+ "image-size": 25
735
+ })) : createCommentVNode("v-if", true)
736
+ ]),
737
+ default: withCtx(() => [
738
+ renderSlot(_ctx.$slots, "columns", {}, void 0, true)
739
+ ]),
740
+ _: 3
741
+ /* FORWARDED */
742
+ }, 8, ["data", "height", "highlight-current-row"]),
743
+ createCommentVNode(" \r\n \u5206\u9875\u7EC4\u4EF6\uFF08\u4EC5\u5F53\u542F\u7528\u5206\u9875\u65F6\u663E\u793A\uFF09\r\n \u914D\u7F6E\u8BF4\u660E\uFF1A\r\n 1. disabled: \u52A0\u8F7D\u65F6\u7981\u7528\u5206\u9875\u64CD\u4F5C\uFF0C\u9632\u6B62\u91CD\u590D\u8BF7\u6C42\r\n 2. pager-count: \u663E\u793A5\u4E2A\u9875\u7801\u6309\u94AE\uFF0C\u9002\u5408\u4E0B\u62C9\u6846\u7684\u6709\u9650\u7A7A\u95F4\r\n 3. layout: \u7B80\u5316\u5E03\u5C40\uFF08\u53EA\u663E\u793A\u4E0A\u4E00\u9875\u3001\u9875\u7801\u3001\u4E0B\u4E00\u9875\uFF09\uFF0C\u8282\u7701\u7A7A\u95F4\r\n 4. size: \u4F7F\u7528\u5C0F\u5C3A\u5BF8\uFF0C\u9002\u914D\u4E0B\u62C9\u6846\u9AD8\u5EA6\r\n "),
744
+ props.pagination ? (openBlock(), createBlock(_component_el_pagination, {
745
+ key: 1,
746
+ disabled: state.loading,
747
+ currentPage: state.tableQuery.page,
748
+ "page-size": state.tableQuery.pageSize,
749
+ total: state.tableData.total,
750
+ "pager-count": 5,
751
+ onSizeChange: handleSizeChange,
752
+ onCurrentChange: handleCurrentChange,
753
+ layout: "prev, pager, next",
754
+ size: "small",
755
+ background: ""
756
+ }, null, 8, ["disabled", "currentPage", "page-size", "total"])) : createCommentVNode("v-if", true)
757
+ ])), [
758
+ [_directive_loading, state.loading]
759
+ ])
760
+ ]),
761
+ _: 3
762
+ /* FORWARDED */
763
+ }, 16, ["modelValue", "clearable", "multiple", "disabled", "placeholder", "style"])
764
+ ],
765
+ 2112
766
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
767
+ );
768
+ };
769
+ }
770
+ });
771
+
772
+ export { _sfc_main as default };