cnhis-design-vue 3.1.57-release.3 → 3.2.1-alpha.0

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 (200) hide show
  1. package/README.md +87 -87
  2. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  3. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  4. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  5. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  6. package/es/components/button-print/index.d.ts +1 -0
  7. package/es/components/button-print/src/ButtonPrint.vue.d.ts +1 -0
  8. package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
  9. package/es/components/button-print/src/utils/print.d.ts +15 -3
  10. package/es/components/button-print/src/utils/print.js +1 -1
  11. package/es/components/calendar/index.d.ts +24 -13
  12. package/es/components/calendar/src/Calendar.vue.d.ts +24 -13
  13. package/es/components/calendar/src/Calendar.vue2.js +1 -1
  14. package/es/components/callback/src/components/render/popupMaps.d.ts +294 -2
  15. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  16. package/es/components/classification/src/index.vue.d.ts +3 -3
  17. package/es/components/drag-scroll/index.d.ts +2 -0
  18. package/es/components/drag-scroll/index.js +1 -0
  19. package/es/components/drag-scroll/src/index.d.ts +4 -0
  20. package/es/components/drag-scroll/src/index.js +1 -0
  21. package/es/components/drag-scroll/src/types.d.ts +24 -0
  22. package/es/components/drag-scroll/src/types.js +1 -0
  23. package/es/components/expand-field/src/components/form.vue2.js +1 -1
  24. package/es/components/fabric-chart/src/constants/index.d.ts +2 -1
  25. package/es/components/fabric-chart/src/constants/index.js +1 -1
  26. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +1 -1
  27. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogram.js +1 -1
  28. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.js +1 -1
  29. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.js +1 -1
  30. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useLeft.js +1 -1
  31. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.js +1 -1
  32. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.js +1 -1
  33. package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
  34. package/es/components/fabric-chart/src/interface.d.ts +1 -1
  35. package/es/components/fabric-chart/src/utils/index.js +1 -1
  36. package/es/components/field-set/index.d.ts +1 -1
  37. package/es/components/field-set/src/FieldColor.vue.d.ts +2 -1
  38. package/es/components/field-set/src/FieldSet.vue.d.ts +2 -1
  39. package/es/components/field-set/src/Index.vue.d.ts +1 -1
  40. package/es/components/field-set/src/Index.vue2.js +1 -1
  41. package/es/components/field-set/src/TableStyle.vue.d.ts +71 -0
  42. package/es/components/field-set/src/TableStyle.vue.js +1 -0
  43. package/es/components/field-set/src/TableStyle.vue2.js +1 -0
  44. package/es/components/field-set/src/components/Row.vue.d.ts +2 -1
  45. package/es/components/field-set/src/components/Row.vue2.js +1 -1
  46. package/es/components/field-set/src/types/index.d.ts +1 -1
  47. package/es/components/field-set/style/index.css +1 -1
  48. package/es/components/form-config/index.d.ts +45 -4
  49. package/es/components/form-config/src/FormConfig.vue.d.ts +45 -4
  50. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +16 -2
  51. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +22 -2
  52. package/es/components/form-render/index.d.ts +16 -2
  53. package/es/components/form-render/index.js +1 -1
  54. package/es/components/form-render/src/FormRender.vue.d.ts +15 -1
  55. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  56. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +16 -2
  57. package/es/components/form-render/src/FormRenderWrapper.vue2.js +1 -1
  58. package/es/components/form-render/src/components/renderer/formItem.js +1 -1
  59. package/es/components/form-render/src/components/renderer/index.js +1 -1
  60. package/es/components/form-render/src/components/renderer/select.d.ts +2 -0
  61. package/es/components/form-render/src/components/renderer/select.js +1 -1
  62. package/es/components/form-render/src/components/renderer/simpleComponent.js +1 -1
  63. package/es/components/form-render/src/components/renderer/time.d.ts +7 -0
  64. package/es/components/form-render/src/components/renderer/time.js +1 -0
  65. package/es/components/form-render/src/hooks/index.d.ts +1 -0
  66. package/es/components/form-render/src/hooks/index.js +1 -1
  67. package/es/components/form-render/src/hooks/useAutoHidden.d.ts +1 -1
  68. package/es/components/form-render/src/hooks/useAutoHidden.js +1 -1
  69. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
  70. package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +6 -4
  71. package/es/components/form-render/src/hooks/useFieldNormalize.js +1 -1
  72. package/es/components/form-render/src/hooks/useFormEvent.js +1 -1
  73. package/es/components/form-render/src/hooks/useFormRenderOptions.js +1 -1
  74. package/es/components/form-render/src/hooks/useSelectedSetting.d.ts +5 -0
  75. package/es/components/form-render/src/hooks/useSelectedSetting.js +1 -0
  76. package/es/components/form-render/src/types/fieldItem.d.ts +1 -0
  77. package/es/components/form-render/src/types/index.d.ts +2 -0
  78. package/es/components/form-render/src/utils/business.d.ts +1 -1
  79. package/es/components/form-render/src/utils/business.js +1 -1
  80. package/es/components/form-render/src/utils/index.d.ts +1 -0
  81. package/es/components/form-render/src/utils/index.js +1 -1
  82. package/es/components/iho-table/index.d.ts +278 -0
  83. package/es/components/iho-table/src/IhoTable.vue.d.ts +278 -0
  84. package/es/components/iho-table/src/IhoTable.vue2.js +1 -1
  85. package/es/components/iho-table/src/hooks/tapHooks/index.d.ts +1 -5
  86. package/es/components/iho-table/src/hooks/tapHooks/index.js +1 -1
  87. package/es/components/iho-table/src/hooks/tapHooks/useDataHooks.d.ts +2 -1
  88. package/es/components/iho-table/src/hooks/tapHooks/useDataHooks.js +1 -1
  89. package/es/components/iho-table/src/plugins/{bindEventSettingPlugin/index.d.ts → bindEventSettingPlugin.d.ts} +1 -1
  90. package/es/components/iho-table/src/plugins/bindEventSettingPlugin.js +1 -0
  91. package/es/components/iho-table/src/plugins/{defaultConfigPlugin/index.d.ts → defaultConfigPlugin.d.ts} +1 -1
  92. package/es/components/iho-table/src/plugins/defaultConfigPlugin.js +1 -0
  93. package/es/components/iho-table/src/plugins/dragScrollPlugin.d.ts +1 -0
  94. package/es/components/iho-table/src/plugins/dragScrollPlugin.js +1 -0
  95. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.d.ts +1 -1
  96. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +1 -1
  97. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  98. package/es/components/iho-table/src/plugins/headerPlugin.js +1 -1
  99. package/es/components/iho-table/src/plugins/index.js +1 -1
  100. package/es/components/iho-table/src/plugins/{keyboardEventPlugin/index.d.ts → keyboardEventPlugin.d.ts} +1 -1
  101. package/es/components/iho-table/src/plugins/keyboardEventPlugin.js +1 -0
  102. package/es/components/iho-table/src/plugins/{lowCodeFieldAdaptorPlugin/index.d.ts → lowCodeFieldAdaptorPlugin.d.ts} +1 -1
  103. package/es/components/iho-table/src/plugins/lowCodeFieldAdaptorPlugin.js +1 -0
  104. package/es/components/iho-table/src/plugins/{operationalFormPlugin/index.d.ts → operationalFormPlugin.d.ts} +1 -1
  105. package/es/components/iho-table/src/plugins/operationalFormPlugin.js +1 -0
  106. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.d.ts +31 -1
  107. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue2.js +1 -1
  108. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/index.js +1 -1
  109. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/levelSearchCascadePlugin/index.js +1 -1
  110. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/levelSearchCascadePlugin/levelSearchCascade.vue.d.ts +1 -1
  111. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.js +1 -1
  112. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  113. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +1 -1
  114. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/index.js +1 -1
  115. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue.d.ts +15 -12
  116. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue2.js +1 -1
  117. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/index.js +1 -1
  118. package/es/components/iho-table/src/plugins/rowClickPlugin.d.ts +1 -0
  119. package/es/components/iho-table/src/plugins/rowClickPlugin.js +1 -0
  120. package/es/components/iho-table/src/plugins/rowDragPlugin.d.ts +1 -0
  121. package/es/components/iho-table/src/plugins/rowDragPlugin.js +1 -0
  122. package/es/components/iho-table/src/plugins/{varialbleHeightPlugin/index.d.ts → varialbleHeightPlugin.d.ts} +1 -1
  123. package/es/components/iho-table/src/plugins/varialbleHeightPlugin.js +1 -0
  124. package/es/components/iho-table/src/plugins/verticalTablePlugin/constants.d.ts +1 -0
  125. package/es/components/iho-table/src/plugins/verticalTablePlugin/constants.js +1 -0
  126. package/es/components/iho-table/src/plugins/verticalTablePlugin/index.d.ts +1 -0
  127. package/es/components/iho-table/src/plugins/verticalTablePlugin/index.js +1 -0
  128. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.d.ts +6 -0
  129. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.js +1 -0
  130. package/es/components/iho-table/src/plugins/verticalTablePlugin/types.d.ts +12 -0
  131. package/es/components/iho-table/src/plugins/verticalTablePlugin/types.js +1 -0
  132. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.d.ts +28 -0
  133. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.js +1 -0
  134. package/es/components/iho-table/src/plugins/{virtualTreePlugin/index.d.ts → virtualTreePlugin.d.ts} +1 -1
  135. package/es/components/iho-table/src/plugins/virtualTreePlugin.js +1 -0
  136. package/es/components/iho-table/src/types/index.d.ts +11 -1
  137. package/es/components/iho-table/src/types/pluginType.d.ts +3 -1
  138. package/es/components/iho-table/src/utils/index.d.ts +5 -7
  139. package/es/components/iho-table/src/utils/index.js +1 -1
  140. package/es/components/index.css +1 -1
  141. package/es/components/index.d.ts +1 -0
  142. package/es/components/index.js +1 -1
  143. package/es/components/info-header/index.d.ts +37 -4
  144. package/es/components/info-header/src/InfoHeader.vue.d.ts +37 -4
  145. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
  146. package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
  147. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +17 -2
  148. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +16 -2
  149. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  150. package/es/components/search-cascader/index.d.ts +1 -1
  151. package/es/components/search-cascader/src/SearchCascader.vue.d.ts +1 -1
  152. package/es/components/search-cascader/src/components/SearchMenu.d.ts +1 -1
  153. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  154. package/es/components/select-person/src/SearchMultiple.vue.d.ts +0 -6
  155. package/es/components/shortcut-setter/index.d.ts +17 -2
  156. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +17 -2
  157. package/es/components/steps-wheel/src/StepsWheel.vue2.js +1 -1
  158. package/es/components/table-export-field/src/components/ExportModal.vue2.js +1 -1
  159. package/es/components/table-export-field/style/index.css +1 -1
  160. package/es/components/table-export-field/style/table-export-field-iconfont.ttf +0 -0
  161. package/es/env.d.ts +25 -25
  162. package/es/shared/assets/img/failure.png.js +1 -1
  163. package/es/shared/assets/img/no-permission.png.js +1 -1
  164. package/es/shared/assets/img/nodata.png.js +1 -1
  165. package/es/shared/assets/img/notfound.png.js +1 -1
  166. package/es/shared/assets/img/qr.png.js +1 -1
  167. package/es/shared/assets/img/success.png.js +1 -1
  168. package/es/shared/assets/img/table_style_1.png.js +1 -0
  169. package/es/shared/assets/img/table_style_2.png.js +1 -0
  170. package/es/shared/assets/img/table_style_3.png.js +1 -0
  171. package/es/shared/assets/img/table_style_4.png.js +1 -0
  172. package/es/shared/assets/img/video.png.js +1 -1
  173. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  174. package/es/shared/assets/img/xb_big.png.js +1 -1
  175. package/es/shared/assets/img/xb_small.png.js +1 -1
  176. package/es/shared/components/InputNumberSlash/InputNumberSlash.js +1 -1
  177. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  178. package/es/shared/hooks/selectHooks/useOptionFiltered.d.ts +3 -1
  179. package/es/shared/hooks/selectHooks/useOptionFiltered.js +1 -1
  180. package/es/shared/hooks/selectHooks/useSearchContent.d.ts +1 -1
  181. package/es/shared/hooks/selectHooks/useSearchContent.js +1 -1
  182. package/es/shared/package.json.js +1 -1
  183. package/es/shared/types/business.d.ts +15 -6
  184. package/es/shared/utils/business.d.ts +1 -1
  185. package/es/shared/utils/fabricjs/index.d.ts +6823 -0
  186. package/es/shared/utils/index.d.ts +2 -1
  187. package/es/shared/utils/index.js +1 -1
  188. package/es/shared/utils/tapable/index.d.ts +139 -0
  189. package/package.json +16 -15
  190. package/es/components/iho-table/src/plugins/bindEventSettingPlugin/index.js +0 -1
  191. package/es/components/iho-table/src/plugins/defaultConfigPlugin/index.js +0 -1
  192. package/es/components/iho-table/src/plugins/keyboardEventPlugin/index.js +0 -1
  193. package/es/components/iho-table/src/plugins/lowCodeFieldAdaptorPlugin/index.js +0 -1
  194. package/es/components/iho-table/src/plugins/operationalFormPlugin/index.js +0 -1
  195. package/es/components/iho-table/src/plugins/rowClickPlugin/index.d.ts +0 -1
  196. package/es/components/iho-table/src/plugins/rowClickPlugin/index.js +0 -1
  197. package/es/components/iho-table/src/plugins/rowDragPlugin/index.d.ts +0 -1
  198. package/es/components/iho-table/src/plugins/rowDragPlugin/index.js +0 -1
  199. package/es/components/iho-table/src/plugins/varialbleHeightPlugin/index.js +0 -1
  200. package/es/components/iho-table/src/plugins/virtualTreePlugin/index.js +0 -1
