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.
- package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
- package/dist/assets/easybill-ui.css +1 -0
- package/dist/components/ConstantStatus/index.d.ts +24 -0
- package/dist/components/ConstantStatus/index.js +7 -0
- package/dist/components/ConstantStatus/src/ConstantStatus.vue.d.ts +25 -0
- package/dist/components/ConstantStatus/src/ConstantStatus.vue.js +76 -0
- package/dist/components/ConstantStatus/src/ConstantStatus.vue2.js +4 -0
- package/dist/components/ConstantStatus/src/index.d.ts +3 -0
- package/dist/components/ConstantStatus/src/index.js +5 -0
- package/dist/components/ConstantStatus/src/types.d.ts +18 -0
- package/dist/components/CurdForm/index.d.ts +9 -0
- package/dist/components/CurdForm/index.js +9 -0
- package/dist/components/CurdForm/src/CurdForm.vue.js +7 -0
- package/dist/components/CurdForm/src/CurdForm.vue2.js +326 -0
- package/dist/components/CurdForm/src/CurdFormItem.vue.d.ts +37 -0
- package/dist/components/CurdForm/src/CurdFormItem.vue.js +55 -0
- package/dist/components/CurdForm/src/CurdFormItem.vue2.js +4 -0
- package/dist/components/CurdForm/src/FormItem.vue.d.ts +44 -0
- package/dist/components/CurdForm/src/FormItem.vue.js +128 -0
- package/dist/components/CurdForm/src/FormItem.vue2.js +4 -0
- package/dist/components/CurdForm/src/FormTooltip.vue.d.ts +33 -0
- package/dist/components/CurdForm/src/FormTooltip.vue.js +63 -0
- package/dist/components/CurdForm/src/FormTooltip.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/index.d.ts +10 -0
- package/dist/components/CurdForm/src/components/index.js +38 -0
- package/dist/components/CurdForm/src/components/schema-form-autocomplete.vue.d.ts +56 -0
- package/dist/components/CurdForm/src/components/schema-form-autocomplete.vue.js +39 -0
- package/dist/components/CurdForm/src/components/schema-form-autocomplete.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/schema-form-cascader.vue.d.ts +56 -0
- package/dist/components/CurdForm/src/components/schema-form-cascader.vue.js +32 -0
- package/dist/components/CurdForm/src/components/schema-form-cascader.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/schema-form-checkbox.vue.d.ts +59 -0
- package/dist/components/CurdForm/src/components/schema-form-checkbox.vue.js +86 -0
- package/dist/components/CurdForm/src/components/schema-form-checkbox.vue2.js +33 -0
- package/dist/components/CurdForm/src/components/schema-form-choose.vue.js +217 -0
- package/dist/components/CurdForm/src/components/schema-form-choose.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/schema-form-color-picker.vue.d.ts +54 -0
- package/dist/components/CurdForm/src/components/schema-form-color-picker.vue.js +15 -0
- package/dist/components/CurdForm/src/components/schema-form-color-picker.vue2.js +19 -0
- package/dist/components/CurdForm/src/components/schema-form-date-picker.vue.d.ts +56 -0
- package/dist/components/CurdForm/src/components/schema-form-date-picker.vue.js +32 -0
- package/dist/components/CurdForm/src/components/schema-form-date-picker.vue2.js +27 -0
- package/dist/components/CurdForm/src/components/schema-form-input-number.vue.d.ts +54 -0
- package/dist/components/CurdForm/src/components/schema-form-input-number.vue.js +39 -0
- package/dist/components/CurdForm/src/components/schema-form-input-number.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/schema-form-input.vue.d.ts +54 -0
- package/dist/components/CurdForm/src/components/schema-form-input.vue.js +44 -0
- package/dist/components/CurdForm/src/components/schema-form-input.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/schema-form-radio.vue.d.ts +54 -0
- package/dist/components/CurdForm/src/components/schema-form-radio.vue.js +114 -0
- package/dist/components/CurdForm/src/components/schema-form-radio.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/schema-form-select-v2.vue.d.ts +54 -0
- package/dist/components/CurdForm/src/components/schema-form-select-v2.vue.js +69 -0
- package/dist/components/CurdForm/src/components/schema-form-select-v2.vue2.js +4 -0
- package/dist/components/CurdForm/src/components/schema-form-select.vue.js +65 -0
- package/dist/components/CurdForm/src/components/schema-form-select.vue2.js +66 -0
- package/dist/components/CurdForm/src/components/schema-form-switch.vue.d.ts +54 -0
- package/dist/components/CurdForm/src/components/schema-form-switch.vue.js +14 -0
- package/dist/components/CurdForm/src/components/schema-form-switch.vue2.js +25 -0
- package/dist/components/CurdForm/src/components/schema-form-time-picker.vue.d.ts +57 -0
- package/dist/components/CurdForm/src/components/schema-form-time-picker.vue.js +29 -0
- package/dist/components/CurdForm/src/components/schema-form-time-picker.vue2.js +30 -0
- package/dist/components/CurdForm/src/components/schema-form-tree-select.vue.d.ts +58 -0
- package/dist/components/CurdForm/src/components/schema-form-tree-select.vue.js +55 -0
- package/dist/components/CurdForm/src/components/schema-form-tree-select.vue2.js +31 -0
- package/dist/components/CurdForm/src/components/schema-form-value.vue.d.ts +54 -0
- package/dist/components/CurdForm/src/components/schema-form-value.vue.js +11 -0
- package/dist/components/CurdForm/src/components/schema-form-value.vue2.js +21 -0
- package/dist/components/CurdForm/src/directive/index.d.ts +12 -0
- package/dist/components/CurdForm/src/directive/index.js +32 -0
- package/dist/components/CurdForm/src/hooks/index.d.ts +4 -0
- package/dist/components/CurdForm/src/hooks/index.js +7 -0
- package/dist/components/CurdForm/src/types.d.ts +136 -0
- package/dist/components/CurdForm/src/types.js +27 -0
- package/dist/components/CurdForm/src/utils/ajax.d.ts +25 -0
- package/dist/components/CurdForm/src/utils/common.d.ts +1 -0
- package/dist/components/CurdForm/src/utils/common.js +13 -0
- package/dist/components/CurdGroupForm/index.d.ts +2 -0
- package/dist/components/CurdGroupForm/src/CurdGroupForm.vue.d.ts +36 -0
- package/dist/components/CurdGroupForm/src/CurdGroupForm.vue.js +113 -0
- package/dist/components/CurdGroupForm/src/CurdGroupForm.vue2.js +4 -0
- package/dist/components/CurdGroupForm/src/components/CurdFormGroup.vue.d.ts +52 -0
- package/dist/components/CurdGroupForm/src/components/CurdFormGroup.vue.js +64 -0
- package/dist/components/CurdGroupForm/src/components/CurdFormGroup.vue2.js +4 -0
- package/dist/components/CurdGroupForm/src/hooks/useFormHook.d.ts +12 -0
- package/dist/components/CurdGroupForm/src/hooks/useFormHook.js +32 -0
- package/dist/components/CurdGroupForm/types.d.ts +33 -0
- package/dist/components/CurdTable/index.d.ts +13 -0
- package/dist/components/CurdTable/index.js +7 -0
- package/dist/components/CurdTable/src/CurdTable.vue.js +562 -0
- package/dist/components/CurdTable/src/CurdTable.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableColumnControl.vue.d.ts +21 -0
- package/dist/components/CurdTable/src/STableColumnControl.vue.js +132 -0
- package/dist/components/CurdTable/src/STableColumnControl.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableDetail.vue.d.ts +9 -0
- package/dist/components/CurdTable/src/STableDetail.vue.js +53 -0
- package/dist/components/CurdTable/src/STableDetail.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableFilter.vue.d.ts +28 -0
- package/dist/components/CurdTable/src/STableFilter.vue.js +40 -0
- package/dist/components/CurdTable/src/STableFilter.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableItem.vue.d.ts +127 -0
- package/dist/components/CurdTable/src/STableItem.vue.js +147 -0
- package/dist/components/CurdTable/src/STableItem.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableItemFilter.vue.d.ts +34 -0
- package/dist/components/CurdTable/src/STableItemFilter.vue.js +71 -0
- package/dist/components/CurdTable/src/STableItemFilter.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableItemFormatter.vue.d.ts +38 -0
- package/dist/components/CurdTable/src/STableItemFormatter.vue.js +34 -0
- package/dist/components/CurdTable/src/STableItemFormatter.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableItemHeader.vue.d.ts +16 -0
- package/dist/components/CurdTable/src/STableItemHeader.vue.js +24 -0
- package/dist/components/CurdTable/src/STableItemHeader.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableItemHeaderTooltip.vue.d.ts +14 -0
- package/dist/components/CurdTable/src/STableItemHeaderTooltip.vue.js +48 -0
- package/dist/components/CurdTable/src/STableItemHeaderTooltip.vue2.js +4 -0
- package/dist/components/CurdTable/src/STableMenu.vue.d.ts +20 -0
- package/dist/components/CurdTable/src/STableMenu.vue.js +120 -0
- package/dist/components/CurdTable/src/STableMenu.vue2.js +4 -0
- package/dist/components/CurdTable/src/hooks/useColumnHook.d.ts +9 -0
- package/dist/components/CurdTable/src/hooks/useColumnHook.js +45 -0
- package/dist/components/CurdTable/src/types.d.ts +178 -0
- package/dist/components/CurdTable/utils/common.d.ts +5 -0
- package/dist/components/CurdTable/utils/common.js +18 -0
- package/dist/components/CurdTable/utils/tabelToExcel.d.ts +4 -0
- package/dist/components/CurdTable/utils/tabelToExcel.js +23 -0
- package/dist/components/DetailInfo/index.d.ts +147 -0
- package/dist/components/DetailInfo/index.js +7 -0
- package/dist/components/DetailInfo/src/DetailInfo.vue.d.ts +77 -0
- package/dist/components/DetailInfo/src/DetailInfo.vue.js +144 -0
- package/dist/components/DetailInfo/src/DetailInfo.vue2.js +4 -0
- package/dist/components/DetailInfo/src/DetailInfoContent.vue.d.ts +16 -0
- package/dist/components/DetailInfo/src/DetailInfoContent.vue.js +43 -0
- package/dist/components/DetailInfo/src/DetailInfoContent.vue2.js +4 -0
- package/dist/components/DetailInfo/src/DetailInfoTooltip.vue.d.ts +15 -0
- package/dist/components/DetailInfo/src/DetailInfoTooltip.vue.js +48 -0
- package/dist/components/DetailInfo/src/DetailInfoTooltip.vue2.js +4 -0
- package/dist/components/DetailInfo/src/types.d.ts +22 -0
- package/dist/components/FormDialog/index.d.ts +7 -0
- package/dist/components/FormDialog/index.js +6 -0
- package/dist/components/FormDialog/src/FormDialog.vue.d.ts +247 -0
- package/dist/components/FormDialog/src/FormDialog.vue.js +117 -0
- package/dist/components/FormDialog/src/FormDialog.vue2.js +191 -0
- package/dist/components/FormDialog/src/hooks/index.d.ts +2 -0
- package/dist/components/FormDialog/src/hooks/useStepList.d.ts +14 -0
- package/dist/components/FormDialog/src/hooks/useStepList.js +27 -0
- package/dist/components/FormDialog/src/hooks/useStepNavigation.d.ts +75 -0
- package/dist/components/FormDialog/src/hooks/useStepNavigation.js +34 -0
- package/dist/components/FormDialog/src/index.d.ts +13 -0
- package/dist/components/FormDialog/src/index.js +23 -0
- package/dist/components/FormDialog/src/types.d.ts +63 -0
- package/dist/components/TableFilter/index.d.ts +6 -0
- package/dist/components/TableFilter/index.js +7 -0
- package/dist/components/TableFilter/src/FilterExternal/FilterExternal.vue.js +91 -0
- package/dist/components/TableFilter/src/FilterExternal/FilterExternal.vue2.js +4 -0
- package/dist/components/TableFilter/src/FilterSearchBox.vue.d.ts +33 -0
- package/dist/components/TableFilter/src/FilterSearchBox.vue.js +71 -0
- package/dist/components/TableFilter/src/FilterSearchBox.vue2.js +4 -0
- package/dist/components/TableFilter/src/TableFilter.vue.js +180 -0
- package/dist/components/TableFilter/src/TableFilter.vue2.js +4 -0
- package/dist/components/TableFilter/src/components/FilterItem.vue.d.ts +37 -0
- package/dist/components/TableFilter/src/components/FilterItem.vue.js +63 -0
- package/dist/components/TableFilter/src/components/FilterItem.vue2.js +4 -0
- package/dist/components/TableFilter/src/components/FilterTags.vue.d.ts +114 -0
- package/dist/components/TableFilter/src/components/FilterTags.vue.js +142 -0
- package/dist/components/TableFilter/src/components/FilterTags.vue2.js +4 -0
- package/dist/components/TableFilter/src/components/FilterToggle.vue.d.ts +29 -0
- package/dist/components/TableFilter/src/components/FilterToggle.vue.js +70 -0
- package/dist/components/TableFilter/src/components/FilterToggle.vue2.js +4 -0
- package/dist/components/TableFilter/src/components/FilterType.vue.d.ts +30 -0
- package/dist/components/TableFilter/src/components/FilterType.vue.js +62 -0
- package/dist/components/TableFilter/src/components/FilterType.vue2.js +4 -0
- package/dist/components/TableFilter/src/components/containers/TagsSelect.vue.d.ts +42 -0
- package/dist/components/TableFilter/src/components/containers/TagsSelect.vue.js +99 -0
- package/dist/components/TableFilter/src/components/containers/TagsSelect.vue2.js +4 -0
- package/dist/components/TableFilter/types.d.ts +34 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +35 -0
- package/dist/locale/index.d.ts +9 -0
- package/dist/locale/index.js +6 -0
- package/dist/locale/lang/en.d.ts +49 -0
- package/{locale/lang/en.ts → dist/locale/lang/en.js} +10 -7
- package/dist/locale/lang/zh-cn.d.ts +49 -0
- package/{locale/lang/zh-cn.ts → dist/locale/lang/zh-cn.js} +10 -7
- package/dist/utils/common/index.d.ts +8 -0
- package/dist/utils/common/index.js +13 -0
- package/dist/utils/hooks/useGlobalConfig.d.ts +13 -0
- package/dist/utils/hooks/useGlobalConfig.js +22 -0
- package/dist/utils/hooks/useLocal.d.ts +15 -0
- package/dist/utils/hooks/useLocal.js +33 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/vue/index.d.ts +2 -0
- package/dist/utils/vue/index.js +4 -0
- package/dist/utils/vue/install.d.ts +2 -0
- package/dist/utils/vue/install.js +14 -0
- package/dist/utils/vue/make-installer.d.ts +5 -0
- package/dist/utils/vue/make-installer.js +9 -0
- package/dist/utils/vue/typescript.d.ts +5 -0
- package/package.json +55 -46
- package/components/ConstantStatus/index.ts +0 -5
- package/components/ConstantStatus/src/ConstantStatus.vue +0 -69
- package/components/ConstantStatus/src/index.ts +0 -3
- package/components/ConstantStatus/src/types.ts +0 -18
- package/components/CurdForm/index.ts +0 -9
- package/components/CurdForm/src/CurdForm.vue +0 -500
- package/components/CurdForm/src/CurdFormItem.vue +0 -70
- package/components/CurdForm/src/FormItem.vue +0 -105
- package/components/CurdForm/src/FormTooltip.vue +0 -54
- package/components/CurdForm/src/components/index.ts +0 -52
- package/components/CurdForm/src/components/schema-form-autocomplete.vue +0 -25
- package/components/CurdForm/src/components/schema-form-cascader.vue +0 -24
- package/components/CurdForm/src/components/schema-form-checkbox.vue +0 -53
- package/components/CurdForm/src/components/schema-form-choose.vue +0 -225
- package/components/CurdForm/src/components/schema-form-color-picker.vue +0 -23
- package/components/CurdForm/src/components/schema-form-date-picker.vue +0 -34
- package/components/CurdForm/src/components/schema-form-input-number.vue +0 -12
- package/components/CurdForm/src/components/schema-form-input.vue +0 -21
- package/components/CurdForm/src/components/schema-form-radio.vue +0 -59
- package/components/CurdForm/src/components/schema-form-select-v2.vue +0 -60
- package/components/CurdForm/src/components/schema-form-select.vue +0 -93
- package/components/CurdForm/src/components/schema-form-switch.vue +0 -29
- package/components/CurdForm/src/components/schema-form-time-picker.vue +0 -37
- package/components/CurdForm/src/components/schema-form-tree-select.vue +0 -45
- package/components/CurdForm/src/components/schema-form-value.vue +0 -25
- package/components/CurdForm/src/directive/index.ts +0 -60
- package/components/CurdForm/src/hooks/index.ts +0 -6
- package/components/CurdForm/src/types.ts +0 -146
- package/components/CurdForm/src/utils/ajax.ts +0 -125
- package/components/CurdForm/src/utils/common.ts +0 -17
- package/components/CurdGroupForm/index.ts +0 -2
- package/components/CurdGroupForm/src/CurdGroupForm.vue +0 -93
- package/components/CurdGroupForm/src/components/CurdFormGroup.vue +0 -39
- package/components/CurdGroupForm/src/hooks/useFormHook.ts +0 -55
- package/components/CurdGroupForm/types.ts +0 -22
- package/components/CurdTable/index.ts +0 -5
- package/components/CurdTable/src/CurdTable.vue +0 -470
- package/components/CurdTable/src/STableColumnControl.vue +0 -88
- package/components/CurdTable/src/STableDetail.vue +0 -52
- package/components/CurdTable/src/STableFilter.vue +0 -50
- package/components/CurdTable/src/STableItem.vue +0 -119
- package/components/CurdTable/src/STableItemFilter.vue +0 -53
- package/components/CurdTable/src/STableItemFormatter.vue +0 -35
- package/components/CurdTable/src/STableItemHeader.vue +0 -33
- package/components/CurdTable/src/STableItemHeaderTooltip.vue +0 -32
- package/components/CurdTable/src/STableMenu.vue +0 -77
- package/components/CurdTable/src/hooks/useColumnHook.ts +0 -77
- package/components/CurdTable/src/types.ts +0 -163
- package/components/CurdTable/utils/common.ts +0 -33
- package/components/CurdTable/utils/tabelToExcel.ts +0 -68
- package/components/DetailInfo/index.ts +0 -5
- package/components/DetailInfo/src/DetailInfo.vue +0 -108
- package/components/DetailInfo/src/DetailInfoContent.vue +0 -27
- package/components/DetailInfo/src/DetailInfoTooltip.vue +0 -33
- package/components/DetailInfo/src/types.ts +0 -23
- package/components/FormDialog/index.ts +0 -3
- package/components/FormDialog/src/FormDialog.vue +0 -276
- package/components/FormDialog/src/hooks/index.ts +0 -2
- package/components/FormDialog/src/hooks/useStepList.ts +0 -49
- package/components/FormDialog/src/hooks/useStepNavigation.ts +0 -74
- package/components/FormDialog/src/index.ts +0 -39
- package/components/FormDialog/src/types.ts +0 -51
- package/components/TableFilter/index.ts +0 -6
- package/components/TableFilter/src/FilterExternal/FilterExternal.vue +0 -121
- package/components/TableFilter/src/FilterSearchBox.vue +0 -65
- package/components/TableFilter/src/TableFilter.vue +0 -236
- package/components/TableFilter/src/components/FilterItem.vue +0 -76
- package/components/TableFilter/src/components/FilterTags.vue +0 -132
- package/components/TableFilter/src/components/FilterToggle.vue +0 -40
- package/components/TableFilter/src/components/FilterType.vue +0 -78
- package/components/TableFilter/src/components/containers/TagsSelect.vue +0 -89
- package/components/TableFilter/types.ts +0 -36
- package/index.ts +0 -25
- package/locale/index.ts +0 -11
- package/utils/common/index.ts +0 -24
- package/utils/hooks/useGlobalConfig.ts +0 -39
- package/utils/hooks/useLocal.ts +0 -61
- package/utils/index.ts +0 -2
- package/utils/vue/index.ts +0 -3
- package/utils/vue/install.ts +0 -18
- package/utils/vue/make-installer.ts +0 -16
- package/utils/vue/typescript.ts +0 -7
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import type { TableProps } from "element-plus/es/components/table/src/table/defaults"
|
|
2
|
-
import type { OptionItem } from "../../ConstantStatus"
|
|
3
|
-
import type { Fields, FormItem as FormItemType, TooltipProps } from "../../CurdForm"
|
|
4
|
-
import type { ParamsItem } from "../../TableFilter"
|
|
5
|
-
import type { EventObject, FormSchema } from "./../../CurdForm/src/types"
|
|
6
|
-
// import { TableColumnCtx } from "element-plus"
|
|
7
|
-
|
|
8
|
-
import type { VNode } from "vue"
|
|
9
|
-
import type { FormDialogOptions } from "../../FormDialog/src/types"
|
|
10
|
-
|
|
11
|
-
export type MaybePromise<T> = T | Promise<T>
|
|
12
|
-
|
|
13
|
-
export interface CurdTableProps<T = unknown> extends Partial<TableProps<T>> {
|
|
14
|
-
rowKey?: string
|
|
15
|
-
data?: T[]
|
|
16
|
-
columns: ColumnItem<T>[]
|
|
17
|
-
pageOptions?: { pageIndex?: number; pageSize?: number; total?: number } & Fields
|
|
18
|
-
option?: Partial<PropOption>
|
|
19
|
-
fetchData?: (opt: FeachDataParam) => Promise<{ total?: number; list?: T[] } | void>
|
|
20
|
-
fetchCreate?: (formModel: Fields) => MaybePromise<void | boolean>
|
|
21
|
-
fetchEdit?: (formModel: Fields, row: T, index?: number) => MaybePromise<void | boolean>
|
|
22
|
-
fetchRemove?: (row: T, index: number) => Promise<void>
|
|
23
|
-
}
|
|
24
|
-
// extends Partial<TableColumnCtx<T>>
|
|
25
|
-
export interface ColumnItemCtx<T> extends Partial<TableColumnCtx<T>> {
|
|
26
|
-
prop: string
|
|
27
|
-
label: string
|
|
28
|
-
type?: string
|
|
29
|
-
hidden?: boolean | ((item: ColumnItemCtx<T>, query: Fields) => boolean)
|
|
30
|
-
neverShow?: boolean // 表示不在列控制器里
|
|
31
|
-
children?: ColumnItem<T>[]
|
|
32
|
-
options?: Array<OptionItem> //数据字典
|
|
33
|
-
asyncOptions?: () => Promise<OptionItem[]>
|
|
34
|
-
eventObject?: EventObject
|
|
35
|
-
form?: Partial<FormItemType> | ((column: ColumnItemCtx<T>, row: T, query: Fields) => Partial<FormItemType>)
|
|
36
|
-
filter?: ColumnItemFilter
|
|
37
|
-
empty?: string | unknown
|
|
38
|
-
detail?: ColumnItemDetail
|
|
39
|
-
value?: unknown
|
|
40
|
-
copy?: boolean // 对某一列的单元格的值进行复制
|
|
41
|
-
vHtml?: boolean //当前列是否v-html渲染
|
|
42
|
-
header?: string | TableColumnHeader
|
|
43
|
-
headerComponent?: string | VNode
|
|
44
|
-
}
|
|
45
|
-
interface TableColumnCtx<T> {
|
|
46
|
-
className: string
|
|
47
|
-
labelClassName: string
|
|
48
|
-
property: string
|
|
49
|
-
prop: string
|
|
50
|
-
width: string | number
|
|
51
|
-
minWidth: string | number
|
|
52
|
-
renderHeader: (data: unknown) => VNode
|
|
53
|
-
sortable: boolean | string
|
|
54
|
-
sortMethod: (a: T, b: T) => number
|
|
55
|
-
sortBy: string | ((row: T, index: number) => string) | string[]
|
|
56
|
-
resizable: boolean
|
|
57
|
-
columnKey: string
|
|
58
|
-
rawColumnKey: string
|
|
59
|
-
align: string
|
|
60
|
-
headerAlign: string
|
|
61
|
-
showTooltipWhenOverflow: boolean
|
|
62
|
-
showOverflowTooltip: boolean
|
|
63
|
-
fixed: boolean | string
|
|
64
|
-
formatter: (row: T, column: ColumnItemCtx<T>, cellValue: unknown, index: number) => VNode | string
|
|
65
|
-
selectable: (row: T, index: number) => boolean
|
|
66
|
-
reserveSelection: boolean
|
|
67
|
-
filterMethod: FilterMethods<T>
|
|
68
|
-
filteredValue: string[]
|
|
69
|
-
filters: Filters
|
|
70
|
-
filterPlacement: string
|
|
71
|
-
filterMultiple: boolean
|
|
72
|
-
index: number | ((index: number) => number)
|
|
73
|
-
sortOrders: ("ascending" | "descending" | null)[]
|
|
74
|
-
renderCell: (data: unknown) => void
|
|
75
|
-
colSpan: number
|
|
76
|
-
rowSpan: number
|
|
77
|
-
// children: TableColumnCtx<T>[]
|
|
78
|
-
level: number
|
|
79
|
-
filterable: boolean | FilterMethods<T> | Filters
|
|
80
|
-
order: string
|
|
81
|
-
isColumnGroup: boolean
|
|
82
|
-
isSubColumn: boolean
|
|
83
|
-
columns: ColumnItemCtx<T>[]
|
|
84
|
-
getColumnIndex: () => number
|
|
85
|
-
no: number
|
|
86
|
-
filterOpened?: boolean
|
|
87
|
-
}
|
|
88
|
-
type FilterMethods<T> = (value: unknown, row: T, column: ColumnItemCtx<T>) => void
|
|
89
|
-
type Filters = {
|
|
90
|
-
text: string
|
|
91
|
-
value: string
|
|
92
|
-
}[]
|
|
93
|
-
|
|
94
|
-
export type ColumnItem<T = unknown> = ColumnItemCtx<T>
|
|
95
|
-
|
|
96
|
-
export interface TableColumnHeader {
|
|
97
|
-
title?: string
|
|
98
|
-
tooltip?: string | Partial<TooltipProps>
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export interface PropOption {
|
|
102
|
-
operationWidth: number
|
|
103
|
-
operationBtnTitle: string
|
|
104
|
-
hideMenu: boolean // 是否隐藏右侧工具菜单
|
|
105
|
-
hideMenuAdd: boolean // 是否隐藏菜单中添加按钮
|
|
106
|
-
hideMenuRight: boolean // 是否隐藏菜单右侧
|
|
107
|
-
hideOperation: boolean // 是否隐藏操作列
|
|
108
|
-
hideOperationEdit: boolean // 是否隐藏操作列中的编辑按钮
|
|
109
|
-
hideOperationDetail: boolean // 是否隐藏操作列中的详情按钮
|
|
110
|
-
hideOperationDelete: boolean // 是否隐藏操作列中的删除按钮
|
|
111
|
-
hidePage: boolean // 是否隐藏分页器
|
|
112
|
-
excelTitle: string //导出表格的文件名
|
|
113
|
-
selectionProps: Fields //type=selection 的列属性
|
|
114
|
-
downloadMod: boolean | { excludes?: string[] }
|
|
115
|
-
pageProps: Fields
|
|
116
|
-
filterVisible: boolean
|
|
117
|
-
customActivatedFetch: boolean // 自定义执行onActivated内部的fetch执行,完全交由父组件控制
|
|
118
|
-
autoload: boolean
|
|
119
|
-
menuEvent: Partial<Record<MenuEventKey, () => void>>
|
|
120
|
-
filterAttrs: Partial<FormSchema>
|
|
121
|
-
formAttrs: FormAttrs
|
|
122
|
-
editOptions: FormDialogOptions
|
|
123
|
-
createOptions: FormDialogOptions
|
|
124
|
-
}
|
|
125
|
-
export type MenuEventKey = "refresh" | "searchToggle" | "size" | "export" | "operation"
|
|
126
|
-
export type FormAttrs = Partial<FormSchema> & { width?: string | number }
|
|
127
|
-
export interface ColumnItemFilter extends Partial<ParamsItem> {
|
|
128
|
-
inner?: boolean
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export interface ColumnItemDetail {
|
|
132
|
-
label?: string
|
|
133
|
-
span?: number
|
|
134
|
-
value?: unknown
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export interface TableAttr {
|
|
138
|
-
size?: string
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
export interface TableListQuery {
|
|
142
|
-
pageIndex: number
|
|
143
|
-
pageSize: number
|
|
144
|
-
|
|
145
|
-
[key: string]: unknown
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export interface FeachDataParam {
|
|
149
|
-
listQuery: TableListQuery
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export interface FetchDataOpt {
|
|
153
|
-
showLoading?: boolean
|
|
154
|
-
query?: Fields
|
|
155
|
-
resetPageIndex?: boolean
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Make all properties in T optional
|
|
160
|
-
*/
|
|
161
|
-
type Partial<T> = {
|
|
162
|
-
[P in keyof T]?: T[P]
|
|
163
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export function deepClone<T extends Array<T> | unknown>(sourceData: T): T {
|
|
2
|
-
if (Array.isArray(sourceData)) {
|
|
3
|
-
return sourceData.map((item) => deepClone(item)) as T
|
|
4
|
-
}
|
|
5
|
-
if (typeof sourceData !== "object" || sourceData === null || sourceData instanceof Function || sourceData instanceof Date || sourceData instanceof File || sourceData instanceof Symbol) {
|
|
6
|
-
return sourceData
|
|
7
|
-
}
|
|
8
|
-
const obj: T = {} as T
|
|
9
|
-
for (const key in sourceData) {
|
|
10
|
-
if ((typeof sourceData[key] === "object" || sourceData[key] instanceof Date || sourceData[key] instanceof File) && sourceData[key] !== null) {
|
|
11
|
-
obj[key] = deepClone(sourceData[key])
|
|
12
|
-
} else {
|
|
13
|
-
obj[key] = sourceData[key]
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return obj
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* 复制
|
|
20
|
-
*/
|
|
21
|
-
export function copy(value: string) {
|
|
22
|
-
const oInput = document.createElement("input")
|
|
23
|
-
// input框的内容复制
|
|
24
|
-
oInput.value = value
|
|
25
|
-
document.body.appendChild(oInput)
|
|
26
|
-
// 选中
|
|
27
|
-
oInput.select() // 选择对象;
|
|
28
|
-
// 调 自带的Copy方法
|
|
29
|
-
document.execCommand("Copy") // 执行浏览器复制命令
|
|
30
|
-
// 复制成功后 移出 input节点
|
|
31
|
-
// oInput.remove()
|
|
32
|
-
document.body.removeChild(oInput)
|
|
33
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 导出excel
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export function exportExcel(data: (string | number)[][], worksheetName: string, filename?: string) {
|
|
6
|
-
if (!filename) {
|
|
7
|
-
filename = worksheetName
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
tableToExcel(data, worksheetName, filename)
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const tableToExcel = (function () {
|
|
14
|
-
const uri = "data:application/vnd.ms-excel;base64,",
|
|
15
|
-
template =
|
|
16
|
-
'<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"' +
|
|
17
|
-
'xmlns="http://www.w3.org/TR/REC-html40"><head><meta charset="UTF-8"><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
18
|
-
"<x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets>" +
|
|
19
|
-
"</x:ExcelWorkbook></xml><![endif]-->" +
|
|
20
|
-
' <style type="text/css">' +
|
|
21
|
-
".excelTable {" +
|
|
22
|
-
"border-collapse:collapse;" +
|
|
23
|
-
" border:thin solid #999; " +
|
|
24
|
-
"}" +
|
|
25
|
-
" .excelTable th {" +
|
|
26
|
-
" border: thin solid #999;" +
|
|
27
|
-
" padding:20px;" +
|
|
28
|
-
" text-align: center;" +
|
|
29
|
-
" border-top: thin solid #999;" +
|
|
30
|
-
" background-color: #E6E6E6;" +
|
|
31
|
-
" }" +
|
|
32
|
-
" .excelTable td{" +
|
|
33
|
-
" border:thin solid #999;" +
|
|
34
|
-
" padding:2px 5px;" +
|
|
35
|
-
" text-align: left;" +
|
|
36
|
-
" }" +
|
|
37
|
-
" .excelTable .text-right{text-align:right;}" +
|
|
38
|
-
"</style>" +
|
|
39
|
-
'</head><body ><table class="excelTable">{table}</table></body></html>',
|
|
40
|
-
base64 = function (s: string) {
|
|
41
|
-
const encoder = new TextEncoder()
|
|
42
|
-
const utf8Array = encoder.encode(s)
|
|
43
|
-
return btoa(String.fromCharCode.apply(null, Array.from(utf8Array)))
|
|
44
|
-
return window.btoa(decodeURIComponent(encodeURIComponent(s)))
|
|
45
|
-
},
|
|
46
|
-
format = function (s: string, c: Record<string, string>) {
|
|
47
|
-
return s.replace(/{(\w+)}/g, function (_m, p) {
|
|
48
|
-
return c[p]
|
|
49
|
-
})
|
|
50
|
-
}
|
|
51
|
-
return function (data: (string | number)[][], worksheetName: string, filename: string) {
|
|
52
|
-
const tableStr = data
|
|
53
|
-
.map((a) => {
|
|
54
|
-
const td = a.map((td) => "<td class='" + (typeof td == "number" ? "text-right" : "") + "' style='" + (typeof td != "number" ? "mso-number-format:\\@;" : "") + "'>" + (td === undefined || td === null ? "" : td) + "</td>").join("")
|
|
55
|
-
return `<tr>${td}</tr>`
|
|
56
|
-
})
|
|
57
|
-
.join("")
|
|
58
|
-
setTimeout(() => {
|
|
59
|
-
const ctx = { worksheet: worksheetName || "Worksheet", table: tableStr }
|
|
60
|
-
// window.location.href = uri + base64(format(template, ctx)) ;
|
|
61
|
-
const a = document.createElement("a")
|
|
62
|
-
a.href = uri + base64(format(template, ctx))
|
|
63
|
-
// console.log(format(template, ctx))
|
|
64
|
-
a.download = filename
|
|
65
|
-
a.click()
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
})()
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="detail-info" :class="[props.showType, $attrs.shadow]">
|
|
3
|
-
<div v-if="$slots.header || props.title || $slots.title" class="detail-info-header">
|
|
4
|
-
<slot name="header"></slot>
|
|
5
|
-
<div v-if="!$slots.header" class="header-left">
|
|
6
|
-
<div v-if="props.title && !$slots.title" class="title">{{ props.title }}</div>
|
|
7
|
-
<slot name="title"></slot>
|
|
8
|
-
</div>
|
|
9
|
-
<div v-if="!$slots.header" class="header-right">
|
|
10
|
-
<slot name="headerRight"></slot>
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
<div v-if="$slots.default" class="detail-info-body">
|
|
14
|
-
<slot></slot>
|
|
15
|
-
</div>
|
|
16
|
-
<div v-if="!$slots.default" class="detail-info-body" :class="[props.showType]" :style="{ '--gutter': props.gutter + 'px' }">
|
|
17
|
-
<div v-for="(item, i) in list" :key="i" class="table-detail-col" :span="item.span" :style="getItemStyle(item)">
|
|
18
|
-
<div class="item-col" :class="{ 'item-col-top': item.labelPosition == 'top' || props.labelPosition == 'top' }">
|
|
19
|
-
<div v-if="item.label" class="label" :style="getLabelStyle(item)">
|
|
20
|
-
<span>{{ item.label }}</span>
|
|
21
|
-
<DetailInfoTooltip :tooltip="item.tooltip" />
|
|
22
|
-
</div>
|
|
23
|
-
<div class="det">
|
|
24
|
-
<template v-if="item.slot">
|
|
25
|
-
<slot :name="item.slot" :row="item" :data="props.data" :index="i"></slot>
|
|
26
|
-
</template>
|
|
27
|
-
<template v-else>
|
|
28
|
-
<ConstantStatus v-if="item.options" :value="item.value as string" :options="item.options" />
|
|
29
|
-
<template v-else-if="item.type == 'image'">
|
|
30
|
-
<el-image :src="item.value as string" :preview-src-list="[item.value as string]" style="width: 40px; height: 40px; vertical-align: top" :fit="'cover'" v-bind="item.props"></el-image>
|
|
31
|
-
</template>
|
|
32
|
-
<component :is="item.type" v-else-if="item.type" v-model="item.value" v-bind="item.props"></component>
|
|
33
|
-
<template v-else><DetailInfoContent :data="item" /></template>
|
|
34
|
-
</template>
|
|
35
|
-
</div>
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
</template>
|
|
41
|
-
<script lang="ts">
|
|
42
|
-
export default {
|
|
43
|
-
name: "DetailInfo",
|
|
44
|
-
}
|
|
45
|
-
</script>
|
|
46
|
-
<script lang="ts" setup>
|
|
47
|
-
import { ElImage } from "element-plus"
|
|
48
|
-
import { type PropType, computed } from "vue"
|
|
49
|
-
import { ConstantStatus } from "../../ConstantStatus/src"
|
|
50
|
-
import DetailInfoContent from "./DetailInfoContent.vue"
|
|
51
|
-
import DetailInfoTooltip from "./DetailInfoTooltip.vue"
|
|
52
|
-
import { type DetailDataItem } from "./types"
|
|
53
|
-
|
|
54
|
-
const props = defineProps({
|
|
55
|
-
data: {
|
|
56
|
-
type: Array as PropType<DetailDataItem[]>,
|
|
57
|
-
default: () => [],
|
|
58
|
-
},
|
|
59
|
-
title: {
|
|
60
|
-
type: String,
|
|
61
|
-
default: "",
|
|
62
|
-
},
|
|
63
|
-
/** 显示方式,默认是normal,表格式、带边框,可选项:table、normal */
|
|
64
|
-
showType: {
|
|
65
|
-
type: String,
|
|
66
|
-
default: "normal",
|
|
67
|
-
},
|
|
68
|
-
labelWidth: {
|
|
69
|
-
type: [Number, String],
|
|
70
|
-
default: "",
|
|
71
|
-
},
|
|
72
|
-
labelPosition: {
|
|
73
|
-
type: String,
|
|
74
|
-
default: "left",
|
|
75
|
-
},
|
|
76
|
-
gutter: {
|
|
77
|
-
type: Number,
|
|
78
|
-
default: 0,
|
|
79
|
-
},
|
|
80
|
-
})
|
|
81
|
-
const list = computed(() => {
|
|
82
|
-
const d = props.data || []
|
|
83
|
-
return d.filter((item) => {
|
|
84
|
-
if (typeof item.hidden == "function") return !item.hidden(props.data)
|
|
85
|
-
if (typeof item.hidden != "undefined") return !item.hidden
|
|
86
|
-
return true
|
|
87
|
-
})
|
|
88
|
-
})
|
|
89
|
-
const getLabelWidth = (dataItem: DetailDataItem): string => {
|
|
90
|
-
const labelWidth = typeof dataItem.labelWidth !== "undefined" ? dataItem.labelWidth : props.labelWidth
|
|
91
|
-
const isNum = typeof labelWidth == "number" || (typeof labelWidth == "string" && /^\d+$/.test(labelWidth))
|
|
92
|
-
return !isNum ? labelWidth + "" : labelWidth + "px"
|
|
93
|
-
}
|
|
94
|
-
const getLabelStyle = (item: DetailDataItem) => {
|
|
95
|
-
let s = ""
|
|
96
|
-
if (item.labelStyle && typeof item.labelStyle == "object") {
|
|
97
|
-
const l = item.labelStyle
|
|
98
|
-
s = Object.keys(l)
|
|
99
|
-
.map((a) => a + ":" + l[a])
|
|
100
|
-
.join(";")
|
|
101
|
-
}
|
|
102
|
-
return `width: ${getLabelWidth(item)};` + s
|
|
103
|
-
}
|
|
104
|
-
const getItemStyle = (dataItem: DetailDataItem) => {
|
|
105
|
-
const width = (100 * (dataItem.span || 24)) / 24 + "%"
|
|
106
|
-
return { width: width, flex: "0 0 " + width }
|
|
107
|
-
}
|
|
108
|
-
</script>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<el-tooltip v-if="props.data.showOverflowTooltip" v-bind="getTooltipProps">
|
|
3
|
-
<div v-if="props.data.rawContent" style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden" v-html="props.data.value"></div>
|
|
4
|
-
<div v-else style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden">{{ props.data.value }}</div>
|
|
5
|
-
</el-tooltip>
|
|
6
|
-
<template v-else>
|
|
7
|
-
<div v-if="props.data.rawContent" v-html="props.data.value"></div>
|
|
8
|
-
<div v-else>{{ props.data.value }}</div>
|
|
9
|
-
</template>
|
|
10
|
-
</template>
|
|
11
|
-
<script lang="ts" setup>
|
|
12
|
-
import { type PropType, computed } from "vue"
|
|
13
|
-
import { type DetailDataItem } from "./types"
|
|
14
|
-
const props = defineProps({
|
|
15
|
-
data: {
|
|
16
|
-
type: Object as PropType<DetailDataItem>,
|
|
17
|
-
default: () => ({}),
|
|
18
|
-
},
|
|
19
|
-
})
|
|
20
|
-
const getTooltipProps = computed(() => {
|
|
21
|
-
if (typeof props.data.showOverflowTooltip == "object") {
|
|
22
|
-
const { content, ...args } = props.data.showOverflowTooltip
|
|
23
|
-
return { content: content || props.data.value, ...args }
|
|
24
|
-
}
|
|
25
|
-
return { content: props.data.value }
|
|
26
|
-
})
|
|
27
|
-
</script>
|
|
@@ -1,33 +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="primary" 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
|
-
import type { PropType } from "vue"
|
|
14
|
-
const props = defineProps({
|
|
15
|
-
tooltip: {
|
|
16
|
-
type: [String, Object] as PropType<string | import("element-plus/es/components/tooltip").ElTooltipProps>,
|
|
17
|
-
default: "",
|
|
18
|
-
},
|
|
19
|
-
})
|
|
20
|
-
const getTooltipContent = () => {
|
|
21
|
-
const tooltip = props.tooltip
|
|
22
|
-
if (!tooltip) {
|
|
23
|
-
return ""
|
|
24
|
-
}
|
|
25
|
-
if (typeof tooltip === "string") {
|
|
26
|
-
return tooltip
|
|
27
|
-
}
|
|
28
|
-
if (typeof tooltip === "object") {
|
|
29
|
-
return tooltip.content
|
|
30
|
-
}
|
|
31
|
-
return ""
|
|
32
|
-
}
|
|
33
|
-
</script>
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { ElTooltipProps } from "element-plus"
|
|
2
|
-
import { defineComponent } from "vue"
|
|
3
|
-
import type { OptionItem } from "../../ConstantStatus/src/types"
|
|
4
|
-
|
|
5
|
-
export interface DetailDataItem extends Record<string, unknown> {
|
|
6
|
-
label?: string
|
|
7
|
-
value?: unknown
|
|
8
|
-
/** 当前项占的宽度,最大24, 默认24 */
|
|
9
|
-
span?: number
|
|
10
|
-
/** 当前数据的选项,里面包含的图标、颜色信息会自动显示 */
|
|
11
|
-
options?: Array<OptionItem>
|
|
12
|
-
/** type为image时,会把value当做image的url来显示图片 */
|
|
13
|
-
type?: string | ReturnType<typeof defineComponent>
|
|
14
|
-
labelWidth?: number | string
|
|
15
|
-
props?: Record<string, string>
|
|
16
|
-
slot?: string
|
|
17
|
-
tooltip?: string | ElTooltipProps
|
|
18
|
-
labelPosition?: string | "left" | "right" | "center" | "top"
|
|
19
|
-
labelStyle?: string | Record<string, string | number>
|
|
20
|
-
showOverflowTooltip?: boolean | string | Partial<ElTooltipProps>
|
|
21
|
-
rawContent?: boolean
|
|
22
|
-
hidden?: boolean | ((data: DetailDataItem[]) => boolean)
|
|
23
|
-
}
|