cnhis-design-vue 3.1.43-beta.3 → 3.1.43-beta.30

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 (143) hide show
  1. package/README.md +87 -87
  2. package/es/components/base-search/index.d.ts +50 -114
  3. package/es/components/base-search/src/index.vue.d.ts +50 -114
  4. package/es/components/base-search/src/index.vue.js +1 -1
  5. package/es/components/base-search/style/index.css +1 -1
  6. package/es/components/classification/index.d.ts +9 -6
  7. package/es/components/classification/src/components/search-filter/index.vue.d.ts +3 -0
  8. package/es/components/classification/src/components/set-classification/index.vue.d.ts +8 -5
  9. package/es/components/classification/src/components/set-classification/index.vue.js +1 -1
  10. package/es/components/classification/src/components/table-modal/index.vue.d.ts +2 -2
  11. package/es/components/classification/src/index.vue.d.ts +9 -6
  12. package/es/components/fabric-chart/index.d.ts +1 -1
  13. package/es/components/fabric-chart/src/FabricChart.vue.d.ts +2 -2
  14. package/es/components/fabric-chart/src/hooks/useBirthProcess.d.ts +1 -1
  15. package/es/components/fabric-chart/src/hooks/useBirthProcessChart.d.ts +2 -1
  16. package/es/components/fabric-chart/src/hooks/useCenter.d.ts +4 -4
  17. package/es/components/fabric-chart/src/hooks/useCumputedPoint.js +1 -1
  18. package/es/components/fabric-chart/src/hooks/useEvent.d.ts +1 -1
  19. package/es/components/fabric-chart/src/hooks/useEvent.js +1 -1
  20. package/es/components/fabric-chart/src/hooks/useLeft.d.ts +1 -1
  21. package/es/components/fabric-chart/src/hooks/useOther.js +1 -1
  22. package/es/components/fabric-chart/src/hooks/useTemperatureChart.d.ts +3 -2
  23. package/es/components/fabric-chart/src/hooks/useTemperatureChart.js +1 -1
  24. package/es/components/form-config/index.d.ts +8 -8
  25. package/es/components/form-config/src/FormConfig.vue.d.ts +8 -8
  26. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +4 -4
  27. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +4 -4
  28. package/es/components/form-render/index.d.ts +4 -4
  29. package/es/components/form-render/src/FormRender.vue.d.ts +4 -4
  30. package/es/components/form-render/src/FormRender.vue.js +1 -1
  31. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +4 -4
  32. package/es/components/form-render/src/components/renderer/radio&checkbox.d.ts +6 -0
  33. package/es/components/form-render/src/components/renderer/radio_checkbox.js +1 -1
  34. package/es/components/form-render/src/components/renderer/searchCascade.js +1 -1
  35. package/es/components/form-render/src/components/renderer/select.js +1 -1
  36. package/es/components/form-render/src/hooks/useAnchor.js +1 -1
  37. package/es/components/form-render/src/hooks/useNuiThemeOverrides.js +1 -1
  38. package/es/components/form-render/style/index.css +1 -1
  39. package/es/components/guide/index.d.ts +2 -0
  40. package/es/components/guide/index.js +1 -0
  41. package/es/components/guide/src/renderer.d.ts +37 -0
  42. package/es/components/guide/src/renderer.js +1 -0
  43. package/es/components/guide/src/types/index.d.ts +40 -0
  44. package/es/components/guide/src/useGuide.d.ts +6 -0
  45. package/es/components/guide/src/useGuide.js +1 -0
  46. package/es/components/guide/src/utils/index.d.ts +14 -0
  47. package/es/components/guide/src/utils/index.js +1 -0
  48. package/es/components/iho-select-label/index.d.ts +352 -0
  49. package/es/components/iho-select-label/index.js +1 -0
  50. package/es/components/iho-select-label/src/LabelFormContent.vue.d.ts +141 -0
  51. package/es/components/iho-select-label/src/LabelFormContent.vue.js +1 -0
  52. package/es/components/iho-select-label/src/SelectLabel.vue.d.ts +213 -0
  53. package/es/components/iho-select-label/src/SelectLabel.vue.js +1 -0
  54. package/es/components/iho-select-label/src/components/label-classify.vue.d.ts +63 -0
  55. package/es/components/iho-select-label/src/components/label-classify.vue.js +1 -0
  56. package/es/components/iho-select-label/src/types/index.d.ts +11 -0
  57. package/es/components/iho-select-label/src/types/index.js +1 -0
  58. package/es/components/iho-select-label/style/iho-select-label-iconfont.ttf +0 -0
  59. package/es/components/iho-select-label/style/index.css +1 -0
  60. package/es/components/iho-table/index.d.ts +9 -2
  61. package/es/components/iho-table/src/IhoTable.vue.d.ts +9 -2
  62. package/es/components/iho-table/src/IhoTable.vue.js +1 -1
  63. package/es/components/iho-table/src/hooks/tapHooks/useDataHooks.d.ts +2 -2
  64. package/es/components/iho-table/src/plugins/anchorPlugin/tableAnchor.js +1 -1
  65. package/es/components/iho-table/src/plugins/anchorPlugin/useAnchor.d.ts +4 -1
  66. package/es/components/iho-table/src/plugins/anchorPlugin/useAnchor.js +1 -1
  67. package/es/components/iho-table/src/plugins/filterDaterangeRenderPlugin/index.js +1 -1
  68. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.d.ts +3 -11
  69. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.js +1 -1
  70. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  71. package/es/components/iho-table/src/plugins/keyboardEventPlugin/index.js +1 -1
  72. package/es/components/iho-table/src/plugins/lowCodeFieldAdaptorPlugin/index.js +1 -1
  73. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.d.ts +2 -3
  74. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.js +1 -1
  75. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/hooks/useAutoFocus.js +1 -1
  76. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/hooks/useSelectOption.d.ts +2 -0
  77. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/hooks/useSelectOption.js +1 -0
  78. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +1 -1
  79. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.d.ts +1 -0
  80. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.js +1 -1
  81. package/es/components/iho-table/src/plugins/varialbleHeightPlugin/index.js +1 -1
  82. package/es/components/iho-table/src/plugins/virtualTreePlugin/index.js +1 -1
  83. package/es/components/iho-table/src/types/index.d.ts +4 -1
  84. package/es/components/iho-table/style/iconfont.ttf +0 -0
  85. package/es/components/iho-table/style/index.css +1 -1
  86. package/es/components/index.css +1 -1
  87. package/es/components/index.d.ts +4 -1
  88. package/es/components/index.js +1 -1
  89. package/es/components/info-header/index.d.ts +8 -8
  90. package/es/components/info-header/src/InfoHeader.vue.d.ts +8 -8
  91. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +4 -4
  92. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +4 -4
  93. package/es/components/keyboard/src/components/InputNumber.vue.js +1 -1
  94. package/es/components/quick-search/index.d.ts +54 -224
  95. package/es/components/quick-search/src/index.vue.d.ts +54 -224
  96. package/es/components/quick-search/src/index.vue.js +1 -1
  97. package/es/components/quick-search/style/index.css +1 -1
  98. package/es/components/scale-view/src/ScaleView.vue.js +1 -1
  99. package/es/components/scale-view/src/components/formitem/standard-modal.d.ts +1 -1
  100. package/es/components/select-label/src/LabelFormContent.vue.js +1 -1
  101. package/es/components/select-person/src/SearchMultiple.vue.d.ts +6 -0
  102. package/es/components/shortcut-setter/index.d.ts +4 -4
  103. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +4 -4
  104. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue.d.ts +3 -0
  105. package/es/components/table-filter/src/components/classify-filter/index.vue.d.ts +3 -0
  106. package/es/components/table-filter/src/components/render-widget/basicData.d.ts +4 -0
  107. package/es/components/table-filter/src/components/render-widget/basicData.js +1 -0
  108. package/es/components/table-filter/src/components/render-widget/components/Date.vue.d.ts +84 -0
  109. package/es/components/table-filter/src/components/render-widget/components/Date.vue.js +1 -0
  110. package/es/components/table-filter/src/components/render-widget/components/DateRange.vue.d.ts +118 -0
  111. package/es/components/table-filter/src/components/render-widget/components/DateRange.vue.js +1 -0
  112. package/es/components/table-filter/src/components/render-widget/components/InputNumberGroup.vue.d.ts +67 -0
  113. package/es/components/table-filter/src/components/render-widget/components/InputNumberGroup.vue.js +1 -0
  114. package/es/components/table-filter/src/components/render-widget/components/Select.vue.d.ts +26 -7
  115. package/es/components/table-filter/src/components/render-widget/components/Select.vue.js +1 -1
  116. package/es/components/table-filter/src/components/render-widget/components/index.d.ts +4 -2
  117. package/es/components/table-filter/src/components/render-widget/components/index.js +1 -1
  118. package/es/components/table-filter/src/components/render-widget/enums.d.ts +17 -0
  119. package/es/components/table-filter/src/components/render-widget/enums.js +1 -1
  120. package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.d.ts +5 -0
  121. package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.js +1 -1
  122. package/es/components/table-filter/src/components/render-widget/index.vue.d.ts +13 -3
  123. package/es/components/table-filter/src/components/render-widget/index.vue.js +1 -1
  124. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +240 -15
  125. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.js +1 -1
  126. package/es/components/table-filter/src/hooks/useAdvanced.d.ts +6 -2
  127. package/es/components/table-filter/src/hooks/useAdvanced.js +1 -1
  128. package/es/components/table-filter/src/hooks/useRenderWidget.js +1 -1
  129. package/es/components/table-filter/src/types/enums.d.ts +3 -0
  130. package/es/components/table-filter/src/types/enums.js +1 -1
  131. package/es/components/table-filter/src/types/index.d.ts +27 -87
  132. package/es/env.d.ts +25 -25
  133. package/es/shared/package.json.js +1 -1
  134. package/package.json +2 -2
  135. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  136. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +0 -1
  137. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +0 -1
  138. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +0 -1
  139. package/es/components/fabric-chart/src/utils/index.d.ts +0 -6823
  140. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/hooks/useTriggerEvent.d.ts +0 -0
  141. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +0 -86
  142. package/es/shared/utils/tapable/index.d.ts +0 -139
  143. /package/es/components/{iho-table/src/plugins/rendererPlugins/editableWidgets/hooks/useTriggerEvent.js → guide/src/types/index.js} +0 -0
