easybill-ui 1.4.1 → 1.4.2

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 (281) hide show
  1. package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
  2. package/dist/assets/easybill-ui.css +1 -0
  3. package/dist/components/ConstantStatus/index.d.ts +24 -0
  4. package/dist/components/ConstantStatus/index.js +7 -0
  5. package/dist/components/ConstantStatus/src/ConstantStatus.vue.d.ts +25 -0
  6. package/dist/components/ConstantStatus/src/ConstantStatus.vue.js +76 -0
  7. package/dist/components/ConstantStatus/src/ConstantStatus.vue2.js +4 -0
  8. package/dist/components/ConstantStatus/src/index.d.ts +3 -0
  9. package/dist/components/ConstantStatus/src/index.js +5 -0
  10. package/dist/components/ConstantStatus/src/types.d.ts +18 -0
  11. package/dist/components/CurdForm/index.d.ts +9 -0
  12. package/dist/components/CurdForm/index.js +9 -0
  13. package/dist/components/CurdForm/src/CurdForm.vue.js +7 -0
  14. package/dist/components/CurdForm/src/CurdForm.vue2.js +326 -0
  15. package/dist/components/CurdForm/src/CurdFormItem.vue.d.ts +37 -0
  16. package/dist/components/CurdForm/src/CurdFormItem.vue.js +55 -0
  17. package/dist/components/CurdForm/src/CurdFormItem.vue2.js +4 -0
  18. package/dist/components/CurdForm/src/FormItem.vue.d.ts +44 -0
  19. package/dist/components/CurdForm/src/FormItem.vue.js +128 -0
  20. package/dist/components/CurdForm/src/FormItem.vue2.js +4 -0
  21. package/dist/components/CurdForm/src/FormTooltip.vue.d.ts +33 -0
  22. package/dist/components/CurdForm/src/FormTooltip.vue.js +63 -0
  23. package/dist/components/CurdForm/src/FormTooltip.vue2.js +4 -0
  24. package/dist/components/CurdForm/src/components/index.d.ts +10 -0
  25. package/dist/components/CurdForm/src/components/index.js +38 -0
  26. package/dist/components/CurdForm/src/components/schema-form-autocomplete.vue.d.ts +56 -0
  27. package/dist/components/CurdForm/src/components/schema-form-autocomplete.vue.js +39 -0
  28. package/dist/components/CurdForm/src/components/schema-form-autocomplete.vue2.js +4 -0
  29. package/dist/components/CurdForm/src/components/schema-form-cascader.vue.d.ts +56 -0
  30. package/dist/components/CurdForm/src/components/schema-form-cascader.vue.js +32 -0
  31. package/dist/components/CurdForm/src/components/schema-form-cascader.vue2.js +4 -0
  32. package/dist/components/CurdForm/src/components/schema-form-checkbox.vue.d.ts +59 -0
  33. package/dist/components/CurdForm/src/components/schema-form-checkbox.vue.js +86 -0
  34. package/dist/components/CurdForm/src/components/schema-form-checkbox.vue2.js +33 -0
  35. package/dist/components/CurdForm/src/components/schema-form-choose.vue.js +217 -0
  36. package/dist/components/CurdForm/src/components/schema-form-choose.vue2.js +4 -0
  37. package/dist/components/CurdForm/src/components/schema-form-color-picker.vue.d.ts +54 -0
  38. package/dist/components/CurdForm/src/components/schema-form-color-picker.vue.js +15 -0
  39. package/dist/components/CurdForm/src/components/schema-form-color-picker.vue2.js +19 -0
  40. package/dist/components/CurdForm/src/components/schema-form-date-picker.vue.d.ts +56 -0
  41. package/dist/components/CurdForm/src/components/schema-form-date-picker.vue.js +32 -0
  42. package/dist/components/CurdForm/src/components/schema-form-date-picker.vue2.js +27 -0
  43. package/dist/components/CurdForm/src/components/schema-form-input-number.vue.d.ts +54 -0
  44. package/dist/components/CurdForm/src/components/schema-form-input-number.vue.js +39 -0
  45. package/dist/components/CurdForm/src/components/schema-form-input-number.vue2.js +4 -0
  46. package/dist/components/CurdForm/src/components/schema-form-input.vue.d.ts +54 -0
  47. package/dist/components/CurdForm/src/components/schema-form-input.vue.js +44 -0
  48. package/dist/components/CurdForm/src/components/schema-form-input.vue2.js +4 -0
  49. package/dist/components/CurdForm/src/components/schema-form-radio.vue.d.ts +54 -0
  50. package/dist/components/CurdForm/src/components/schema-form-radio.vue.js +114 -0
  51. package/dist/components/CurdForm/src/components/schema-form-radio.vue2.js +4 -0
  52. package/dist/components/CurdForm/src/components/schema-form-select-v2.vue.d.ts +54 -0
  53. package/dist/components/CurdForm/src/components/schema-form-select-v2.vue.js +69 -0
  54. package/dist/components/CurdForm/src/components/schema-form-select-v2.vue2.js +4 -0
  55. package/dist/components/CurdForm/src/components/schema-form-select.vue.js +65 -0
  56. package/dist/components/CurdForm/src/components/schema-form-select.vue2.js +66 -0
  57. package/dist/components/CurdForm/src/components/schema-form-switch.vue.d.ts +54 -0
  58. package/dist/components/CurdForm/src/components/schema-form-switch.vue.js +14 -0
  59. package/dist/components/CurdForm/src/components/schema-form-switch.vue2.js +25 -0
  60. package/dist/components/CurdForm/src/components/schema-form-time-picker.vue.d.ts +57 -0
  61. package/dist/components/CurdForm/src/components/schema-form-time-picker.vue.js +29 -0
  62. package/dist/components/CurdForm/src/components/schema-form-time-picker.vue2.js +30 -0
  63. package/dist/components/CurdForm/src/components/schema-form-tree-select.vue.d.ts +58 -0
  64. package/dist/components/CurdForm/src/components/schema-form-tree-select.vue.js +55 -0
  65. package/dist/components/CurdForm/src/components/schema-form-tree-select.vue2.js +31 -0
  66. package/dist/components/CurdForm/src/components/schema-form-value.vue.d.ts +54 -0
  67. package/dist/components/CurdForm/src/components/schema-form-value.vue.js +11 -0
  68. package/dist/components/CurdForm/src/components/schema-form-value.vue2.js +21 -0
  69. package/dist/components/CurdForm/src/directive/index.d.ts +12 -0
  70. package/dist/components/CurdForm/src/directive/index.js +32 -0
  71. package/dist/components/CurdForm/src/hooks/index.d.ts +4 -0
  72. package/dist/components/CurdForm/src/hooks/index.js +7 -0
  73. package/dist/components/CurdForm/src/types.d.ts +136 -0
  74. package/dist/components/CurdForm/src/types.js +27 -0
  75. package/dist/components/CurdForm/src/utils/ajax.d.ts +25 -0
  76. package/dist/components/CurdForm/src/utils/common.d.ts +1 -0
  77. package/dist/components/CurdForm/src/utils/common.js +13 -0
  78. package/dist/components/CurdGroupForm/index.d.ts +2 -0
  79. package/dist/components/CurdGroupForm/src/CurdGroupForm.vue.d.ts +36 -0
  80. package/dist/components/CurdGroupForm/src/CurdGroupForm.vue.js +113 -0
  81. package/dist/components/CurdGroupForm/src/CurdGroupForm.vue2.js +4 -0
  82. package/dist/components/CurdGroupForm/src/components/CurdFormGroup.vue.d.ts +52 -0
  83. package/dist/components/CurdGroupForm/src/components/CurdFormGroup.vue.js +64 -0
  84. package/dist/components/CurdGroupForm/src/components/CurdFormGroup.vue2.js +4 -0
  85. package/dist/components/CurdGroupForm/src/hooks/useFormHook.d.ts +12 -0
  86. package/dist/components/CurdGroupForm/src/hooks/useFormHook.js +32 -0
  87. package/dist/components/CurdGroupForm/types.d.ts +33 -0
  88. package/dist/components/CurdTable/index.d.ts +13 -0
  89. package/dist/components/CurdTable/index.js +7 -0
  90. package/dist/components/CurdTable/src/CurdTable.vue.js +562 -0
  91. package/dist/components/CurdTable/src/CurdTable.vue2.js +4 -0
  92. package/dist/components/CurdTable/src/STableColumnControl.vue.d.ts +21 -0
  93. package/dist/components/CurdTable/src/STableColumnControl.vue.js +132 -0
  94. package/dist/components/CurdTable/src/STableColumnControl.vue2.js +4 -0
  95. package/dist/components/CurdTable/src/STableDetail.vue.d.ts +9 -0
  96. package/dist/components/CurdTable/src/STableDetail.vue.js +53 -0
  97. package/dist/components/CurdTable/src/STableDetail.vue2.js +4 -0
  98. package/dist/components/CurdTable/src/STableFilter.vue.d.ts +28 -0
  99. package/dist/components/CurdTable/src/STableFilter.vue.js +40 -0
  100. package/dist/components/CurdTable/src/STableFilter.vue2.js +4 -0
  101. package/dist/components/CurdTable/src/STableItem.vue.d.ts +127 -0
  102. package/dist/components/CurdTable/src/STableItem.vue.js +147 -0
  103. package/dist/components/CurdTable/src/STableItem.vue2.js +4 -0
  104. package/dist/components/CurdTable/src/STableItemFilter.vue.d.ts +34 -0
  105. package/dist/components/CurdTable/src/STableItemFilter.vue.js +71 -0
  106. package/dist/components/CurdTable/src/STableItemFilter.vue2.js +4 -0
  107. package/dist/components/CurdTable/src/STableItemFormatter.vue.d.ts +38 -0
  108. package/dist/components/CurdTable/src/STableItemFormatter.vue.js +34 -0
  109. package/dist/components/CurdTable/src/STableItemFormatter.vue2.js +4 -0
  110. package/dist/components/CurdTable/src/STableItemHeader.vue.d.ts +16 -0
  111. package/dist/components/CurdTable/src/STableItemHeader.vue.js +24 -0
  112. package/dist/components/CurdTable/src/STableItemHeader.vue2.js +4 -0
  113. package/dist/components/CurdTable/src/STableItemHeaderTooltip.vue.d.ts +14 -0
  114. package/dist/components/CurdTable/src/STableItemHeaderTooltip.vue.js +48 -0
  115. package/dist/components/CurdTable/src/STableItemHeaderTooltip.vue2.js +4 -0
  116. package/dist/components/CurdTable/src/STableMenu.vue.d.ts +20 -0
  117. package/dist/components/CurdTable/src/STableMenu.vue.js +120 -0
  118. package/dist/components/CurdTable/src/STableMenu.vue2.js +4 -0
  119. package/dist/components/CurdTable/src/hooks/useColumnHook.d.ts +9 -0
  120. package/dist/components/CurdTable/src/hooks/useColumnHook.js +45 -0
  121. package/dist/components/CurdTable/src/types.d.ts +178 -0
  122. package/dist/components/CurdTable/utils/common.d.ts +5 -0
  123. package/dist/components/CurdTable/utils/common.js +18 -0
  124. package/dist/components/CurdTable/utils/tabelToExcel.d.ts +4 -0
  125. package/dist/components/CurdTable/utils/tabelToExcel.js +23 -0
  126. package/dist/components/DetailInfo/index.d.ts +147 -0
  127. package/dist/components/DetailInfo/index.js +7 -0
  128. package/dist/components/DetailInfo/src/DetailInfo.vue.d.ts +77 -0
  129. package/dist/components/DetailInfo/src/DetailInfo.vue.js +144 -0
  130. package/dist/components/DetailInfo/src/DetailInfo.vue2.js +4 -0
  131. package/dist/components/DetailInfo/src/DetailInfoContent.vue.d.ts +16 -0
  132. package/dist/components/DetailInfo/src/DetailInfoContent.vue.js +43 -0
  133. package/dist/components/DetailInfo/src/DetailInfoContent.vue2.js +4 -0
  134. package/dist/components/DetailInfo/src/DetailInfoTooltip.vue.d.ts +15 -0
  135. package/dist/components/DetailInfo/src/DetailInfoTooltip.vue.js +48 -0
  136. package/dist/components/DetailInfo/src/DetailInfoTooltip.vue2.js +4 -0
  137. package/dist/components/DetailInfo/src/types.d.ts +22 -0
  138. package/dist/components/FormDialog/index.d.ts +7 -0
  139. package/dist/components/FormDialog/index.js +6 -0
  140. package/dist/components/FormDialog/src/FormDialog.vue.d.ts +247 -0
  141. package/dist/components/FormDialog/src/FormDialog.vue.js +117 -0
  142. package/dist/components/FormDialog/src/FormDialog.vue2.js +191 -0
  143. package/dist/components/FormDialog/src/hooks/index.d.ts +2 -0
  144. package/dist/components/FormDialog/src/hooks/useStepList.d.ts +14 -0
  145. package/dist/components/FormDialog/src/hooks/useStepList.js +27 -0
  146. package/dist/components/FormDialog/src/hooks/useStepNavigation.d.ts +75 -0
  147. package/dist/components/FormDialog/src/hooks/useStepNavigation.js +34 -0
  148. package/dist/components/FormDialog/src/index.d.ts +13 -0
  149. package/dist/components/FormDialog/src/index.js +23 -0
  150. package/dist/components/FormDialog/src/types.d.ts +63 -0
  151. package/dist/components/TableFilter/index.d.ts +6 -0
  152. package/dist/components/TableFilter/index.js +7 -0
  153. package/dist/components/TableFilter/src/FilterExternal/FilterExternal.vue.js +91 -0
  154. package/dist/components/TableFilter/src/FilterExternal/FilterExternal.vue2.js +4 -0
  155. package/dist/components/TableFilter/src/FilterSearchBox.vue.d.ts +33 -0
  156. package/dist/components/TableFilter/src/FilterSearchBox.vue.js +71 -0
  157. package/dist/components/TableFilter/src/FilterSearchBox.vue2.js +4 -0
  158. package/dist/components/TableFilter/src/TableFilter.vue.js +180 -0
  159. package/dist/components/TableFilter/src/TableFilter.vue2.js +4 -0
  160. package/dist/components/TableFilter/src/components/FilterItem.vue.d.ts +37 -0
  161. package/dist/components/TableFilter/src/components/FilterItem.vue.js +63 -0
  162. package/dist/components/TableFilter/src/components/FilterItem.vue2.js +4 -0
  163. package/dist/components/TableFilter/src/components/FilterTags.vue.d.ts +114 -0
  164. package/dist/components/TableFilter/src/components/FilterTags.vue.js +142 -0
  165. package/dist/components/TableFilter/src/components/FilterTags.vue2.js +4 -0
  166. package/dist/components/TableFilter/src/components/FilterToggle.vue.d.ts +29 -0
  167. package/dist/components/TableFilter/src/components/FilterToggle.vue.js +70 -0
  168. package/dist/components/TableFilter/src/components/FilterToggle.vue2.js +4 -0
  169. package/dist/components/TableFilter/src/components/FilterType.vue.d.ts +30 -0
  170. package/dist/components/TableFilter/src/components/FilterType.vue.js +62 -0
  171. package/dist/components/TableFilter/src/components/FilterType.vue2.js +4 -0
  172. package/dist/components/TableFilter/src/components/containers/TagsSelect.vue.d.ts +42 -0
  173. package/dist/components/TableFilter/src/components/containers/TagsSelect.vue.js +99 -0
  174. package/dist/components/TableFilter/src/components/containers/TagsSelect.vue2.js +4 -0
  175. package/dist/components/TableFilter/types.d.ts +34 -0
  176. package/dist/index.d.ts +22 -0
  177. package/dist/index.js +35 -0
  178. package/dist/locale/index.d.ts +9 -0
  179. package/dist/locale/index.js +6 -0
  180. package/dist/locale/lang/en.d.ts +49 -0
  181. package/{locale/lang/en.ts → dist/locale/lang/en.js} +10 -7
  182. package/dist/locale/lang/zh-cn.d.ts +49 -0
  183. package/{locale/lang/zh-cn.ts → dist/locale/lang/zh-cn.js} +10 -7
  184. package/dist/utils/common/index.d.ts +8 -0
  185. package/dist/utils/common/index.js +13 -0
  186. package/dist/utils/hooks/useGlobalConfig.d.ts +13 -0
  187. package/dist/utils/hooks/useGlobalConfig.js +22 -0
  188. package/dist/utils/hooks/useLocal.d.ts +15 -0
  189. package/dist/utils/hooks/useLocal.js +33 -0
  190. package/dist/utils/index.d.ts +2 -0
  191. package/dist/utils/index.js +6 -0
  192. package/dist/utils/vue/index.d.ts +2 -0
  193. package/dist/utils/vue/index.js +4 -0
  194. package/dist/utils/vue/install.d.ts +2 -0
  195. package/dist/utils/vue/install.js +14 -0
  196. package/dist/utils/vue/make-installer.d.ts +5 -0
  197. package/dist/utils/vue/make-installer.js +9 -0
  198. package/dist/utils/vue/typescript.d.ts +5 -0
  199. package/package.json +55 -46
  200. package/components/ConstantStatus/index.ts +0 -5
  201. package/components/ConstantStatus/src/ConstantStatus.vue +0 -69
  202. package/components/ConstantStatus/src/index.ts +0 -3
  203. package/components/ConstantStatus/src/types.ts +0 -18
  204. package/components/CurdForm/index.ts +0 -9
  205. package/components/CurdForm/src/CurdForm.vue +0 -500
  206. package/components/CurdForm/src/CurdFormItem.vue +0 -70
  207. package/components/CurdForm/src/FormItem.vue +0 -105
  208. package/components/CurdForm/src/FormTooltip.vue +0 -54
  209. package/components/CurdForm/src/components/index.ts +0 -52
  210. package/components/CurdForm/src/components/schema-form-autocomplete.vue +0 -25
  211. package/components/CurdForm/src/components/schema-form-cascader.vue +0 -24
  212. package/components/CurdForm/src/components/schema-form-checkbox.vue +0 -53
  213. package/components/CurdForm/src/components/schema-form-choose.vue +0 -225
  214. package/components/CurdForm/src/components/schema-form-color-picker.vue +0 -23
  215. package/components/CurdForm/src/components/schema-form-date-picker.vue +0 -34
  216. package/components/CurdForm/src/components/schema-form-input-number.vue +0 -12
  217. package/components/CurdForm/src/components/schema-form-input.vue +0 -21
  218. package/components/CurdForm/src/components/schema-form-radio.vue +0 -59
  219. package/components/CurdForm/src/components/schema-form-select-v2.vue +0 -60
  220. package/components/CurdForm/src/components/schema-form-select.vue +0 -93
  221. package/components/CurdForm/src/components/schema-form-switch.vue +0 -29
  222. package/components/CurdForm/src/components/schema-form-time-picker.vue +0 -37
  223. package/components/CurdForm/src/components/schema-form-tree-select.vue +0 -45
  224. package/components/CurdForm/src/components/schema-form-value.vue +0 -25
  225. package/components/CurdForm/src/directive/index.ts +0 -60
  226. package/components/CurdForm/src/hooks/index.ts +0 -6
  227. package/components/CurdForm/src/types.ts +0 -146
  228. package/components/CurdForm/src/utils/ajax.ts +0 -125
  229. package/components/CurdForm/src/utils/common.ts +0 -17
  230. package/components/CurdGroupForm/index.ts +0 -2
  231. package/components/CurdGroupForm/src/CurdGroupForm.vue +0 -93
  232. package/components/CurdGroupForm/src/components/CurdFormGroup.vue +0 -39
  233. package/components/CurdGroupForm/src/hooks/useFormHook.ts +0 -55
  234. package/components/CurdGroupForm/types.ts +0 -22
  235. package/components/CurdTable/index.ts +0 -5
  236. package/components/CurdTable/src/CurdTable.vue +0 -470
  237. package/components/CurdTable/src/STableColumnControl.vue +0 -88
  238. package/components/CurdTable/src/STableDetail.vue +0 -52
  239. package/components/CurdTable/src/STableFilter.vue +0 -50
  240. package/components/CurdTable/src/STableItem.vue +0 -119
  241. package/components/CurdTable/src/STableItemFilter.vue +0 -53
  242. package/components/CurdTable/src/STableItemFormatter.vue +0 -35
  243. package/components/CurdTable/src/STableItemHeader.vue +0 -33
  244. package/components/CurdTable/src/STableItemHeaderTooltip.vue +0 -32
  245. package/components/CurdTable/src/STableMenu.vue +0 -77
  246. package/components/CurdTable/src/hooks/useColumnHook.ts +0 -77
  247. package/components/CurdTable/src/types.ts +0 -163
  248. package/components/CurdTable/utils/common.ts +0 -33
  249. package/components/CurdTable/utils/tabelToExcel.ts +0 -68
  250. package/components/DetailInfo/index.ts +0 -5
  251. package/components/DetailInfo/src/DetailInfo.vue +0 -108
  252. package/components/DetailInfo/src/DetailInfoContent.vue +0 -27
  253. package/components/DetailInfo/src/DetailInfoTooltip.vue +0 -33
  254. package/components/DetailInfo/src/types.ts +0 -23
  255. package/components/FormDialog/index.ts +0 -3
  256. package/components/FormDialog/src/FormDialog.vue +0 -276
  257. package/components/FormDialog/src/hooks/index.ts +0 -2
  258. package/components/FormDialog/src/hooks/useStepList.ts +0 -49
  259. package/components/FormDialog/src/hooks/useStepNavigation.ts +0 -74
  260. package/components/FormDialog/src/index.ts +0 -39
  261. package/components/FormDialog/src/types.ts +0 -51
  262. package/components/TableFilter/index.ts +0 -6
  263. package/components/TableFilter/src/FilterExternal/FilterExternal.vue +0 -121
  264. package/components/TableFilter/src/FilterSearchBox.vue +0 -65
  265. package/components/TableFilter/src/TableFilter.vue +0 -236
  266. package/components/TableFilter/src/components/FilterItem.vue +0 -76
  267. package/components/TableFilter/src/components/FilterTags.vue +0 -132
  268. package/components/TableFilter/src/components/FilterToggle.vue +0 -40
  269. package/components/TableFilter/src/components/FilterType.vue +0 -78
  270. package/components/TableFilter/src/components/containers/TagsSelect.vue +0 -89
  271. package/components/TableFilter/types.ts +0 -36
  272. package/index.ts +0 -25
  273. package/locale/index.ts +0 -11
  274. package/utils/common/index.ts +0 -24
  275. package/utils/hooks/useGlobalConfig.ts +0 -39
  276. package/utils/hooks/useLocal.ts +0 -61
  277. package/utils/index.ts +0 -2
  278. package/utils/vue/index.ts +0 -3
  279. package/utils/vue/install.ts +0 -18
  280. package/utils/vue/make-installer.ts +0 -16
  281. package/utils/vue/typescript.ts +0 -7
