easybill-ui 1.4.0 → 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 +61 -32
  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,52 +0,0 @@
1
- <template>
2
- <el-drawer v-model="visible" :title="t('el.table.detail')" size="40%">
3
- <DetailInfo :data="list" :title="t('el.table.detail')" label-width="110px" show-type="table" />
4
- </el-drawer>
5
- </template>
6
- <script lang="ts" setup>
7
- import { ref, type Ref } from "vue"
8
- import { useLocale } from "easybill-ui"
9
- import DetailInfo, { type DetailDataItem } from "../../DetailInfo"
10
- import type { ColumnItem } from "./types"
11
- interface OpenOption {
12
- columns: Array<ColumnItem>
13
- data: Record<string, unknown>
14
- }
15
-
16
- const { t } = useLocale()
17
- const visible = ref(false)
18
- const list: Ref<Array<DetailDataItem>> = ref([])
19
- const getValue = (data: DetailDataItem, column: ColumnItem, index: number) => {
20
- if (column.formatter) {
21
- return column.formatter(data, column, data[column.prop], index)
22
- }
23
- return typeof data[column.prop] == "undefined" || data[column.prop] === "" ? "--" : data[column.prop]
24
- }
25
- const open = (option: OpenOption) => {
26
- list.value = []
27
- option.columns.forEach((item, ci) => {
28
- if (item.children && item.children.length) {
29
- for (let i = 0; i < item.children.length; i++) {
30
- const a = item.children[i]
31
- if (a.hidden) continue
32
- list.value.push({
33
- label: a.label,
34
- value: getValue(option.data, a, i),
35
- span: (a.detail && a.detail.span) || 24,
36
- options: a.options,
37
- })
38
- }
39
- } else {
40
- if (item.hidden) return
41
- list.value.push({
42
- label: item.label,
43
- value: getValue(option.data, item, ci),
44
- span: (item.detail && item.detail.span) || 24,
45
- options: item.options,
46
- })
47
- }
48
- })
49
- visible.value = true
50
- }
51
- defineExpose({ open })
52
- </script>
@@ -1,50 +0,0 @@
1
- <template>
2
- <div class="s-table-filter">
3
- <TableFilter ref="tableFilterRef" :select-params="selectParams" :list-query="props.listQuery" v-bind="option?.filterAttrs" @search="onSearch"></TableFilter>
4
- </div>
5
- </template>
6
- <script lang="ts" setup>
7
- import { inject, type PropType, type Ref, ref } from "vue"
8
- import TableFilter, { type FilterItem, type ListQuery, type ParamsItem } from "../../TableFilter"
9
- import type { PropOption } from "./types"
10
-
11
- const emits = defineEmits(["search"])
12
- const option = inject<PropOption>("option")
13
- const selectParams = inject<Ref<Array<ParamsItem>>>("selectParams") || ref([])
14
- const props = defineProps({
15
- listQuery: {
16
- type: Object as PropType<ListQuery>,
17
- default() {
18
- return {}
19
- },
20
- },
21
- })
22
- const onSearch = () => {
23
- emits("search", props.listQuery)
24
- }
25
- const tableFilterRef = ref()
26
- const setItem = (prop: string, filterItem?: FilterItem) => {
27
- tableFilterRef.value.setItem(prop, filterItem)
28
- }
29
- const getSelectList = () => {
30
- return tableFilterRef.value.selectList
31
- }
32
- const loadOptions = (prop: string, config?: unknown) => {
33
- return tableFilterRef.value.loadOptions(prop, config)
34
- }
35
- const clear = (prop: string) => {
36
- return tableFilterRef.value.clear(prop)
37
- }
38
- // 刷新selectParams
39
- const refreshSelectParams = () => {
40
- tableFilterRef.value.refreshSelectParams()
41
- }
42
- // 获取当前tableFilter的prop
43
- const getCurrentTableFilterProp = () => {
44
- const currentIndex = tableFilterRef.value.getCurrentIndex()
45
- if (currentIndex !== undefined) {
46
- return selectParams.value[tableFilterRef.value.getCurrentIndex()].prop
47
- }
48
- }
49
- defineExpose({ filterRef: tableFilterRef, setItem, getSelectList, loadOptions, clear, refreshSelectParams, getCurrentTableFilterProp })
50
- </script>
@@ -1,119 +0,0 @@
1
- <template>
2
- <el-table-column v-if="!getColumnHidden" :fixed="props.schema.fixed" v-bind="getColumnAttrs">
3
- <template #header="scope">
4
- <div class="header-td" :class="[props.schema.align]">
5
- <slot :name="props.schema.prop + 'Header'" v-bind="scope"></slot>
6
- <component v-if="props.schema.headerComponent" :is="props.schema.headerComponent" v-bind="scope" />
7
- <STableItemHeader v-else-if="!props.isSlotHeader" :schema-item="props.schema" />
8
- <STableItemFilter v-if="props.schema.filter && props.schema.filter.inner" ref="tableItemFilterRef" :filter="filterSchema" @change="onChange" />
9
- </div>
10
- </template>
11
- <template #default="scope">
12
- <slot :name="props.schema.prop" v-bind="scope"></slot>
13
- <template v-if="props.schema.children?.length">
14
- <template v-for="item in props.schema.children" :key="item.label">
15
- <STableItem :ref="(el) => (tableItemRefs[item.prop] = el)" :schema="item" :is-slot="!!$slots[item.prop]" :is-slot-header="!!$slots[item.prop + 'Header']" :option="option" @search="onItemChange">
16
- <template v-for="(_slot, key) in $slots" :key="key" #[key]="scopeChild">
17
- <slot :name="key" v-bind="normalizeSlotScope(scopeChild)"></slot>
18
- </template>
19
- </STableItem>
20
- </template>
21
- </template>
22
- <template v-if="!props.isSlot">
23
- <ConstantStatus v-if="props.schema.options" :value="scope.row[props.schema.prop]" :options="props.schema.options" />
24
- <span v-else-if="props.schema.copy">
25
- <el-icon class="copy" :title="t('el.table.clickCopy')" @click.stop="copyValue(getValue(scope.row))"><CopyDocument /></el-icon>
26
- <span v-if="props.schema.vHtml" v-html="getValue(scope.row)"></span>
27
- <template v-else-if="props.schema.formatter"> <STableItemFormatter :row="scope.row" :index="scope.index" :schema="props.schema" /> </template>
28
- <template v-else>{{ getValue(scope.row) }}</template>
29
- </span>
30
- <span v-else>
31
- <span v-if="props.schema.vHtml" v-html="getValue(scope.row)"></span>
32
- <template v-else-if="props.schema.formatter">
33
- <STableItemFormatter :row="scope.row" :index="scope.index" :schema="props.schema" />
34
- </template>
35
- <template v-else>{{ getValue(scope.row) }}</template>
36
- </span>
37
- </template>
38
- </template>
39
- </el-table-column>
40
- </template>
41
- <script lang="ts" setup>
42
- import { CopyDocument } from "@element-plus/icons-vue"
43
- import { useLocale } from "easybill-ui"
44
- import { ElMessage } from "element-plus"
45
- import { computed, inject, type PropType, ref, type Ref } from "vue"
46
- import ConstantStatus from "../../ConstantStatus"
47
- import type { Fields } from "../../CurdForm"
48
- import type { ParamsItem } from "../../TableFilter"
49
- import { copy } from "../utils/common"
50
- import STableItemFilter from "./STableItemFilter.vue"
51
- import STableItemFormatter from "./STableItemFormatter.vue"
52
- import STableItemHeader from "./STableItemHeader.vue"
53
- import type { ColumnItem } from "./types"
54
- const { t } = useLocale()
55
-
56
- const props = defineProps({
57
- schema: {
58
- type: Object as PropType<ColumnItem<Record<string, unknown>>>,
59
- default() {
60
- return { options: [] }
61
- },
62
- },
63
- isSlot: {
64
- type: Boolean,
65
- default: false,
66
- },
67
- isSlotHeader: {
68
- type: Boolean,
69
- default: false,
70
- },
71
- option: {
72
- type: Object,
73
- default: () => ({}),
74
- },
75
- })
76
- defineSlots<Record<string, (scope: Record<string, unknown>) => unknown>>()
77
- const selectParams = inject<Ref<Array<ParamsItem>>>("selectParams")
78
- const filterSchema = computed(() => {
79
- let result = selectParams?.value.filter((a) => a.prop == props.schema.filter?.prop || a.prop == props.schema.prop) //getFilterFromColumn(props.schema)
80
- if (result && result.length > 1) {
81
- result = result?.filter((a) => a.label == props.schema.label)
82
- }
83
- return (result && result[0]) || {}
84
- })
85
- const getColumnAttrs = computed(() => {
86
- const { children, ...args } = props.schema
87
- return args || children
88
- })
89
- const getValue = (row: Record<string, unknown>) => {
90
- return typeof row[props.schema.prop] == "undefined" || row[props.schema.prop] === "" ? "--" : row[props.schema.prop]
91
- }
92
-
93
- // 复制值
94
- const copyValue = async (value: unknown) => {
95
- copy(String(value))
96
- ElMessage.success(t("el.table.clickCopySuccess"))
97
- }
98
- const emits = defineEmits(["search"])
99
- const search = inject<Fields>("search", {})
100
- const getColumnHidden = computed(() => {
101
- if (props.schema.hidden && props.schema.hidden instanceof Function) {
102
- return props.schema.hidden(props.schema, search)
103
- }
104
- return props.schema.hidden
105
- })
106
- const onChange = (prop: string, value: string) => {
107
- emits("search", prop, value, filterSchema.value)
108
- }
109
- const tableItemFilterRef = ref<InstanceType<typeof STableItemFilter>>()
110
- const onSearch = (opt: { listQuery: Record<string, unknown> }) => {
111
- if (tableItemFilterRef.value) tableItemFilterRef.value.search(opt)
112
- }
113
- const tableItemRefs: Ref<Record<string, unknown>> = ref({})
114
- const normalizeSlotScope = (scope: unknown) => (scope && typeof scope === "object" ? scope : {})
115
- const onItemChange = (prop: string, value: string) => {
116
- emits("search", prop, value, filterSchema.value)
117
- }
118
- defineExpose({ search: onSearch })
119
- </script>
@@ -1,53 +0,0 @@
1
- <template>
2
- <el-popover :visible="visible" trigger="click" popper-class="filter-type-popper">
3
- <template #reference>
4
- <span ref="toggleRef" class="filter-dropdown-toggle" :class="{ active: typeof currentValue !== 'undefined' && currentValue !== '' }" @click.stop="openFilter">
5
- <el-icon><Filter /></el-icon>
6
- </span>
7
- </template>
8
- <FilterType ref="typeRef" :list-query="listQuery" @change="confirm" @close="visible = false"></FilterType>
9
- </el-popover>
10
- </template>
11
- <script lang="ts" setup>
12
- import { Filter } from "@element-plus/icons-vue"
13
- import { ElPopover } from "element-plus"
14
- import { computed, type PropType, ref } from "vue"
15
- import type { Fields } from "../../CurdForm"
16
- import FilterType from "../../TableFilter/src/components/FilterType.vue"
17
- import type { ColumnItemFilter } from "./types"
18
-
19
- const props = defineProps({
20
- filter: {
21
- type: Object as PropType<ColumnItemFilter>,
22
- default() {
23
- return {}
24
- },
25
- },
26
- modelValue: {
27
- type: [String, Number, Boolean],
28
- default: "",
29
- },
30
- })
31
- const emit = defineEmits(["change"])
32
- let currentValue = ref<unknown>("")
33
- const visible = ref(false)
34
- const listQuery = computed(() => {
35
- const o: Record<string, unknown> = {}
36
- o[props.filter.prop || ""] = props.modelValue || currentValue.value
37
- return o
38
- })
39
- const typeRef = ref()
40
- const toggleRef = ref()
41
- const openFilter = () => {
42
- visible.value = true
43
- typeRef.value.open(toggleRef.value, props.filter)
44
- }
45
- const confirm = (opt: { prop: string; value: unknown }) => {
46
- currentValue.value = opt.value
47
- emit("change", opt.prop, opt.value)
48
- }
49
- const search = (event: { listQuery: Fields }) => {
50
- currentValue.value = event.listQuery[props.filter.prop || ""]
51
- }
52
- defineExpose({ search })
53
- </script>
@@ -1,35 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, isReactive, isRef, isVNode, type PropType, ref, watchEffect } from "vue"
3
- import type { ColumnItem } from "./types"
4
- const props = defineProps({
5
- schema: {
6
- type: Object as PropType<ColumnItem<Record<string, unknown>>>,
7
- default() {
8
- return { options: [] }
9
- },
10
- },
11
- row: {
12
- type: Object,
13
- default: () => ({}),
14
- },
15
- index: {
16
- type: Number,
17
- default: () => 0,
18
- },
19
- })
20
- const formatterResult = ref(props.schema.formatter ? props.schema.formatter(props.row, props.row.column, props.row[props.schema.prop], props.index) : props.row[props.schema.prop])
21
- const comp = computed(() => {
22
- const type = formatterResult.value
23
- if (type !== null && type !== "" && typeof type === "object" && (isReactive(type) || isRef(type) || isVNode(type) || type.setup)) return type
24
- return null
25
- })
26
- watchEffect(() => {
27
- formatterResult.value = props.schema.formatter ? props.schema.formatter(props.row, props.row.column, props.row[props.schema.prop], props.index) : props.row[props.schema.prop]
28
- })
29
- </script>
30
-
31
- <template>
32
- <component :is="comp" v-if="comp" />
33
- <template v-else>{{ formatterResult }}</template>
34
- </template>
35
- <style scoped lang="scss"></style>
@@ -1,33 +0,0 @@
1
- <template>
2
- <span class="tit">{{ title }}</span>
3
- <STableItemHeaderTooltip :tooltip="tooltip" />
4
- </template>
5
- <script lang="ts" setup>
6
- import { type PropType, computed } from "vue"
7
- import STableItemHeaderTooltip from "./STableItemHeaderTooltip.vue"
8
- import type { ColumnItem } from "./types"
9
- const props = defineProps({
10
- schemaItem: {
11
- type: Object as PropType<ColumnItem<Record<string, unknown>>>,
12
- default: () => ({}),
13
- },
14
- })
15
- const tooltip = computed(() => {
16
- if (typeof props.schemaItem.header != "string") {
17
- return props.schemaItem.header?.tooltip
18
- }
19
- return ""
20
- })
21
- const title = computed(() => {
22
- if (!props.schemaItem.header) {
23
- return props.schemaItem.label
24
- }
25
- if (typeof props.schemaItem.header == "string") {
26
- return props.schemaItem.header
27
- }
28
- if (typeof props.schemaItem.header === "object") {
29
- return props.schemaItem.header.title || props.schemaItem.label
30
- }
31
- return ""
32
- })
33
- </script>
@@ -1,32 +0,0 @@
1
- <template>
2
- <el-tooltip v-if="props.tooltip" v-bind="typeof props.tooltip == 'object' ? props.tooltip : {}">
3
- <el-button class="tooltip" type="info" link>
4
- <el-icon><Warning /></el-icon>
5
- </el-button>
6
- <template #content>
7
- <div v-html="getTooltipContent()"></div>
8
- </template>
9
- </el-tooltip>
10
- </template>
11
- <script lang="ts" setup>
12
- import { Warning } from "@element-plus/icons-vue"
13
- const props = defineProps({
14
- tooltip: {
15
- type: [String, Object],
16
- default: "",
17
- },
18
- })
19
- const getTooltipContent = () => {
20
- const tooltip = props.tooltip
21
- if (!tooltip) {
22
- return ""
23
- }
24
- if (typeof tooltip === "string") {
25
- return tooltip
26
- }
27
- if (typeof tooltip === "object") {
28
- return tooltip.content
29
- }
30
- return ""
31
- }
32
- </script>
@@ -1,77 +0,0 @@
1
- <template>
2
- <div class="table-menu">
3
- <el-tooltip v-for="item in controlButtons" :key="item.label" :content="item.label" placement="top">
4
- <el-dropdown v-if="item.options" trigger="click" class="table-menu-item" @command="handleSizeCommand">
5
- <el-button type="info" link class="table-menu-item">
6
- <el-icon><component :is="item.icon"></component></el-icon>
7
- </el-button>
8
- <template #dropdown>
9
- <el-dropdown-menu>
10
- <el-dropdown-item v-for="option in item.options" :key="option.value" :command="option.value">
11
- <span :style="{ color: currentSize == option.value ? 'var(--el-color-primary)' : '' }">{{ option.label }}</span>
12
- </el-dropdown-item>
13
- </el-dropdown-menu>
14
- </template>
15
- </el-dropdown>
16
- <el-button v-else type="info" link class="table-menu-item" @click="onClick(item)">
17
- <el-icon><component :is="item.icon"></component></el-icon>
18
- </el-button>
19
- </el-tooltip>
20
- <STableColumnControl v-model:visible="visible" />
21
- </div>
22
- </template>
23
- <script lang="ts" setup>
24
- import { Download, Operation, Refresh, ScaleToOriginal, Search } from "@element-plus/icons-vue"
25
- import { useGlobalConfig, useLocale } from "easybill-ui"
26
- import { computed, ref } from "vue"
27
- import STableColumnControl from "./STableColumnControl.vue"
28
- const emits = defineEmits(["operation"])
29
- const props = defineProps({
30
- filterVisible: {
31
- type: Boolean,
32
- default: true,
33
- },
34
- })
35
- const { t } = useLocale()
36
- const globalConfig = useGlobalConfig()
37
- // 控制按钮逻辑
38
- const controlButtons = computed(() => [
39
- { label: t("el.table.refresh"), value: "refresh", icon: Refresh },
40
- { label: props.filterVisible ? t("el.table.collapseQuery") : t("el.table.expandQuery"), value: "searchToggle", icon: Search },
41
- {
42
- label: t("el.table.density"),
43
- icon: ScaleToOriginal,
44
- value: "size",
45
- options: [
46
- { label: t("el.table.default"), value: "default" },
47
- { label: t("el.table.medium"), value: "medium" },
48
- { label: t("el.table.small"), value: "small" },
49
- ],
50
- },
51
- { label: t("el.table.exportData"), value: "export", icon: Download },
52
- // { label: "打印", value: "print", icon: "Printer" },
53
- { label: t("el.table.columnSet"), value: "operation", icon: Operation },
54
- ])
55
- const visible = ref(false)
56
- const onClick = (item: ButtonItem) => {
57
- emits("operation", item.value)
58
- if (item.value == "operation") {
59
- visible.value = true
60
- }
61
- }
62
- const currentSize = ref(globalConfig.value.size || "default")
63
- const handleSizeCommand = (val: "default" | "small" | "large") => {
64
- currentSize.value = val
65
- emits("operation", "size", val)
66
- }
67
- const openColumnControl = () => {
68
- visible.value = true
69
- }
70
- defineExpose({ openColumnControl })
71
- interface ButtonItem {
72
- label: string
73
- icon: unknown
74
- value: string
75
- options?: Array<{ label: string; value: string }>
76
- }
77
- </script>
@@ -1,77 +0,0 @@
1
- import { provide, type Ref, ref, shallowRef } from "vue"
2
- import type { ParamsItem } from "../../../TableFilter"
3
- import { deepClone } from "../../utils/common"
4
- import type { ColumnItem } from "../types"
5
-
6
- export function useColumnHook<T>(): {
7
- tableColumns: Ref<Array<ColumnItem<T>>>
8
- selectParams: Ref<ParamsItem[]>
9
- initColumn: (propsColumns: ColumnItem<T>[]) => Promise<void>
10
- } {
11
- const columns: Ref<Array<ColumnItem<T>>> = shallowRef([])
12
-
13
- provide("columns", columns)
14
- const getSchema = (colss: ColumnItem<T>[]) => {
15
- const result: Array<ParamsItem> = []
16
- const getFilter = (cols: Array<ColumnItem<T>>) => {
17
- for (const i in cols) {
18
- const a = deepClone(cols[i])
19
- if (a.children && a.children.length) {
20
- getFilter(a.children)
21
- continue
22
- }
23
- if (a.filter) {
24
- result.push(getFilterFromColumn<T>(a))
25
- }
26
- }
27
- }
28
- getFilter(colss)
29
- return result
30
- }
31
- const selectParams = ref<ParamsItem[]>([])
32
- // selectParams.value = getSchema()
33
- provide("selectParams", selectParams)
34
- async function initColumn(propsColumns: ColumnItem<T>[]) {
35
- const cs = deepClone(propsColumns)
36
- columns.value = cs //.filter((a) => !a.hidden)
37
- const find = async (cs: ColumnItem<T>[]) => {
38
- for (let i = 0; i < cs.length; i++) {
39
- const item = cs[i]
40
- if (item.children && item.children.length) {
41
- find(item.children)
42
- } else if (item.asyncOptions) {
43
- item.options = await item.asyncOptions()
44
- }
45
- }
46
- }
47
- find(columns.value)
48
- selectParams.value = getSchema(columns.value).sort((a, b) => (b.sortIndex || 0) - (a.sortIndex || 0))
49
- }
50
-
51
- return {
52
- tableColumns: columns,
53
- selectParams,
54
- initColumn,
55
- }
56
- }
57
- export function getFilterFromColumn<T>(a: ColumnItem<T>) {
58
- const options = a.filter?.options || a.options
59
- const item: ParamsItem = deepClone(a.filter) as ParamsItem
60
- if (!item.prop) {
61
- item.prop = a.prop
62
- }
63
- // label可能传空字符串
64
- if (typeof item.label == "undefined") {
65
- item.label = a.label
66
- }
67
- if (!item.options && options) {
68
- item.options = options
69
- }
70
- if (!item.asyncOptions && a.asyncOptions) {
71
- item.asyncOptions = a.asyncOptions
72
- }
73
- if (!item.eventObject && a.eventObject) {
74
- item.eventObject = a.eventObject
75
- }
76
- return item
77
- }