@@ -0,0 +1,213 @@
1
+ import { PropType } from 'vue';
2
+ import { ICategoryLabelItemType, ISelectLabelItemType } from '../../../../es/components/iho-select-label/src/types';
3
+ declare const _default: import("vue").DefineComponent<{
4
+ selectedList: {
5
+ type: PropType<ISelectLabelItemType[]>;
6
+ default: () => never[];
7
+ };
8
+ categoryList: {
9
+ type: PropType<ICategoryLabelItemType[]>;
10
+ default: () => never[];
11
+ };
12
+ explicit: {
13
+ type: BooleanConstructor;
14
+ default: boolean;
15
+ };
16
+ }, {
17
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
18
+ selectedList: {
19
+ type: PropType<ISelectLabelItemType[]>;
20
+ default: () => never[];
21
+ };
22
+ categoryList: {
23
+ type: PropType<ICategoryLabelItemType[]>;
24
+ default: () => never[];
25
+ };
26
+ explicit: {
27
+ type: BooleanConstructor;
28
+ default: boolean;
29
+ };
30
+ }>> & {
31
+ onOnChange?: ((...args: any[]) => any) | undefined;
32
+ }>>;
33
+ emit: (event: "onChange", ...args: any[]) => void;
34
+ labelFormContentRef: any;
35
+ outSelectedList: import("vue").Ref<ISelectLabelItemType[] | undefined>;
36
+ state: {
37
+ labelVisible: boolean;
38
+ isChangeWindow: boolean;
39
+ modalWidth: string;
40
+ modalHeight: string;
41
+ maxHeight: string;
42
+ };
43
+ closeTag: (selectItem: ISelectLabelItemType) => void;
44
+ handleEditLabel: () => void;
45
+ handleLabelCancel: () => void;
46
+ changeModalWindow: () => void;
47
+ handleSaveLabel: () => void;
48
+ explicitOnChange: () => void;
49
+ NTag: any;
50
+ NIcon: any;
51
+ NModal: any;
52
+ NSpace: any;
53
+ NTooltip: any;
54
+ AddCircleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
55
+ labelFormContent: import("vue").DefineComponent<{
56
+ selectedList: {
57
+ type: PropType<ISelectLabelItemType[]>;
58
+ default: () => never[];
59
+ };
60
+ categoryList: {
61
+ type: PropType<ICategoryLabelItemType[]>;
62
+ default: () => never[];
63
+ };
64
+ isChangeWindow: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
68
+ explicit: {
69
+ type: BooleanConstructor;
70
+ default: boolean;
71
+ };
72
+ }, {
73
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
74
+ selectedList: {
75
+ type: PropType<ISelectLabelItemType[]>;
76
+ default: () => never[];
77
+ };
78
+ categoryList: {
79
+ type: PropType<ICategoryLabelItemType[]>;
80
+ default: () => never[];
81
+ };
82
+ isChangeWindow: {
83
+ type: BooleanConstructor;
84
+ default: boolean;
85
+ };
86
+ explicit: {
87
+ type: BooleanConstructor;
88
+ default: boolean;
89
+ };
90
+ }>> & {
91
+ onExplicitOnChange?: ((...args: any[]) => any) | undefined;
92
+ }>>;
93
+ emit: (event: "explicitOnChange", ...args: any[]) => void;
94
+ curSelectedList: import("vue").Ref<ISelectLabelItemType[] | undefined>;
95
+ labelFormContent: any;
96
+ anchorGetContainer: () => any;
97
+ handleAnchorClick: (e: Event) => void;
98
+ handleLabelForm: (cb: Function) => void;
99
+ handleLabelChange: (isSelect: boolean, labelItem: any, categoryItem?: any) => void;
100
+ NAnchor: any;
101
+ NAnchorLink: import("vue").DefineComponent<{
102
+ readonly title: StringConstructor;
103
+ readonly href: StringConstructor;
104
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
105
+ readonly title: StringConstructor;
106
+ readonly href: StringConstructor;
107
+ }>>, {}>;
108
+ labelClassify: import("vue").DefineComponent<{
109
+ categoryItem: {
110
+ type: PropType<ICategoryLabelItemType>;
111
+ default: () => {};
112
+ };
113
+ selectedList: {
114
+ type: PropType<ISelectLabelItemType[]>;
115
+ default: () => never[];
116
+ };
117
+ handleLabelChange: {
118
+ type: FunctionConstructor;
119
+ default: () => {};
120
+ };
121
+ }, {
122
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
123
+ categoryItem: {
124
+ type: PropType<ICategoryLabelItemType>;
125
+ default: () => {};
126
+ };
127
+ selectedList: {
128
+ type: PropType<ISelectLabelItemType[]>;
129
+ default: () => never[];
130
+ };
131
+ handleLabelChange: {
132
+ type: FunctionConstructor;
133
+ default: () => {};
134
+ };
135
+ }>> & {}>>;
136
+ labelList: import("vue").Ref<{
137
+ labelCode: string;
138
+ labelShowText: string;
139
+ backgroundColor: string;
140
+ }[]>;
141
+ showCheck: (label: import("../../../../es/components/iho-select-label/src/types").IhoTabLabelItemType) => boolean;
142
+ onHandleLabelChange: (isSelect?: boolean | undefined, item?: import("../../../../es/components/iho-select-label/src/types").IhoTabLabelItemType | undefined, categoryItem?: ICategoryLabelItemType | undefined) => void;
143
+ formatStyle: (item: any) => {
144
+ background?: undefined;
145
+ } | {
146
+ background: any;
147
+ };
148
+ NTag: any;
149
+ NTooltip: any;
150
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
151
+ categoryItem: {
152
+ type: PropType<ICategoryLabelItemType>;
153
+ default: () => {};
154
+ };
155
+ selectedList: {
156
+ type: PropType<ISelectLabelItemType[]>;
157
+ default: () => never[];
158
+ };
159
+ handleLabelChange: {
160
+ type: FunctionConstructor;
161
+ default: () => {};
162
+ };
163
+ }>>, {
164
+ selectedList: ISelectLabelItemType[];
165
+ handleLabelChange: Function;
166
+ categoryItem: ICategoryLabelItemType;
167
+ }>;
168
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "explicitOnChange"[], "explicitOnChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
169
+ selectedList: {
170
+ type: PropType<ISelectLabelItemType[]>;
171
+ default: () => never[];
172
+ };
173
+ categoryList: {
174
+ type: PropType<ICategoryLabelItemType[]>;
175
+ default: () => never[];
176
+ };
177
+ isChangeWindow: {
178
+ type: BooleanConstructor;
179
+ default: boolean;
180
+ };
181
+ explicit: {
182
+ type: BooleanConstructor;
183
+ default: boolean;
184
+ };
185
+ }>> & {
186
+ onExplicitOnChange?: ((...args: any[]) => any) | undefined;
187
+ }, {
188
+ selectedList: ISelectLabelItemType[];
189
+ explicit: boolean;
190
+ isChangeWindow: boolean;
191
+ categoryList: ICategoryLabelItemType[];
192
+ }>;
193
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "onChange"[], "onChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
194
+ selectedList: {
195
+ type: PropType<ISelectLabelItemType[]>;
196
+ default: () => never[];
197
+ };
198
+ categoryList: {
199
+ type: PropType<ICategoryLabelItemType[]>;
200
+ default: () => never[];
201
+ };
202
+ explicit: {
203
+ type: BooleanConstructor;
204
+ default: boolean;
205
+ };
206
+ }>> & {
207
+ onOnChange?: ((...args: any[]) => any) | undefined;
208
+ }, {
209
+ selectedList: ISelectLabelItemType[];
210
+ explicit: boolean;
211
+ categoryList: ICategoryLabelItemType[];
212
+ }>;
213
+ export default _default;
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as l,reactive as i,watch as a,openBlock as t,createElementBlock as o,Fragment as n,createElementVNode as s,createBlock as d,unref as c,withCtx as r,renderList as p,createVNode as h,toDisplayString as m,createTextVNode as g,createCommentVNode as u,normalizeClass as x,normalizeStyle as b}from"vue";import{NSpace as f,NTag as C,NTooltip as y,NIcon as v,NModal as w}from"naive-ui";import{AddCircleOutline as L}from"@vicons/ionicons5";import W from"./LabelFormContent.vue.js";import _ from"../../../_virtual/plugin-vue_export-helper.js";const k={class:"c-iho-select-label"},H={key:1,class:"outexplicit"},z=s("span",null,"选择标签",-1),S={class:"svg-wrap"};var V=_(e({__name:"SelectLabel",props:{selectedList:{type:Array,default:()=>[]},categoryList:{type:Array,default:()=>[]},explicit:{type:Boolean,default:!1}},emits:["onChange"],setup(e,{emit:_}){const V=e,A=l(null),F=l(),I=i({labelVisible:!1,isChangeWindow:!1,modalWidth:"763px",modalHeight:"404px",maxHeight:"404px"}),O=()=>{V.explicit||(I.labelVisible=!0)},N=()=>{V.explicit||(I.modalWidth="763px",I.modalHeight="404px",I.maxHeight="404px",I.isChangeWindow=!1,I.labelVisible=!1)},j=()=>{I.isChangeWindow=!I.isChangeWindow;let e=document.body.clientHeight;I.modalWidth="763px"===I.modalWidth?"100%":"763px",I.modalHeight="404px"===I.modalHeight?e-110+"px":"404px",I.maxHeight="auto"===I.modalHeight?"404px":"none"},E=()=>{var e;null==(e=A.value)||e.handleLabelForm((e=>{_("onChange",[...e]),F.value=e,N()}))},J=()=>{E()};return a((()=>V.selectedList),(e=>{if(e){let l=Array.isArray(e)?e:[];F.value=JSON.parse(JSON.stringify(l))}}),{immediate:!0,deep:!0}),(l,i)=>(t(),o(n,null,[s("div",k,[e.explicit?u("v-if",!0):(t(),d(c(f),{key:0,align:"center"},{default:r((()=>[(t(!0),o(n,null,p(F.value,(e=>(t(),d(c(C),{bordered:!1,key:`${e.classifyId}-${e.labelCode}`,class:"select-label-active",size:"small",closable:"",onClose:l=>(e=>{const l=F.value||[],i=l.findIndex((l=>l.classifyId==e.classifyId&&l.labelCode==e.labelCode));i>-1&&l.splice(i,1),F.value=l,_("onChange",[...l])})(e)},{default:r((()=>[h(c(y),{placement:"top-start"},{trigger:r((()=>[s("span",null,m(e.labelShowText),1)])),default:r((()=>[s("span",null,m(e.labelShowText),1)])),_:2},1024)])),_:2},1032,["onClose"])))),128)),e.explicit?u("v-if",!0):(t(),o("span",{key:0,class:"form-add-icon form-add-icon-label",onClick:O},[h(c(v),{class:"add-icon",component:c(L)},null,8,["component"]),g(" 新增 ")]))])),_:1})),e.explicit?(t(),o("div",H,[h(W,{ref_key:"labelFormContentRef",ref:A,categoryList:e.categoryList,selectedList:e.selectedList,isChangeWindow:I.isChangeWindow,explicit:e.explicit,onExplicitOnChange:J},null,8,["categoryList","selectedList","isChangeWindow","explicit"])])):u("v-if",!0)]),u(" 弹窗 "),h(c(w),{preset:"dialog",class:x(["label-form-modal-wrap modal-wrap standard-modal standard-modal-white",{"modal-screen":I.isChangeWindow}]),show:I.labelVisible,"onUpdate:show":i[0]||(i[0]=e=>I.labelVisible=e),onPositiveClick:E,onNegativeClick:N,onClose:N,"mask-closable":!1,"close-on-esc":!1,"show-icon":!1,"negative-text":"取消","positive-text":"确定",style:b({width:I.modalWidth})},{header:r((()=>[z,s("div",S,[s("i",{onClick:j,class:x(["iconfont-select-label",I.isChangeWindow?"icon-iho-select-label-menzhenyishengzhanxitongtubiaozuixiaohua2":"icon-iho-select-label-menzhenyishengzhanxitongtubiaozuidahua"])},null,2)])])),default:r((()=>[h(W,{ref_key:"labelFormContentRef",ref:A,categoryList:e.categoryList,selectedList:F.value,isChangeWindow:I.isChangeWindow,explicit:e.explicit,onExplicitOnChange:J},null,8,["categoryList","selectedList","isChangeWindow","explicit"])])),_:1},8,["show","class","style"])],64))}}),[["__file","SelectLabel.vue"]]);export{V as default};
@@ -0,0 +1,63 @@
1
+ import { PropType } from 'vue';
2
+ import { ICategoryLabelItemType, ISelectLabelItemType, IhoTabLabelItemType } from '../../../../../es/components/iho-select-label/src/types';
3
+ declare const _default: import("vue").DefineComponent<{
4
+ categoryItem: {
5
+ type: PropType<ICategoryLabelItemType>;
6
+ default: () => {};
7
+ };
8
+ selectedList: {
9
+ type: PropType<ISelectLabelItemType[]>;
10
+ default: () => never[];
11
+ };
12
+ handleLabelChange: {
13
+ type: FunctionConstructor;
14
+ default: () => {};
15
+ };
16
+ }, {
17
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
18
+ categoryItem: {
19
+ type: PropType<ICategoryLabelItemType>;
20
+ default: () => {};
21
+ };
22
+ selectedList: {
23
+ type: PropType<ISelectLabelItemType[]>;
24
+ default: () => never[];
25
+ };
26
+ handleLabelChange: {
27
+ type: FunctionConstructor;
28
+ default: () => {};
29
+ };
30
+ }>> & {}>>;
31
+ labelList: import("vue").Ref<{
32
+ labelCode: string;
33
+ labelShowText: string;
34
+ backgroundColor: string;
35
+ }[]>;
36
+ showCheck: (label: IhoTabLabelItemType) => boolean;
37
+ onHandleLabelChange: (isSelect?: boolean, item?: IhoTabLabelItemType, categoryItem?: ICategoryLabelItemType) => void;
38
+ formatStyle: (item: any) => {
39
+ background?: undefined;
40
+ } | {
41
+ background: any;
42
+ };
43
+ NTag: any;
44
+ NTooltip: any;
45
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
46
+ categoryItem: {
47
+ type: PropType<ICategoryLabelItemType>;
48
+ default: () => {};
49
+ };
50
+ selectedList: {
51
+ type: PropType<ISelectLabelItemType[]>;
52
+ default: () => never[];
53
+ };
54
+ handleLabelChange: {
55
+ type: FunctionConstructor;
56
+ default: () => {};
57
+ };
58
+ }>>, {
59
+ selectedList: ISelectLabelItemType[];
60
+ handleLabelChange: Function;
61
+ categoryItem: ICategoryLabelItemType;
62
+ }>;
63
+ export default _default;
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as l,openBlock as a,createElementBlock as t,unref as s,Fragment as c,renderList as d,createBlock as n,normalizeStyle as o,withCtx as r,createVNode as i,createElementVNode as u,toDisplayString as p}from"vue";import{NTag as b,NTooltip as y}from"naive-ui";import f from"../../../../_virtual/plugin-vue_export-helper.js";const h={class:"edit-content"},g={key:0,class:"label-disable-wrap"},m=[u("p",{class:"label-disable-title"},"无可选标签",-1),u("p",{class:"label-disable-desc"},"请联系管理员进行标签管理设置",-1)],v={key:1,class:"label-content"};var k=f(e({__name:"label-classify",props:{categoryItem:{type:Object,default:()=>({})},selectedList:{type:Array,default:()=>[]},handleLabelChange:{type:Function,default:()=>({})}},setup(e){var f;const k=e;let _=l((null==(f=k.categoryItem)?void 0:f.labelList)||[]);const I=e=>k.selectedList.findIndex((l=>l.classifyId===k.categoryItem.classifyId&&l.labelCode===e.labelCode))>-1;function C(e){return I(e)?{}:{background:e.backgroundColor}}return(l,f)=>(a(),t("div",h,[s(_)&&0!==s(_).length?(a(),t("div",v,[(a(!0),t(c,null,d(s(_),(l=>(a(),n(s(b),{checkable:"",checked:I(l),"onUpdate:checked":a=>((e,l,a)=>{k.handleLabelChange(e,l,a)})(a,l,e.categoryItem),key:l.labelCode,style:o(C(l))},{default:r((()=>[i(s(y),{placement:"top-start"},{trigger:r((()=>[u("span",null,p(l.labelShowText),1)])),default:r((()=>[u("span",null,p(l.labelShowText),1)])),_:2},1024)])),_:2},1032,["checked","onUpdate:checked","style"])))),128))])):(a(),t("div",g,m))]))}}),[["__file","label-classify.vue"]]);export{k as default};
@@ -0,0 +1,11 @@
1
+ export declare type ICategoryLabelItemType = {
2
+ classifyId: string;
3
+ classifyName: string;
4
+ labelList: IhoTabLabelItemType[];
5
+ };
6
+ export declare type IhoTabLabelItemType = {
7
+ labelCode: string;
8
+ labelShowText: string;
9
+ backgroundColor: string;
10
+ };
11
+ export declare type ISelectLabelItemType = Pick<ICategoryLabelItemType, 'classifyId' | 'classifyName'> & Pick<IhoTabLabelItemType, 'labelCode' | 'labelShowText' | 'backgroundColor'>;
@@ -0,0 +1 @@
1
+ @font-face{font-family:iho-select-label-iconfont;src:url(iho-select-label-iconfont.ttf) format("truetype")}.iconfont-select-label{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:iho-select-label-iconfont!important;font-size:14px;font-style:normal}.icon-iho-select-label-menzhenyishengzhanxitongtubiaozuixiaohua2:before{content:"\e778"}.icon-iho-select-label-menzhenyishengzhanxitongtubiaozuidahua:before{content:"\e779"}.c-iho-select-label .form-add-icon-label{align-items:center;color:#2d7aff;cursor:pointer;display:inline-flex;vertical-align:middle}.c-iho-select-label .n-tag{border:1px solid #e0e0e6;margin:0 8px 0 0;max-width:108px}.c-iho-select-label .n-tag .n-base-icon{color:#fff}.c-iho-select-label .n-tag .n-tag__content{align-items:center;display:inline-block;line-height:20px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-iho-select-label .n-tag.select-label-active{background:var(--n-color-checked);border-color:var(--n-color-checked);color:var(--n-text-color-checked)}.c-iho-label-form-content{border-bottom:1px solid #e8e8e8;border-top:1px solid #e8e8e8;height:100%;width:100%}.c-iho-label-form-content .label-wrap{display:flex;height:100%;width:100%}.c-iho-label-form-content .label-wrap .left-label-wrap{border-right:1px solid #e8e8e8;max-height:404px;width:140px}.c-iho-label-form-content .label-wrap .left-label-wrap.total-left-label-wrap{height:calc(100vh - 109px);max-height:calc(100vh - 109px)}.c-iho-label-form-content .label-wrap .left-label-wrap.explicit-label-wrap{height:auto;overflow:hidden;overflow-y:auto;width:100%}.c-iho-label-form-content .label-wrap .left-label-wrap .n-anchor.n-anchor--block .n-anchor-link{font-size:14px;padding:10px 8px}.c-iho-label-form-content .label-wrap .left-label-wrap .n-anchor.n-anchor--block .n-anchor-link.n-anchor-link--active{background-color:#f2f2f2}.c-iho-label-form-content .label-wrap .right-label-wrap{flex:1;max-height:404px;overflow-y:auto}.c-iho-label-form-content .label-wrap .right-label-wrap.total-right-label-wrap{max-height:calc(100vh - 109px)}.c-iho-label-form-content .edit-label-type{font-size:12px;margin-left:4px}.c-iho-label-form-content .edit-label-content{margin-top:10px;padding:0 14px}.c-iho-label-form-content .edit-label-content .edit-content{margin-top:8px;width:100%}.c-iho-label-form-content .edit-label-content .edit-content .n-tag{border:1px solid #e0e0e6;margin:0 8px 8px 0;max-width:108px;text-align:center}.c-iho-label-form-content .edit-label-content .edit-content .n-tag .n-tag__content{align-items:center;display:inline-flex}.c-iho-label-form-content .edit-label-content .edit-content .n-tag .n-tag__content span{display:inline-block;height:100%;line-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px}.c-iho-label-form-content .edit-label-content .edit-content .n-tag.n-tag--checked{background:var(--n-color-checked);border-color:var(--n-color-checked);color:var(--n-text-color-checked)}.n-dialog__title .svg-wrap{margin:0 0 0 auto}.n-dialog__title .svg-wrap i{cursor:pointer;font-size:16px}
@@ -2159,7 +2159,10 @@ declare const IhoTable: SFCWithInstall<import("vue").DefineComponent<{
2159
2159
  list: string[];
2160
2160
  }[] | undefined;
2161
2161
  } | undefined;