@@ -0,0 +1 @@
1
+ import{isObject as e,isFunction as t,cloneDeep as i}from"lodash-es";import{toRaw as l,h as o}from"vue";import{HIGHEST_PRIORITY as s,IHO_TABLE_FIXED_STATUS as n,WIDGET_TYPE as r}from"../constants/index.js";import{defineTablePlugin as d}from"../hooks/useTablePlugin.js";import{getDefaultValue as a}from"./rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.js";import{IhoTableStatusHelper as f,IhoTableUtils as c,IhoTableRenderHelper as m}from"../utils/index.js";function p(){const p="lowCodeFieldAdaptorPlugin";return d({name:p,apply(d){d.fieldHooks.field.tap({name:p,stage:s},((s,d,p)=>{const u=s,b={className:u.bold?"iho-table__boldCell":"",field:u.columnName,showOverflow:"ellipsis",visible:f.notNegative(u.isShow),minWidth:u.colWidth,sortable:f.isPositive(u.isSort),fixed:n[u.isFixed],...u,title:u.alias||u.title};return function(e,i){const l={default:i.slotFn,header:i.headerSlotFn,edit:i.editSlotFn,footer:i.footerSlotFn,...i.slots};if(t(i.checkEditStatus)){const{default:e}=l;t(e)&&(l.default=t=>i.checkEditStatus(t)?e(t):[o("span",null,a(t.row,t.column.editRender.props))])}e.slots=l}(b,u),function(o,s,n){var d,a,p;const u=i(l(s));u.componentProps={size:"mini"===n.size?"small":n.size,...u.componentProps},n.forceClearable&&(u.componentProps.clearable=!0);o.editRender={name:c.getCellType(s),...o.editRender,props:u},o.editRender.enabled=!Reflect.get(r,o.editRender.name),!o.editRender.enabled&&t(null==(d=o.slots)?void 0:d.default)&&(o.editRender.enabled=t(null==(a=o.slots)?void 0:a.edit));if(!e(s.settingObj))return;Reflect.has(s.settingObj,"isHide")&&(o.visible=o.visible&&f.notPositive(s.settingObj.isHide));m.hasTitlePrefix(s)&&(o.titlePrefix={content:(null==(p=s.titlePrefix)?void 0:p.content)||s.settingObj.feildDescribe})}(b,u,p),b})),d.fieldHooks.field.tap({name:p+"After",stage:1e3},(t=>(e(t.slots)&&Object.entries(t.slots).forEach((([e,i])=>{null==i&&Reflect.deleteProperty(t.slots,e)})),t)))}})}export{p as lowCodeFieldAdaptorPlugin};
@@ -1 +1 @@
1
- export declare function operationalFormPlugin(): import("../../../../../components/iho-table").TablePlugin;
1
+ export declare function operationalFormPlugin(): import("../../../../components/iho-table").TablePlugin;
@@ -0,0 +1 @@
1
+ import"../../../../shared/utils/index.js";import{format as o}from"date-fns";import"../../index.js";import{isFunction as n,isNumber as t,isDate as e}from"lodash-es";import{EDITABLE_WIDGET_TYPE as r}from"../constants/index.js";import{getLowCodeFieldFromField as i,IhoTableUtils as s}from"../utils/index.js";import{getOperationalFormHandler as a,getDateOperationalFormHandler as m}from"../../../../shared/utils/business.js";import{defineTablePlugin as l}from"../hooks/useTablePlugin.js";function u(){const u="operationalFormPlugin";return l({name:u,apply(l){l.configHooks.config.tap(u,(l=>{const u=l.onFormChange;return l.onFormChange=function(d){const{column:p,row:f,$table:c}=d;!function(n,u){const{operationalFormHandler:d}=a(l.operationalForm||l.operationForm,(o=>n[o]),((o,t)=>{u.getColumns().some((n=>n.field===o))&&(n[o]=t)})),{dateOperationalFormHandler:p}=m(l.dateOperationalForm,(o=>n[o]),((a,m)=>{const l=u.getColumns().find((o=>o.field===a));if(!l)return;const d=i(l);d&&[r.DATE,r.TIME].includes(s.getCellType(d))&&(m=t(m)||e(m)?o(new Date(m),d.valueFormat||"yyyy-MM-dd HH:mm:ss"):null),n[a]=m}));return function(o){d(o),p(o)}}(f,c)(p.field),n(u)&&u(d)},l}))}})}export{u as operationalFormPlugin};
@@ -30,6 +30,16 @@ declare const _default: import("vue").DefineComponent<{
30
30
  type: StringConstructor;
31
31
  default: string;
32
32
  };
33
+ isDateDisabled: {
34
+ type: PropType<(current: number, row: AnyObject) => boolean>;
35
+ };
36
+ isTimeDisabled: {
37
+ type: PropType<(current: number, row: AnyObject) => {
38
+ isHourDisabled: boolean;
39
+ isMinuteDisabled: boolean;
40
+ isSecondDisabled: boolean;
41
+ }>;
42
+ };
33
43
  }, {
34
44
  attr: AnyObject;
35
45
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
@@ -61,6 +71,16 @@ declare const _default: import("vue").DefineComponent<{
61
71
  type: StringConstructor;
62
72
  default: string;
63
73
  };
74
+ isDateDisabled: {
75
+ type: PropType<(current: number, row: AnyObject) => boolean>;
76
+ };
77
+ isTimeDisabled: {
78
+ type: PropType<(current: number, row: AnyObject) => {
79
+ isHourDisabled: boolean;
80
+ isMinuteDisabled: boolean;
81
+ isSecondDisabled: boolean;
82
+ }>;
83
+ };
64
84
  }>> & {
65
85
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
66
86
  }>>;