@@ -1,236 +0,0 @@
1
- <template>
2
- <div class="table-filter">
3
- <slot name="top"></slot>
4
- <div>
5
- <FilterExternal ref="filterExternalRef" :select-params="selectParams" :list-query="listQuery" :has-slot="selectParams.some((a) => !a.external)" :extendContext="extendContext" v-bind="$attrs" @change="onChange">
6
- <template #default>
7
- <FilterSearchBox v-if="selectParams.some((a) => !a.external)" ref="searchRef" :select-params="selectParams.filter((a) => !a.external)" :select-list="selectList" :list-query="listQuery" @search="onChange" />
8
- </template>
9
- </FilterExternal>
10
- </div>
11
- <FilterTags :select-list="selectList" :list-query="listQuery" @remove="onRemove" @change="onChange" @item-click="onTagClick"></FilterTags>
12
- <slot name="bottom"></slot>
13
- </div>
14
- </template>
15
-
16
- <script lang="ts" setup>
17
- import { onMounted, type PropType, provide, reactive, type Ref, ref, watch } from "vue"
18
- import type { CurdFormOptionItem, FormContext } from "../../CurdForm"
19
- import { deepClone } from "../../CurdTable/utils/common"
20
- import * as I from "../types"
21
- import FilterExternal from "./FilterExternal/FilterExternal.vue"
22
- import FilterSearchBox from "./FilterSearchBox.vue"
23
- import FilterTags from "./components/FilterTags.vue"
24
-
25
- const props = defineProps({
26
- /**
27
- * @deprecated since version 1.0
28
- */
29
- selectParams: {
30
- type: Array as PropType<Array<I.ParamsItem>>,
31
- default: () => {
32
- return []
33
- },
34
- },
35
- schema: {
36
- type: Array as PropType<Array<I.ParamsItem>>,
37
- default: undefined,
38
- },
39
- /**
40
- * @deprecated since version 1.0
41
- */
42
- listQuery: {
43
- type: Object as PropType<I.ListQuery>,
44
- default: () => {
45
- return {}
46
- },
47
- },
48
- modelValue: {
49
- type: Object as PropType<I.ListQuery>,
50
- default: undefined,
51
- },
52
- option: {
53
- type: Object as PropType<Partial<I.FilterOption>>,
54
- default: undefined,
55
- },
56
- })
57
- const emit = defineEmits(["search"])
58
- const searchRef = ref()
59
- const selectList: Ref<I.ParamsItem[]> = ref([])
60
- const selectParams = ref<I.ParamsItem[]>(props.schema || props.selectParams || [])
61
- const listQuery = reactive<I.ListQuery>(props.modelValue || props.listQuery || {})
62
-
63
- const onChange = (d?: I.ParamsItem) => {
64
- //清除一遍
65
- for (let i = 0; i < selectList.value.length; i++) {
66
- const sitem = selectList.value[i]
67
- if (!listQuery[sitem.prop] && listQuery[sitem.prop] !== 0) {
68
- selectList.value.splice(i, 1)
69
- i--
70
- }
71
- }
72
- // console.log("selectList", selectList, listQuery)
73
- if (d) {
74
- const cur = selectList.value.find((j) => d.prop == j.prop && d.label == j.label)
75
- if (cur) {
76
- if (listQuery[cur.prop] === "" || listQuery[cur.prop] === null || listQuery[cur.prop] === undefined) {
77
- selectList.value.splice(
78
- selectList.value.findIndex((j) => d.prop == j.prop),
79
- 1,
80
- )
81
- } else {
82
- cur.tagNames = d.tagNames
83
- }
84
- } else if (typeof listQuery[d.prop] !== "undefined" && listQuery[d.prop] !== "") {
85
- selectList.value.push(d)
86
- }
87
- emit("search", listQuery, selectList.value)
88
- return
89
- }
90
- emit("search", listQuery, selectList.value)
91
- }
92
- const onRemove = () => {
93
- emit("search", listQuery, selectList.value)
94
- }
95
- const getTags = () => {
96
- selectParams.value.forEach((a) => {
97
- let i = selectList.value.findIndex((j) => a.prop == j.prop)
98
- if (!a.external && i == -1 && listQuery[a.prop]) {
99
- if (a.options && a.options.length) {
100
- const prop = String(listQuery[a.prop])
101
- // const propI = prop.indexOf(",")
102
- let tagNames = a.tagNames || a.options.find((j) => j.value == listQuery[a.prop])?.label
103
- // 处理多选value的值
104
- if (!a.tagNames && a.type == "checkbox") {
105
- let propList = prop.split(",").map((item) => {
106
- return a?.options?.find((j) => String(j.value) == String(item))?.label
107
- })
108
- tagNames = propList.join(" | ")
109
- }
110
- selectList.value.push({ ...a, tagNames: tagNames })
111
- } else if (a.asyncOptions) {
112
- loadOptions(a.prop).then((res: CurdFormOptionItem[]) => {
113
- selectList.value.push({
114
- ...a,
115
- tagNames: a.tagNames || res.find((j) => j.value == listQuery[a.prop])?.label || "",
116
- })
117
- })
118
- } else {
119
- selectList.value.push(a)
120
- }
121
- }
122
- })
123
- }
124
-
125
- const setItem = (prop: string, paramsItem?: I.ParamsItem) => {
126
- // 加延时是因为在curdtable那边筛选后,调用setItem时,listQuery更新不及时
127
- setTimeout(() => {
128
- let item = paramsItem || selectParams.value.find((a) => a.prop == prop)
129
- if (!item || item.external) return
130
- const current = selectList.value.find((a) => a.prop == prop && a.label == item.label)
131
- if (!current) {
132
- if (typeof listQuery[prop] !== "undefined" && listQuery[prop] !== "") {
133
- selectList.value.push({
134
- ...item,
135
- tagNames: item.tagNames || item.options?.find((j) => j.value == listQuery[prop])?.label,
136
- })
137
- }
138
- } else if (item.options && item.options.length) {
139
- let tagNames = item.options?.find((j) => j.value == listQuery[prop])?.label
140
- // 处理多选value的值
141
- if (!item.tagNames && item.type == "checkbox") {
142
- let propList = prop.split(",").map((a) => {
143
- return item?.options?.find((j) => String(j.value) == String(a))?.label
144
- })
145
- tagNames = propList.join(" | ")
146
- }
147
- current.tagNames = tagNames
148
- } else if (item.asyncOptions) {
149
- item.asyncOptions(listQuery, item, tableFilterContext as FormContext).then((res) => {
150
- current.tagNames = item.tagNames || res.find((j) => j.value == listQuery[prop])?.label
151
- })
152
- }
153
- if ((current && typeof current.tagNames == "undefined") || (current && current.tagNames === "")) {
154
- selectList.value.splice(
155
- selectList.value.findIndex((a) => a.prop == prop),
156
- 1,
157
- )
158
- }
159
- })
160
- }
161
- //主动赋值
162
- const setValue = (prop: string, value: unknown) => {
163
- listQuery[prop] = value
164
- setItem(prop)
165
- }
166
- const state = ref<I.State>({
167
- isFocus: false,
168
- })
169
- const filterExternalRef = ref()
170
- const loadOptions = (prop: string, option?: unknown) => {
171
- const current = selectParams.value.find((a) => a.prop == prop)
172
- if (!current || !current.asyncOptions) return
173
- if (current.external) {
174
- return filterExternalRef.value.loadOptions(prop, option)
175
- }
176
- return searchRef.value.loadOptions(prop, option)
177
- }
178
- const extendContext = {
179
- loadOptions: loadOptions,
180
- }
181
- const clear = () => {
182
- for (let i = 0; i < selectList.value.length; i++) {
183
- delete listQuery[selectList.value[i].prop]
184
- selectList.value.splice(i, 1)
185
- i--
186
- }
187
- emit("search", listQuery, selectList.value)
188
- }
189
- // 重新调用selectParams
190
- const refreshSelectParams = () => {
191
- if (props.schema || props.selectParams) {
192
- selectParams.value = deepClone(props.schema || props.selectParams)
193
- }
194
- }
195
- const getCurrentIndex = () => {
196
- return searchRef.value && searchRef.value.currentIndex
197
- }
198
- //点标签,切换到当前项
199
- const onTagClick = (item: I.ParamsItem) => {
200
- const i = selectParams.value.findIndex((a) => a.prop == item.prop && a.label == item.label)
201
- searchRef.value.setIndex(i)
202
- }
203
- const tableFilterContext = reactive<I.TableFilterContext>({
204
- loadOptions,
205
- search: () => {
206
- emit("search", listQuery, selectList.value)
207
- },
208
- setValue,
209
- setOptions: (prop: string, options: CurdFormOptionItem[]) => {
210
- const current = selectParams.value.find((a) => a.prop == prop)
211
- if (!current || current.external) return
212
- current.options = options
213
- setItem(prop)
214
- },
215
- formModel: listQuery,
216
- components: {},
217
- change: () => {},
218
- formRef: undefined,
219
- })
220
- watch(
221
- () => [props.schema, props.selectParams],
222
- () => {
223
- refreshSelectParams()
224
- getTags()
225
- },
226
- )
227
- provide("tableFilter", tableFilterContext)
228
- provide("state", state)
229
- provide("selectList", selectList)
230
- provide("selectParams", selectParams)
231
- provide("option", props.option)
232
- defineExpose({ setItem, selectList, loadOptions, clear, refreshSelectParams, getCurrentIndex, listQuery, selectParams })
233
- onMounted(() => {
234
- getTags()
235
- })
236
- </script>
@@ -1,76 +0,0 @@
1
- <template>
2
- <div ref="wrapperRef" class="filter-item" style="flex: 1">
3
- <CurdForm v-if="show" ref="formRef" v-model="query" :form-schema="formSchema" @change="onChange" />
4
- </div>
5
- </template>
6
- <script lang="ts" setup>
7
- import { inject, type PropType, reactive, ref, type Ref, watch } from "vue"
8
- import type { FormSchema } from "../../../CurdForm"
9
- import type { ListQuery } from "../../types"
10
- import * as I from "../../types"
11
-
12
- const props = defineProps({
13
- modelValue: {
14
- type: Object as PropType<ListQuery>,
15
- default: () => {
16
- return {}
17
- },
18
- },
19
- paramsItem: {
20
- type: Object as PropType<I.ParamsItem>,
21
- default: () => ({}),
22
- },
23
- })
24
- const emit = defineEmits(["change", "search"])
25
-
26
- const listQuery = reactive<ListQuery>(props.modelValue)
27
- const query = defineModel<ListQuery>({} as ListQuery) //ref(Utils.deepClone(props.listQuery))
28
- const formRef = ref()
29
- const selectParams = inject<Ref<I.ParamsItem[]>>("selectParams") || ref([])
30
- const formSchema = ref<FormSchema>({
31
- formItem: [
32
- ...selectParams.value
33
- .filter((a) => !a.external)
34
- .map((a) => {
35
- a.hidden = props.paramsItem.prop != a.prop
36
- return a
37
- }),
38
- ],
39
- })
40
- const show = ref(true)
41
- watch(
42
- () => props.paramsItem.prop,
43
- () => {
44
- show.value = false
45
- formSchema.value.formItem = selectParams.value
46
- .filter((a) => !a.external)
47
- .map((a) => {
48
- a.hidden = props.paramsItem.prop != a.prop
49
- return a
50
- })
51
- setTimeout(() => {
52
- show.value = true
53
- })
54
- },
55
- )
56
- const wrapperRef = ref()
57
-
58
- const onChange = () => {
59
- const val = query.value && query.value[props.paramsItem.prop]
60
- if (props.paramsItem.tableKey && props.paramsItem.tableKey.length && Array.isArray(val)) {
61
- props.paramsItem.tableKey.forEach((a, i) => {
62
- listQuery[a] = val[i]
63
- })
64
- } else {
65
- listQuery[props.paramsItem.prop] = val || ""
66
- }
67
- emit("search", props.paramsItem)
68
- }
69
- const setValue = (prop: string) => {
70
- if (query.value) listQuery[prop] = query.value[prop]
71
- }
72
- const loadOptions = (prop: string, config?: unknown) => {
73
- return formRef.value.loadOptions(prop, config)
74
- }
75
- defineExpose({ setValue, loadOptions })
76
- </script>
@@ -1,132 +0,0 @@
1
- <template>
2
- <div v-if="selectList.length" class="filter-tags">
3
- <div class="tag-title">已筛选</div>
4
- <div class="tag-list">
5
- <div v-for="(item, i) in selectList" :key="i" class="tag-item">
6
- <el-popover ref="popoverRef" trigger="click" placement="bottom-start" :disabled="!['select'].includes(item.type)" popper-class="table-filter-tag-popper" @show="show(i)">
7
- <template #reference>
8
- <div class="dropdown-toggle" @click="onClick(item)">
9
- <div class="label">{{ item.label }}:</div>
10
- <div class="value">{{ isValue(item) }}</div>
11
- <div class="action" @click.stop="remove(item, i)">
12
- <el-icon>
13
- <CircleCloseFilled />
14
- </el-icon>
15
- </div>
16
- </div>
17
- </template>
18
- <div ref="selectRef" class="select-list" @click.stop>
19
- <TagsSelect ref="tagsSelectRef" v-model="listQuery[item.prop] as number | string | boolean | []" :list-query="listQuery" :params-item="item" @change="onChange" />
20
- </div>
21
- </el-popover>
22
- </div>
23
- <div class="tag-clear"><el-button type="primary" link @click="clear">清空</el-button></div>
24
- </div>
25
-
26
- <slot></slot>
27
- </div>
28
- </template>
29
- <script lang="ts" setup>
30
- import { CircleCloseFilled } from "@element-plus/icons-vue"
31
- import { inject, type PropType, ref, type Ref } from "vue"
32
- import type { ListQuery } from "../../types"
33
- import * as I from "../../types"
34
- import TagsSelect from "./containers/TagsSelect.vue"
35
- const emit = defineEmits(["change", "remove", "itemClick"])
36
- const props = defineProps({
37
- listQuery: {
38
- type: Object as PropType<ListQuery>,
39
- default: () => {
40
- return {}
41
- },
42
- },
43
- })
44
- const visibleMap = ref<Record<string, boolean>>({})
45
- const listQuery: Ref<ListQuery> = ref(props.listQuery)
46
- const selectList = inject<Ref<I.ParamsItem[]>>("selectList") || ref([])
47
- const remove = (row: I.ParamsItem, index: number) => {
48
- selectList.value.splice(index, 1)
49
- // listQuery.value[row.prop] = ""
50
- delete listQuery.value[row.prop]
51
- emit("remove")
52
- }
53
- const clear = () => {
54
- for (let i = 0; i < selectList.value.length; i++) {
55
- delete listQuery.value[selectList.value[i].prop]
56
- selectList.value.splice(i, 1)
57
- i--
58
- }
59
- emit("remove")
60
- }
61
- const isValue = (item: I.ParamsItem) => {
62
- let text = item.tagNames
63
- let type = item.type
64
- switch (type) {
65
- case "time":
66
- if (item.tableKey && item.tableKey.length) {
67
- return listQuery?.value[item.tableKey[0]] + " 至 " + listQuery?.value[item.tableKey[1]]
68
- } else {
69
- return listQuery?.value[item.prop]
70
- }
71
- break
72
- case "select":
73
- if (!text) {
74
- const cur = item.options?.find((a) => a.value == listQuery.value[item.prop])
75
- if (cur) {
76
- text = cur.label
77
- }
78
- }
79
- break
80
- default:
81
- return text || listQuery.value[item.prop]
82
- }
83
- return text
84
- }
85
- const popoverRef = ref()
86
- const selectRef = ref()
87
- const tagsSelectRef = ref()
88
- const show = (i: number) => {
89
- if (selectList.value[i].type !== "select") return
90
-
91
- if (tagsSelectRef.value[i] && tagsSelectRef.value[i].focus) tagsSelectRef.value[i].focus()
92
- }
93
-
94
- const onChange = (opt: { prop: string; label: string; value: unknown }) => {
95
- for (let j in visibleMap.value) {
96
- visibleMap.value[j] = false
97
- }
98
- select(
99
- opt,
100
- selectList.value.find((a) => a.prop == opt.prop),
101
- )
102
- for (let i in popoverRef.value) {
103
- popoverRef.value[i].hide()
104
- }
105
- }
106
- const select = (
107
- option: {
108
- prop: string
109
- label: string
110
- value: unknown
111
- },
112
- params?: I.ParamsItem,
113
- ) => {
114
- if (!params) return
115
- const val = option.value
116
- if (params.tableKey && params.tableKey.length && Array.isArray(val)) {
117
- params.tableKey.forEach((a, i) => {
118
- listQuery.value[a] = val[i]
119
- })
120
- } else {
121
- listQuery.value[params.prop] = val
122
- }
123
- params.tagNames = option.label
124
- emit("change", params)
125
- }
126
- const onClick = (item: I.ParamsItem) => {
127
- if (["select"].includes(item.type)) {
128
- return
129
- }
130
- emit("itemClick", item)
131
- }
132
- </script>
@@ -1,40 +0,0 @@
1
- <template>
2
- <el-popover ref="popoverRef" trigger="click" placement="bottom-start" hide-delay="0" popper-class="table-filter-tag-popper">
3
- <template #reference>
4
- <div ref="toggleRef" class="table-filter-toggle">
5
- <span class="current-filter-label">{{ props.selectParams[props.index]?.label }}</span>
6
- <el-icon><ArrowDown /></el-icon>
7
- </div>
8
- </template>
9
- <div ref="wrapperRef" class="table-filter-List">
10
- <ul>
11
- <template v-for="(item, i) in props.selectParams" :key="i">
12
- <li v-if="!item.external" :class="{ active: props.index == i }" @click="select(i)">{{ item?.label }}</li>
13
- </template>
14
- </ul>
15
- </div>
16
- </el-popover>
17
- </template>
18
- <script lang="ts" setup>
19
- import { ArrowDown } from "@element-plus/icons-vue"
20
- import { type PropType, ref } from "vue"
21
- import * as I from "../../types"
22
- const props = defineProps({
23
- selectParams: {
24
- type: Array as PropType<Array<I.ParamsItem>>,
25
- default: () => {
26
- return []
27
- },
28
- },
29
- index: {
30
- type: Number,
31
- default: 0,
32
- },
33
- })
34
- const emits = defineEmits(["update:index"])
35
- const popoverRef = ref()
36
- const select = (i: number) => {
37
- popoverRef.value.hide()
38
- emits("update:index", i)
39
- }
40
- </script>
@@ -1,78 +0,0 @@
1
- <template>
2
- <div v-if="visible" ref="wrapperRef" class="table-filter-type" :style="style" @mousedown.stop>
3
- <component :is="typeList[params.type || 'input']" v-model="query[params.prop]" :list-query="listQuery" :params-item="params" @change="onChange" @cancel="onCancel" />
4
- </div>
5
- </template>
6
- <script lang="ts" setup>
7
- import { type PropType, ref, type Ref, watch } from "vue"
8
- import * as I from "../../types"
9
-
10
- import * as Utils from "../../../../utils/common"
11
- import type { ListQuery } from "../../types"
12
- import TagsSelect from "./containers/TagsSelect.vue"
13
-
14
- const props = defineProps({
15
- listQuery: {
16
- type: Object as PropType<ListQuery>,
17
- default: () => {
18
- return {}
19
- },
20
- },
21
- })
22
- const emit = defineEmits(["click", "change", "cancel", "close"])
23
- const listQuery: Ref<ListQuery> = ref(props.listQuery)
24
- const query: Ref<ListQuery> = ref(Utils.deepClone(props.listQuery))
25
- const params = ref<I.ParamsItem>({} as I.ParamsItem)
26
- const visible: Ref<boolean> = ref(false)
27
- const style = ref({})
28
- const typeList: Record<string, unknown> = { select: TagsSelect }
29
-
30
- watch(
31
- () => props.listQuery,
32
- (val) => {
33
- let q = Utils.deepClone(val)
34
- let arr: Array<string> = []
35
- if (params.value.tableKey && params.value.tableKey.length) {
36
- params.value.tableKey.forEach((a) => {
37
- arr.push(listQuery.value[a] + "")
38
- })
39
- q[params.value.prop] = arr
40
- }
41
- query.value = q
42
- },
43
- { immediate: true, deep: true },
44
- )
45
- const wrapperRef = ref()
46
- const open = (_event: Event, option: I.ParamsItem) => {
47
- params.value = option
48
- visible.value = true
49
- console.log("params", params)
50
- document.getElementById("app")?.addEventListener("mousedown", close)
51
- }
52
- const close = () => {
53
- visible.value = false
54
- emit("close")
55
- }
56
- defineExpose({ close, open })
57
- const onChange = (option: ChangeOption) => {
58
- const val = option.value
59
- if (params.value.tableKey && params.value.tableKey.length && Array.isArray(val)) {
60
- params.value.tableKey.forEach((a, i) => {
61
- listQuery.value[a] = val[i]
62
- })
63
- } else {
64
- listQuery.value[option.prop] = val
65
- }
66
- emit("change", option, params.value)
67
- close()
68
- }
69
-
70
- const onCancel = () => {
71
- close()
72
- emit("cancel")
73
- }
74
- interface ChangeOption {
75
- prop: string
76
- value: unknown
77
- }
78
- </script>
@@ -1,89 +0,0 @@
1
- <template>
2
- <div class="base-select" @click.stop>
3
- <div v-if="ps.filterable" class="remote-input" @click.stop>
4
- <el-input ref="selectInputRef" v-model="textModel" placeholder="输入搜索名称" clearable @input="onInput">
5
- <template #prefix>
6
- <el-icon class="el-input__icon"><Search /></el-icon>
7
- </template>
8
- </el-input>
9
- </div>
10
- <div v-loading="loading" class="select-spinner">
11
- <ul v-if="options && options.length">
12
- <li v-if="ps.all" :class="{ active: !model }" @click="onChange(allItem)">全部</li>
13
- <li v-for="(item, index) in options" :key="index" :class="{ active: model === item.value }" @click="onChange(item)">{{ item.label }}</li>
14
- </ul>
15
- <el-empty v-else description="暂无数据" :image-size="40" />
16
- </div>
17
- </div>
18
- </template>
19
- <script lang="ts" setup>
20
- import { Search } from "@element-plus/icons-vue"
21
- import { computed, inject, onMounted, type PropType, ref, type Ref } from "vue"
22
- import type { CurdFormOptionItem } from "../../../../CurdForm"
23
- import * as I from "../../../types"
24
- const emit = defineEmits(["update:modelValue", "change"])
25
- const props = defineProps({
26
- paramsItem: {
27
- type: Object as PropType<I.ParamsItem>,
28
- default: () => {
29
- return {}
30
- },
31
- },
32
- modelValue: {
33
- type: [Number, String, Boolean, Array],
34
- default: "",
35
- },
36
- listQuery: {
37
- type: Object as PropType<I.ListQuery>,
38
- default: () => {
39
- return {}
40
- },
41
- },
42
- })
43
- const model: Ref<string | number | boolean | Array<unknown>> = ref(props.modelValue)
44
-
45
- const tableFilterContext = inject<I.TableFilterContext>("tableFilter")
46
-
47
- const paramsItem = ref(props.paramsItem)
48
- const selectInputRef = ref()
49
-
50
- onMounted(() => {
51
- const ps = props.paramsItem && props.paramsItem.props
52
- if (typeof ps != "function" && ps?.filterable && !paramsItem.value.options?.length) {
53
- selectInputRef.value.focus()
54
- tableFilterContext?.loadOptions(paramsItem.value.prop)
55
- }
56
- })
57
- const ps = computed(() => {
58
- let ps = props.paramsItem && props.paramsItem.props
59
- if (typeof ps == "function") {
60
- return ps(props.listQuery, props.paramsItem)
61
- }
62
- return ps || {}
63
- })
64
- const textModel: Ref<string> = ref("")
65
- const loading: Ref<boolean> = ref(false)
66
- const allItem = { label: "全部", value: "" }
67
-
68
- const options = computed(() => {
69
- return paramsItem.value.asyncOptions ? props.paramsItem.options : props.paramsItem.options?.filter((a) => a.label.includes(textModel.value))
70
- })
71
-
72
- const onChange = (row: CurdFormOptionItem) => {
73
- paramsItem.value.tagNames = row.label
74
- model.value = row.value
75
- textModel.value = ""
76
- emit("update:modelValue", model.value)
77
- emit("change", { prop: paramsItem.value.prop, value: model.value, label: row.label })
78
- }
79
- const onInput = () => {
80
- if (paramsItem.value.asyncOptions) {
81
- paramsItem.value.options = []
82
- tableFilterContext?.loadOptions(paramsItem.value.prop, { queryString: textModel.value })
83
- }
84
- }
85
- const focus = () => {
86
- if (selectInputRef.value) selectInputRef.value.focus()
87
- }
88
- defineExpose({ focus })
89
- </script>
@@ -1,36 +0,0 @@
1
- import { defineComponent } from "vue"
2
- import type { CurdFormOptionItem, FormContext, FormItem, FormItemTypeEmun } from "../CurdForm"
3
- export interface ParamsItem extends FormItem {
4
- type?: FormItemTypeEmun | ReturnType<typeof defineComponent>
5
- tableKey?: Array<string>
6
- external?: boolean | "left" | "right"
7
- all?: boolean
8
- sortIndex?: number // 排序,数字越大越靠前
9
- tagNames?: string
10
- }
11
- export type FilterItem = ParamsItem
12
- export interface TableFilterContext {
13
- loadOptions: (prop: string, config?: unknown) => void
14
- setOptions: (prop: string, options: CurdFormOptionItem[], config?: unknown) => void
15
- setValue: (prop: string, value: unknown) => void
16
- search: () => void
17
- formModel: ListQuery
18
- components: FormContext["components"]
19
- change: FormContext["change"]
20
- formRef?: FormContext["formRef"]
21
- formSchema?: FormContext["formSchema"]
22
- }
23
-
24
- export interface ListQuery {
25
- [key: string]: unknown
26
- }
27
- export interface FilterOption {
28
- formProps: {
29
- labelWidth?: string | number
30
- labelPosition?: "left" | "right" | "center" | string
31
- }
32
- }
33
-
34
- export interface State {
35
- isFocus: boolean
36
- }