2162
- anchorList?: string[] | undefined;
2162
+ anchorList?: (string | {
2163
+ name?: string | undefined;
2164
+ field: string;
2165
+ })[] | undefined;
2163
2166
  sortableConfig?: {
2164
2167
  [x: string]: any;
2165
2168
  enable?: boolean | undefined;
@@ -4573,7 +4576,10 @@ declare const IhoTable: SFCWithInstall<import("vue").DefineComponent<{
4573
4576
  list: string[];
4574
4577
  }[] | undefined;
4575
4578
  } | undefined;
4576
- anchorList?: string[] | undefined;
4579
+ anchorList?: (string | {
4580
+ name?: string | undefined;
4581
+ field: string;
4582
+ })[] | undefined;
4577
4583
  sortableConfig?: {
4578
4584
  [x: string]: any;
4579
4585
  enable?: boolean | undefined;
@@ -4586,6 +4592,7 @@ declare const IhoTable: SFCWithInstall<import("vue").DefineComponent<{
4586
4592
  updateState: () => void;
4587
4593
  header: any;
4588
4594
  footer: any;
4595
+ slotPropertiesPicker: (args: import("../../../es/shared/types").AnyObject) => Pick<import("../../../es/shared/types").AnyObject, "row" | "column" | "rowIndex" | "checked" | "$rowIndex" | "disabled" | "columnIndex" | "$columnIndex" | "_columnIndex" | "indeterminate">;
4589
4596
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "formChange" | "settingClick" | "formClick" | "keyboard" | "rowDrag" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd")[], "toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "formChange" | "settingClick" | "formClick" | "keyboard" | "rowDrag" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
4590
4597
  tableConfig: {
4591
4598
  type: import("vue").PropType<import("../../../es/components/iho-table/src/types").IhoTableConfig>;
@@ -2158,7 +2158,10 @@ declare const _default: import("vue").DefineComponent<{
2158
2158
  list: string[];
2159
2159
  }[] | undefined;
2160
2160
  } | undefined;
2161
- anchorList?: string[] | undefined;
2161
+ anchorList?: (string | {
2162
+ name?: string | undefined;
2163
+ field: string;
2164
+ })[] | undefined;
2162
2165
  sortableConfig?: {
2163
2166
  [x: string]: any;
2164
2167
  enable?: boolean | undefined;
@@ -4572,7 +4575,10 @@ declare const _default: import("vue").DefineComponent<{
4572
4575
  list: string[];
4573
4576
  }[] | undefined;
4574
4577
  } | undefined;
4575
- anchorList?: string[] | undefined;
4578
+ anchorList?: (string | {
4579
+ name?: string | undefined;
4580
+ field: string;
4581
+ })[] | undefined;
4576
4582
  sortableConfig?: {
4577
4583
  [x: string]: any;
4578
4584
  enable?: boolean | undefined;
@@ -4585,6 +4591,7 @@ declare const _default: import("vue").DefineComponent<{
4585
4591
  updateState: () => void;
4586
4592
  header: any;
4587
4593
  footer: any;
4594
+ slotPropertiesPicker: (args: AnyObject) => Pick<AnyObject, "row" | "column" | "rowIndex" | "checked" | "$rowIndex" | "disabled" | "columnIndex" | "$columnIndex" | "_columnIndex" | "indeterminate">;
4588
4595
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "formChange" | "settingClick" | "formClick" | "keyboard" | "rowDrag" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd")[], "toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "formChange" | "settingClick" | "formClick" | "keyboard" | "rowDrag" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
4589
4596
  tableConfig: {
4590
4597
  type: PropType<IhoTableConfig>;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,provide as a,ref as o,watch as l,resolveComponent as s,openBlock as n,createElementBlock as i,unref as r,normalizeStyle as u,createBlock as c,resolveDynamicComponent as f,createElementVNode as d,createVNode as m,mergeProps as p,createSlots as v,renderList as b,withCtx as h,createCommentVNode as g,renderSlot as x}from"vue";import{useTheme as k}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as y}from"@vueuse/core";import"date-fns";import{isString as C,isFunction as D}from"lodash-es";import{widthAppend as j,uuidGenerator as $}from"../../../shared/utils/index.js";import{promiseTimeout as _}from"@vueuse/shared";import{VxeTableEventNameList as H,InjectionIhoTableEmits as T,InjectionIhoTableAnnotation as w,InjectionIhoTableUUID as A,InjectionIhoTableInstance as L,InjectionIhoTableConfig as R,InjectionIhoTableFieldList as E,InjectionIhoTableHandler as F}from"./constants/index.js";import{createTableHooks as I,applyTableConfigHooks as O,applyTableFieldHooks as S,createTableEventHandlers as W,createDomInsertComponent as q,createDataTransfer as z}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as B}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as G}from"./utils/index.js";import J from"../../../_virtual/plugin-vue_export-helper.js";const K=["id"];var M=J(e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",...H],setup(e,{expose:H,emit:J}){var M,N;const P=e,Q=k({"--c-border-color":"#e2e2e2","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#f7f7f7"}),U=t((()=>{var e,t;const a=null!=(t=null==(e=P.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===a?"100%":C(a)&&(a.includes("calc")||a.endsWith("%"))?a:j(a)}})),V=B(),X=function(e,...t){J(e,...t);const a=r(te)[G(e)];D(a)&&a(...t),V.trigger(e,...t)};a(T,X);const Y=I();a(w,t((()=>P.annotation)));const Z=$();a(A,Z);const ee=o();a(L,ee);const te=o({uuid:null!=(N=null==(M=P.tableConfig)?void 0:M.uuid)?N:Z});a(R,te);const ae=y(oe,10);function oe(){te.value=O(Y,P.tableConfig,{$table:ee,emits:X}),te.value.uuid=Z}const le=o([]);a(E,le);const se=y(ne,10);function ne(){le.value=S(Y,P.fieldList,te.value,{$table:ee,emits:X})}const ie=z(Y,te,ee),re=o([]);async function ue(){var e;re.value=await ie(P.tableData),null==(e=ee.value)||e.recalculate(!0)}const ce={updateTableDataRef:y(ue,10),updateConfigRef:ae,updateFieldListRef:se};a(F,ce);const fe=W({hooks:Y,config:te,$table:ee,context:ce,emits:X}),de=t((()=>({...te.value,...fe})));let me=!1,pe=!1,ve=!1;const be=y((()=>{me&&oe(),pe&&ne(),ve&&ue(),me=!1,pe=!1,ve=!1}),10);l((()=>P.tableConfig),(()=>{me=!0,pe=!0,ve=!0,be()}),{deep:!0}),l((()=>P.fieldList),(()=>{pe=!0,ve=!0,be()}),{deep:!0}),l([()=>[...P.tableData],()=>{var e;return null==(e=P.tableData)?void 0:e.length}],(()=>{ve=!0,be()})),l([()=>P.tableData,()=>{var e;return null==(e=P.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=te.value.treeConfig)?void 0:e.expandAll)&&(await _(11),null==(t=ee.value)||t.setAllTreeExpand(!0))})),oe(),ne(),ue();const{header:he,footer:ge}=q(Y);return H({$table:ee,async loadData(e){var t;null==(t=ee.value)||t.loadData(await ie(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),...Y.exposeHooks.expose.call({},te,{$table:ee,emits:X})}),Y.setupHooks.setup.call(te,le,{$table:ee,emits:X}),(e,t)=>{const a=s("vxe-grid");return n(),i("section",{class:"iho-table",id:r(Z),style:u(r(Q))},[(n(),c(f(r(he)))),d("section",{style:u(r(U))},[m(a,p({ref_key:"$table",ref:ee},r(de),{columns:le.value,data:re.value}),v({_:2},[b(e.$slots,((t,a)=>({name:a,fn:h((()=>[g(" 实际上所有的vxe-grid插槽都支持 "),x(e.$slots,a)]))})))]),1040,["columns","data"])],4),(n(),c(f(r(ge))))],12,K)}}}),[["__file","IhoTable.vue"]]);export{M as default};
1
+ import{defineComponent as e,computed as t,provide as o,ref as a,watch as l,resolveComponent as n,openBlock as s,createElementBlock as r,unref as i,normalizeStyle as u,createBlock as c,resolveDynamicComponent as d,createElementVNode as f,createVNode as m,mergeProps as p,createSlots as v,renderList as b,withCtx as h,createCommentVNode as g,renderSlot as x,normalizeProps as k,guardReactiveProps as y}from"vue";import{useTheme as $}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as C}from"@vueuse/core";import"date-fns";import{isString as D,isFunction as j,pick as _}from"lodash-es";import{widthAppend as w,uuidGenerator as I}from"../../../shared/utils/index.js";import{promiseTimeout as H}from"@vueuse/shared";import{VxeTableEventNameList as T,InjectionIhoTableEmits as A,InjectionIhoTableAnnotation as L,InjectionIhoTableUUID as R,InjectionIhoTableInstance as E,InjectionIhoTableConfig as F,InjectionIhoTableFieldList as O,InjectionIhoTableHandler as S}from"./constants/index.js";import{createTableHooks as W,applyTableConfigHooks as q,applyTableFieldHooks as z,createTableEventHandlers as B,createDomInsertComponent as G,createDataTransfer as J}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as K}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as M}from"./utils/index.js";import N from"../../../_virtual/plugin-vue_export-helper.js";const P=["id"];var Q=N(e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",...T],setup(e,{expose:T,emit:N}){var Q,U;const V=e,X=$({"--c-border-color":"#e2e2e2","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#f7f7f7"}),Y=t((()=>{var e,t;const o=null!=(t=null==(e=V.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===o?"100%":D(o)&&(o.includes("calc")||o.endsWith("%"))?o:w(o)}})),Z=K(),ee=function(e,...t){N(e,...t);const o=i(le)[M(e)];j(o)&&o(...t),Z.trigger(e,...t)};o(A,ee);const te=W();o(L,t((()=>V.annotation)));const oe=I();o(R,oe);const ae=a();o(E,ae);const le=a({uuid:null!=(U=null==(Q=V.tableConfig)?void 0:Q.uuid)?U:oe});o(F,le);const ne=C(se,10);function se(){le.value=q(te,V.tableConfig,{$table:ae,emits:ee}),le.value.uuid=oe}const re=a([]);o(O,re);const ie=C(ue,10);function ue(){re.value=z(te,V.fieldList,le.value,{$table:ae,emits:ee})}const ce=J(te,le,ae),de=a([]);async function fe(){var e;de.value=await ce(V.tableData),null==(e=ae.value)||e.recalculate(!0)}const me={updateTableDataRef:C(fe,10),updateConfigRef:ne,updateFieldListRef:ie};o(S,me);const pe=B({hooks:te,config:le,$table:ae,context:me,emits:ee}),ve=t((()=>({...le.value,...pe})));let be=!1,he=!1,ge=!1;const xe=C((()=>{be&&se(),he&&ue(),ge&&fe(),be=!1,he=!1,ge=!1}),10);l((()=>V.tableConfig),(()=>{be=!0,he=!0,ge=!0,xe()}),{deep:!0}),l((()=>V.fieldList),(()=>{he=!0,ge=!0,xe()}),{deep:!0}),l([()=>[...V.tableData],()=>{var e;return null==(e=V.tableData)?void 0:e.length}],(()=>{ge=!0,xe()})),l([()=>V.tableData,()=>{var e;return null==(e=V.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=le.value.treeConfig)?void 0:e.expandAll)&&(await H(11),null==(t=ae.value)||t.setAllTreeExpand(!0))})),se(),ue(),fe();const{header:ke,footer:ye}=G(te);function $e(e){return _(e,["row","rowIndex","$rowIndex","column","columnIndex","$columnIndex","_columnIndex","checked","disabled","indeterminate"])}return T({$table:ae,async loadData(e){var t;null==(t=ae.value)||t.loadData(await ce(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),...te.exposeHooks.expose.call({},le,{$table:ae,emits:ee})}),te.setupHooks.setup.call(le,re,{$table:ae,emits:ee}),(e,t)=>{const o=n("vxe-grid");return s(),r("section",{class:"iho-table",id:i(oe),style:u(i(X))},[(s(),c(d(i(ke)))),f("section",{style:u(i(Y))},[m(o,p({ref_key:"$table",ref:ae},i(ve),{columns:re.value,data:de.value}),v({_:2},[b(e.$slots,((t,o)=>({name:o,fn:h((t=>[g(" 实际上所有的vxe-grid插槽都支持 "),x(e.$slots,o,k(y($e(t))))]))})))]),1040,["columns","data"])],4),(s(),c(d(i(ye))))],12,P)}}}),[["__file","IhoTable.vue"]]);export{Q as default};
@@ -2,7 +2,7 @@ import { AnyObject } from '../../../../../../es/shared/types';
2
2
  import { AsyncParallelHook, AsyncSeriesHook } from '../../../../../../es/shared/utils/tapable';
3
3
  import { AbstractDataHooks } from '../../../../../../es/components/iho-table/src/types';
4
4
  declare class TableDataHooks extends AbstractDataHooks {
5
- readonly dataStart: AsyncParallelHook<WithTableConfig, import("../../../../../../es/shared/utils/tapable").UnsetAdditionalOptions>;
5
+ readonly dataStart: AsyncParallelHook<[import("../../../../../../es/components/iho-table/src/types").IhoTableConfig], import("../../../../../../es/shared/utils/tapable").UnsetAdditionalOptions>;
6
6
  readonly data: AsyncSeriesHook<[AnyObject, import("../../../../../../es/components/iho-table/src/types").IhoTableConfig, {
7
7
  remove(): void;
8
8
  $table: import("@vueuse/shared").MaybeRef<import("../../../../../../es/shared/types").Nullable<import("vxe-table").VxeTableInstance>>;
@@ -10,7 +10,7 @@ declare class TableDataHooks extends AbstractDataHooks {
10
10
  insertBefore(data: import("../../../../../../es/shared/types").ArrayAble<AnyObject>): void;
11
11
  insertAfter(data: import("../../../../../../es/shared/types").ArrayAble<AnyObject>): void;
12
12
  }], import("../../../../../../es/shared/utils/tapable").UnsetAdditionalOptions>;
13
- readonly dataEnd: AsyncParallelHook<WithTableConfig, import("../../../../../../es/shared/utils/tapable").UnsetAdditionalOptions>;
13
+ readonly dataEnd: AsyncParallelHook<[import("../../../../../../es/components/iho-table/src/types").IhoTableConfig], import("../../../../../../es/shared/utils/tapable").UnsetAdditionalOptions>;
14
14
  }
15
15
  export declare function useDataHooks(): {
16
16
  create: () => TableDataHooks;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,createVNode as l,isVNode as n}from"vue";import{NTabs as a,NTabPane as o}from"naive-ui";import{useAnchor as r}from"./useAnchor.js";import{useTableContext as u}from"../../hooks/useTableContext.js";var i=e({name:"IhoTableAnchor",setup(){const{configRef:e,eventListener:i,fieldListRef:c,$table:p}=u(),{updateAnchor:s,onScroll:f,currentAnchorList:v,anchorValue:d}=r(t((()=>{var t;return null!=(t=e.value.anchorList)?t:[]})),p,c);return i.addEventListener("scroll",f),()=>{let e;return v.value.length>0?l(a,{type:"line",animated:!0,"pane-style":"padding: 0",value:d.value,"onUpdate:value":e=>d.value=e},"function"==typeof(t=e=v.value.map((e=>l(o,{name:e.field,tab:e.title,key:e.field,tabProps:{onClick:()=>s(e.field)}},null))))||"[object Object]"===Object.prototype.toString.call(t)&&!n(t)?e:{default:()=>[e]}):null;var t}}});export{i as default};
1
+ import{defineComponent as e,computed as t,createVNode as l,isVNode as n}from"vue";import{NTabs as a,NTabPane as o}from"naive-ui";import{useAnchor as r}from"./useAnchor.js";import{useTableContext as i}from"../../hooks/useTableContext.js";var u=e({name:"IhoTableAnchor",setup(){const{configRef:e,eventListener:u,fieldListRef:p,$table:c}=i(),{updateAnchor:f,onScroll:s,currentAnchorList:d,anchorValue:v}=r(t((()=>{var t;return(null!=(t=e.value.anchorList)?t:[]).map((e=>"string"==typeof e?{field:e}:{...e}))})),c,p);return u.addEventListener("scroll",s),()=>{let e;return d.value.length>0?l(a,{type:"line",animated:!0,"pane-style":"padding: 0",value:v.value,"onUpdate:value":e=>v.value=e},"function"==typeof(t=e=d.value.map((e=>l(o,{name:e.field,tab:e.title,key:e.field,tabProps:{onClick:()=>f(e.field)}},null))))||"[object Object]"===Object.prototype.toString.call(t)&&!n(t)?e:{default:()=>[e]}):null;var t}}});export{u as default};
@@ -1,7 +1,10 @@
1
1
  import { ComputedRef, Ref } from 'vue';
2
2
  import { VxeTableInstance } from 'vxe-table';
3
3
  import { IhoTableFieldItem, IhoTableEmitPayload } from '../../../../../../es/components/iho-table/src/types';
4
- export declare const useAnchor: (anchorList: ComputedRef<string[]>, $table: Ref<VxeTableInstance | undefined>, fieldListRef: Ref<IhoTableFieldItem[]>) => {
4
+ export declare const useAnchor: (anchorList: ComputedRef<{
5
+ name?: string;
6
+ field: string;
7
+ }[]>, $table: Ref<VxeTableInstance | undefined>, fieldListRef: Ref<IhoTableFieldItem[]>) => {
5
8
  updateAnchor: (field: string) => Promise<void>;
6
9
  onScroll: ({ scrollLeft, bodyWidth }: IhoTableEmitPayload<'scroll'>[0]) => void;
7
10
  currentAnchorList: Ref<{
@@ -1 +1 @@
1
- import{shallowOmit as l}from"../../../../../shared/utils/index.js";import{ref as e,watch as t,unref as i}from"vue";import{useThrottleFn as n}from"@vueuse/core";import{cloneDeep as o,findLastIndex as u}from"lodash-es";function r(e,t){e.forEach((e=>{var i;if(null==(i=e.children)?void 0:i.length){const i=l(o(e),["children"]);i.width=0,t.push(i),r(e.children,t)}else(function(l){return l.visible||!Reflect.has(l,"visible")})(e)&&t.push(e)}))}const a=(l,a,c)=>{const d=e([]),f=e();let v=!0;const s=n((function({scrollLeft:l,bodyWidth:e}){if(!d.value.length||!v)return;const t=l+e/2,i=u(d.value,(l=>t>=l.left));~i&&(f.value=d.value[i].field)}),800);return t([()=>c.value,()=>l.value],(()=>{!function(){var e,t,n;if(d.value=[],null==(e=i(l))?void 0:e.length){let e=0;const u=[];r(o(c.value),u),u.forEach((t=>{var n;const{field:o="",minWidth:u,width:r,fixed:a,title:c=""}=t,f=+(null!=(n=null!=u?u:r)?n:0);"left"==a||(e+=f,i(l).find((l=>l===o))&&d.value.push({field:o,title:c,left:e-f}))})),f.value=(null==(n=null==(t=d.value)?void 0:t[0])?void 0:n.field)||""}}()}),{immediate:!0,deep:!0}),{updateAnchor:async function(l){var e,t;v=!1;const i=d.value.find((e=>e.field===l));await(null==(t=a.value)?void 0:t.scrollTo(null!=(e=null==i?void 0:i.left)?e:0)),setTimeout((()=>{v=!0}),900)},onScroll:s,currentAnchorList:d,anchorValue:f}};export{a as useAnchor};
1
+ import{shallowOmit as l}from"../../../../../shared/utils/index.js";import{ref as e,watch as i,unref as t}from"vue";import{useThrottleFn as n}from"@vueuse/core";import{cloneDeep as o,findLastIndex as u}from"lodash-es";function r(e,i){e.forEach((e=>{var t;if(null==(t=e.children)?void 0:t.length){const t=l(o(e),["children"]);t.width=0,i.push(t),r(e.children,i)}else(function(l){return l.visible||!Reflect.has(l,"visible")})(e)&&i.push(e)}))}const a=(l,a,f)=>{const c=e([]),d=e();let s=!0;const v=n((function({scrollLeft:l,bodyWidth:e}){if(!c.value.length||!s)return;const i=l+e/2,t=u(c.value,(l=>i>=l.left));~t&&(d.value=c.value[t].field)}),800);return i([()=>f.value,()=>l.value],(()=>{!function(){var e,i,n;if(c.value=[],null==(e=t(l))?void 0:e.length){let e=0;const u=[];r(o(f.value),u),u.forEach((i=>{var n;const{field:o="",minWidth:u,width:r,fixed:a,title:f=""}=i,d=+(null!=(n=null!=u?u:r)?n:0);if("left"==a);else{e+=d;const i=t(l).find((l=>l.field===o));i&&c.value.push({field:o,title:i.name||f,left:e-d})}})),d.value=(null==(n=null==(i=c.value)?void 0:i[0])?void 0:n.field)||""}}()}),{immediate:!0,deep:!0}),{updateAnchor:async function(l){var e,i;s=!1;const t=c.value.find((e=>e.field===l));await(null==(i=a.value)?void 0:i.scrollTo(null!=(e=null==t?void 0:t.left)?e:0)),setTimeout((()=>{s=!0}),900)},onScroll:v,currentAnchorList:c,anchorValue:d}};export{a as useAnchor};
@@ -1 +1 @@
1
- import{createVNode as e}from"vue";import"../../../index.js";import t from"./filter.vue.js";import{isValid as i,compareDesc as r}from"date-fns";import{isObject as n,isArray as o}from"@vue/shared";import{defineTablePlugin as l}from"../../hooks/useTablePlugin.js";function a(){const a="filterDaterangeRenderPlugin";return l({name:a,vxe(i){i.renderer.mixin({filterDaterangeRenderPlugin:{showFilterFooter:!1,renderFilter:(i,r)=>e(t,{payload:r,key:r.column.field},null)}})},apply(e){e.fieldHooks.field.tap(a,((e,t,l,{$table:a})=>{var f,d,s,u;const c=null==(f=e.editRender)?void 0:f.props;if(!n(c))return e;if(!(null==(d=null==c?void 0:c.filterSetting)?void 0:d.daterange))return e;e.filterRender={name:"filterDaterangeRenderPlugin"};const m=null==(s=a.value)?void 0:s.getColumnByField(e.field),h={};return m&&o(m.filters)&&Object.assign(h,{...(null==(u=m.filters)?void 0:u[0])||{}}),e.filters=[{data:void 0,...h}],e.filterMethod||(e.filterMethod=function({option:e,row:t,column:n}){const{data:o}=e,l=t[n.field];return!!i(new Date(l))&&(r(new Date(l),new Date(o[0]))<=0&&r(new Date(l),new Date(o[1]))>=0)}),e.sortable?e.headerClassName=({$table:e,column:t})=>{const i=["iho-table__hideSortIcon"];return e.isSort(t)&&i.push("is--filter-active"),i}:e.headerClassName="iho-table__hideSortIcon",l.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...l.filterConfig},e}))}})}export{a as filterDaterangeRenderPlugin};
1
+ import{createVNode as e}from"vue";import"../../../index.js";import t from"./filter.vue.js";import{isValid as i,compareDesc as o}from"date-fns";import{isObject as n,isArray as r}from"@vue/shared";import{defineTablePlugin as l}from"../../hooks/useTablePlugin.js";function f(){const f="filterDaterangeRenderPlugin";return l({name:f,vxe(i){i.renderer.mixin({[f]:{showFilterFooter:!1,renderFilter:(i,o)=>e(t,{payload:o,key:o.column.field},null)}})},apply(e){e.fieldHooks.field.tap(f,((e,t,l,{$table:a})=>{var d,u,s,m;const c=null==(d=e.editRender)?void 0:d.props;if(!n(c))return e;if(!(null==(u=null==c?void 0:c.filterSetting)?void 0:u.daterange))return e;e.filterRender={name:f};const p=null==(s=a.value)?void 0:s.getColumnByField(e.field),v={};return p&&r(p.filters)&&Object.assign(v,{...(null==(m=p.filters)?void 0:m[0])||{}}),e.filters=[{data:void 0,...v}],e.filterMethod||(e.filterMethod=function({option:e,row:t,column:n}){const{data:r}=e,l=t[n.field];return!!i(new Date(l))&&(o(new Date(l),new Date(r[0]))<=0&&o(new Date(l),new Date(r[1]))>=0)}),l.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...l.filterConfig},e}))}})}export{f as filterDaterangeRenderPlugin};
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, PropType, ref } from 'vue';
2
- import { VxeColumnPropTypes, VxeTableConstructor, VxeTableDefines, VxeTableMethods, VxeTablePrivateMethods, VxeTablePropTypes } from 'vxe-table';
2
+ import { VxeColumnPropTypes, VxeTableConstructor, VxeTableMethods, VxeTablePrivateMethods } from 'vxe-table';
3
3
  declare const _default: import("vue").DefineComponent<{
4
4
  payload: {
5
5
  type: PropType<VxeColumnPropTypes.FilterSlotParams>;
@@ -12,17 +12,15 @@ declare const _default: import("vue").DefineComponent<{
12
12
  required: true;
13
13
  };
14
14
  }>> & {}>>;
15
- sortable: import("vue").ComputedRef<any>;
16
- optionsRef: import("vue").ComputedRef<VxeTableDefines.FilterOption[] & VxeColumnPropTypes.Filter[]>;
15
+ optionsRef: import("vue").ComputedRef<import("vxe-table").VxeTableDefines.FilterOption[] & VxeColumnPropTypes.Filter[]>;
17
16
  checkedRef: import("vue").WritableComputedRef<string[]>;
18
17
  $table: (VxeTableConstructor & VxeTablePrivateMethods & VxeTableMethods) | undefined;
19
- sortStatusRef: import("vue").WritableComputedRef<"desc" | "asc" | null>;
20
18
  checkedCacheRef: import("vue").Ref<string[]>;
21
19
  searchFilterText: import("vue").Ref<string>;
22
20
  close: () => void;
23
21
  OPTION_ITEM_HEIGHT: number;
24
22
  viewCapacity: import("vue").ComputedRef<number>;
25
- list: import("vue").Ref<import("@vueuse/core").UseVirtualListItem<VxeTableDefines.FilterOption>[]>;
23
+ list: import("vue").Ref<import("@vueuse/core").UseVirtualListItem<import("vxe-table").VxeTableDefines.FilterOption>[]>;
26
24
  containerProps: {
27
25
  ref: import("vue").Ref<any>;
28
26
  onScroll: () => void;
@@ -40,12 +38,6 @@ declare const _default: import("vue").DefineComponent<{
40
38
  containerStyleWithHeight: import("vue").ComputedRef<CSSProperties>;
41
39
  confirmFilter: () => void;
42
40
  reset: () => void;
43
- sortStatusList: {
44
- status: VxeTablePropTypes.SortOrder;
45
- text: string;
46
- }[];
47
- setSort: (value: VxeTablePropTypes.SortOrder) => void;
48
- CheckmarkOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
49
41
  NButton: any;
50
42
  NButtonGroup: any;
51
43
  NCheckbox: any;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as l,inject as t,ref as a,onDeactivated as o,openBlock as u,createElementBlock as n,unref as r,Fragment as i,renderList as s,createElementVNode as v,normalizeClass as c,createBlock as d,createCommentVNode as p,createTextVNode as f,toDisplayString as m,createVNode as h,isRef as _,withCtx as y,normalizeStyle as g}from"vue";import{widthAppend as b}from"../../../../../shared/utils/index.js";import{CheckmarkOutline as k}from"@vicons/ionicons5";import{useVirtualList as C}from"@vueuse/core";import{isNumber as x}from"lodash-es";import{NInput as S,NCheckbox as $,NCheckboxGroup as E,NButtonGroup as j,NButton as w}from"naive-ui";import A from"../../../../../_virtual/plugin-vue_export-helper.js";const I={class:"iho-table__filterWrapper"},L={key:0},U=["onClick"],B={class:"iho-table__filterListItem"},F={class:"iho-table__filterFooter"};var O=A(e({__name:"filter",props:{payload:{type:Object,required:!0}},setup(e){const A=e,O=l((()=>{var e,l,t;return null==(t=null==(l=null==(e=A.payload)?void 0:e.column.editRender)?void 0:l.props)?void 0:t.sortable})),P=l((()=>{var e,l,t;return null!=(t=null==(l=null==(e=A.payload)?void 0:e.column)?void 0:l.filters)?t:[]})),R=l({get:()=>P.value.reduce(((e,l)=>(l.checked&&e.push(l.value),e)),[]),set(e){if(A.payload)return P.value.forEach((l=>{A.payload.$panel.changeOption(null,e.includes(l.value),l)})),A.payload.$panel.confirmFilter(new CustomEvent("click"))}}),W=t("$xetable"),Z=l({get(){if(!W)return null;const e=W.getSortColumns().find((e=>{var l;return e.column===(null==(l=A.payload)?void 0:l.column)}));return e?e.order:null},set(e){W&&A.payload&&A.payload.$panel&&W.triggerSortEvent(new CustomEvent("click"),A.payload.column,e)}}),q=a([...R.value]),z=a("");function D(){W&&(W.reactData.filterStore.visible=!1)}o(D);const H=l((()=>{var e,l;if(!A.payload||!A.payload.column)return 10;const{filterCapacity:t}=null!=(l=null==(e=A.payload.column.editRender)?void 0:e.props)?l:{};return x(t)&&t>0?t:10})),{list:G,containerProps:J,wrapperProps:K}=C(l((()=>z.value?P.value.filter((e=>`${e.label}`.includes(z.value))):P.value)),{itemHeight:32,overscan:3}),M=l((()=>!!q.value.length&&q.value.length!==P.value.length)),N=l({get:()=>q.value.length===P.value.length&&0!==P.value.length,set:e=>{q.value=e?P.value.map((e=>e.value)):[]}}),Q=l((()=>({...J.style,height:b(32*H.value)})));function T(){R.value=q.value,D()}function V(){q.value=[]}const X=[{status:"asc",text:"升序 A to Z"},{status:"desc",text:"降序 Z to A"}];return(e,l)=>(u(),n("section",I,[r(O)?(u(),n("div",L,[(u(),n(i,null,s(X,(e=>v("div",{key:e.status,class:c(["iho-table__filterButton",{"iho-table__filterButton--active":r(Z)===e.status}]),onClick:l=>{return t=e.status,Z.value=t,void D();var t}},[r(Z)===e.status?(u(),d(r(k),{key:0,class:"iho-table__sortActiveIcon"})):p("v-if",!0),f(" "+m(e.text),1)],10,U))),64))])):p("v-if",!0),r(P).length>5?(u(),d(r(S),{key:1,value:z.value,"onUpdate:value":l[0]||(l[0]=e=>z.value=e)},null,8,["value"])):p("v-if",!0),v("div",B,[h(r($),{label:"全选",checked:r(N),"onUpdate:checked":l[1]||(l[1]=e=>_(N)?N.value=e:null),indeterminate:r(M)},null,8,["checked","indeterminate"])]),h(r(E),{value:q.value,"onUpdate:value":l[3]||(l[3]=e=>q.value=e)},{default:y((()=>[v("section",{ref:r(J).ref,style:g(r(Q)),onScroll:l[2]||(l[2]=(...e)=>r(J).onScroll&&r(J).onScroll(...e)),class:"iho-table__filterListWrapper"},[v("section",{style:g(r(K).style)},[(u(!0),n(i,null,s(r(G),(e=>(u(),n("div",{class:"iho-table__filterListItem",key:e.data.value},[h(r($),{value:e.data.value,label:e.data.label},null,8,["value","label"])])))),128))],4)],36)])),_:1},8,["value"]),v("footer",F,[v("section",null,m(`已选择${q.value.length}项`),1),h(r(j),{size:"small"},{default:y((()=>[h(r(w),{onClick:V},{default:y((()=>[f("清空")])),_:1}),h(r(w),{onClick:D},{default:y((()=>[f("取消")])),_:1}),h(r(w),{type:"primary",onClick:T},{default:y((()=>[f("确定")])),_:1})])),_:1})])]))}}),[["__file","filter.vue"]]);export{O as default};
1
+ import{defineComponent as e,computed as l,inject as a,ref as t,onDeactivated as u,openBlock as r,createElementBlock as o,unref as i,createBlock as n,createCommentVNode as v,createElementVNode as s,createVNode as c,isRef as p,withCtx as d,normalizeStyle as f,Fragment as h,renderList as m,toDisplayString as _,createTextVNode as y}from"vue";import{widthAppend as g}from"../../../../../shared/utils/index.js";import{useVirtualList as b}from"@vueuse/core";import{isNumber as k}from"lodash-es";import{NInput as C,NCheckbox as $,NCheckboxGroup as x,NButtonGroup as S,NButton as j}from"naive-ui";import L from"../../../../../_virtual/plugin-vue_export-helper.js";const U={class:"iho-table__filterWrapper"},w={class:"iho-table__filterListItem"},E={class:"iho-table__filterFooter"};var F=L(e({__name:"filter",props:{payload:{type:Object,required:!0}},setup(e){const L=e,F=l((()=>{var e,l,a;return null!=(a=null==(l=null==(e=L.payload)?void 0:e.column)?void 0:l.filters)?a:[]})),I=l({get:()=>F.value.reduce(((e,l)=>(l.checked&&e.push(l.value),e)),[]),set(e){if(L.payload)return F.value.forEach((l=>{L.payload.$panel.changeOption(null,e.includes(l.value),l)})),L.payload.$panel.confirmFilter(new CustomEvent("click"))}}),O=a("$xetable"),P=t([...I.value]),W=t("");function q(){O&&(O.reactData.filterStore.visible=!1)}u(q);const z=l((()=>{var e,l;if(!L.payload||!L.payload.column)return 10;const{filterCapacity:a}=null!=(l=null==(e=L.payload.column.editRender)?void 0:e.props)?l:{};return k(a)&&a>0?a:10})),{list:D,containerProps:H,wrapperProps:R}=b(l((()=>W.value?F.value.filter((e=>`${e.label}`.includes(W.value))):F.value)),{itemHeight:32,overscan:3}),A=l((()=>!!P.value.length&&P.value.length!==F.value.length)),B=l({get:()=>P.value.length===F.value.length&&0!==F.value.length,set:e=>{P.value=e?F.value.map((e=>e.value)):[]}}),G=l((()=>({...H.style,height:g(32*z.value)})));function J(){I.value=P.value,q()}function K(){P.value=[]}return(e,l)=>(r(),o("section",U,[i(F).length>5?(r(),n(i(C),{key:0,value:W.value,"onUpdate:value":l[0]||(l[0]=e=>W.value=e)},null,8,["value"])):v("v-if",!0),s("div",w,[c(i($),{label:"全选",checked:i(B),"onUpdate:checked":l[1]||(l[1]=e=>p(B)?B.value=e:null),indeterminate:i(A)},null,8,["checked","indeterminate"])]),c(i(x),{value:P.value,"onUpdate:value":l[3]||(l[3]=e=>P.value=e)},{default:d((()=>[s("section",{ref:i(H).ref,style:f(i(G)),onScroll:l[2]||(l[2]=(...e)=>i(H).onScroll&&i(H).onScroll(...e)),class:"iho-table__filterListWrapper"},[s("section",{style:f(i(R).style)},[(r(!0),o(h,null,m(i(D),(e=>(r(),o("div",{class:"iho-table__filterListItem",key:e.data.value},[c(i($),{value:e.data.value,label:e.data.label},null,8,["value","label"])])))),128))],4)],36)])),_:1},8,["value"]),s("footer",E,[s("section",null,_(`已选择${P.value.length}项`),1),c(i(S),{size:"small"},{default:d((()=>[c(i(j),{onClick:K},{default:d((()=>[y("清空")])),_:1}),c(i(j),{onClick:q},{default:d((()=>[y("取消")])),_:1}),c(i(j),{type:"primary",onClick:J},{default:d((()=>[y("确定")])),_:1})])),_:1})])]))}}),[["__file","filter.vue"]]);export{F as default};
@@ -1 +1 @@
1
- import{createVNode as e,nextTick as l}from"vue";import{jsonParse as r,traverse as t,arrayed as i}from"../../../../../shared/utils/index.js";import{isObject as o}from"@vue/shared";import{isArray as n,first as s,isString as u}from"lodash-es";import"../../../index.js";import{IhoTableRenderHelper as a,isCompatibleColumn as d,parseRichContent as f}from"../../utils/index.js";import c from"./filter.vue.js";import{defineTablePlugin as p}from"../../hooks/useTablePlugin.js";function v(){const v="filterRenderPlugin";return p({name:v,vxe(l){l.renderer.mixin({filterRenderPlugin:{showFilterFooter:!1,renderFilter:(l,r)=>e(c,{payload:r,key:r.column.field},null)}})},apply(e){let c=[];e.fieldHooks.field.tap(v,((e,l,t,{$table:i})=>{var c,p,v,h,m,b,g,k;const C=null==(c=e.editRender)?void 0:c.props;if(!o(C))return e;const R=r(C.fieldSetting||"");if(!a.hasFilter(C))return e;e.editRender={...e.editRender,props:{...null==(p=e.editRender)?void 0:p.props,sortable:e.sortable}},e.filterRender={name:"filterRenderPlugin"};const x=null==(v=i.value)?void 0:v.getColumnByField(e.field),y={};x&&n(x.filters)&&x.filters.forEach((e=>{e&&(y[`${e.label}_${e.value}`]=e.checked)}));let F=null!=(b=null==(m=null==(h=R.mapping)?void 0:h.mappingFiled)?void 0:m.reduce(((e,l)=>{const r=s(l.value);return o(r)&&e.push({label:r.key,value:r.value,data:r.value}),e}),[]))?b:[];if(d(C)&&(F=null!=(g=C.options)?g:[]),e.filters=F.reduce(((e,l)=>(o(l)&&e.push({...l,checked:!!y[`${l.label}_${l.value}`]}),e)),[]),!e.filterMethod){const l=null==(k=t.treeConfig)?void 0:k.children;e.filterMethod=function({option:e,column:r,row:t}){if(l&&n(t[l])&&t[l].length)return!1;const i=t[r.field];if(!u(i))return!1;if(i===e.value||i===e.label)return!0;const{value:o,change_text:s}=f(i);return s===e.label||o===e.value}}return e.sortable?e.headerClassName=({$table:e,column:l})=>{const r=["iho-table__hideSortIcon"];return e.isSort(l)&&r.push("is--filter-active"),r}:e.headerClassName="iho-table__hideSortIcon",t.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...t.filterConfig},e})),e.fieldHooks.fieldList.tap(v,(e=>c=e)),e.fieldHooks.fieldEnd.tapPromise(v,(async(e,{$table:r})=>{var i;try{if(await l(),!r.value)return;const n=null!=(i=r.value.getColumns())?i:[],s=[];if(t(c,(e=>{n.find((l=>l.field===e.field))||s.push(e)})),!s.length)return;setTimeout((()=>{var l,t;if(null==(l=e.sortConfig)?void 0:l.multiple){const e=null!=(t=r.value.getColumns())?t:[],l=s.concat(e).reduce(((e,l)=>{var r;const t=null==(r=l.editRender)?void 0:r.props;return o(t)&&h(t.isOrder)&&e.push({field:l.field,order:t.isOrder}),e}),[]);r.value.sort(l)}else s.reverse().some((e=>{var l;const t=null==(l=e.editRender)?void 0:l.props;if(o(t)&&h(t.isOrder))return e&&r.value.sort(e.field,t.isOrder),!0}))}),100)}finally{c=[]}})),e.exposeHooks.expose.tap(v,((e,l,{$table:r})=>(Object.assign(e,{setSort(e,l){r.value&&r.value.sort(e,l)},setFilter(e,l){if(!r.value)return;const t=r.value.getColumnByField(e);if(!t||!n(t.filters))return;const o=i(l);t.filters.forEach((e=>{e.checked=o.includes(e.value)})),r.value.updateData()}}),e)))}})}function h(e){return["asc","desc",null].includes(e)}export{v as filterRenderPlugin};
1
+ import{createVNode as e,nextTick as l}from"vue";import{jsonParse as r,traverse as t,arrayed as i}from"../../../../../shared/utils/index.js";import{isObject as o}from"@vue/shared";import{isArray as n,first as u,isString as s}from"lodash-es";import"../../../index.js";import{IhoTableRenderHelper as a,isCompatibleColumn as d,parseRichContent as f}from"../../utils/index.js";import c from"./filter.vue.js";import{defineTablePlugin as p}from"../../hooks/useTablePlugin.js";function v(){const v="filterRenderPlugin";return p({name:v,vxe(l){l.renderer.mixin({[v]:{showFilterFooter:!1,renderFilter:(l,r)=>e(c,{payload:r,key:r.column.field},null)}})},apply(e){let c=[];e.fieldHooks.field.tap(v,((e,l,t,{$table:i})=>{var c,p,m,h,g,b,k,x;const y=null==(c=e.editRender)?void 0:c.props;if(!o(y))return e;const C=r(y.fieldSetting||"");if(!a.hasFilter(y))return e;e.editRender={...e.editRender,props:{...null==(p=e.editRender)?void 0:p.props,sortable:e.sortable}},e.filterRender={name:v};const F=null==(m=i.value)?void 0:m.getColumnByField(e.field),R={};F&&n(F.filters)&&F.filters.forEach((e=>{e&&(R[`${e.label}_${e.value}`]=e.checked)}));let $=null!=(b=null==(g=null==(h=C.mapping)?void 0:h.mappingFiled)?void 0:g.reduce(((e,l)=>{const r=u(l.value);return o(r)&&e.push({label:r.key,value:r.value,data:r.value}),e}),[]))?b:[];if(d(y)&&($=null!=(k=y.options)?k:[]),e.filters=$.reduce(((e,l)=>(o(l)&&e.push({...l,checked:!!R[`${l.label}_${l.value}`]}),e)),[]),!e.filterMethod){const l=null==(x=t.treeConfig)?void 0:x.children;e.filterMethod=function({option:e,column:r,row:t}){if(l&&n(t[l])&&t[l].length)return!1;const i=t[r.field];if(!s(i))return!1;if(i===e.value||i===e.label)return!0;const{value:o,change_text:u}=f(i);return u===e.label||o===e.value}}return t.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...t.filterConfig},e})),e.fieldHooks.fieldList.tap(v,(e=>c=e)),e.fieldHooks.fieldEnd.tapPromise(v,(async(e,{$table:r})=>{var i;try{if(await l(),!r.value)return;const n=null!=(i=r.value.getColumns())?i:[],u=[];if(t(c,(e=>{n.find((l=>l.field===e.field))||u.push(e)})),!u.length)return;setTimeout((()=>{var l,t;if(null==(l=e.sortConfig)?void 0:l.multiple){const e=null!=(t=r.value.getColumns())?t:[],l=u.concat(e).reduce(((e,l)=>{var r;const t=null==(r=l.editRender)?void 0:r.props;return o(t)&&m(t.isOrder)&&e.push({field:l.field,order:t.isOrder}),e}),[]);r.value.sort(l)}else u.reverse().some((e=>{var l;const t=null==(l=e.editRender)?void 0:l.props;if(o(t)&&m(t.isOrder))return e&&r.value.sort(e.field,t.isOrder),!0}))}),100)}finally{c=[]}})),e.exposeHooks.expose.tap(v,((e,l,{$table:r})=>(Object.assign(e,{setSort(e,l){r.value&&r.value.sort(e,l)},setFilter(e,l){if(!r.value)return;const t=r.value.getColumnByField(e);if(!t||!n(t.filters))return;const o=i(l);t.filters.forEach((e=>{e.checked=o.includes(e.value)})),r.value.updateData()}}),e)))}})}function m(e){return["asc","desc",null].includes(e)}export{v as filterRenderPlugin};
@@ -1 +1 @@
1
- import{promiseTimeout as e}from"@vueuse/shared";import"../../../index.js";import{defineTablePlugin as o}from"../../hooks/useTablePlugin.js";function t(){const t="keyboardEventPlugin";return o({name:t,apply(o){o.eventHooks.onKeydown.tap(t,(async({$event:o,$table:t},n,{emits:r})=>{await e(0);const{row:i,column:a}=t.getSelectedCell()||t.getEditRecord()||{};if(!i||!a)return;r("keyboard",{key:o.key,index:t.getRowIndex(i),value:i[a.field],row:i,column:a})}))}})}export{t as keyboardEventPlugin};
1
+ import{promiseTimeout as e}from"@vueuse/shared";import"../../../index.js";import{useSessionStorage as n}from"@vueuse/core";import{isEqual as o,isFunction as t}from"lodash-es";import{selectOptionsMap as l}from"../rendererPlugins/editableWidgets/hooks/useSelectOption.js";import{IhoTableUtils as i}from"../../utils/index.js";import{EDITABLE_WIDGET_TYPE as r}from"../../constants/index.js";import{defineTablePlugin as u}from"../../hooks/useTablePlugin.js";function d(){const d="keyboardEventPlugin",s=n("ihoTableClipData",null);return u({name:d,apply(n){function u(e,n,u,d,c){var p,f;if(!(null==(p=null==u?void 0:u.keyboardConfig)?void 0:p.isClip))return;const{row:v,column:m}=n.getSelectedCell()||n.getEditRecord()||{};if(!v||!m||!a(m)&&s.value===v[m.field])return;const g=u.uuid&&a(m)&&l.get(u.uuid)[m.field],b=v[m.field];if("copy"===e){const e=(null==(f=(g||[]).filter((e=>b.includes(e.value))))?void 0:f.map((e=>e.label)).join(","))||b;s.value=e}else{if(!function(e){var n;const o=null==(n=e.editRender)?void 0:n.props;return o&&Object.keys(r).includes(i.getCellType(o))}(m)||v.$__SEPARATE||!function(e,n,o,l){var i,r;const{beforeEditMethod:u}=n.editConfig||{},d={rowIndex:null!=(i=e.getRowIndex(o))?i:0,columnIndex:null!=(r=e.getColumnIndex(l))?r:0};return!u||t(u)&&u({row:o,column:l,...d,$table:e,$grid:void 0})}(n,u,v,m))return;let e=s.value||"";if(function(e){var n,o;const t=null==(n=e.editRender)?void 0:n.props;return a(e)&&(null==(o=t.componentProps)?void 0:o.multiple)}(m)){const n=(g||[]).filter((n=>e.split(",").includes(n.label))).map((e=>e.value));if(!(null==n?void 0:n.length)||o(b,n))return;e=n}else{const n=(g||[]).find((n=>n.label===e));if(g&&(!n||b===n.value))return;n&&(e=n.value)}v[m.field]=e,d("formChange",{column:m,row:v,oldValue:b,value:e,index:n.getRowIndex(v)}),function(e){var n;const o=null==(n=e.editRender)?void 0:n.props;return o&&"SEPARATE"===i.getCellType(o)}(m)&&(null==c||c())}}function a(e){var n;const o=null==(n=e.editRender)?void 0:n.props;return o&&"SELECT"===i.getCellType(o)}n.eventHooks.onCopy.tap(d,(({$table:e},n,{emits:o})=>u("copy",e,n,o))),n.eventHooks.onPaste.tap(d,(({$table:e},n,{emits:o,updateTableDataRef:t})=>u("paste",e,n,o,t))),n.eventHooks.onKeydown.tap(d,(async({$event:n,$table:o},t,{emits:l})=>{await e(0);const{row:i,column:r}=o.getSelectedCell()||o.getEditRecord()||{};if(!i||!r)return;l("keyboard",{key:n.key,index:o.getRowIndex(i),value:i[r.field],row:i,column:r})}))}})}export{d as keyboardEventPlugin};