@@ -73,7 +93,7 @@ declare const _default: import("vue").DefineComponent<{
73
93
  timePickerProps: {
74
94
  format: string | undefined;
75
95
  };
76
- isDateDisabled: (ts: number) => any;
96
+ isDateDisabled: (ts: number) => boolean;
77
97
  isTimeDisabled: ((ts: number) => any) | undefined;
78
98
  type: any;
79
99
  clearable: boolean;
@@ -196,6 +216,16 @@ declare const _default: import("vue").DefineComponent<{
196
216
  type: StringConstructor;
197
217
  default: string;
198
218
  };
219
+ isDateDisabled: {
220
+ type: PropType<(current: number, row: AnyObject) => boolean>;
221
+ };
222
+ isTimeDisabled: {
223
+ type: PropType<(current: number, row: AnyObject) => {
224
+ isHourDisabled: boolean;
225
+ isMinuteDisabled: boolean;
226
+ isSecondDisabled: boolean;
227
+ }>;
228
+ };
199
229
  }>> & {
200
230
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
201
231
  }, {
@@ -1 +1 @@
1
- import{defineComponent as e,useAttrs as t,inject as i,ref as n,computed as r,openBlock as l,createBlock as o,unref as a,mergeProps as s,isRef as u}from"vue";import{generateTimeFormat as d}from"../../../../../../../shared/utils/index.js";import{isFunction as c}from"lodash-es";import{useIhoTableFormEvent as m}from"../../../../utils/index.js";import D from"../../../../../../date-picker/index.js";var f=e({__name:"editDate",props:{value:{type:String,default:null},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},isStartDate:{type:Boolean,default:!1},isEndDate:{type:Boolean,default:!1},connectField:{type:String,default:"-_-"}},emits:["update:value"],setup(e,{emit:f}){const p=e,w=t(),v=i("$xetable"),{emitFormChangeWithParams:b}=m({...p,$table:v}),F=n(),g=r({get:()=>p.value?p.value:null,set(e){const t=p.value;if(t===e)return;const{isDateDisabled:i,isTimeDisabled:n}=y.value;if(e){const t=Date.parse(e);if(i(t))return;const{isHourDisabled:r,isMinuteDisabled:l,isSecondDisabled:o}=(null==n?void 0:n(t))||{},{h:a,m:s,s:u}=x(new Date(e)),d=null==r?void 0:r(a),c=null==l?void 0:l(s,a),m=null==o?void 0:o(u,s,a);if(d||c||m)return}f("update:value",e),b({oldValue:t})}}),y=r((()=>{const{valueFormat:e,format:t,type:i="datetime"}=w;return{type:i,clearable:!0,allowedInvalidValue:"-",...w,timePickerProps:{format:d(e||t)},isDateDisabled:h(w.isDateDisabled)||S,isTimeDisabled:(null==i?void 0:i.includes("time"))?h(w.isTimeDisabled)||T:void 0}}));function $(e,t){return p.isStartDate&&p.connectField?e>t:!(!p.isEndDate||!p.connectField)&&e<t}function S(e){return!!p.row[p.connectField]&&$(e,p.isEndDate?new Date(`${p.row[p.connectField].split(" ")[0]} 00:00:00`).getTime():new Date(p.row[p.connectField]).getTime())}function T(e){const t=new Date(p.row[p.connectField]),i=new Date(e),{h:n,m:r,s:l}=x(t),o=(e,t,i,n)=>!(p.isEndDate&&i>n)&&(!(p.isStartDate&&i<n)&&$(e,t));return{isHourDisabled:t=>{if(!p.row[p.connectField])return!1;const r=new Date(`${p.row[p.connectField].split(" ")[0]} 00:00:00`).getTime(),{m:l,s:a}=x(i);return o(t,n,e-60*t*60*1e3-60*l*1e3-1e3*a,r)},isMinuteDisabled:t=>{if(!p.row[p.connectField])return!1;const l=new Date(`${p.row[p.connectField].split(" ")[0]} ${n}:00:00`).getTime(),{s:a}=x(i);return o(t,r,e-60*t*1e3-1e3*a,l)},isSecondDisabled:t=>{if(!p.row[p.connectField])return!1;const i=new Date(`${p.row[p.connectField].split(" ")[0]} ${n}:${r}:00`).getTime();return o(t,l,e-1e3*t,i)}}}function h(e){return c(e)?t=>e(t,p.row):null}function x(e){return{h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()}}return(e,t)=>(l(),o(a(D),s({ref_key:"formRef",ref:F},a(y),{"formatted-value":a(g),"onUpdate:formatted-value":t[0]||(t[0]=e=>u(g)?g.value=e:null)}),null,16,["formatted-value"]))}});export{f as default};
1
+ import{defineComponent as e,useAttrs as t,inject as i,ref as n,computed as r,openBlock as l,createBlock as a,unref as o,mergeProps as s,isRef as u}from"vue";import{generateTimeFormat as d}from"../../../../../../../shared/utils/index.js";import{isFunction as c}from"lodash-es";import{useIhoTableFormEvent as m}from"../../../../utils/index.js";import D from"../../../../../../date-picker/index.js";var f=e({__name:"editDate",props:{value:{type:String,default:null},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},isStartDate:{type:Boolean,default:!1},isEndDate:{type:Boolean,default:!1},connectField:{type:String,default:"-_-"},isDateDisabled:{type:Function},isTimeDisabled:{type:Function}},emits:["update:value"],setup(e,{emit:f}){const p=e,v=t(),w=i("$xetable"),{emitFormChangeWithParams:b}=m({...p,$table:w}),F=n(),g=r({get:()=>p.value?p.value:null,set(e){const t=p.value;if(t===e)return;const{isDateDisabled:i,isTimeDisabled:n}=y.value;if(e){const t=Date.parse(e);if(i(t))return;const{isHourDisabled:r,isMinuteDisabled:l,isSecondDisabled:a}=(null==n?void 0:n(t))||{},{h:o,m:s,s:u}=h(new Date(e)),d=null==r?void 0:r(o),c=null==l?void 0:l(s,o),m=null==a?void 0:a(u,s,o);if(d||c||m)return}f("update:value",e),b({oldValue:t})}}),y=r((()=>{const{valueFormat:e,format:t,type:i="datetime"}=v;return{type:i,clearable:!0,allowedInvalidValue:"-",...v,timePickerProps:{format:d(e||t)},isDateDisabled:e=>{var t;return(null==(t=p.isDateDisabled)?void 0:t.call(p,e,p.row))||function(e){return!!p.row[p.connectField]&&T(e,p.isEndDate?new Date(`${p.row[p.connectField].split(" ")[0]} 00:00:00`).getTime():new Date(p.row[p.connectField]).getTime())}(e)},isTimeDisabled:(null==i?void 0:i.includes("time"))?S(p.isTimeDisabled)||$:void 0}}));function T(e,t){return p.isStartDate&&p.connectField?e>t:!(!p.isEndDate||!p.connectField)&&e<t}function $(e){const t=new Date(p.row[p.connectField]),i=new Date(e),{h:n,m:r,s:l}=h(t),a=(e,t,i,n)=>!(p.isEndDate&&i>n)&&(!(p.isStartDate&&i<n)&&T(e,t));return{isHourDisabled:t=>{if(!p.row[p.connectField])return!1;const r=new Date(`${p.row[p.connectField].split(" ")[0]} 00:00:00`).getTime(),{m:l,s:o}=h(i);return a(t,n,e-60*t*60*1e3-60*l*1e3-1e3*o,r)},isMinuteDisabled:t=>{if(!p.row[p.connectField])return!1;const l=new Date(`${p.row[p.connectField].split(" ")[0]} ${n}:00:00`).getTime(),{s:o}=h(i);return a(t,r,e-60*t*1e3-1e3*o,l)},isSecondDisabled:t=>{if(!p.row[p.connectField])return!1;const i=new Date(`${p.row[p.connectField].split(" ")[0]} ${n}:${r}:00`).getTime();return a(t,l,e-1e3*t,i)}}}function S(e){return c(e)?t=>e(t,p.row):null}function h(e){return{h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()}}return(e,t)=>(l(),a(o(D),s({ref_key:"formRef",ref:F},o(y),{"formatted-value":o(g),"onUpdate:formatted-value":t[0]||(t[0]=e=>u(g)?g.value=e:null)}),null,16,["formatted-value"]))}});export{f as default};
@@ -1 +1 @@
1
- import{createVNode as e,mergeProps as o}from"vue";import{format as t}from"date-fns";import{isFunction as n}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as r}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as d,IhoTableRenderHelper as l,isInvalidDate as a,getLowCodeFieldFromField as u}from"../../../../utils/index.js";import m from"./editDate.vue.js";import{defineTablePlugin as s}from"../../../../hooks/useTablePlugin.js";function c(){const c="dateRendererPlugin";return s({name:c,vxe(t){t.interceptor.add("event.clearActived",d(r.DATE,(e=>e.classList.contains("n-date-panel")))),t.renderer.add(r.DATE,{renderCell:l.createDefaultRenderCell(),renderEdit:l.createRenderEdit((({fieldItem:t,emitFormClick:n,row:r,column:i,$rowIndex:d})=>[e(m,o({value:r[i.field],"onUpdate:value":e=>r[i.field]=e,isStartDate:t.isStartDate,isEndDate:t.isEndDate,connectField:t.connectField,valueFormat:t.valueFormat},t.componentProps,{column:i,row:r,"row-index":d,onClick:n}),null)]))})},apply(e){i(e).bindAutoFocusConfig(c,r.DATE,".n-input__input-el",{after:e=>(Reflect.set(e.editRender,"autoselect",!0),e)}),e.eventHooks.onCellDblclick.tap(c,(({row:e,column:o,columnIndex:i,rowIndex:d,$rowIndex:l},m,{$table:s,emits:c})=>{var f,p,v,x;if((null==(f=o.editRender)?void 0:f.name)!==r.DATE||e[o.field])return;if(n(null==(p=m.editConfig)?void 0:p.beforeEditMethod)){if(!(null==(v=m.editConfig)?void 0:v.beforeEditMethod({row:e,column:o,columnIndex:i,rowIndex:d,$table:s,$grid:s})))return}const D=new Date;if(a(o,e,D))return;const w=e[o.field];e[o.field]=t(D,(null==(x=u(o))?void 0:x.valueFormat)||"yyyy-MM-dd HH:mm:ss"),c("formChange",{oldValue:w,index:d>-1?d:l,value:e[o.field],row:e,column:o,$table:s})}))}})}export{c as dateRendererPlugin};
1
+ import{createVNode as e,mergeProps as o}from"vue";import{format as t}from"date-fns";import{isFunction as n}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as r}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{IhoTableRenderHelper as l,isInvalidDate as d,getLowCodeFieldFromField as a}from"../../../../utils/index.js";import u from"./editDate.vue.js";import{defineTablePlugin as m}from"../../../../hooks/useTablePlugin.js";function s(){const s="dateRendererPlugin";return m({name:s,vxe(t){t.renderer.add(r.DATE,{renderCell:l.createDefaultRenderCell(),renderEdit:l.createRenderEdit((({fieldItem:t,emitFormClick:n,row:r,column:i,$rowIndex:l})=>[e(u,o({value:r[i.field],"onUpdate:value":e=>r[i.field]=e,isStartDate:t.isStartDate,isEndDate:t.isEndDate,connectField:t.connectField,valueFormat:t.valueFormat},t.componentProps,{column:i,row:r,"row-index":l,onClick:n}),null)]))})},apply(e){i(e).bindAutoFocusConfig(s,r.DATE,".n-input__input-el",{after:e=>(Reflect.set(e.editRender,"autoselect",!0),e)}),e.eventHooks.onCellDblclick.tap(s,(({row:e,column:o,columnIndex:i,rowIndex:l,$rowIndex:u},m,{$table:s,emits:f})=>{var c,p,v,x;if((null==(c=o.editRender)?void 0:c.name)!==r.DATE||e[o.field])return;if(n(null==(p=m.editConfig)?void 0:p.beforeEditMethod)){if(!(null==(v=m.editConfig)?void 0:v.beforeEditMethod({row:e,column:o,columnIndex:i,rowIndex:l,$table:s,$grid:s})))return}const w=new Date;if(d(o,e,w))return;const D=e[o.field];e[o.field]=t(w,(null==(x=a(o))?void 0:x.valueFormat)||"yyyy-MM-dd HH:mm:ss"),f("formChange",{oldValue:D,index:l>-1?l:u,value:e[o.field],row:e,column:o,$table:s})}))}})}export{s as dateRendererPlugin};
@@ -1 +1 @@
1
- import{createVNode as o,computed as e,mergeProps as r}from"vue";import{isString as n,isArray as t}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as l}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{getLowCodeFieldFromField as d,IhoTableRenderHelper as a,createIhoTableClearActivedInterceptor as s}from"../../../../utils/index.js";import u from"./levelSearchCascade.vue.js";import{defineTablePlugin as c}from"../../../../hooks/useTablePlugin.js";function m(){const m="levelSearchCascadePlugin";return c({name:m,vxe(i){i.renderer.add(l.LEVEL_SEARCH_CASCADE,{renderCell:(e,{column:r,row:l})=>{const i=l[r.field];return n(i)?a(i):t(i)?a(function(o){var e,n,t;const l=d(r);if(!l)return"";const i=(null==(n=null==(e=l.wordbook)?void 0:e.show_key)?void 0:n[0])||(null==(t=l.componentProps)?void 0:t.labelField)||"text";return o.reduce(((o,e,r)=>0===r?e[i]:o+" / "+e[i]),"")}(i)):"";function a(e){return o("span",{title:e,class:"iho-table__colorAndIcon"},[e])}},renderEdit:a.createRenderEdit((({fieldItem:n,row:t,column:l,emitFormClick:i,emitFormChangeWithParams:d,rowIndex:a,columnIndex:s})=>{const c=e({get:()=>t[l.field],set(o){const e=t[l.field];t[l.field]=o,d({oldValue:e})}});return[o(u,r({value:c.value,"onUpdate:value":o=>c.value=o,options:n.options,wordbook:n.wordbook,autograph:n.autograph,onClick:i},n.componentProps,{fieldKey:l.field,payload:{row:t,column:l,rowIndex:a,columnIndex:s}}),null)]}))}),i.interceptor.add("event.clearActived",s(l.LEVEL_SEARCH_CASCADE,(o=>o.classList.contains("search-cascader__menuWrapper"))))},apply(o){i(o).bindAutoFocusConfig(m,l.LEVEL_SEARCH_CASCADE,"input")}})}export{m as levelSearchCascadePlugin};
1
+ import{createVNode as o,computed as e,mergeProps as n}from"vue";import{isString as r,isArray as t}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as l}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{getLowCodeFieldFromField as d,IhoTableRenderHelper as u}from"../../../../utils/index.js";import s from"./levelSearchCascade.vue.js";import{defineTablePlugin as a}from"../../../../hooks/useTablePlugin.js";function c(){const c="levelSearchCascadePlugin";return a({name:c,vxe(i){i.renderer.add(l.LEVEL_SEARCH_CASCADE,{renderCell:(e,{column:n,row:l})=>{const i=l[n.field];return r(i)?u(i):t(i)?u(function(o){var e,r,t;const l=d(n);if(!l)return"";const i=(null==(r=null==(e=l.wordbook)?void 0:e.show_key)?void 0:r[0])||(null==(t=l.componentProps)?void 0:t.labelField)||"text";return o.reduce(((o,e,n)=>0===n?e[i]:o+" / "+e[i]),"")}(i)):"";function u(e){return o("span",{title:e,class:"iho-table__colorAndIcon"},[e])}},renderEdit:u.createRenderEdit((({fieldItem:r,row:t,column:l,emitFormClick:i,emitFormChangeWithParams:d,rowIndex:u,columnIndex:a})=>{const c=e({get:()=>t[l.field],set(o){const e=t[l.field];t[l.field]=o,d({oldValue:e})}});return[o(s,n({value:c.value,"onUpdate:value":o=>c.value=o,options:r.options,wordbook:r.wordbook,autograph:r.autograph,onClick:i},r.componentProps,{fieldKey:l.field,payload:{row:t,column:l,rowIndex:u,columnIndex:a}}),null)]}))})},apply(o){i(o).bindAutoFocusConfig(c,l.LEVEL_SEARCH_CASCADE,"input")}})}export{c as levelSearchCascadePlugin};
@@ -371,7 +371,7 @@ declare const _default: import("vue").DefineComponent<{
371
371
  cursorNode: {
372
372
  type: PropType<AnyObject>;
373
373
  };
374
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("nodeClick" | "changeCursor")[], "nodeClick" | "changeCursor", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
374
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("nodeClick" | "changeCursor")[], "changeCursor" | "nodeClick", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
375
375
  childKey: {
376
376
  type: StringConstructor;
377
377
  default: string;
@@ -1 +1 @@
1
- import{createVNode as e,mergeProps as o,defineComponent as l,computed as t}from"vue";import n from"../../../../../../shared/components/InputNumberSlash/InputNumberSlash.js";import{isNumber as r}from"lodash-es";import{NInputNumber as a}from"naive-ui";import"../../../../index.js";import{EDITABLE_WIDGET_TYPE as u}from"../../../constants/index.js";import{useAutoFocus as i}from"./hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as s,IhoTableRenderHelper as p}from"../../../utils/index.js";import{defineTablePlugin as m}from"../../../hooks/useTablePlugin.js";const c=l({name:"IhoTableInputNumber",props:{value:[String,Number]},emits:["update:value"],setup(o,{emit:l}){const n=t({get:()=>r(o.value)?o.value:o.value&&r(+o.value)?+o.value:null,set(e){l("update:value",e)}});return()=>e(a,{value:n.value,"onUpdate:value":e=>n.value=e},null)}});function d(){const l="numberRendererPlugin";return m({name:l,vxe(l){l.interceptor.add("event.clearActived",s(u.NUMBER,(e=>e.classList.contains("iho-table_numberInputSlashPopper")))),l.renderer.add(u.NUMBER,{renderCell:p.createDefaultRenderCell(),renderEdit:p.createRenderEdit((({row:l,column:t,fieldItem:r,emitFormClick:a,emitFormChangeWithParams:u,$table:i})=>{var s;const{placeholder:p="请输入"}=r.componentProps||{};function m(e){const o=l[t.field];l[t.field]=e,u({oldValue:o})}const d={clearable:!0,placeholder:p,onBlur:()=>u({type:"blur",oldValue:l[t.field]}),onClick:a};return!0===r.allowSlash||"1"===r.allowSlash?e(n,o({value:l[t.field],onChange:m,onSelect:function(){i.internalData.isActivated=!0}},d,{whiteList:r.whiteList},r.componentProps,{popperProps:{...null==(s=r.componentProps)?void 0:s.popperProps,class:"iho-table_numberInputSlashPopper"}}),null):e(c,o({value:l[t.field],"onUpdate:value":m},d,r.componentProps),null)}))})},apply(e){i(e).bindAutoFocusConfig(l,u.NUMBER,".n-input__input-el",{focusType:"class"})}})}export{d as numberRendererPlugin};
1
+ import{createVNode as e,mergeProps as o,defineComponent as l,computed as n}from"vue";import t from"../../../../../../shared/components/InputNumberSlash/InputNumberSlash.js";import{isNumber as r}from"lodash-es";import{NInputNumber as u}from"naive-ui";import"../../../../index.js";import{EDITABLE_WIDGET_TYPE as a}from"../../../constants/index.js";import{useAutoFocus as i}from"./hooks/useAutoFocus.js";import{IhoTableRenderHelper as s}from"../../../utils/index.js";import{defineTablePlugin as p}from"../../../hooks/useTablePlugin.js";const m=l({name:"IhoTableInputNumber",props:{value:[String,Number]},emits:["update:value"],setup(o,{emit:l}){const t=n({get:()=>r(o.value)?o.value:o.value&&r(+o.value)?+o.value:null,set(e){l("update:value",e)}});return()=>e(u,{value:t.value,"onUpdate:value":e=>t.value=e},null)}});function d(){const l="numberRendererPlugin";return p({name:l,vxe(l){l.renderer.add(a.NUMBER,{renderCell:s.createDefaultRenderCell(),renderEdit:s.createRenderEdit((({row:l,column:n,fieldItem:r,emitFormClick:u,emitFormChangeWithParams:a,$table:i})=>{var s;const{placeholder:p="请输入"}=r.componentProps||{};function d(e){const o=l[n.field];l[n.field]=e,a({oldValue:o})}const c={clearable:!0,placeholder:p,onBlur:()=>a({type:"blur",oldValue:l[n.field]}),onClick:u};return!0===r.allowSlash||"1"===r.allowSlash?e(t,o({value:l[n.field],onChange:d,onSelect:function(){i.internalData.isActivated=!0}},c,{whiteList:r.whiteList},r.componentProps,{popperProps:{...null==(s=r.componentProps)?void 0:s.popperProps,class:"iho-table_numberInputSlashPopper"}}),null):e(m,o({value:l[n.field],"onUpdate:value":d},c,r.componentProps),null)}))})},apply(e){i(e).bindAutoFocusConfig(l,a.NUMBER,".n-input__input-el",{focusType:"class"})}})}export{d as numberRendererPlugin};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as l,ref as o,computed as t,onBeforeUnmount as n,nextTick as a,createVNode as r,toRaw as u}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import{isFunction as s,isEmpty as d,isArray as c,isObject as p,omit as v,cloneDeep as f,xor as m}from"lodash-es";import{NSelect as y}from"naive-ui";import{useVModel as h,useDebounceFn as b}from"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as w}from"../../../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import{useOptionFiltered as F}from"../../../../../../../shared/hooks/selectHooks/useOptionFiltered.js";import"../../../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as S}from"../../../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{InjectionIhoTableUUID as g}from"../../../../constants/index.js";import{useIhoTableFormEvent as O}from"../../../../utils/index.js";import{getSelectOptions as k,selectOptionsMap as B}from"../hooks/useSelectOption.js";var j=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowModify:{type:Boolean},allowCreate:{type:Boolean},shouldSave:{type:Boolean},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},searchField:{type:Array},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0},searchByValue:{type:Boolean}},emits:["update:value"],setup(e,{emit:j}){const x=l("$xetable"),$=h(e,"value",j),q=o(null),{emitFormChangeWithParams:K}=O({...e,$table:x}),A=t((()=>e.labelField)),C=t((()=>e.valueField)),R=t((()=>e.aliasField)),M=t((()=>e.searchField)),{fullOptions:P,filterOptions:_,searchContent:D,remoteOptions:E}=F(e,{labelKey:A,valueKey:C,searchKey:M}),{modifyEvent:H,modifyAbleRef:T,getOptionsWithCreated:V}=w(e,{searchContent:D,labelKey:A,valueKey:C,valueRef:$,fullOptions:P}),W=t((()=>V(T.value?P.value:_.value))),I=o(!1),L=b((async function(l=""){D.value=l;try{if(I.value=!0,!s(e.queryOptions)||!d(e.options))return;E.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{I.value=!1}}),400),N=l(g);n((()=>G(!0)));const U=o(!1);function z(e){U.value=e,G(),L()}async function G(l=!1){var o,t,n;if(!e.multiple)return;await a();const{refTableLeftBody:r,refTableBody:u}=x.getRefMaps(),i=null==(o=null==r?void 0:r.value)?void 0:o.$el;if(!i)return;const s=null==(t=null==u?void 0:u.value)?void 0:t.$el,d=x.getRowid(e.row),c=null==(n=s.querySelector(`.vxe-body--row[rowid="${d}"]`))?void 0:n.clientHeight;i.querySelector(`.vxe-body--row[rowid="${d}"]`).style.height=l?"unset":c+"px"}async function J(l,o){var t,n;const a=e.value;await H.updateValue(l,o);const r=k(N,e.column.field,e.row,x);N&&c(r)&&i(o).forEach((e=>{if(!p(e))return;const l=e;l.created&&l.shouldSave&&r.push(v(u(l),["created","shouldSave"]))}));const s=null==(t=e.column.editRender)?void 0:t.props;if(N&&(null==s?void 0:s.connectField)){const o=null==(n=s.connectField)?void 0:n.split(","),t=B.get(N);o.forEach((async o=>{var n;const{tableColumn:a}=x.reactData,r=a.find((e=>e.field===o)),u=null==(n=null==r?void 0:r.editRender)?void 0:n.props;if(null==u?void 0:u.queryOptions){const n=l?`${o}__${e.column.field}-${l}`:o;if(t[n])return;t[n]=await u.queryOptions({row:e.row,column:r,isFullData:!0,connectColumn:e.column})}}))}return K({oldValue:a,option:f(o)}),G()}function Q(e){var l,o;"Tab"===e.key&&q.value&&(U.value?null==(o=(l=q.value).handleKeydown)||o.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}):x.internalData.isActivated=!0)}const{renderTag:X,renderLabel:Y,renderSelectAll:Z}=S(e,{labelKey:A,valueKey:C,valueRef:$,showKey:R,searchContent:D});function ee(l){if(!e.multiple)return;const o=l?W.value.map((e=>e[C.value])):[];if(!m(o,$.value).length)return;const t=$.value;$.value=o,K({oldValue:t,option:l?W.value:[]})}const le=()=>({class:"iho-table__selectOption"}),oe=t((()=>{var l,o;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(o=null==(l=e.menuProps)?void 0:l.class)?o:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=()=>Z(ee)),r(y,{ref:q,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:I.value,options:W.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:L,clearable:!0,filterable:!0,nodeProps:le,menuProps:oe.value,renderTag:X,renderLabel:Y,show:U.value,onUpdateShow:z,onUpdateValue:J,onKeydown:Q,onFocus:H.focus,onBlur:H.blur},l)}}});export{j as default};
1
+ import{defineComponent as e,inject as l,ref as o,computed as t,onBeforeUnmount as n,nextTick as r,createVNode as a,toRaw as u}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import{isFunction as s,isEmpty as d,isArray as c,isObject as p,omit as v,cloneDeep as f,xor as y}from"lodash-es";import{NSelect as m}from"naive-ui";import{useVModel as h,useDebounceFn as w}from"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as b}from"../../../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import{useOptionFiltered as g}from"../../../../../../../shared/hooks/selectHooks/useOptionFiltered.js";import"../../../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as F}from"../../../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{InjectionIhoTableUUID as S,InjectionIhoTableConfig as O}from"../../../../constants/index.js";import{useIhoTableFormEvent as k}from"../../../../utils/index.js";import{getSelectOptions as A,selectOptionsMap as B}from"../hooks/useSelectOption.js";var j=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowModify:{type:Boolean},allowCreate:{type:Boolean},shouldSave:{type:Boolean},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},searchField:{type:Array},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0},searchByValue:{type:Boolean}},emits:["update:value"],setup(e,{emit:j}){const x=l("$xetable"),C=h(e,"value",j),K=o(null),{emitFormChangeWithParams:$}=k({...e,$table:x}),q=t((()=>e.labelField)),R=t((()=>e.valueField)),M=t((()=>e.aliasField)),D=t((()=>e.searchField)),{fullOptions:P,filterOptions:_,searchContent:E,remoteOptions:H}=g(e,{labelKey:q,valueKey:R,searchKey:D}),{modifyEvent:T,modifyAbleRef:V,getOptionsWithCreated:W}=b(e,{searchContent:E,labelKey:q,valueKey:R,valueRef:C,fullOptions:P}),L=t((()=>W(V.value?P.value:_.value))),I=o(!1),U=w((async function(l=""){E.value=l;try{if(I.value=!0,!s(e.queryOptions)||!d(e.options))return;H.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{I.value=!1}}),400),N=l(S);n((()=>J(!0)));const z=o(!1);function G(e){z.value=e,J(),U()}async function J(l=!1){var o,t,n;if(!e.multiple)return;await r();const{refTableLeftBody:a,refTableBody:u}=x.getRefMaps(),i=null==(o=null==a?void 0:a.value)?void 0:o.$el;if(!i)return;const s=null==(t=null==u?void 0:u.value)?void 0:t.$el,d=x.getRowid(e.row),c=null==(n=s.querySelector(`.vxe-body--row[rowid="${d}"]`))?void 0:n.clientHeight;i.querySelector(`.vxe-body--row[rowid="${d}"]`).style.height=l?"unset":c+"px"}async function Q(l,o){var t,n;const r=e.value;await T.updateValue(l,o);const a=A(N,e.column.field,e.row,x);N&&c(a)&&i(o).forEach((e=>{if(!p(e))return;const l=e;l.created&&l.shouldSave&&a.push(v(u(l),["created","shouldSave"]))}));const s=null==(t=e.column.editRender)?void 0:t.props;if(N&&(null==s?void 0:s.connectField)){const o=null==(n=s.connectField)?void 0:n.split(","),t=B.get(N);o.forEach((async o=>{var n;const{tableColumn:r}=x.reactData,a=r.find((e=>e.field===o)),u=null==(n=null==a?void 0:a.editRender)?void 0:n.props;if(null==u?void 0:u.queryOptions){const n=l?`${o}__${e.column.field}-${l}`:o;if(t[n])return;t[n]=await u.queryOptions({row:e.row,column:a,isFullData:!0,connectColumn:e.column})}}))}return $({oldValue:r,option:f(o)}),J()}const X=l(O);function Y(e){var l,o,t;K.value&&(("Tab"===e.key||function(){var e,l;return null==(l=null==(e=X.value)?void 0:e.keyboardConfig)?void 0:l.forceArrowKey}()&&(t=e.key,["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t)))&&(z.value?null==(o=(l=K.value).handleKeydown)||o.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}):x.internalData.isActivated=!0))}const{renderTag:Z,renderLabel:ee,renderSelectAll:le}=F(e,{labelKey:q,valueKey:R,valueRef:C,showKey:M,searchContent:E});function oe(l){if(!e.multiple)return;const o=l?L.value.map((e=>e[R.value])):[];if(!y(o,C.value).length)return;const t=C.value;C.value=o,$({oldValue:t,option:l?L.value:[]})}const te=()=>({class:"iho-table__selectOption"}),ne=t((()=>{var l,o;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(o=null==(l=e.menuProps)?void 0:l.class)?o:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=()=>le(oe)),a(m,{ref:K,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:I.value,options:L.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:U,clearable:!0,filterable:!0,nodeProps:te,menuProps:ne.value,renderTag:Z,renderLabel:ee,show:z.value,onUpdateShow:G,onUpdateValue:Q,onKeydownCapture:Y,onFocus:T.focus,onBlur:T.blur},l)}}});export{j as default};
@@ -1 +1 @@
1
- import{reactive as e,inject as o,createVNode as t,mergeProps as n,onBeforeUnmount as l}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as r,InjectionIhoTableUUID as s}from"../../../../constants/index.js";import{useAutoFocus as u}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as d,getTitle as a,IhoTableRenderHelper as c,IhoTableUtils as p}from"../../../../utils/index.js";import f from"./editSelect.js";import{getDefaultValue as m,isConnectField as v,getArray as w}from"./selectUtils.js";import{getSelectOptions as h,selectOptionsMap as b}from"../hooks/useSelectOption.js";import{cloneDeep as g,isFunction as y,isEqual as C}from"lodash-es";import{defineTablePlugin as E}from"../../../../hooks/useTablePlugin.js";function x(){const x="selectRendererPlugin",k=e(new Map);function j(e){return!0===e||"1"===e}return E({name:x,vxe(e){e.interceptor.add("event.clearActived",d(r.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),e.renderer.add(r.SELECT,{renderCell({props:e},{row:n,column:l,$table:r}){var u;const d=o(s),c=h(d,l.field,n,r),p=m(n,e,c),f=i(p).join(","),v=e&&(j(e.variableHeight)||(null==(u=e.componentProps)?void 0:u.indexedText));return[t("span",{title:a(l,f),class:"iho-table__colorAndIcon"},[v?i(p).reduce(((e,o)=>(null!=o&&e.push([o,";",t("br",null,null)]),e)),[]):f])]},renderEdit:c.createRenderEdit((({fieldItem:e,emitFormClick:l,row:i,column:r,$rowIndex:u,$table:d})=>{var a,c,p,m;const v=o(s),w=h(v,r.field,i,d),b=j(null!=(c=null==(a=e.componentProps)?void 0:a.allowModify)?c:e.allowModify),g=j(null!=(m=null==(p=e.componentProps)?void 0:p.allowCreate)?m:e.allowCreate)||b;return[t(f,n({queryOptions:e.queryOptions},e.componentProps,{options:w,column:r,row:i,"row-index":u,value:i[r.field],"onUpdate:value":e=>i[r.field]=e,allowModify:b,allowCreate:g,onClick:l}),null)]}))})},apply(e){async function o(e,o={}){var t,n,l;const i=null==(t=e.editRender)?void 0:t.props;if(!i)return[];let r=w(i.options)||w(null==(n=i.componentProps)?void 0:n.options)||[];if(i.queryOptions)try{const t={column:e,isFullData:!0,...o};r=await(null==(l=i.queryOptions)?void 0:l.call(i,t))}catch(e){console.log(`获取${i.field}_options错误`)}return r}function t(e){return e&&p.getCellType(e)===r.SELECT}u(e).bindAutoFocusConfig(x,r.SELECT,".n-base-selection-input,.n-base-selection-tags"),e.fieldHooks.fieldList.tap(x,((e,{uuid:n})=>{if(n){b.get(n)||b.set(n,{}),k.set(n,g(e));const l=b.get(n);e.forEach((async n=>{var i;const r=null==(i=n.editRender)?void 0:i.props;if(n.field&&r&&t(r)&&!v(e,n.field)){if(y(r.queryOptions)&&l[n.field])return;l[n.field]=[],l[n.field]=await o(n)}}))}return e})),e.dataHooks.data.tap(x,((e,{uuid:n},l)=>{if(!n)return;const i=k.get(n);if(!i||!i.length)return;const r=b.get(n);i.forEach((async n=>{var l;const s=null==(l=n.editRender)?void 0:l.props;if(n.field&&s&&t(s)&&(null==s?void 0:s.connectField)){const t=s.connectField.split(","),l=e[s.columnName];t.forEach((async t=>{const u=null==i?void 0:i.find((e=>e.field===t));if(!u)return;const d=l?`${t}__${s.columnName}-${l}`:t;r[d]||(r[d]=[],r[d]=await o(u,{row:e,connectColumn:n}))}))}}))})),e.setupHooks.setup.tap(x,(e=>{l((()=>{var o;const t=null==(o=e.value)?void 0:o.uuid;t&&(b.delete(t),k.delete(t))}))})),e.eventHooks.onCellDblclick.tap(x,(({$table:e},o,{emits:n})=>{var l;const{column:i,row:r}=e.reactData.editStore.actived;if(!i||!r)return;const s=null==(l=i.editRender)?void 0:l.props,{cellDblclickSelectable:u=!1,multiple:d=!1,valueField:a="value"}=s.componentProps||{};if(!u||!t(s))return;const c=o.uuid&&h(o.uuid,i.field,r,e);if(1!==(null==c?void 0:c.length))return;const p=d?[c[0][a]]:c[0][a],f=r[i.field];e.clearEdit(),C(p,f)||(r[i.field]=p,n("formChange",{column:i,row:r,oldValue:f,value:p,index:e.getRowIndex(r),$table:e,option:c[0]}))}))}})}export{x as selectRendererPlugin};
1
+ import{reactive as e,inject as o,createVNode as n,mergeProps as t,onBeforeUnmount as l}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as r,InjectionIhoTableUUID as s}from"../../../../constants/index.js";import{useAutoFocus as u}from"../hooks/useAutoFocus.js";import{getTitle as d,IhoTableRenderHelper as a,IhoTableUtils as c}from"../../../../utils/index.js";import p from"./editSelect.js";import{getDefaultValue as f,isConnectField as m,getArray as v}from"./selectUtils.js";import{getSelectOptions as w,selectOptionsMap as g}from"../hooks/useSelectOption.js";import{cloneDeep as h,isFunction as y,isEqual as b}from"lodash-es";import{defineTablePlugin as C}from"../../../../hooks/useTablePlugin.js";function x(){const x="selectRendererPlugin",E=e(new Map);function k(e){return!0===e||"1"===e}return C({name:x,vxe(e){e.renderer.add(r.SELECT,{renderCell({props:e},{row:t,column:l,$table:r}){var u;const a=o(s),c=w(a,l.field,t,r),p=f(t,e,c),m=i(p).join(","),v=e&&(k(e.variableHeight)||(null==(u=e.componentProps)?void 0:u.indexedText));return[n("span",{title:d(l,m),class:"iho-table__colorAndIcon"},[v?i(p).reduce(((e,o)=>(null!=o&&e.push([o,";",n("br",null,null)]),e)),[]):m])]},renderEdit:a.createRenderEdit((({fieldItem:e,emitFormClick:l,row:i,column:r,$rowIndex:u,$table:d})=>{var a,c,f,m;const v=o(s),g=w(v,r.field,i,d),h=k(null!=(c=null==(a=e.componentProps)?void 0:a.allowModify)?c:e.allowModify),y=k(null!=(m=null==(f=e.componentProps)?void 0:f.allowCreate)?m:e.allowCreate)||h;return[n(p,t({queryOptions:e.queryOptions},e.componentProps,{options:g,column:r,row:i,"row-index":u,value:i[r.field],"onUpdate:value":e=>i[r.field]=e,allowModify:h,allowCreate:y,onClick:l}),null)]}))})},apply(e){async function o(e,o={}){var n,t,l;const i=null==(n=e.editRender)?void 0:n.props;if(!i)return[];let r=v(i.options)||v(null==(t=i.componentProps)?void 0:t.options)||[];if(i.queryOptions)try{const n={column:e,isFullData:!0,...o};r=await(null==(l=i.queryOptions)?void 0:l.call(i,n))}catch(e){console.log(`获取${i.field}_options错误`)}return r}function n(e){return e&&c.getCellType(e)===r.SELECT}u(e).bindAutoFocusConfig(x,r.SELECT,".n-base-selection-input,.n-base-selection-tags"),e.fieldHooks.fieldList.tap(x,((e,{uuid:t})=>{if(t){g.get(t)||g.set(t,{}),E.set(t,h(e));const l=g.get(t);e.forEach((async t=>{var i;const r=null==(i=t.editRender)?void 0:i.props;if(t.field&&r&&n(r)&&!m(e,t.field)){if(y(r.queryOptions)&&l[t.field])return;l[t.field]=[],l[t.field]=await o(t)}}))}return e})),e.dataHooks.data.tap(x,((e,{uuid:t},l)=>{if(!t)return;const i=E.get(t);if(!i||!i.length)return;const r=g.get(t);i.forEach((async t=>{var l;const s=null==(l=t.editRender)?void 0:l.props;if(t.field&&s&&n(s)&&(null==s?void 0:s.connectField)){const n=s.connectField.split(","),l=e[s.columnName];n.forEach((async n=>{const u=null==i?void 0:i.find((e=>e.field===n));if(!u)return;const d=l?`${n}__${s.columnName}-${l}`:n;r[d]||(r[d]=[],r[d]=await o(u,{row:e,connectColumn:t}))}))}}))})),e.setupHooks.setup.tap(x,(e=>{l((()=>{var o;const n=null==(o=e.value)?void 0:o.uuid;n&&(g.delete(n),E.delete(n))}))})),e.eventHooks.onCellDblclick.tap(x,(({$table:e},o,{emits:t})=>{var l;const{column:i,row:r}=e.reactData.editStore.actived;if(!i||!r)return;const s=null==(l=i.editRender)?void 0:l.props,{cellDblclickSelectable:u=!1,multiple:d=!1,valueField:a="value"}=s.componentProps||{};if(!u||!n(s))return;const c=o.uuid&&w(o.uuid,i.field,r,e);if(1!==(null==c?void 0:c.length))return;const p=d?[c[0][a]]:c[0][a],f=r[i.field];e.clearEdit(),b(p,f)||(r[i.field]=p,t("formChange",{column:i,row:r,oldValue:f,value:p,index:e.getRowIndex(r),$table:e,option:c[0]}))}))}})}export{x as selectRendererPlugin};
@@ -1 +1 @@
1
- import{reactive as e,inject as t,createVNode as a,toRaw as o,h as r,onBeforeUnmount as n}from"vue";import{traverse as i,arrayed as u}from"../../../../../../../shared/utils/index.js";import{isFunction as l,isObject as s,isArray as d,compact as p,range as c,uniq as f,flatten as _}from"lodash-es";import{NInput as m}from"naive-ui";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as E,InjectionIhoTableUUID as A,InjectionIhoTableHandler as h}from"../../../../constants/index.js";import{useAutoFocus as v}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as R,getLowCodeFieldFromField as g,IhoTableRenderHelper as T,getRowHeight as D,getColumnRenderWidth as w,parseMergeField as b}from"../../../../utils/index.js";import P from"./editSeparate.vue.js";import{contentSeparate as $,getLengthDiffArray as x,getColumnInfoMaxLength as C,generateSeparateRowData as S,isSeparateColumn as k}from"./separateUtils.js";import{getSeparateInfo as H,setSeparateInfo as j,deleteSeparateInfo as M}from"../../../../utils/separateMap.js";import{defineTablePlugin as O}from"../../../../hooks/useTablePlugin.js";function F(){const F="separateRendererPlugins",I=e(new Map);return O({name:F,vxe(e){e.interceptor.add("event.clearActived",R(E.SEPARATE,(e=>e.classList.contains("v-binder-follower-content")))),e.renderer.add(E.SEPARATE,{renderCell(e,{column:o,row:r}){var n,i;const u=t(A),l=null!=(i=null==(n=H(u,r))?void 0:n.separateData)?i:{},s=g(o),d=(null==s?void 0:s.separateFormatter)?s.separateFormatter(l[o.field]):l[o.field];return a("section",{class:"iho-table__ellipsis iho-table__colorAndIcon",title:d},[d])},renderEdit:T.createRenderEdit((({fieldItem:e,column:n,row:i,emitFormClick:u})=>{var d,p;const c=t(A),f=H(c,i),_=D(),E={};let v=null!=(p=null==(d=e.componentProps)?void 0:d.separateSlot)?p:e.separateSlot;return v&&(v=o(v),E.menu=l(v)?v:s(v)?e=>r(v,e):void 0),e.separateRowEdit?function(){if(!f)return[];if(f.ihoTableHandler=t(h),f.separateData["__"+n.field]=f.separateData["__"+n.field]||f.separateData[n.field],E.menu){const e=E.menu;return a(e,{column:n,col:n,row:i,value:f.separateData["__"+n.field],"onUpdate:value":e=>f.separateData["__"+n.field]=e},null)}return a(m,{value:f.separateData["__"+n.field],"onUpdate:value":e=>f.separateData["__"+n.field]=e},null)}():function(){var t;const o=null==(t=null==f?void 0:f.separateData)?void 0:t[n.field],r=l(e.separateFormatter)?e.separateFormatter(o):o;return[a(P,{value:i[n.field],"onUpdate:value":e=>i[n.field]=e,"row-index":null==f?void 0:f.index,height:_,column:n,row:i,"display-content":r,onClick:u},E)]}()}))})},apply(e){function t(e){return(...t)=>{var a;return!(null==(a=t[0].row)?void 0:a.$__SEPARATE)&&(!l(e)||e(...t))}}v(e).bindAutoFocusConfig(F,E.SEPARATE,".iho-table__separateText"),e.eventHooks.onEditClosed.tap(F,(({row:e,column:t,$table:a},o,{emits:r})=>{if(!e.$__uuid)return;const n=g(t);if(!n||!n.separateRowEdit)return;const i=H(e.$__uuid,e);if(!i)return;const{separateData:u,originalData:l,ihoTableHandler:s,index:p}=i,{field:c}=t;if(u["__"+c]&&u["__"+c]!==u[c]&&d(l.$__SEPARATE_DATA)){const e=l.$__SEPARATE_DATA.map((e=>{var t;return null!=(t=e["__"+c])?t:e[c]})),o=l[c];l[c]=d(l[c])?e:e.join(""),r("formChange",{value:l[c],oldValue:o,row:l,column:t,index:p,$table:a}),null==s||s.updateTableDataRef()}})),e.fieldHooks.fieldList.tap(F,((e,{uuid:t})=>(t&&I.set(t,e.reduce(((e,t)=>(i(t,(t=>{k(t)&&(e.push(o(t)),t.showOverflow="ellipsis")})),e)),[])),e))),e.dataHooks.data.tapPromise(F,(async(e,t,{insertAfter:a,index:o,$table:r})=>{var n;if(!t.uuid)return;const i=I.get(t.uuid);if(!i||!i.length)return;const l=[];for(const t of i){if(!t.field)continue;const a=await w(t,e,o,r),i={field:t.field,column:t,data:$(b(e,t),t,a,null==(n=g(t))?void 0:n.separateDeep)};l.push(i)}function s(e){return l.find((t=>t.field===e))}l.forEach((e=>{const{column:t}=e,a=g(t);if(!a)return;if(!a.separateDeep||!a.separateBinder)return;const o=p(u(a.separateBinder).map(s));if(!o.length)return;const r=o.concat(e),n=Math.max(...r.map((e=>e.data.length)));c(n).forEach((e=>{const t=r.map((t=>({item:t.data[e],data:t.data}))),a=t.map((({item:e})=>n(e)));if(1===f(a).length)return;const o=Math.max(...a);function n(e){return d(e)?e.length:1}t.forEach((({item:t,data:a})=>{const r=n(t);r!==o&&(d(t)?t.push(...x(o,r)):a[e]=c(o).map(((e,a)=>0===a?t:"")))}))}))})),l.forEach((e=>{e.data=_(e.data)})),c(C(l)).forEach(((r,n,i)=>{var u;const s=S(l,n),d={index:o,originalData:e,separateData:s,separateIndex:n,separateLength:i.length,isOriginRow:0===n,isLastRow:n===i.length-1};if(0===n)return e.$__SEPARATE_DATA=[s],e.$__SEPARATE_ROW_CACHE=e.$__SEPARATE_ROW_CACHE||[],e.$__uuid=t.uuid,void j(t.uuid,e,d);const p=null!=(u=e.$__SEPARATE_ROW_CACHE[n-1])?u:e.$__SEPARATE_ROW_CACHE[n-1]={$__SEPARATE:!0,$__uuid:t.uuid,$__SEPARATE_INDEX:n};p.$__ORIGIN_INDEX=o,j(t.uuid,p,d),e.$__SEPARATE_DATA.push(s),a(p)}))})),e.eventHooks.onResizableChange.tap(F,(async(e,t,a)=>{a.updateTableDataRef()})),e.configHooks.editConfig.tap(F,((e={},t)=>{const a=e.beforeEditMethod;return e.beforeEditMethod=(...e)=>{var o;if(!t.uuid)return c();const r=I.get(t.uuid);if(!r||!r.length)return c();const{row:n,column:i}=e[0],u=H(t.uuid,n);if(!u)return c();const s=null==(o=i.editRender)?void 0:o.props;if(!s||s.separateRowEdit)return c();const{isOriginRow:d,isLastRow:p}=u;return("bottom"===s.separatePlacement?p:d)&&c();function c(){return!l(a)||a(...e)}},e})),e.configHooks.checkboxConfig.tap(F,((e={},a)=>(e.checkMethod=t(e.checkMethod),e.visibleMethod=t(e.visibleMethod),e))),e.setupHooks.setup.tap(F,(e=>{n((()=>{e.value.uuid&&(I.delete(e.value.uuid),M(e.value.uuid))}))}))}})}export{F as separateRendererPlugins};
1
+ import{reactive as e,inject as t,createVNode as a,toRaw as o,h as r,onBeforeUnmount as n}from"vue";import{traverse as i,arrayed as u}from"../../../../../../../shared/utils/index.js";import{isFunction as l,isObject as s,isArray as d,compact as p,range as f,uniq as c,flatten as _}from"lodash-es";import{NInput as m}from"naive-ui";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as E,InjectionIhoTableUUID as h,InjectionIhoTableHandler as A}from"../../../../constants/index.js";import{useAutoFocus as v}from"../hooks/useAutoFocus.js";import{getLowCodeFieldFromField as R,IhoTableRenderHelper as g,getRowHeight as D,getColumnRenderWidth as T,parseMergeField as w}from"../../../../utils/index.js";import b from"./editSeparate.vue.js";import{contentSeparate as $,getLengthDiffArray as P,getColumnInfoMaxLength as x,generateSeparateRowData as C,isSeparateColumn as S}from"./separateUtils.js";import{getSeparateInfo as k,setSeparateInfo as H,deleteSeparateInfo as j}from"../../../../utils/separateMap.js";import{defineTablePlugin as M}from"../../../../hooks/useTablePlugin.js";function O(){const O="separateRendererPlugins",F=e(new Map);return M({name:O,vxe(e){e.renderer.add(E.SEPARATE,{renderCell(e,{column:o,row:r}){var n,i;const u=t(h),l=null!=(i=null==(n=k(u,r))?void 0:n.separateData)?i:{},s=R(o),d=(null==s?void 0:s.separateFormatter)?s.separateFormatter(l[o.field]):l[o.field];return a("section",{class:"iho-table__ellipsis iho-table__colorAndIcon",title:d},[d])},renderEdit:g.createRenderEdit((({fieldItem:e,column:n,row:i,emitFormClick:u})=>{var d,p;const f=t(h),c=k(f,i),_=D(),E={};let v=null!=(p=null==(d=e.componentProps)?void 0:d.separateSlot)?p:e.separateSlot;return v&&(v=o(v),E.menu=l(v)?v:s(v)?e=>r(v,e):void 0),e.separateRowEdit?function(){if(!c)return[];if(c.ihoTableHandler=t(A),c.separateData["__"+n.field]=c.separateData["__"+n.field]||c.separateData[n.field],E.menu){const e=E.menu;return a(e,{column:n,col:n,row:i,value:c.separateData["__"+n.field],"onUpdate:value":e=>c.separateData["__"+n.field]=e},null)}return a(m,{value:c.separateData["__"+n.field],"onUpdate:value":e=>c.separateData["__"+n.field]=e},null)}():function(){var t;const o=null==(t=null==c?void 0:c.separateData)?void 0:t[n.field],r=l(e.separateFormatter)?e.separateFormatter(o):o;return[a(b,{value:i[n.field],"onUpdate:value":e=>i[n.field]=e,"row-index":null==c?void 0:c.index,height:_,column:n,row:i,"display-content":r,onClick:u},E)]}()}))})},apply(e){function t(e){return(...t)=>{var a;return!(null==(a=t[0].row)?void 0:a.$__SEPARATE)&&(!l(e)||e(...t))}}v(e).bindAutoFocusConfig(O,E.SEPARATE,".iho-table__separateText"),e.eventHooks.onEditClosed.tap(O,(({row:e,column:t,$table:a},o,{emits:r})=>{if(!e.$__uuid)return;const n=R(t);if(!n||!n.separateRowEdit)return;const i=k(e.$__uuid,e);if(!i)return;const{separateData:u,originalData:l,ihoTableHandler:s,index:p}=i,{field:f}=t;if(u["__"+f]&&u["__"+f]!==u[f]&&d(l.$__SEPARATE_DATA)){const e=l.$__SEPARATE_DATA.map((e=>{var t;return null!=(t=e["__"+f])?t:e[f]})),o=l[f];l[f]=d(l[f])?e:e.join(""),r("formChange",{value:l[f],oldValue:o,row:l,column:t,index:p,$table:a}),null==s||s.updateTableDataRef()}})),e.fieldHooks.fieldList.tap(O,((e,{uuid:t})=>(t&&F.set(t,e.reduce(((e,t)=>(i(t,(t=>{S(t)&&(e.push(o(t)),t.showOverflow="ellipsis")})),e)),[])),e))),e.dataHooks.data.tapPromise(O,(async(e,t,{insertAfter:a,index:o,$table:r})=>{var n;if(!t.uuid)return;const i=F.get(t.uuid);if(!i||!i.length)return;const l=[];for(const t of i){if(!t.field)continue;const a=await T(t,e,o,r),i={field:t.field,column:t,data:$(w(e,t),t,a,null==(n=R(t))?void 0:n.separateDeep)};l.push(i)}function s(e){return l.find((t=>t.field===e))}l.forEach((e=>{const{column:t}=e,a=R(t);if(!a)return;if(!a.separateDeep||!a.separateBinder)return;const o=p(u(a.separateBinder).map(s));if(!o.length)return;const r=o.concat(e),n=Math.max(...r.map((e=>e.data.length)));f(n).forEach((e=>{const t=r.map((t=>({item:t.data[e],data:t.data}))),a=t.map((({item:e})=>n(e)));if(1===c(a).length)return;const o=Math.max(...a);function n(e){return d(e)?e.length:1}t.forEach((({item:t,data:a})=>{const r=n(t);r!==o&&(d(t)?t.push(...P(o,r)):a[e]=f(o).map(((e,a)=>0===a?t:"")))}))}))})),l.forEach((e=>{e.data=_(e.data)})),f(x(l)).forEach(((r,n,i)=>{var u;const s=C(l,n),d={index:o,originalData:e,separateData:s,separateIndex:n,separateLength:i.length,isOriginRow:0===n,isLastRow:n===i.length-1};if(0===n)return e.$__SEPARATE_DATA=[s],e.$__SEPARATE_ROW_CACHE=e.$__SEPARATE_ROW_CACHE||[],e.$__uuid=t.uuid,void H(t.uuid,e,d);const p=null!=(u=e.$__SEPARATE_ROW_CACHE[n-1])?u:e.$__SEPARATE_ROW_CACHE[n-1]={$__SEPARATE:!0,$__uuid:t.uuid,$__SEPARATE_INDEX:n};p.$__ORIGIN_INDEX=o,H(t.uuid,p,d),e.$__SEPARATE_DATA.push(s),a(p)}))})),e.eventHooks.onResizableChange.tap(O,(async(e,t,a)=>{a.updateTableDataRef()})),e.configHooks.editConfig.tap(O,((e={},t)=>{const a=e.beforeEditMethod;return e.beforeEditMethod=(...e)=>{var o;if(!t.uuid)return f();const r=F.get(t.uuid);if(!r||!r.length)return f();const{row:n,column:i}=e[0],u=k(t.uuid,n);if(!u)return f();const s=null==(o=i.editRender)?void 0:o.props;if(!s||s.separateRowEdit)return f();const{isOriginRow:d,isLastRow:p}=u;return("bottom"===s.separatePlacement?p:d)&&f();function f(){return!l(a)||a(...e)}},e})),e.configHooks.checkboxConfig.tap(O,((e={},a)=>(e.checkMethod=t(e.checkMethod),e.visibleMethod=t(e.visibleMethod),e))),e.setupHooks.setup.tap(O,(e=>{n((()=>{e.value.uuid&&(F.delete(e.value.uuid),j(e.value.uuid))}))}))}})}export{O as separateRendererPlugins};
@@ -1,5 +1,5 @@
1
1
  import { PropType } from 'vue';
2
- import { VxeTableConstructor, VxeTableDefines, VxeTableMethods, VxeTablePrivateMethods } from 'vxe-table';
2
+ import { VxeTableDefines } from 'vxe-table';
3
3
  import { AnyObject } from '../../../../../../../shared/types';
4
4
  declare const _default: import("vue").DefineComponent<{
5
5
  formattedValue: {
@@ -7,20 +7,21 @@ declare const _default: import("vue").DefineComponent<{
7
7
  };
8
8
  column: {
9
9
  type: PropType<VxeTableDefines.ColumnInfo>;
10
- required: true;
11
10
  };
12
11
  row: {
13
12
  type: PropType<AnyObject>;
14
- required: true;
15
13
  };
16
14
  rowIndex: {
17
15
  type: NumberConstructor;
18
- required: true;
19
16
  };
20
17
  shortcutOptions: {
21
18
  type: PropType<string[]>;
22
19
  default: () => never[];
23
20
  };
21
+ ignoreGlobEmit: {
22
+ type: BooleanConstructor;
23
+ default: boolean;
24
+ };
24
25
  }, {
25
26
  attr: AnyObject;
26
27
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
@@ -29,26 +30,26 @@ declare const _default: import("vue").DefineComponent<{
29
30
  };
30
31
  column: {
31
32
  type: PropType<VxeTableDefines.ColumnInfo>;
32
- required: true;
33
33
  };
34
34
  row: {
35
35
  type: PropType<AnyObject>;
36
- required: true;
37
36
  };
38
37
  rowIndex: {
39
38
  type: NumberConstructor;
40
- required: true;
41
39
  };
42
40
  shortcutOptions: {
43
41
  type: PropType<string[]>;
44
42
  default: () => never[];
45
43
  };
44
+ ignoreGlobEmit: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
46
48
  }>> & {
47
49
  onClick?: ((...args: any[]) => any) | undefined;
48
50
  "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
49
51
  }>>;
50
- $table: VxeTableConstructor & VxeTablePrivateMethods & VxeTableMethods;
51
- emitFormChangeWithParams: (params?: AnyObject) => void;
52
+ emitFormChangeWithParams: (...args: any[]) => void;
52
53
  emit: (event: "click" | "update:formattedValue", ...args: any[]) => void;
53
54
  formRef: import("vue").Ref<HTMLElement | null>;
54
55
  isShow: import("vue").Ref<boolean>;
@@ -89,24 +90,26 @@ declare const _default: import("vue").DefineComponent<{
89
90
  };
90
91
  column: {
91
92
  type: PropType<VxeTableDefines.ColumnInfo>;
92
- required: true;
93
93
  };
94
94
  row: {
95
95
  type: PropType<AnyObject>;
96
- required: true;
97
96
  };
98
97
  rowIndex: {
99
98
  type: NumberConstructor;
100
- required: true;
101
99
  };
102
100
  shortcutOptions: {
103
101
  type: PropType<string[]>;
104
102
  default: () => never[];
105
103
  };
104
+ ignoreGlobEmit: {
105
+ type: BooleanConstructor;
106
+ default: boolean;
107
+ };
106
108
  }>> & {
107
109
  onClick?: ((...args: any[]) => any) | undefined;
108
110
  "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
109
111
  }, {
110
112
  shortcutOptions: string[];
113
+ ignoreGlobEmit: boolean;
111
114
  }>;
112
115
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,useAttrs as l,inject as t,ref as a,computed as r,reactive as u,watch as o,nextTick as i,openBlock as n,createBlock as d,unref as c,withCtx as v,createVNode as m,mergeProps as s,isRef as f,createElementBlock as p,Fragment as h,renderList as y,createTextVNode as k,toDisplayString as b,createCommentVNode as w}from"vue";import{NPopover as _,NInput as g,NSpace as F,NScrollbar as V,NButton as C}from"naive-ui";import{useIhoTableFormEvent as x}from"../../../../utils/index.js";import D from"../../../../../../time-picker/index.js";import{parse as q,isValid as O,format as j,getHours as S,getMinutes as $,getSeconds as A}from"date-fns";var H=e({__name:"editTime",props:{formattedValue:{type:String},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},shortcutOptions:{type:Array,default:()=>[]}},emits:["update:formattedValue","click"],setup(e,{emit:H}){const I=e,P=l(),R=t("$xetable"),{emitFormChangeWithParams:E}=x({...I,$table:R}),M=a(null),U=a(!1),z=a(),K=a(),N=r((()=>K.value&&L(K.value)?{style:"text-decoration: line-through"}:{})),T=r({get(){if(!K.value)return null;const e=q(K.value,G.valueFormat,new Date);return O(e)?j(e,G.valueFormat):I.formattedValue||null},set(e){J(e)}}),{placeholder:W="请选择",valueFormat:B="HH:mm"}=P,G=u({...P,placeholder:W,valueFormat:B,format:B});function J(e){if(K.value=e||"",e&&L(e))return;const l=I.formattedValue;l!==e&&(H("update:formattedValue",e),E({oldValue:l}))}function L(e){var l,t,a;const r=q(e,G.format,new Date),u=S(r),o=$(r),i=A(r),n=null==(l=G.isHourDisabled)?void 0:l.call(G,u),d=null==(t=G.isMinuteDisabled)?void 0:t.call(G,o,u),c=null==(a=G.isSecondDisabled)?void 0:a.call(G,i,o,u);return n||d||c}function Q(){[G.valueFormat.replace(/[^\w]/g,""),G.valueFormat].some((e=>{const l=q(K.value,e,new Date);if(!K.value||O(l)){return J(K.value?j(l,G.valueFormat):null),!0}return!1}))}function X(e){var l;const{key:t}=e;"Enter"===t&&(null==(l=M.value)||l.blur(),U.value=!1)}return o((()=>I.formattedValue),(e=>{if(!e)return"";K.value=e}),{immediate:!0}),o((()=>U.value),(async e=>{var l,t,a,r,u;e&&(await i(),null==(u=null==(r=null==(a=null==(t=null==(l=z.value)?void 0:l.$timePicker)?void 0:t.panelInstRef)?void 0:a.$el)?void 0:r.querySelectorAll(".n-time-picker-col"))||u.forEach((e=>{var l,t;return null==(t=null==(l=null==e?void 0:e.querySelector)?void 0:l.call(e,".n-time-picker-col__item--active"))?void 0:t.scrollIntoView()})))})),(l,t)=>(n(),d(c(_),{show:U.value,trigger:"click",showArrow:!1,placement:"bottom-start",style:{padding:"0"},onClickoutside:t[4]||(t[4]=()=>U.value=!1)},{trigger:v((()=>[m(c(g),{ref_key:"formRef",ref:M,clearable:"",placeholder:c(W),value:K.value,"onUpdate:value":t[0]||(t[0]=e=>K.value=e),valueModifiers:{trim:!0},"input-props":c(N),onClick:t[1]||(t[1]=()=>U.value=!0),onChange:Q,onKeydown:X},null,8,["placeholder","value","input-props"])])),default:v((()=>[m(c(F),null,{default:v((()=>[m(c(D),s({ref_key:"timePickerRef",ref:z,show:""},c(G),{class:"iho-table__time-picker",to:!1,"formatted-value":c(T),"onUpdate:formatted-value":t[2]||(t[2]=e=>f(T)?T.value=e:null),onConfirm:t[3]||(t[3]=()=>U.value=!1)}),null,16,["formatted-value"]),m(c(V),{class:"iho-table__scrollbar"},{default:v((()=>[e.shortcutOptions.length?(n(),d(c(F),{key:0,vertical:"",wrap:!1},{default:v((()=>[(n(!0),p(h,null,y(e.shortcutOptions,(e=>(n(),d(c(C),{size:"tiny",key:e,disabled:L(e),onClick:l=>function(e){J(e),U.value=!1}(e)},{default:v((()=>[k(b(e),1)])),_:2},1032,["disabled","onClick"])))),128))])),_:1})):w("v-if",!0)])),_:1})])),_:1})])),_:1},8,["show"]))}});export{H as default};
1
+ import{defineComponent as e,useAttrs as l,inject as t,ref as a,computed as o,reactive as r,watch as u,nextTick as i,openBlock as n,createBlock as m,unref as d,withCtx as c,createVNode as v,mergeProps as s,isRef as f,createElementBlock as p,Fragment as h,renderList as y,createTextVNode as b,toDisplayString as k,createCommentVNode as w}from"vue";import{noop as _}from"lodash-es";import{NPopover as g,NInput as F,NSpace as V,NScrollbar as C,NButton as x}from"naive-ui";import{useIhoTableFormEvent as D}from"../../../../utils/index.js";import O from"../../../../../../time-picker/index.js";import{parse as j,isValid as E,format as S,getHours as $,getMinutes as A,getSeconds as H}from"date-fns";var I=e({__name:"editTime",props:{formattedValue:{type:String},column:{type:Object},row:{type:Object},rowIndex:{type:Number},shortcutOptions:{type:Array,default:()=>[]},ignoreGlobEmit:{type:Boolean,default:!1}},emits:["update:formattedValue","click"],setup(e,{emit:I}){const P=e,R=l(),{emitFormChangeWithParams:q=_}=P.ignoreGlobEmit?{}:D({...P,$table:t("$xetable")}),G=a(null),M=a(!1),U=a(),z=a(),B=o((()=>z.value&&L(z.value)?{style:"text-decoration: line-through"}:{})),K=o({get(){if(!z.value)return null;const e=j(z.value,W.valueFormat,new Date);return E(e)?S(e,W.valueFormat):P.formattedValue||null},set(e){J(e)}}),{placeholder:N="请选择",valueFormat:T="HH:mm"}=R,W=r({...R,placeholder:N,valueFormat:T,format:T});function J(e){if(z.value=e||"",e&&L(e))return;const l=P.formattedValue;l!==e&&(I("update:formattedValue",e),q({oldValue:l}))}function L(e){var l,t,a;const o=j(e,W.format,new Date),r=$(o),u=A(o),i=H(o),n=null==(l=W.isHourDisabled)?void 0:l.call(W,r),m=null==(t=W.isMinuteDisabled)?void 0:t.call(W,u,r),d=null==(a=W.isSecondDisabled)?void 0:a.call(W,i,u,r);return n||m||d}function Q(){[W.valueFormat.replace(/[^\w]/g,""),W.valueFormat].some((e=>{const l=j(z.value,e,new Date);if(!z.value||E(l)){return J(z.value?S(l,W.valueFormat):null),!0}return!1}))}function X(e){var l;const{key:t}=e;"Enter"===t&&(null==(l=G.value)||l.blur(),M.value=!1)}return u((()=>P.formattedValue),(e=>{if(!e)return"";z.value=e}),{immediate:!0}),u((()=>M.value),(async e=>{var l,t,a,o,r;e&&(await i(),null==(r=null==(o=null==(a=null==(t=null==(l=U.value)?void 0:l.$timePicker)?void 0:t.panelInstRef)?void 0:a.$el)?void 0:o.querySelectorAll(".n-time-picker-col"))||r.forEach((e=>{var l,t;return null==(t=null==(l=null==e?void 0:e.querySelector)?void 0:l.call(e,".n-time-picker-col__item--active"))?void 0:t.scrollIntoView()})))})),(l,t)=>(n(),m(d(g),{show:M.value,trigger:"click",showArrow:!1,placement:"bottom-start",style:{padding:"0"},onClickoutside:t[4]||(t[4]=()=>M.value=!1)},{trigger:c((()=>[v(d(F),{ref_key:"formRef",ref:G,clearable:"",placeholder:d(N),value:z.value,"onUpdate:value":t[0]||(t[0]=e=>z.value=e),valueModifiers:{trim:!0},"input-props":d(B),onClick:t[1]||(t[1]=()=>M.value=!0),onChange:Q,onKeydown:X},null,8,["placeholder","value","input-props"])])),default:c((()=>[v(d(V),null,{default:c((()=>[v(d(O),s({ref_key:"timePickerRef",ref:U,show:""},d(W),{class:"iho-table__time-picker",to:!1,"formatted-value":d(K),"onUpdate:formatted-value":t[2]||(t[2]=e=>f(K)?K.value=e:null),onConfirm:t[3]||(t[3]=()=>M.value=!1)}),null,16,["formatted-value"]),v(d(C),{class:"iho-table__scrollbar"},{default:c((()=>[e.shortcutOptions.length?(n(),m(d(V),{key:0,vertical:"",wrap:!1},{default:c((()=>[(n(!0),p(h,null,y(e.shortcutOptions,(e=>(n(),m(d(x),{size:"tiny",key:e,disabled:L(e),onClick:l=>function(e){J(e),M.value=!1}(e)},{default:c((()=>[b(k(e),1)])),_:2},1032,["disabled","onClick"])))),128))])),_:1})):w("v-if",!0)])),_:1})])),_:1})])),_:1},8,["show"]))}});export{I as default};
@@ -1 +1 @@
1
- import{createVNode as e,mergeProps as o}from"vue";import{format as t}from"date-fns";import{isFunction as r}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as n}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as l,IhoTableRenderHelper as d,getLowCodeFieldFromField as m,isInvalidTime as u}from"../../../../utils/index.js";import a from"./editTime.vue.js";import{defineTablePlugin as f}from"../../../../hooks/useTablePlugin.js";function s(){const s="timeRendererPlugin";return f({name:s,vxe(t){t.interceptor.add("event.clearActived",l(n.TIME,(e=>e.classList.contains("n-popover")))),t.renderer.add(n.TIME,{renderCell:d.createDefaultRenderCell(),renderEdit:d.createRenderEdit((({fieldItem:t,emitFormClick:r,row:n,column:i,$rowIndex:l})=>[e(a,o({formattedValue:n[i.field],"onUpdate:formattedValue":e=>n[i.field]=e,column:i,row:n,"row-index":l,valueFormat:t.valueFormat},t.componentProps,{onClick:r}),null)]))})},apply(e){i(e).bindAutoFocusConfig(s,n.TIME,".n-input__input-el",{after:e=>(Reflect.set(e.editRender,"autoselect",!0),e)}),e.eventHooks.onCellDblclick.tap(s,(({row:e,column:o,columnIndex:i,rowIndex:l,$rowIndex:d},a,{$table:f,emits:s})=>{var c,p,v,x;if((null==(c=o.editRender)?void 0:c.name)!==n.TIME||e[o.field])return;if(r(null==(p=a.editConfig)?void 0:p.beforeEditMethod)){if(!(null==(v=a.editConfig)?void 0:v.beforeEditMethod({row:e,column:o,columnIndex:i,rowIndex:l,$table:f,$grid:f})))return}const w=t(new Date,(null==(x=m(o))?void 0:x.valueFormat)||"HH:mm");if(u(o,w))return;const I=e[o.field];e[o.field]=w,s("formChange",{oldValue:I,index:l>-1?l:d,value:e[o.field],row:e,column:o,$table:f})}))}})}export{s as timeRendererPlugin};
1
+ import{createVNode as e,mergeProps as o}from"vue";import{format as r}from"date-fns";import{isFunction as t}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as n}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{IhoTableRenderHelper as l,getLowCodeFieldFromField as d,isInvalidTime as m}from"../../../../utils/index.js";import u from"./editTime.vue.js";import{defineTablePlugin as a}from"../../../../hooks/useTablePlugin.js";function f(){const f="timeRendererPlugin";return a({name:f,vxe(r){r.renderer.add(n.TIME,{renderCell:l.createDefaultRenderCell(),renderEdit:l.createRenderEdit((({fieldItem:r,emitFormClick:t,row:n,column:i,$rowIndex:l})=>[e(u,o({formattedValue:n[i.field],"onUpdate:formattedValue":e=>n[i.field]=e,column:i,row:n,"row-index":l,valueFormat:r.valueFormat},r.componentProps,{onClick:t}),null)]))})},apply(e){i(e).bindAutoFocusConfig(f,n.TIME,".n-input__input-el",{after:e=>(Reflect.set(e.editRender,"autoselect",!0),e)}),e.eventHooks.onCellDblclick.tap(f,(({row:e,column:o,columnIndex:i,rowIndex:l,$rowIndex:u},a,{$table:f,emits:s})=>{var c,p,v,x;if((null==(c=o.editRender)?void 0:c.name)!==n.TIME||e[o.field])return;if(t(null==(p=a.editConfig)?void 0:p.beforeEditMethod)){if(!(null==(v=a.editConfig)?void 0:v.beforeEditMethod({row:e,column:o,columnIndex:i,rowIndex:l,$table:f,$grid:f})))return}const w=r(new Date,(null==(x=d(o))?void 0:x.valueFormat)||"HH:mm");if(m(o,w))return;const I=e[o.field];e[o.field]=w,s("formChange",{oldValue:I,index:l>-1?l:u,value:e[o.field],row:e,column:o,$table:f})}))}})}export{f as timeRendererPlugin};
@@ -0,0 +1 @@
1
+ export declare function rowClickPlugin(): import("../../../../components/iho-table").TablePlugin;
@@ -0,0 +1 @@
1
+ import{onBeforeUnmount as e}from"vue";import"../../index.js";import{defineTablePlugin as o}from"../hooks/useTablePlugin.js";function n(){const n="rowClickPlugin",u=new Map;return o({name:n,apply(o){o.eventHooks.onCurrentChange.tap(n,((e,{uuid:o,rowConfig:n})=>{o&&!1!==(null==n?void 0:n.clickToCancel)&&u.set(o,!0)})),o.eventHooks.onCellClick.tap(n,(async({$table:e},{uuid:o,rowConfig:n})=>{o&&!1!==(null==n?void 0:n.clickToCancel)&&(u.get(o)?u.set(o,!1):e.clearCurrentRow())})),o.setupHooks.setup.tap(n,(o=>{e((()=>{o.value.uuid&&u.delete(o.value.uuid)}))}))}})}export{n as rowClickPlugin};
@@ -0,0 +1 @@
1
+ export declare function rowDragPlugin(): import("../../../../components/iho-table").TablePlugin;
@@ -0,0 +1 @@
1
+ import{promiseTimeout as e}from"@vueuse/shared";import{isFunction as l,cloneDeep as n}from"lodash-es";import{nextTick as o,onBeforeUnmount as t}from"vue";import"../../index.js";import i from"sortablejs";import d from"xe-utils";import{defineTablePlugin as r}from"../hooks/useTablePlugin.js";function a(){const n="rowDragPlugin",d=new Map;return r({name:n,apply(r){r.fieldHooks.fieldEnd.tapPromise(n,(async(n,{$table:t,emits:r})=>{const{uuid:a}=n,s=n.sortableConfig||{};a&&s.enable&&!d.get(a)&&(await o(),async function n(o=0){if(o>2)return;const c=function(){var e,l,n,o,i,d,r,a,u,s;const c=null==(o=null==(n=null==(l=null==(e=t.value)?void 0:e.$el)?void 0:l.querySelector)?void 0:n.call(l,".vxe-table--body"))?void 0:o.scrollWidth,v=(null==(r=null==(d=null==(i=t.value)?void 0:i.$el)?void 0:d.querySelector)?void 0:r.call(d,".vxe-table.is--scroll-x"))?".fixed-left--wrapper>.vxe-table--body tbody":".body--wrapper>.vxe-table--body tbody";return c?null==(s=null==(u=null==(a=t.value)?void 0:a.$el)?void 0:u.querySelector)?void 0:s.call(u,v):null}();if(c){const e=i.create(c,{handle:".col--seq",...s,onEnd:e=>{var n,o,i,d,a,c,v;const{oldIndex:f=0,newIndex:x=0}=e,p={oldIndex:f,newIndex:x},{virtualY:b}=(null==(n=t.value)?void 0:n.getScroll())||{};if(b){const e=(null==(d=null==(i=null==(o=t.value)?void 0:o.getTableData())?void 0:i.tableData)?void 0:d[f])||{},l=null!=(v=null!=(c=e.__currentIndex)?c:null==(a=t.value)?void 0:a.getVTRowIndex(e))?v:0,n=l+(x-f);e.__currentIndex=n,p.oldIndex=l,p.newIndex=n}const y={...e,...p,...u(e,p,t.value)};r("rowDrag",y),l(s.onEnd)&&s.onEnd(y)}});return d.set(a,e)}await e(100),n(++o)}())})),r.setupHooks.setup.tap(n,(e=>{t((()=>{var l,n;const o=null==(l=e.value)?void 0:l.uuid;o&&d.has(o)&&(null==(n=d.get(o))||n.destroy(),d.delete(o))}))}))}})}function u(e,l,o){var t;const i=null==(t=null==o?void 0:o.getTableData())?void 0:t.fullData,r=o.treeConfig&&o.treeConfig.transform?function(e,l){var o,t,i,r,a;const{oldIndex:u=0,newIndex:s=0}=e,c={children:"childrenList"},{fullData:v,tableData:f}=l.getTableData(),x=null==f?void 0:f[u],p=null==f?void 0:f[s-1],b=n(v),y=d.findTree(b,(e=>e.__id===x.__id),c);if(p){const e=null==(t=null==(o=l.$el)?void 0:o.querySelector)?void 0:t.call(o,".body--wrapper>.vxe-table--body tbody"),n=null==(r=null==(i=l.$el)?void 0:i.querySelector)?void 0:r.call(i,".fixed-left--wrapper>.vxe-table--body tbody"),v=d.findTree(b,(e=>e.__id===p.__id),c);if(d.findTree(x[c.children],(e=>e.__id===p.__id),c)){const l=e.children[u],o=e.children[s];return e.insertBefore(o,l),null==(a=null==n?void 0:n.insertBefore)||a.call(n,n.children[s],n.children[u]),console.log("不允许自己给自己拖动"),b}const f=y.items.splice(y.index,1)[0];l.isTreeExpandByRow(p)?p[c.children].splice(0,0,f):v.items.splice(v.index+(y.index<v.index?0:1),0,f)}else{const e=y.items.splice(y.index,1)[0];b.unshift(e)}return b}(e,o):function(e,l){var o;const{oldIndex:t=0,newIndex:i=0}=e,d=n((null==(o=null==l?void 0:l.getTableData())?void 0:o.fullData)||[]),r=d.splice(t,1)[0];return d.splice(i,0,r),d}(l,o);return{oldData:i,newData:r}}export{a as rowDragPlugin};
@@ -1 +1 @@
1
- export declare function variableHeightRendererPlugin(): import("../../../../../components/iho-table").TablePlugin;
1
+ export declare function variableHeightRendererPlugin(): import("../../../../components/iho-table").TablePlugin;
@@ -0,0 +1 @@
1
+ import{unref as e,onBeforeUnmount as t,shallowReactive as o,createVNode as l,defineComponent as n,inject as r,ref as a,computed as s,provide as i,watch as u,onMounted as c,h as d}from"vue";import{traverse as p,widthAppend as f}from"../../../../shared/utils/index.js";import{doAnimation as m}from"../../../../shared/utils/anime.js";import{useThrottleFn as h}from"@vueuse/core";import{promiseTimeout as g}from"@vueuse/shared";import{last as v,isFunction as x,isNumber as y}from"lodash-es";import"../../index.js";import{InjectionIhoTableUUID as b}from"../constants/index.js";import{useUUIDMap as I,isVariableHeightColumn as w}from"../utils/index.js";import{defineTablePlugin as T}from"../hooks/useTablePlugin.js";class D{constructor(){this.records={},this.maxRecords=o(new Map)}set(e,t,o){if(this.records[e]||(this.records[e]={}),this.records[e][t]===o)return;this.records[e][t]=o;const l=Math.max(...Object.values(this.records[e]),0);this.maxRecords.get(e)!==l&&this.maxRecords.set(e,l)}getMax(e){return this.maxRecords.get(e)||0}}const{getItemFromUUID:R,removeItemFromUUID:M}=I((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:H,setItemFromUUID:U}=I((()=>null)),{getItemFromUUID:C,removeItemFromUUID:$,setItemFromUUID:k}=I((()=>{}));let F={};function j(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=R(a),{oSize:u=0,gt:c=100}=null!=(n=C(a))?n:{},{internalData:d,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=d;if(c>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let w=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const T=[0];let D=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(T)||0)+Math.max(y,i.getMax(n));if(T.push(r),r>l)return D=Math.max(0,o-u),w+=Math.min(D,u),!0})),D>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;D>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[D],rowIndex:D,$rowIndex:D,_rowIndex:D,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return D--,!0})))break}}const M=`${T[D]}px`,S=`${h.reduce(((e,o)=>{const l=t.getRowSeq(o);return e+Math.max(y,i.getMax(l))}),0)}px`;["main","left","right"].forEach((t=>{const o=m[`${t}-body-table`],n=o?e(o):null;n&&(n.style.marginTop=M,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=S)}))}));const H=Math.min(h.length,D+w);if(f.startIndex===D&&f.endIndex===H)return;f.startIndex=D,f.endIndex=H;const U=h.slice(f.startIndex,f.endIndex);U.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...U)}const Y=h(j,300);function E(){const o="variableHeightRendererPlugin";return T({name:o,vxe(e){F=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(b),n=r("$xetable"),p=a(),m=R(o),h=s((()=>t.payload.row[t.payload.column.field]));function v(){const{row:e,column:o}=t.payload,l=n.getRowSeq(e);if(!m||null==l||!p.value)return;const r=p.value.clientHeight;m.set(l,o.field,r)}i("updateCellHeight",v),u([()=>t.payload.rowIndex,()=>t.payload.column.field,h,()=>t.payload.column.renderWidth],(async()=>{await g(0),v()})),c((()=>{n&&!S(o)&&U(o,n),v()}));const I=s((()=>{var o,l,n,r,a;const s=null!=(l=null==(o=t.payload.column.editRender)?void 0:o.props)?l:{},i=null!=(r=null==(n=s.slots)?void 0:n.default)?r:s.slotFn;if(x(i))return i;const u=null==(a=t.payload.column.editRender)?void 0:a.name;if(u){const o=e.renderer.get(u);if(null==o?void 0:o.renderCell)return()=>o.renderCell(t.payload.column.editRender,t.payload)}return()=>h.value})),w=s((()=>{if(t.payload.column.treeNode)return"";const e=t.payload.column.renderWidth;return y(e)&&e>0?f(e-20-2):""}));return()=>l("div",{ref:p,style:{padding:"7px 0",width:w.value,overflow:"hidden"}},[d(I.value,t.payload)])}})},apply(n){function r(t){const o=S(t.uuid);if(!o)return;t.scrollY={enabled:!1},o.reactData.scrollYLoad=!1;const l=function(t){const o=t.internalData.elemStore["main-body-wrapper"];return o?e(o):null}(o);l&&j(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=C(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(F,{payload:e},null)}n.dataHooks.dataStart.tap(o,a),n.eventHooks.onFilterChange.tap(o,((e,t)=>a(t))),n.eventHooks.onSortChange.tap(o,((e,t)=>a(t))),n.eventHooks.onToggleTreeExpand.tap(o,((e,t)=>a(t))),n.eventHooks.onResizableChange.tap(o,(async({column:e},t)=>{e.editRender&&e.editRender.props&&w(e.editRender.props)&&a(t)})),n.eventHooks.onScroll.tap(o,h(((e,t)=>{if(e.isX)return;const{uuid:o}=t;if(!o)return;const l=S(o);l&&j(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(w(e)){e.slots={...e.slots,default:s};const t=e.className,o="variable-height";e.className=t?function(e){return x(t)?[t(e),o]:[t,o]}:o}return e})),n.fieldHooks.fieldList.tap(o,((t,o,{$table:l})=>(o.uuid&&p(t,((t,n)=>{var a,s;if(w(t)){const t=null!=(s=null==(a=o.rowConfig)?void 0:a.height)?s:36,i=R(o.uuid),u=o.cellStyle;if(o.cellStyle=function(e){const o={};if(l.value){const n=Math.max(t,i.getMax(l.value.getRowSeq(e.row)));o.height=`${n}px`}return Object.assign(o,u?x(u)?u(e):u:null)},o.sortableConfig&&o.sortableConfig.enable){const t=o.sortableConfig.onEnd;o.sortableConfig.onEnd=function(l){const n=S(o.uuid);if(n){const{internalData:{elemStore:t}}=n,l=t["main-table-body"];l&&e(l)&&j(n,o,{scrollTop:e(l).scrollTop})}x(t)&&t(l)}}o.scrollY={...o.scrollY,mode:"default"},o.onWheel=function(t){let o=null,l=0,n=!0;return function(r){if(!t.uuid)return;const a=S(t.uuid);if(!a)return;const{internalData:s}=a,{isHover:i}=t.rowConfig||{},{deltaX:u,deltaY:c}=r,{refTableLeftBody:d,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=c,g=u,v=h<0,x=e(f),y=x?x.$el:null;if(!y)return;if(v?y.scrollTop<=0:y.scrollTop>=y.scrollHeight-y.clientHeight)return;const b=y.scrollTop+h,I=y.scrollLeft+g;if(b===s.lastScrollTop)return;r.preventDefault(),s.lastScrollTop=b,s.lastScrollLeft=I,s.lastScrollTime=Date.now(),i&&a.clearHoverRow();const w=d.value,T=p.value,D=w?w.$el:null,R=T?T.$el:null,M=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=M*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,D&&(D.scrollTop=e),R&&(R.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{k(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),H(e.value.uuid),$(e.value.uuid))}))}))}})}export{E as variableHeightRendererPlugin};
@@ -0,0 +1 @@
1
+ export declare const VERTICAL_CELL_TYPE = "VERTICAL_CELL_TYPE";
@@ -0,0 +1 @@
1
+ const E="VERTICAL_CELL_TYPE";export{E as VERTICAL_CELL_TYPE};
@@ -0,0 +1 @@
1
+ export declare function verticalTablePlugin(): import("../../../../../components/iho-table").TablePlugin;
@@ -0,0 +1 @@
1
+ import{useThrottleFn as e}from"@vueuse/core";import{promiseTimeout as o}from"@vueuse/shared";import{pick as r,property as n,isArray as i,isFunction as t}from"lodash-es";import{onBeforeUnmount as l,unref as a,inject as s}from"vue";import"../../../index.js";import{LOWEST_PRIORITY as d,WIDGET_TYPE as u,InjectionIhoTableUUID as c}from"../../constants/index.js";import{useUUIDMap as f}from"../../utils/index.js";import{VERTICAL_CELL_TYPE as g}from"./constants.js";import{renderHeader as m,VerticalRenderMap as p}from"./renderer.js";import{isVerticalTable as v,isVerticalHeader as w,getSpanInfo as b,getHeaderDepthByField as h,getOriginFieldFromRowData as C,getOriginRowFromRowData as x,getVerticalInfoFromEvent as k,createVerticalFieldList as y,getFieldListDepth as D,bindHeaderInfoAndFlatten as R,isVerticalBody as j,getOriginBasePayload as F}from"./utils.js";import{defineTablePlugin as T}from"../../hooks/useTablePlugin.js";const I=["RADIO","SWITCH"];function H(){const H="verticalTablePlugin",{getItemFromUUID:L,removeItemFromUUID:O}=f((()=>({})));return T({name:H,vxe(e){function o(o){return(r,n)=>{var i,l;const a=s(c),d=L(a),{row:f,column:g}=n;if(w(g.field))return m(f,g,d);const v={$table:n.$table,columnIndex:n.rowIndex,$columnIndex:n.rowIndex,isHidden:n.isHidden,rowid:n.rowid,...F(f,g)},{originalField:{editRender:b={},slots:h={}}={}}=f;if(t(h[o]))return h[o](v);if(p[v.type])return p[v.type](v,d);const C=b.name||u.DEFAULT,x=e.renderer.get(C);return x?"default"===o?null==(i=x.renderCell)?void 0:i.call(x,b,v):null==(l=x.renderEdit)?void 0:l.call(x,b,v):{}}}e.renderer.add(g,{renderCell:o("default"),renderEdit:o("edit")})},apply(t){t.configHooks.config.tap({name:H,stage:d},(i=>{if(!i.uuid||!v(i))return i;const{uuid:t}=i,l=L(t);return l.originalTableConfig=i,Reflect.set(window,"__state",l),{uuid:t,showHeader:!1,...r(i,["border","height","verticalConfig","showSeq","size","rowGroupSetting","keyboardConfig","selectType"]),cellClassName({column:e}){const o=w(e.field);return{"vxe-header--column":o,"vxe-table--header":o,[e.field]:!0}},cellStyle({column:e,row:o}){const r={};if(b(o,e).colspan>1&&Object.assign(r,{textAlign:"center"}),!w(e.field)){const n=h(e.field),{originalData:i=[]}=l;i[n]===l.hoveringRow&&Object.assign(r,{backgroundColor:"var(--c-hover-color)"}),i[n]===l.currentRow&&Object.assign(r,{backgroundColor:"var(--c-primary-color-opacity2)"}),["checkbox","radio","seq"].includes(C(o).type||"")&&Object.assign(r,{textAlign:"center"})}return r},spanMethod:({row:e,column:o})=>b(e,o),editConfig:{...i.editConfig,beforeEditMethod({row:e,column:o}){var r;const{originalField:n={}}=e;if(w(o.field))return!1;const{editRender:{name:i=u.DEFAULT}={}}=n;return!Object.values(u).concat(I).includes(i)&&(!(null==(r=n.slots)?void 0:r.default)||!!n.slots.edit)}},onCellClick({column:e,row:o}){var r,i,t,a;if(w(e.field))return;const{originalData:s=[],originalTableConfig:d}=l,u=s[h(e.field)];if(l.currentRow=!1!==n("originalTableConfig.rowConfig.clickToCancel")(l)&&l.currentRow===u?null:u,"row"===(null==(r=null==d?void 0:d.checkboxConfig)?void 0:r.trigger)){const r=null!=(t=null==(i=d.checkboxConfig)?void 0:i.checkField)?t:"checked",n=h(e.field),l=x(o,n);l[r]=!l[r]}if("row"===(null==(a=null==d?void 0:d.radioConfig)?void 0:a.trigger)){const r=h(e.field);l.currentRow=x(o,r)}},onMousemove:e((e=>{var o,r;const n=k(e);if(!n||"body"!==n.type)return l.hoveringRow=null;l.hoveringRow=null!=(r=null==(o=l.originalData)?void 0:o[n.sequence])?r:null}),100),async onMouseleave(){await o(101),l.hoveringRow=null},async onScroll(){await o(101),l.hoveringRow=null}}})),t.fieldHooks.fieldList.tap({name:H,stage:d},((e,o,{globProps:r})=>{const{uuid:n}=o;if(!n||!v(o))return e;const t=L(n);return t?(t.originalFieldList=e,i(r.tableData)?t.verticalFieldList=y(r.tableData,t.headerDepth=D(e)):[]):e})),t.dataHooks.dataList.tap({name:H,stage:d},((e,o)=>{const{uuid:r}=o;if(!r||!v(o))return e;const n=L(r);if(!n)return e;n.originalData=e;const{originalFieldList:i=[],headerDepth:t=0}=n;return n.verticalData=R(i,t).map((o=>function(e,o){return new Proxy({},{get(r,n){var i;if("originalField"===n)return e;if("originalData"===n)return o;if(w(n))return e[n];if(j(n)){const r=h(n);return"seq"===e.type?r+1:null==(i=o[r])?void 0:i[e.field]}},set(r,n,i){if(!w(n)){const r=h(n);r>=0&&o[r]&&(o[r][e.field]=i)}return!0}})}(o,e)))})),t.setupHooks.setup.tap(H,(e=>{l((()=>{const{uuid:o}=a(e)||{};o&&O(o)}))})),t.exposeHooks.expose.tap(H,(e=>Object.assign(e,{verticalTable:{insertRow(){}}})))}})}export{H as verticalTablePlugin};
@@ -0,0 +1,6 @@
1
+ import { AnyObject } from '../../../../../shared/types';
2
+ import { VxeTableDefines } from 'vxe-table';
3
+ import { VxeGlobalRendererHandles } from 'vxe-table/types/v-x-e-table/renderer';
4
+ import { IhoTableVerticalState } from './types';
5
+ export declare function renderHeader(row: AnyObject, column: VxeTableDefines.ColumnInfo, verticalState: IhoTableVerticalState): any;
6
+ export declare const VerticalRenderMap: Record<string, (payload: VxeGlobalRendererHandles.RenderCellParams, verticalState: IhoTableVerticalState) => any>;
@@ -0,0 +1 @@
1
+ import{computed as e,createVNode as o,withModifiers as n}from"vue";import{property as r,identity as l}from"lodash-es";import{NCheckbox as c,NRadio as a}from"naive-ui";function i(n,l,a){return"checkbox"===r("originalField")(n).type?function(n){var r,l;const a=e({get(){var e,o;return null!=(o=null==(e=n.originalData)?void 0:e.every((e=>e.checked)))&&o},set(e){var o;null==(o=n.originalData)||o.forEach((o=>o.checked=e))}}),i=e((()=>{var e,o;return null!=(o=null==(e=n.originalData)?void 0:e.some((e=>e.checked)))&&o}));return o(c,{checked:a.value,"onUpdate:checked":e=>a.value=e,indeterminate:!a.value&&i.value,disabled:null==(l=null==(r=n.originalTableConfig)?void 0:r.checkboxConfig)?void 0:l.disableHeader},null)}(a):n[l.field]}const t={seq:e=>e.rowIndex+1,checkbox:e=>o(c,{checked:e.row.checked,"onUpdate:checked":o=>e.row.checked=o,onClick:n(l,["stop"])},null),radio(r,c){const i=e({get:()=>r.row===c.currentRow,set(){c.currentRow=r.row}});return o(a,{checked:i.value,"onUpdate:checked":e=>i.value=e,onClick:n(l,["stop"])},null)}};export{t as VerticalRenderMap,i as renderHeader};
@@ -0,0 +1,12 @@
1
+ import { AnyObject } from '../../../../../shared/types';
2
+ import { IhoTableConfig, IhoTableFieldItem } from '../../../../../components/iho-table';
3
+ export declare type IhoTableVerticalState = Partial<{
4
+ originalTableConfig: IhoTableConfig;
5
+ originalFieldList: IhoTableFieldItem[];
6
+ originalData: AnyObject[];
7
+ verticalFieldList: IhoTableFieldItem[];
8
+ verticalData: AnyObject[];
9
+ headerDepth: number;
10
+ currentRow: AnyObject | null;
11
+ hoveringRow: AnyObject | null;
12
+ }>;
@@ -0,0 +1,28 @@
1
+ import { AnyObject } from '../../../../../shared/types';
2
+ import { VxeTableDefines } from 'vxe-table';
3
+ import { IhoTableConfig, IhoTableFieldItem } from '../../../../../components/iho-table';
4
+ export declare function isVerticalTable(tableConfig: IhoTableConfig): boolean;
5
+ export declare function getFieldListDepth(fieldList: IhoTableFieldItem[]): number;
6
+ export declare function isVerticalHeader(field: string): boolean;
7
+ export declare function isVerticalBody(field: string): boolean;
8
+ export declare function getHeaderDepthByField(field: string): number;
9
+ export declare function bindHeaderInfoAndFlatten(fieldList: IhoTableFieldItem[], depth: number): IhoTableFieldItem[];
10
+ export declare function getSpanInfo(row: AnyObject, column: VxeTableDefines.ColumnInfo): {
11
+ rowspan: any;
12
+ colspan: any;
13
+ };
14
+ export declare function createVerticalFieldList(tableData: AnyObject[], headerDepth: number): IhoTableFieldItem[];
15
+ export declare function getVerticalInfoFromEvent(event: MouseEvent): {
16
+ type: string;
17
+ sequence: number;
18
+ } | undefined;
19
+ export declare function getOriginFieldFromRowData(row: AnyObject): VxeTableDefines.ColumnInfo;
20
+ export declare function getOriginRowFromRowData(row: AnyObject, sequence: number): AnyObject;
21
+ export declare function getOriginBasePayload(row: AnyObject, column: VxeTableDefines.ColumnInfo): {
22
+ row: AnyObject;
23
+ rowIndex: number;
24
+ $rowIndex: number;
25
+ column: VxeTableDefines.ColumnInfo;
26
+ fixed: import("vxe-table").VxeColumnPropTypes.Fixed;
27
+ type: "checkbox" | "radio" | "seq" | "expand" | "html";
28
+ };
@@ -0,0 +1 @@
1
+ import{traverse as n,findAncestor as e}from"../../../../../shared/utils/index.js";import{isString as t,range as r,property as i}from"lodash-es";import{VERTICAL_CELL_TYPE as o}from"./constants.js";function a(n){var e;return!!(null==(e=n.verticalConfig)?void 0:e.enable)}function c(n){let e=0;return function n(t,r=0){t.forEach((t=>{t.children?n(t.children,r+1):e=Math.max(e,r)}))}(n),e}function l(n){return!!t(n)&&n.startsWith("header_")}function u(n){return!!t(n)&&n.startsWith("body_")}function d(n){var e;return t(n)?+(null!=(e=n.split("_")[1])?e:0):0}function s(e,t){const i=[];return n(e,((n,e,a)=>{n.parent=a,n.children||(!function(n,e){let t=n,i=e;if(!n.parent)return n[`header_${e}`]=n.title,void r(e+1).forEach((t=>{n[`header_${t}_colspan`]=t===e?e+1:0,n[`header_${t}_rowspan`]=t===e?1:0}));for(;t;)n[`header_${i}`]=t.title,n[`header_${i}_rowspan`]=o(t),n[`header_${i}_colspan`]=1,i--,t=t.parent}(n,t),i.push(n))})),i.forEach(((n,e)=>{const t=i[e-1];t&&Object.entries(n).forEach((([e,r])=>{e.match(/^header_(\d+)$/)&&r===t[e]&&r&&(n[`${e}_colspan`]=0,n[`${e}_rowspan`]=0)}))})),i;function o(e){if(!e.children)return 1;let t=0;return n(e.children,(n=>{n.children||t++})),t}}function f(n,e){var t,r;return l(e.field)?{rowspan:null!=(t=n[e.field+"_rowspan"])?t:1,colspan:null!=(r=n[e.field+"_colspan"])?r:1}:{colspan:1,rowspan:1}}const p=({cell:n}={})=>{const e=n&&n.querySelector("input,.n-input__input-el");return e&&e.click(),e};function h(n,e){return[...r(e+1).map((n=>({field:`header_${n}`,title:`header_${n}`,minWidth:120,fixed:"left",editRender:{name:o,props:{},enable:!1}}))),...n.map(((n,e)=>({field:`body_${e}`,title:`body_${e}`,minWidth:120,editRender:{name:o,props:{},enable:!0,autofocus:p}})))]}function _(n){const t=e(n.target,(n=>"TD"===n.tagName));if(!t)return;const r=t.className.match(/(body|header)_(\d+)/);if(!r)return;const[,i,o]=r;return{type:i,sequence:+o}}function m(n){return i("originalField")(n)}function $(n,e){return i(`originalData.${e}`)(n)}function w(n,e){const t=d(e.field),r=m(n);return{row:$(n,t),rowIndex:t,$rowIndex:t,column:r,fixed:r.fixed,type:r.type}}p.toString=()=>"input,.n-input__input-el";export{s as bindHeaderInfoAndFlatten,h as createVerticalFieldList,c as getFieldListDepth,d as getHeaderDepthByField,w as getOriginBasePayload,m as getOriginFieldFromRowData,$ as getOriginRowFromRowData,f as getSpanInfo,_ as getVerticalInfoFromEvent,u as isVerticalBody,l as isVerticalHeader,a as isVerticalTable};
@@ -1 +1 @@
1
- export declare function virtualTreePlugin(): import("../../../../../components/iho-table").TablePlugin;
1
+ export declare function virtualTreePlugin(): import("../../../../components/iho-table").TablePlugin;
@@ -0,0 +1 @@
1
+ import{traverse as e,uuidGenerator as t,DMZ as r}from"../../../../shared/utils/index.js";import{isArray as i,sortBy as n,isFunction as o,isEmpty as s}from"lodash-es";import{onBeforeUnmount as d}from"vue";import"../../index.js";import{HIGHEST_PRIORITY as a,IHO_TABLE_TREE_TYPE as f}from"../constants/index.js";import{isTransformTreeType as l}from"../utils/index.js";import{defineTablePlugin as u}from"../hooks/useTablePlugin.js";function p(){const p="virtualTreePlugin",c=new Map;return u({name:p,apply(u){u.configHooks.treeConfig.tap({name:p,stage:a},((e,t)=>l(t)?Object.assign({transform:!0,expandAll:!0,reserve:!0,children:"childrenList",rowField:"__id"},e):e)),u.dataHooks.data.tap(p,((r,n,o)=>{if(!n.treeConfig)return;const{transform:s,rowField:d="__id",parentField:a="parentId",children:f="childrenList"}=n.treeConfig;function u(e){e[d]=e[d]||e.theUniqueKey||t()}l(n)&&s&&(u(r),i(r[f])&&e(r[f],((e,t,r)=>{r&&(e[a]=r[d]),o.insertAfter(e),u(e)}),f,r))})),u.fieldHooks.fieldList.tap(p,((e,t)=>{if(!t.treeConfig)return e;const{transform:i}=t.treeConfig||r;if(!l(t)||!i||!t.uuid)return e;const o=e.filter((e=>!1!==e.visible));let s=o.findIndex((e=>e.treeNode));if(~s&&o[s].fixed){const e=n(o,(e=>"left"===e.fixed?-1:"right"===e.fixed?1:0));s=e.findIndex((e=>e.treeNode))}~s||o.some(((e,t)=>{if(!e.type)return s=t,e.treeNode=!0}));const d=o.length-s-o.filter((e=>"right"===e.fixed)).length;return c.set(t.uuid,{index:s,colspan:d}),e})),u.configHooks.treeConfig.tap(p,((e,t)=>{if(!e)return e;const{transform:r,parentField:i="parentId",hasChild:n="hasChild",children:d="childrenList"}=e;if(o(t.spanMethod)||!r||`${t.isTree}`!==f.TRANSFORM_WITH_SPAN_METHOD)return e;const a=Object.freeze({rowspan:0,colspan:0});return t.spanMethod=({row:e,column:r,$columnIndex:o})=>{const f=c.get(t.uuid);if(f&&(Reflect.has(e,n)?e[n]:!e[i])&&!s(e[d]))return r.treeNode?{rowspan:1,colspan:f.colspan}:"right"!==r.fixed&&o>=f.index?a:void 0},e})),u.setupHooks.setup.tap(p,(e=>{d((()=>{var t;(null==(t=e.value)?void 0:t.uuid)&&c.delete(e.value.uuid)}))}))}})}export{p as virtualTreePlugin};
@@ -1,11 +1,13 @@
1
1
  import { AnyObject, ArrayAble, AnyFn, MaybeString, LowCodeTypes, TupleToUnion } from '../../../../shared/types';
2
- import { VxeTableProps, VxeTableDefines, VxeTableInstance, VxeColumnPropTypes, VxeTablePropTypes, VxeTableConstructor } from 'vxe-table';
2
+ import { VxeTableProps, VxeTableDefines, VxeTableInstance, VxeColumnPropTypes, VxeTablePropTypes, VxeTableConstructor, VxeTableMethods } from 'vxe-table';
3
3
  import { VxePagerEventProps } from 'vxe-table/types/pager';
4
4
  import { VxeTableEventProps, VxeTableListeners, VxeTablePrivateMethods } from 'vxe-table/types/table';
5
5
  import { AnnotationItem } from '../../../../components/annotation-edit/src/type';
6
+ import { DragScrollConfig } from '../../../../components/drag-scroll';
6
7
  import { IHO_TABLE_STRING_STATUS, IhoTableEventNameTuple, IhoTableRowGroupSequence } from '../../../../components/iho-table/src/constants';
7
8
  import Sortable from 'sortablejs';
8
9
  export * from './pluginType';
10
+ export declare type $VxeTable = VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods;
9
11
  export interface IhoTableRowGroupItem {
10
12
  groupName?: string;
11
13
  title: string;
@@ -18,6 +20,8 @@ export declare type IhoTableConfig = VxeTableProps & Partial<{
18
20
  isTree: MaybeString<0 | 1 | 2 | 3>;
19
21
  isBatchSelect: MaybeString<0 | 1>;
20
22
  isSingleSelect: MaybeString<0 | 1>;
23
+ dragScroll: boolean;
24
+ dragScrollConfig: DragScrollConfig;
21
25
  selectType: Exclude<VxeTableDefines.ColumnInfo['type'], 'seq' | 'expand' | 'html'>;
22
26
  rowDraggable: boolean;
23
27
  showSeq: boolean;
@@ -54,12 +58,18 @@ export declare type IhoTableConfig = VxeTableProps & Partial<{
54
58
  radioConfig: Partial<VxeTableProps['radioConfig'] & {
55
59
  slots: VxeColumnPropTypes.Slots;
56
60
  }>;
61
+ verticalConfig: {
62
+ enable?: boolean;
63
+ };
57
64
  [K: string]: unknown;
58
65
  }>;
59
66
  export declare type IhoTableFieldItem = {
60
67
  [K in keyof VxeTableDefines.ColumnInfo]?: K extends 'children' ? IhoTableFieldItem[] : K extends keyof VxeTableDefines.ColumnInfo ? VxeTableDefines.ColumnInfo[K] : never;
61
68
  } & Partial<{
62
69
  annotation: boolean;
70
+ depth: number;
71
+ parent: IhoTableFieldItem;
72
+ [key: string]: any;
63
73
  }>;
64
74
  export declare namespace IhoTableLowCodeField {
65
75
  type FieldSetting = Partial<{