cnhis-design-vue 3.2.1-release.1 → 3.2.1-release.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +87 -87
  2. package/es/components/callback/src/components/render/popupMaps.d.ts +1910 -100
  3. package/es/components/classification/src/components/table-modal/index.vue.d.ts +3 -0
  4. package/es/components/classification/src/index.vue.d.ts +3 -3
  5. package/es/components/expand-field/src/components/form.vue2.js +1 -1
  6. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useOther.js +1 -1
  7. package/es/components/field-set/src/TableStyle.vue2.js +1 -1
  8. package/es/components/iho-table/index.d.ts +1910 -100
  9. package/es/components/iho-table/src/IhoTable.vue.d.ts +1910 -100
  10. package/es/components/iho-table/src/IhoTable.vue2.js +1 -1
  11. package/es/components/iho-table/src/hooks/tapHooks/useConfigHooks.d.ts +3 -2
  12. package/es/components/iho-table/src/hooks/tapHooks/useExposeHooks.d.ts +1 -1
  13. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/index.js +1 -1
  14. package/es/components/iho-table/src/plugins/rendererPlugins/widgets/seqRendererPlugin.js +1 -1
  15. package/es/components/iho-table/src/plugins/verticalTablePlugin/index.js +1 -1
  16. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.d.ts +2 -3
  17. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.js +1 -1
  18. package/es/components/iho-table/src/plugins/verticalTablePlugin/types.d.ts +7 -0
  19. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.d.ts +13 -5
  20. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.js +1 -1
  21. package/es/components/iho-table/src/types/index.d.ts +9 -2
  22. package/es/components/iho-table/src/types/pluginType.d.ts +1 -1
  23. package/es/components/iho-table/style/index.css +1 -1
  24. package/es/components/index.css +1 -1
  25. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  26. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  27. package/es/components/select-person/src/SearchMultiple.vue.d.ts +6 -0
  28. package/es/env.d.ts +25 -25
  29. package/es/shared/assets/img/failure.png.js +1 -1
  30. package/es/shared/assets/img/no-permission.png.js +1 -1
  31. package/es/shared/assets/img/nodata.png.js +1 -1
  32. package/es/shared/assets/img/notfound.png.js +1 -1
  33. package/es/shared/assets/img/qr.png.js +1 -1
  34. package/es/shared/assets/img/success.png.js +1 -1
  35. package/es/shared/assets/img/table_style_2.png.js +1 -1
  36. package/es/shared/assets/img/video.png.js +1 -1
  37. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  38. package/es/shared/assets/img/xb_big.png.js +1 -1
  39. package/es/shared/assets/img/xb_small.png.js +1 -1
  40. package/es/shared/package.json.js +1 -1
  41. package/es/shared/utils/index.d.ts +4 -1
  42. package/es/shared/utils/index.js +1 -1
  43. package/package.json +2 -2
  44. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  45. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +0 -1
  46. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +0 -1
  47. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +0 -1
  48. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +0 -86
  49. package/es/shared/utils/fabricjs/index.d.ts +0 -6823
  50. package/es/shared/utils/tapable/index.d.ts +0 -139
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,provide as o,ref as a,toRaw as l,watch as n,resolveComponent as s,openBlock as r,createElementBlock as i,mergeProps as u,unref as c,createBlock as d,resolveDynamicComponent as f,createElementVNode as m,normalizeStyle as p,createVNode as v,withCtx as b,createSlots as h,renderList as g,createCommentVNode as x,renderSlot as k,normalizeProps as y,guardReactiveProps as C}from"vue";import{useTheme as D}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as j}from"@vueuse/core";import"date-fns";import{isString as $,isEqualWith as I,isFunction as w,pick as q}from"lodash-es";import{useFormAsyncQueue as R,presetRequestHandler as H}from"../../../shared/hooks/useFormRequest/index.js";import{promiseTimeout as _}from"@vueuse/shared";import{widthAppend as T,uuidGenerator as A}from"../../../shared/utils/index.js";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NConfigProvider as L}from"naive-ui";import{useVersion as P}from"../../../shared/hooks/useVersion.js";import{VxeTableEventNameList as S,InjectionIhoTableEmits as F,InjectionTableAsyncQueue as O,InjectionIhoTableAnnotation as B,InjectionIhoTableUUID as E,InjectionIhoTableInstance as N,InjectionIhoTableConfig as V,InjectionIhoTableFieldList as W,InjectionIhoTableHandler as z}from"./constants/index.js";import{createTableHooks as G,applyTableConfigHooks as J,applyTableFieldHooks as K,createTableEventHandlers as M,createDomInsertComponent as Q,createDataTransfer as U}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as X}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as Y}from"./utils/index.js";const Z=["id"];var ee=e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object},requestInstance:{type:Object},uniqueCacheData:{type:Boolean,default:!1},parallelism:{type:Number,default:3}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",...S],setup(e,{expose:S,emit:ee}){var te,oe;const ae=e,le=D({"--c-border-color":"#d0d0d0","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#e6e6e6","--c-stripe-color":"#f6f6f6"}),ne=t((()=>{var e,t;const o=null!=(t=null==(e=ae.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===o?"100%":$(o)&&(o.includes("calc")||o.endsWith("%"))?o:T(o)}})),se=X(),re=function(e,...t){ee(e,...t);const o=c(fe)[Y(e)];w(o)&&o(...t),se.trigger(e,...t)};o(F,re);const ie=R(t((()=>ae.requestInstance)),t((()=>!!ae.uniqueCacheData))).create(ae.parallelism,{beforeRequest:(e,t)=>t,afterRequest:(e,t)=>H(t)});o(O,ie);const ue=G();o(B,t((()=>ae.annotation)));const ce=A();o(E,ce);const de=a();o(N,de);const fe=a({uuid:null!=(oe=null==(te=ae.tableConfig)?void 0:te.uuid)?oe:ce});o(V,fe);const me=j(pe,10);function pe(){var e,t;fe.value=J(ue,{...ae.tableConfig,uuid:null!=(t=null==(e=ae.tableConfig)?void 0:e.uuid)?t:ce},{$table:de,emits:re,globProps:ae})}const ve=a([]);o(W,ve);const be=j(he,10);function he(){const e=K(ue,ae.fieldList,fe.value,{$table:de,emits:re,globProps:ae});I(e,l(ve.value),((e,t)=>{if(w(e)&&w(t))return e.toString()===t.toString()}))||(ve.value=e)}const ge=U(ue,fe,de),xe=a([]);async function ke(){var e,t;const o=await ge(ae.tableData),a=null==(e=de.value)?void 0:e.getTableData().fullData;if(a){let e=0;if(!(a.some((t=>{var a;if(!(null==(a=de.value)?void 0:a.isInsertByRow(t))){if(t!==o[e])return!0;e++}}))||e!==o.length))return}xe.value=o,null==(t=de.value)||t.recalculate(!0)}const ye={updateTableDataRef:j(ke,10),updateConfigRef:me,updateFieldListRef:be};o(z,ye);const Ce=M({hooks:ue,config:fe,$table:de,context:ye,emits:re}),De=t((()=>({...fe.value,...Ce})));let je=!1,$e=!1,Ie=!1;const we=j((()=>{je&&pe(),$e&&he(),Ie&&ke(),je=!1,$e=!1,Ie=!1}),10);n((()=>ae.tableConfig),(()=>{je=!0,$e=!0,Ie=!0,we()}),{deep:!0}),n((()=>ae.fieldList),(()=>{$e=!0,Ie=!0,we()}),{deep:!0}),n([()=>[...ae.tableData],()=>{var e;return null==(e=ae.tableData)?void 0:e.length}],(()=>{Ie=!0,we()})),n([()=>ae.tableData,()=>{var e;return null==(e=ae.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=fe.value.treeConfig)?void 0:e.expandAll)&&(await _(11),null==(t=de.value)||t.setAllTreeExpand(!0))})),pe(),he(),ke();const{header:qe,footer:Re}=Q(ue);function He(e){return q(e,["row","rowIndex","$rowIndex","column","columnIndex","$columnIndex","_columnIndex","checked","disabled","indeterminate"])}return S({$table:de,async loadData(e){var t;null==(t=de.value)||t.loadData(await ge(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),reload(){var e,t;null==(e=de.value)||e.loadColumn([]),null==(t=de.value)||t.loadData([]),pe(),he(),ke()},...ue.exposeHooks.expose.call({},fe,{$table:de,emits:re,globProps:ae})}),ue.setupHooks.setup.call(fe,ve,{$table:de,emits:re,globProps:ae}),(e,t)=>{const o=s("vxe-grid");return r(),i("section",u({class:"iho-table",id:c(ce),style:c(le)},c(P)()),[(r(),d(f(c(qe)))),m("section",{style:p(c(ne))},[v(c(L),{abstract:"",namespace:"vxe-table--ignore-clear"},{default:b((()=>[v(o,u({ref_key:"$table",ref:de},c(De),{columns:ve.value,data:xe.value}),h({_:2},[g(e.$slots,((t,o)=>({name:o,fn:b((t=>[x(" 实际上所有的vxe-grid插槽都支持 "),k(e.$slots,o,y(C(He(t))))]))})))]),1040,["columns","data"])])),_:3})],4),(r(),d(f(c(Re))))],16,Z)}}});export{ee as default};
1
+ import{defineComponent as e,computed as t,provide as o,ref as a,toRaw as l,watch as n,resolveComponent as s,openBlock as r,createElementBlock as i,mergeProps as u,unref as c,createBlock as d,resolveDynamicComponent as f,createElementVNode as m,normalizeStyle as p,createVNode as v,withCtx as b,createSlots as h,renderList as g,createCommentVNode as x,renderSlot as k,normalizeProps as y,guardReactiveProps as C}from"vue";import{useTheme as D}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as j}from"@vueuse/core";import"date-fns";import{isString as $,isEqualWith as I,isFunction as w,pick as q}from"lodash-es";import{useFormAsyncQueue as R,presetRequestHandler as H}from"../../../shared/hooks/useFormRequest/index.js";import{promiseTimeout as _}from"@vueuse/shared";import{widthAppend as T,uuidGenerator as A}from"../../../shared/utils/index.js";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NConfigProvider as L}from"naive-ui";import{useVersion as P}from"../../../shared/hooks/useVersion.js";import{VxeTableEventNameList as S,InjectionIhoTableEmits as F,InjectionTableAsyncQueue as O,InjectionIhoTableAnnotation as B,InjectionIhoTableUUID as E,InjectionIhoTableInstance as N,InjectionIhoTableConfig as V,InjectionIhoTableFieldList as W,InjectionIhoTableHandler as z}from"./constants/index.js";import{createTableHooks as G,applyTableConfigHooks as J,applyTableFieldHooks as K,createTableEventHandlers as M,createDomInsertComponent as Q,createDataTransfer as U}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as X}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as Y}from"./utils/index.js";const Z=["id"];var ee=e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object},requestInstance:{type:Object},uniqueCacheData:{type:Boolean,default:!1},parallelism:{type:Number,default:3}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",...S],setup(e,{expose:S,emit:ee}){var te,oe;const ae=e,le=D({"--c-border-color":"#d0d0d0","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#e6e6e6","--c-stripe-color":"#f6f6f6"}),ne=t((()=>{var e,t;const o=null!=(t=null==(e=ae.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===o?"100%":$(o)&&(o.includes("calc")||o.endsWith("%"))?o:T(o)}})),se=X(),re=function(e,...t){ee(e,...t);const o=c(fe)[Y(e)];w(o)&&o(...t),se.trigger(e,...t)};o(F,re);const ie=R(t((()=>ae.requestInstance)),t((()=>!!ae.uniqueCacheData))).create(ae.parallelism,{beforeRequest:(e,t)=>t,afterRequest:(e,t)=>H(t)});o(O,ie);const ue=G();o(B,t((()=>ae.annotation)));const ce=A();o(E,ce);const de=a();o(N,de);const fe=a({uuid:null!=(oe=null==(te=ae.tableConfig)?void 0:te.uuid)?oe:ce});o(V,fe);const me=j(pe,10);function pe(){var e,t;fe.value=J(ue,{...ae.tableConfig,uuid:null!=(t=null==(e=ae.tableConfig)?void 0:e.uuid)?t:ce},{$table:de,emits:re,globProps:ae})}const ve=a([]);o(W,ve);const be=j(he,10);function he(){const e=K(ue,ae.fieldList,fe.value,{$table:de,emits:re,globProps:ae});I(e,l(ve.value),((e,t)=>{if(w(e)&&w(t))return e.toString()===t.toString()}))||(ve.value=e)}const ge=U(ue,fe,de),xe=a([]);async function ke(){var e,t;const o=await ge(ae.tableData),a=null==(e=de.value)?void 0:e.getTableData().fullData;if(a){let e=0;if(!(a.some((t=>{var a;if(!(null==(a=de.value)?void 0:a.isInsertByRow(t))){if(t!==o[e])return!0;e++}}))||e!==o.length))return}xe.value=o,null==(t=de.value)||t.recalculate(!0)}const ye={updateTableDataRef:j(ke,10),updateConfigRef:me,updateFieldListRef:be};o(z,ye);const Ce=M({hooks:ue,config:fe,$table:de,context:ye,emits:re}),De=t((()=>({...fe.value,...Ce})));let je=!1,$e=!1,Ie=!1;const we=j((()=>{je&&pe(),$e&&he(),Ie&&ke(),je=!1,$e=!1,Ie=!1}),10);n((()=>ae.tableConfig),(()=>{je=!0,$e=!0,Ie=!0,we()}),{deep:!0}),n((()=>ae.fieldList),(()=>{$e=!0,Ie=!0,we()}),{deep:!0}),n([()=>[...ae.tableData],()=>{var e;return null==(e=ae.tableData)?void 0:e.length}],(()=>{Ie=!0,we()})),n([()=>ae.tableData,()=>{var e;return null==(e=ae.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=fe.value.treeConfig)?void 0:e.expandAll)&&(await _(11),null==(t=de.value)||t.setAllTreeExpand(!0))})),pe(),he(),ke();const{header:qe,footer:Re}=Q(ue);function He(e){return q(e,["row","rowIndex","$rowIndex","column","columnIndex","$columnIndex","_columnIndex","checked","disabled","indeterminate"])}return S({$table:de,async loadData(e){var t;null==(t=de.value)||t.loadData(await ge(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),reload(){var e,t;null==(e=de.value)||e.loadColumn([]),null==(t=de.value)||t.loadData([]),pe(),he(),ke()},...ue.exposeHooks.expose.call({},fe,{$table:de,emits:re,globProps:ae,...ye})}),ue.setupHooks.setup.call(fe,ve,{$table:de,emits:re,globProps:ae}),(e,t)=>{const o=s("vxe-grid");return r(),i("section",u({class:"iho-table",id:c(ce),style:c(le)},c(P)()),[(r(),d(f(c(qe)))),m("section",{style:p(c(ne))},[v(c(L),{abstract:"",namespace:"vxe-table--ignore-clear"},{default:b((()=>[v(o,u({ref_key:"$table",ref:de},c(De),{columns:ve.value,data:xe.value}),h({_:2},[g(e.$slots,((t,o)=>({name:o,fn:b((t=>[x(" 实际上所有的vxe-grid插槽都支持 "),k(e.$slots,o,y(C(He(t))))]))})))]),1040,["columns","data"])])),_:3})],4),(r(),d(f(c(Re))))],16,Z)}}});export{ee as default};
@@ -7,9 +7,10 @@ declare class ConfigHooks extends AbstractConfigHooks {
7
7
  clickToCancel: boolean;
8
8
  }>) | undefined, IhoTableConfig, IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
9
9
  readonly editConfig: SyncWaterfallHook<[import("vxe-table").VxeTablePropTypes.EditConfig | undefined, IhoTableConfig, IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
10
- readonly columnConfig: SyncWaterfallHook<[(import("vxe-table").VxeTablePropTypes.ColumnConfig & {
10
+ readonly columnConfig: SyncWaterfallHook<[(import("vxe-table").VxeTablePropTypes.ColumnConfig & Partial<{
11
11
  seqSlotFn: string | ((params: import("vxe-table").VxeColumnPropTypes.DefaultSlotParams) => import("vxe-table").SlotVNodeType | import("vxe-table").SlotVNodeType[]) | null | undefined;
12
- }) | undefined, IhoTableConfig, IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
12
+ seqConfig: Partial<import("../../../../../components/iho-table/src/types").IhoTableFieldItem>;
13
+ }>) | undefined, IhoTableConfig, IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
13
14
  readonly resizableConfig: SyncWaterfallHook<[import("vxe-table").VxeTablePropTypes.ResizableConfig | undefined, IhoTableConfig, IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
14
15
  readonly seqConfig: SyncWaterfallHook<[import("vxe-table").VxeTablePropTypes.SeqConfig | undefined, IhoTableConfig, IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
15
16
  readonly sortConfig: SyncWaterfallHook<[import("vxe-table").VxeTablePropTypes.SortConfig | undefined, IhoTableConfig, IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
@@ -2,7 +2,7 @@ import { AnyFn } from '../../../../../shared/types';
2
2
  import { SyncWaterfallHook } from '../../../../../shared/utils/tapable';
3
3
  import { AbstractExposeHooks } from '../../../../../components/iho-table/src/types';
4
4
  declare class ExposeHooks extends AbstractExposeHooks {
5
- readonly expose: SyncWaterfallHook<[Record<string, AnyFn<any[], any>>, import("vue").Ref<import("../../../../../components/iho-table/src/types").IhoTableConfig>, import("../../../../../components/iho-table/src/types").IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
5
+ readonly expose: SyncWaterfallHook<[Record<string, AnyFn<any[], any>>, import("vue").Ref<import("../../../../../components/iho-table/src/types").IhoTableConfig>, import("../../../../../components/iho-table/src/types").IhoTableHandler & import("../../../../../components/iho-table/src/types").IhoTableHandlerContext<true>], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
6
6
  }
7
7
  export declare function useExposeHooks(): {
8
8
  create: () => ExposeHooks;
@@ -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 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
+ 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(){var e;if(!c)return[];if(c.ihoTableHandler=t(A),c.separateData["__"+n.field]=null!=(e=c.separateData["__"+n.field])?e: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(null!==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 +1 @@
1
- import{inject as o,createVNode as e}from"vue";import{SettingsSharp as n}from"@vicons/ionicons5";import{isFunction as i}from"lodash-es";import{NIcon as t}from"naive-ui";import"../../../../index.js";import{InjectionIhoTableEmits as r}from"../../../constants/index.js";import{IhoTableStatusHelper as s}from"../../../utils/index.js";import{defineTablePlugin as l}from"../../../hooks/useTablePlugin.js";function f(){const f="seqRendererPlugin";return l({name:f,apply(l){l.fieldHooks.field.tap({name:f,before:"checkRendererPlugin"},((l,{index:m,insertBefore:c},u)=>{var a,d;if(0===m&&u.showSeq){const l={align:"center",fixed:"left",width:50,type:"seq",field:f,annotation:!1,slots:{header(){if(s.isPositive(u.hideSettingBtn))return[];const i=o(r);return[e(t,{style:{cursor:"pointer"},size:"14",color:"#777",component:n,onClick:function(){i&&i("settingClick")}},null)]}}};i(null==(a=u.columnConfig)?void 0:a.seqSlotFn)&&(l.slots||(l.slots={}),l.slots.default=u.columnConfig.seqSlotFn),(null==(d=u.sortableConfig)?void 0:d.enable)&&(l.className="col--drag"),c(l)}return l}))}})}export{f as seqRendererPlugin};
1
+ import{inject as o,createVNode as n}from"vue";import{SettingsSharp as e}from"@vicons/ionicons5";import{isFunction as i}from"lodash-es";import{NIcon as t}from"naive-ui";import"../../../../index.js";import{InjectionIhoTableEmits as l}from"../../../constants/index.js";import{IhoTableStatusHelper as s}from"../../../utils/index.js";import{defineTablePlugin as r}from"../../../hooks/useTablePlugin.js";function f(){const f="seqRendererPlugin";return r({name:f,apply(r){r.fieldHooks.field.tap({name:f,before:"checkRendererPlugin"},((r,{index:u,insertBefore:m},c)=>{var d,a,p,g,v;if(0===u&&c.showSeq){const r={align:"center",fixed:"left",width:50,type:"seq",field:f,annotation:!1,...null==(d=c.columnConfig)?void 0:d.seqConfig,slots:{header(){if(s.isPositive(c.hideSettingBtn))return[];const i=o(l);return[n(t,{style:{cursor:"pointer"},size:"14",color:"#777",component:e,onClick:function(){i&&i("settingClick")}},null)]},...null==(p=null==(a=c.columnConfig)?void 0:a.seqConfig)?void 0:p.slots}};i(null==(g=c.columnConfig)?void 0:g.seqSlotFn)&&(r.slots||(r.slots={}),r.slots.default=c.columnConfig.seqSlotFn),(null==(v=c.sortableConfig)?void 0:v.enable)&&(r.className="col--drag"),m(r)}return r}))}})}export{f as seqRendererPlugin};
@@ -1 +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};
1
+ import{getArrDepth as e}from"../../../../../shared/utils/index.js";import{useThrottleFn as t}from"@vueuse/core";import{promiseTimeout as o}from"@vueuse/shared";import{pick as n,isEmpty as r,isArray as i}from"lodash-es";import{inject as l,onBeforeUnmount as a,unref as d}from"vue";import"../../../index.js";import{InjectionIhoTableUUID as c,LOWEST_PRIORITY as u,WIDGET_TYPE as s}from"../../constants/index.js";import{useUUIDMap as f}from"../../utils/index.js";import{VERTICAL_CELL_TYPE as g}from"./constants.js";import{createCellRender as m}from"./renderer.js";import{isVerticalTable as p,isVerticalHeader as h,getSpanInfo as w,getVerticalInfoFromEvent as x,createVerticalFieldList as v,bindHeaderInfoAndFlatten as C,findFixedLeftFields as b,createDataProxy as D,createVerticalStateHandler as k,getOriginFieldFromRowData as y}from"./utils.js";import{defineTablePlugin as R}from"../../hooks/useTablePlugin.js";const I=["RADIO","SWITCH"];function j(){const j="verticalTablePlugin",{getItemFromUUID:T,removeItemFromUUID:H}=f((()=>({})));return R({name:j,vxe(e){e.renderer.add(g,{renderCell:m(e,T,"default"),renderEdit:m(e,T,"edit"),renderHeader(t,o){var n,r,i;const a=l(c),d=T(a),u=null==(n=d.fixedLeftVerticalData)?void 0:n[o.$rowIndex];if(!u)return null;const s=(null==(r=d.editCell)?void 0:r.rowIndex)===o.$rowIndex&&(null==(i=d.editCell)?void 0:i.column)===o.column;return m(e,T,s?"edit":"default")(null,{...o,row:u,rowIndex:o.$rowIndex,rowid:o.$rowIndex+"",fixed:o.column.fixed,isHidden:!o.column.visible,type:o.column.type})}})},apply(l){l.configHooks.config.tap({name:j,stage:u},(e=>{if(!e.uuid||!p(e))return e;const{uuid:i}=e,l=T(i);l.originalTableConfig=e,Reflect.set(window,"__state",l);const a=k(l);function d({column:e,type:t,$rowIndex:o}){if(h(e.field))return void(l.editCell=null);const n=a.getOriginDataByColumn(e);if(n){if(l.editCell="body"===t?null:{rowIndex:o,column:e},l.currentRow=a.getTableConfig("rowConfig.clickToCancel")&&l.currentRow===n?null:n,"row"===a.getTableConfig("checkboxConfig.trigger")){const e=a.getTableConfig("checkboxConfig.checkField")||"checked";n[e]=!n[e]}"row"===a.getTableConfig("radioConfig.trigger")&&(l.currentRow=n)}}function c({column:e,row:t}){const o={};if(t&&w(t,e).colspan>1&&Object.assign(o,{textAlign:"center"}),!h(e.field)){const n=a.getOriginDataByColumn(e);n===l.hoveringRow&&Object.assign(o,{backgroundColor:"var(--c-hover-color)"}),n===l.currentRow&&Object.assign(o,{backgroundColor:"var(--c-primary-color-opacity2)"}),t&&["checkbox","radio","seq"].includes(y(t).type||"")&&Object.assign(o,{textAlign:"center"})}return o}function u({column:e}){const t=h(e.field);return{"vxe-header--column":t,"vxe-table--header":t,[e.field]:!0}}return a.initClickEvent(i),{uuid:i,showHeader:!1,...n(e,["border","height","verticalConfig","showSeq","size","rowGroupSetting","keyboardConfig","selectType","columnConfig"]),cellClassName:u,headerRowStyle({$rowIndex:e}){const t={background:"white"};return r(l.fixedLeftVerticalData)||l.fixedLeftVerticalData.length!==e||(t.display="none"),t},headerCellStyle({column:e,$rowIndex:t}){const{fixedLeftVerticalData:o=[]}=l,n=c({column:e,row:o[t]});return e.colSpan>1&&(n.textAlign="center"),{textShadow:h(e.field)?"0 0 1px":"none",...n}},headerCellClassName:u,cellStyle:c,spanMethod:({row:e,column:t})=>w(e,t),editConfig:{...e.editConfig,showIcon:!1,beforeEditMethod({row:e,column:t}){var o;const{originalField:n={}}=e;if(h(t.field))return!1;const{editRender:{name:r=s.DEFAULT}={}}=n;return!Object.values(s).concat(I).includes(r)&&(!(null==(o=n.slots)?void 0:o.default)||!!n.slots.edit)}},onHeaderCellClick:d,onCellClick:d,onMousemove:t((e=>{var t,o;const n=x(e);if(!n||"body"!==n.type)return l.hoveringRow=null;l.hoveringRow=null!=(o=null==(t=l.originalData)?void 0:t[n.sequence])?o:null}),100),async onMouseleave(){await o(101),l.hoveringRow=null},async onScroll(){await o(101),l.hoveringRow=null}}})),l.fieldHooks.fieldList.tap({name:j,stage:u},((t,o,{globProps:n})=>{const{uuid:r}=o;if(!r||!p(o))return t;const l=T(r);if(!l)return t;if(l.originalFieldList=t,!i(n.tableData))return[];let a=v(n.tableData,l.headerDepth=e(t),l);l.fullVerticalOriginData=C(t,l.headerDepth);const d=b(t);return d.length&&(o.showHeader=!0,d.forEach((e=>{let t=[];a=a.reduce(((o,n)=>{if(h(n.field)){if(0===e[n.field.replaceAll("_parent","")+"_colspan"])return t.push(n),o}return o.push({field:n.field+"_parent",fixed:n.fixed,editRender:n.editRender,children:[...t,n]}),t=[],o}),[])}))),l.verticalFieldList=a})),l.dataHooks.dataList.tap({name:j,stage:u},((e,t)=>{const{uuid:o}=t;if(!o||!p(t))return e;const n=T(o);if(!n)return e;n.originalData=e;const{fullVerticalOriginData:r=[]}=n;return n.fixedLeftVerticalData=r.filter((e=>"left"===e.fixed)).map((e=>D(e,(()=>n.originalData||[])))),n.verticalData=r.filter((e=>"left"!==e.fixed)).map((e=>D(e,(()=>n.originalData||[]))))})),l.setupHooks.setup.tap(j,(e=>{a((()=>{const{uuid:t}=d(e)||{};t&&(k(T(t)).removeClickEvent(),H(t))}))})),l.exposeHooks.expose.tap(j,((e,t,o)=>Object.assign(e,{verticalTable:{update(){t.value.uuid&&(o.updateConfigRef(),o.updateFieldListRef(),o.updateTableDataRef())}}})))}})}export{j as verticalTablePlugin};
@@ -1,6 +1,5 @@
1
- import { AnyObject } from '../../../../../shared/types';
2
- import { VxeTableDefines } from 'vxe-table';
3
1
  import { VxeGlobalRendererHandles } from 'vxe-table/types/v-x-e-table/renderer';
2
+ import { IhoTableInstance } from '../../../../../components/iho-table';
4
3
  import { IhoTableVerticalState } from './types';
5
- export declare function renderHeader(row: AnyObject, column: VxeTableDefines.ColumnInfo, verticalState: IhoTableVerticalState): any;
6
4
  export declare const VerticalRenderMap: Record<string, (payload: VxeGlobalRendererHandles.RenderCellParams, verticalState: IhoTableVerticalState) => any>;
5
+ export declare function createCellRender(instance: IhoTableInstance, verticalStateGetter: (uuid: string) => IhoTableVerticalState, type: 'edit' | 'default'): (_: unknown, payload: VxeGlobalRendererHandles.RenderCellParams) => any;
@@ -1 +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};
1
+ import{inject as e,computed as r,createVNode as n,withModifiers as l}from"vue";import{isFunction as o,property as t,isEmpty as i,identity as d}from"lodash-es";import{NCheckbox as c,NRadio as a}from"naive-ui";import{InjectionIhoTableUUID as u,WIDGET_TYPE as s}from"../../constants/index.js";import{isVerticalHeader as f,getOriginBasePayload as v}from"./utils.js";function h(e,l,o){return"checkbox"===t("originalField")(e).type?function(e){var l,o;const t=r({get(){var r,n;return!i(e.originalData)&&(null!=(n=null==(r=e.originalData)?void 0:r.every((e=>e.checked)))&&n)},set(r){var n;null==(n=e.originalData)||n.forEach((e=>e.checked=r))}}),d=r((()=>{var r,n;return null!=(n=null==(r=e.originalData)?void 0:r.some((e=>e.checked)))&&n}));return n(c,{checked:t.value,"onUpdate:checked":e=>t.value=e,indeterminate:!t.value&&d.value,disabled:null==(o=null==(l=e.originalTableConfig)?void 0:l.checkboxConfig)?void 0:o.disableHeader},null)}(o):e[l.field.replaceAll("_parent","")]}const k={seq:e=>e.rowIndex+1,checkbox:e=>n(c,{checked:e.row.checked,"onUpdate:checked":r=>e.row.checked=r,onClick:l(d,["stop"])},null),radio(e,o){const t=r({get:()=>e.row===o.currentRow,set(){o.currentRow=e.row}});return n(a,{checked:t.value,"onUpdate:checked":e=>t.value=e,onClick:l(d,["stop"])},null)}};function m(r,n,l){return(t,i)=>{var d,c;const a=e(u),m=n(a),{row:p,column:w}=i;if(f(w.field))return h(p,w,m);const g={$table:i.$table,columnIndex:i.rowIndex,$columnIndex:i.rowIndex,isHidden:i.isHidden,rowid:i.rowid,...v(p,w)};if(!g.row)return null;const{originalField:{editRender:x={},slots:b={}}={}}=p;if(o(b[l]))return b[l](g);if(b.default&&!b.edit)return b.default(g);if(k[g.type])return k[g.type](g,m);const C=x.name||s.DEFAULT,D=r.renderer.get(C);return D?"default"===l?null==(d=D.renderCell)?void 0:d.call(D,x,g):null==(c=D.renderEdit)?void 0:c.call(D,x,g):{}}}export{k as VerticalRenderMap,m as createCellRender};
@@ -5,8 +5,15 @@ export declare type IhoTableVerticalState = Partial<{
5
5
  originalFieldList: IhoTableFieldItem[];
6
6
  originalData: AnyObject[];
7
7
  verticalFieldList: IhoTableFieldItem[];
8
+ fullVerticalOriginData: AnyObject[];
8
9
  verticalData: AnyObject[];
10
+ fixedLeftVerticalData: AnyObject[];
9
11
  headerDepth: number;
10
12
  currentRow: AnyObject | null;
13
+ editCell: {
14
+ rowIndex: number;
15
+ column: IhoTableFieldItem;
16
+ } | null;
17
+ editStateEvent: (event: MouseEvent) => void;
11
18
  hoveringRow: AnyObject | null;
12
19
  }>;
@@ -1,17 +1,17 @@
1
1
  import { AnyObject } from '../../../../../shared/types';
2
2
  import { VxeTableDefines } from 'vxe-table';
3
3
  import { IhoTableConfig, IhoTableFieldItem } from '../../../../../components/iho-table';
4
+ import { IhoTableVerticalState } from '../../../../../components/iho-table/src/plugins/verticalTablePlugin/types';
4
5
  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;
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
9
  export declare function bindHeaderInfoAndFlatten(fieldList: IhoTableFieldItem[], depth: number): IhoTableFieldItem[];
10
10
  export declare function getSpanInfo(row: AnyObject, column: VxeTableDefines.ColumnInfo): {
11
11
  rowspan: any;
12
12
  colspan: any;
13
13
  };
14
- export declare function createVerticalFieldList(tableData: AnyObject[], headerDepth: number): IhoTableFieldItem[];
14
+ export declare function createVerticalFieldList(tableData: AnyObject[], headerDepth: number, verticalState: IhoTableVerticalState): IhoTableFieldItem[];
15
15
  export declare function getVerticalInfoFromEvent(event: MouseEvent): {
16
16
  type: string;
17
17
  sequence: number;
@@ -26,3 +26,11 @@ export declare function getOriginBasePayload(row: AnyObject, column: VxeTableDef
26
26
  fixed: import("vxe-table").VxeColumnPropTypes.Fixed;
27
27
  type: "checkbox" | "radio" | "seq" | "expand" | "html";
28
28
  };
29
+ export declare function findFixedLeftFields(fieldList: IhoTableFieldItem[]): IhoTableFieldItem[];
30
+ export declare function createVerticalStateHandler(verticalState: IhoTableVerticalState): {
31
+ readonly getOriginDataByColumn: (column: VxeTableDefines.ColumnInfo) => AnyObject;
32
+ readonly getTableConfig: (path: string) => any;
33
+ readonly initClickEvent: (uuid: string) => void;
34
+ readonly removeClickEvent: () => void;
35
+ };
36
+ export declare function createDataProxy(originalField: IhoTableFieldItem, dataList: AnyObject[] | (() => AnyObject[])): {};
@@ -1 +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
+ import{traverse as e,findAncestor as t,getStringWidth as n}from"../../../../../shared/utils/index.js";import{isString as r,isNumber as i,constant as o,isFunction as a,range as l,property as u}from"lodash-es";import{VERTICAL_CELL_TYPE as c}from"./constants.js";function d(e){var t;return!!(null==(t=e.verticalConfig)?void 0:t.enable)}function s(e){return!!r(e)&&e.startsWith("header_")}function f(e){return!!r(e)&&e.startsWith("body_")}function p(e){var t;return r(e)?+(null!=(t=e.split("_")[1])?t:0):0}function h(t,n){const r=[];return e(t,((e,t,o)=>{e.parent=o,e.children||(!function(e,t){let n=e,r=t;if(!e.parent)return e[`header_${t}`]=e.title,void l(t+1).forEach((n=>{e[`header_${n}_colspan`]=n===t?t+1:0,e[`header_${n}_rowspan`]=n===t?1:0}));for(;n;)e[`header_${r}`]=n.title,e[`header_${r}_rowspan`]=i(n),e[`header_${r}_colspan`]=1,r--,n=n.parent}(e,n),r.push(e))})),r.forEach(((e,t)=>{const n=r[t-1];n&&Object.entries(e).forEach((([t,r])=>{t.match(/^header_(\d+)$/)&&r===n[t]&&r&&(e[`${t}_colspan`]=0,e[`${t}_rowspan`]=0)}))})),r;function i(t){if(!t.children)return 1;let n=0;return e(t.children,(e=>{e.children||n++})),n}}function _(e,t){var n,r;return s(t.field)?{rowspan:null!=(n=e[t.field+"_rowspan"])?n:1,colspan:null!=(r=e[t.field+"_colspan"])?r:1}:{colspan:1,rowspan:1}}const g=({cell:e}={})=>{const t=e&&e.querySelector("input,.n-input__input-el");return t&&t.click(),t};function m(t,r){let i=120;return e(r,((e,r,o,a)=>{a===t&&(i=Math.max(i,n(e.title||"")+20))})),Math.ceil(i)}function v(e,t,n){let r=y(n).getTableConfig("verticalConfig.headerWidth");return r="auto"===r?m:i(r)?o(r):a(r)?r:m,[...l(t+1).map((e=>({field:`header_${e}`,title:`header_${e}`,width:r(e,n.originalFieldList),fixed:"left",editRender:{name:c,props:{},enable:!1}}))),...e.map(((e,t)=>({field:`body_${t}`,title:`body_${t}`,minWidth:120,editRender:{name:c,props:{},enable:!0,autofocus:g}})))]}function w(e){const n=t(e.target,(e=>"TD"===e.tagName||"TH"===e.tagName));if(!n)return;const r=n.className.match(/(body|header)_(\d+)/);if(!r)return;const[,i,o]=r;return{type:i,sequence:+o}}function $(e){return u("originalField")(e)}function b(e,t){return u(`originalData.${t}`)(e)}function E(e,t){const n=p(t.field),r=$(e);return{row:b(e,n),rowIndex:n,$rowIndex:n,column:r,fixed:r.fixed,type:r.type}}function x(t){const n=[];return e(t,(e=>{"left"===e.fixed&&n.push(e)})),n}function y(e){return{getOriginDataByColumn(t){const{originalData:n=[]}=e;return n[p(t.field)]},getTableConfig:t=>u(t)(e.originalTableConfig),initClickEvent(n){this.removeClickEvent(),e.editStateEvent=r=>{t(r.target,(e=>e.getAttribute("uuid")===n||e.classList.contains("vxe-table--ignore-clear")))||(e.editCell=null)},window.addEventListener("click",e.editStateEvent,{capture:!0})},removeClickEvent(){e.editStateEvent&&window.removeEventListener("click",e.editStateEvent,{capture:!0})}}}function C(e,t){return new Proxy({},{get(n,r){var i;if("originalField"===r)return e;if("originalData"===r)return a(t)?t():t;if(s(r))return e[r];if(f(r)){const n=p(r);return"seq"===e.type?n+1:null==(i=t[n])?void 0:i[e.field]}},set(n,r,i){if(!s(r)){const n=p(r);n>=0&&t[n]&&(t[n][e.field]=i)}return!0}})}g.toString=()=>"input,.n-input__input-el";export{h as bindHeaderInfoAndFlatten,C as createDataProxy,v as createVerticalFieldList,y as createVerticalStateHandler,x as findFixedLeftFields,p as getHeaderDepthByField,E as getOriginBasePayload,$ as getOriginFieldFromRowData,b as getOriginRowFromRowData,_ as getSpanInfo,w as getVerticalInfoFromEvent,f as isVerticalBody,s as isVerticalHeader,d as isVerticalTable};
@@ -32,9 +32,10 @@ export declare type IhoTableConfig = VxeTableProps & Partial<{
32
32
  name?: string;
33
33
  field: string;
34
34
  } | string>;
35
- columnConfig: {
35
+ columnConfig: Partial<{
36
36
  seqSlotFn: VxeColumnPropTypes.Slots['default'];
37
- };
37
+ seqConfig: Partial<IhoTableFieldItem>;
38
+ }>;
38
39
  sortableConfig: Partial<{
39
40
  enable: boolean;
40
41
  usePreset: boolean;
@@ -58,8 +59,14 @@ export declare type IhoTableConfig = VxeTableProps & Partial<{
58
59
  radioConfig: Partial<VxeTableProps['radioConfig'] & {
59
60
  slots: VxeColumnPropTypes.Slots;
60
61
  }>;
62
+ /**
63
+ * @desc 竖向表格相关配置
64
+ * @property {boolean} enable - 是否开启竖向表格
65
+ * @property {number | 'auto' | ((level: number) => number)} headerWidth - 表头宽度
66
+ */
61
67
  verticalConfig: {
62
68
  enable?: boolean;
69
+ headerWidth?: number | 'auto' | ((level: number) => number);
63
70
  };
64
71
  [K: string]: unknown;
65
72
  }>;
@@ -163,7 +163,7 @@ export declare abstract class AbstractDomInsertHooks {
163
163
  export declare type WithExposeHookConfig<T = []> = [
164
164
  ...(T extends any[] ? T : [T]),
165
165
  Ref<IhoTableConfig>,
166
- IhoTableHandlerContext
166
+ IhoTableHandler & IhoTableHandlerContext
167
167
  ];
168
168
  export declare abstract class AbstractExposeHooks {
169
169
  abstract readonly expose: SyncWaterfallHook<WithExposeHookConfig<Record<string, AnyFn>>>;
@@ -1 +1 @@
1
- .iho-table{height:100%}.iho-table .vxe-body--column.col--drag{cursor:move}.iho-table .vxe-table.size--mini{font-size:14px}.iho-table .vxe-table.size--mini .vxe-body--column:not(.col--ellipsis),.iho-table .vxe-table.size--mini .vxe-footer--column:not(.col--ellipsis),.iho-table .vxe-table.size--mini .vxe-header--column:not(.col--ellipsis){padding:4px 0}.iho-table .vxe-table.size--mini .vxe-sort--asc-btn{top:-2px}.iho-table .vxe-table.size--mini .vxe-sort--desc-btn{bottom:0}.iho-table__headerWrapper{display:inline-flex;flex-wrap:nowrap}.iho-table__boldCell{font-weight:700}.iho-table .vxe-table .vxe-table--header-wrapper,.iho-table .vxe-table.vxe-table--render-default{color:#212121}.iho-table .vxe-table--body-wrapper::-webkit-scrollbar,.iho-table .vxe-table--footer-wrapper.body--wrapper::-webkit-scrollbar{background-color:transparent;height:10px;width:10px}.iho-table .vxe-table--body-wrapper::-webkit-scrollbar-thumb,.iho-table .vxe-table--footer-wrapper.body--wrapper::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:#b2b2b2;border:3px dashed transparent;border-radius:5px}.iho-table .vxe-table--body-wrapper::-webkit-scrollbar-thumb:hover,.iho-table .vxe-table--footer-wrapper.body--wrapper::-webkit-scrollbar-thumb:hover{background:#b2b2b2}.iho-table .vxe-table--empty-content{height:100%;width:100%}.iho-table .vxe-table--empty-content>div,.iho-table .vxe-tree-cell{height:100%}.iho-table .vxe-table--header{background-color:#f2f2f2}.iho-table .vxe-table--header .checkbox-cell--disable{border:2px solid #c0c4cc;border-radius:50%;box-sizing:border-box;cursor:not-allowed;display:inline-block;height:18px;left:-2px;position:relative;top:3px;width:18px}.iho-table .vxe-table--header .checkbox-cell--disable:before{background-color:#c0c4cc;content:"";height:16px;left:50%;position:absolute;top:-2px;transform:translate(-60%) rotate(-45deg);width:2px}.iho-table .vxe-footer--row .vxe-footer--column>.vxe-cell .vxe-cell--item{height:30px;line-height:30px}.iho-table .vxe-table--render-default .vxe-body--column.col--selected{box-shadow:inset 0 0 0 2px var(--c-primary-color)}.iho-table .vxe-table--render-default .vxe-body--row.row--hover,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--stripe{background-color:var(--c-hover-color)}.iho-table .vxe-table--render-default .vxe-body--row.row--checked,.iho-table .vxe-table--render-default .vxe-body--row.row--current,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--checked,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--current,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--radio,.iho-table .vxe-table--render-default .vxe-body--row.row--radio{background-color:var(--c-primary-color-opacity2);text-shadow:0 0 1px}.iho-table .vxe-table--render-default .vxe-body--row.row--stripe{background-color:var(--c-stripe-color)}.iho-table .vxe-body--expanded-column,.iho-table .vxe-table--border-line{border-color:var(--c-border-color)!important}.iho-table .vxe-table--footer-wrapper{border-top-color:var(--c-border-color)!important}.iho-table .border--default .vxe-body--column,.iho-table .border--default .vxe-footer--column,.iho-table .border--default .vxe-header--column,.iho-table .border--inner .vxe-body--column,.iho-table .border--inner .vxe-footer--column,.iho-table .border--inner .vxe-header--column{background-image:linear-gradient(var(--c-border-color),var(--c-border-color))!important}.iho-table .border--full .vxe-body--column,.iho-table .border--full .vxe-footer--column,.iho-table .border--full .vxe-header--column{background-image:linear-gradient(var(--c-border-color),var(--c-border-color)),linear-gradient(var(--c-border-color),var(--c-border-color))!important}.iho-table .border--default .vxe-header--row:last-child .vxe-header--gutter,.iho-table .border--full .vxe-header--row:last-child .vxe-header--gutter,.iho-table .border--inner .vxe-header--row:last-child .vxe-header--gutter,.iho-table .border--outer .vxe-header--row:last-child .vxe-header--gutter{background-image:linear-gradient(var(--c-border-color),var(--c-border-color))!important}.iho-table .vxe-table--header-border-line{border-bottom-color:var(--c-border-color)!important}.iho-table .vxe-table--fixed-left-wrapper.scrolling--middle{box-shadow:7px 0 8px -3px rgba(0,0,0,.15)!important}.iho-table .vxe-table--fixed-right-wrapper.scrolling--middle{box-shadow:-7px 0 8px -3px rgba(0,0,0,.15)!important}.iho-table .icon-dot{background:var(--table-icon-color);box-shadow:0 2px 4px 0 var(--table-icon-shadow)}.iho-table .icon-dot,.iho-table .icon-dot-red{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-red{background:red;box-shadow:0 2px 4px 0 rgba(255,0,0,.5)}.iho-table .icon-dot-blue{background:blue;box-shadow:0 2px 4px 0 rgba(0,0,255,.5)}.iho-table .icon-dot-blue,.iho-table .icon-dot-green{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-green{background:green;box-shadow:0 2px 4px 0 rgba(0,128,0,.5)}.iho-table .icon-dot-gray{background:gray;box-shadow:0 2px 4px 0 hsla(0,0%,50%,.5)}.iho-table .icon-dot-gray,.iho-table .icon-dot-yellow{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-yellow{background:#ff0;box-shadow:0 2px 4px 0 rgba(255,255,0,.5)}.iho-table .icon-dot-resolved{background:#36be8c;box-shadow:0 2px 4px 0 rgba(54,190,140,.5)}.iho-table .icon-dot-huifu,.iho-table .icon-dot-resolved{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-huifu{background:#42d0f6;box-shadow:0 2px 4px 0 rgba(66,208,246,.5)}.iho-table .icon-dot-close{background:#718391;box-shadow:0 2px 4px 0 rgba(113,131,145,.5)}.iho-table .icon-dot-audit,.iho-table .icon-dot-close{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-audit{background:#f4ba32;box-shadow:0 2px 4px 0 rgba(244,186,50,.5)}.iho-table .icon-dot-design{background:#927ce1;box-shadow:0 2px 4px 0 rgba(146,124,225,.5)}.iho-table .icon-dot-design,.iho-table .icon-dot-develop{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-develop{background:#4eb0ef;box-shadow:0 2px 4px 0 rgba(78,176,239,.5)}.iho-table .icon-dot-develop-complete{background:#6381f9;border-radius:50%;box-shadow:0 2px 4px 0 rgba(99,129,249,.5);display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .is--filter-active .vxe-cell--filter .vxe-filter--btn{color:var(--c-primary-color)}.iho-table__filterIcon{cursor:pointer;padding:0 4px}.iho-table__filterIcon:hover{opacity:.7}.iho-table__filterIcon.is-active{color:var(--c-primary-color)}.iho-table__filterWrapper{display:flex;flex-direction:column;gap:8px;margin:8px 12px;width:240px}.iho-table__filterCheckAllWrapper{display:flex;justify-content:space-between}.iho-table__filterCheckAllWrapper>div{flex:1}.iho-table__filterButton{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:30px;padding:0 8px}.iho-table__filterButton--active{color:var(--c-primary-color)}.iho-table__filterButton:hover{background:rgba(0,0,0,.05)}.iho-table__filterListWrapper{border:1px solid rgba(0,0,0,.05);overflow-x:hidden}.iho-table__filterListItem{align-items:center;border-radius:4px;display:flex;padding:0 8px}.iho-table__filterListItem:hover{background:var(--c-primary-color-opacity2)}.iho-table__filterListItem .n-checkbox,.iho-table__filterListItem .n-radio{width:100%}.iho-table__filterListItem>*{padding:5px 0}.iho-table__filterListItemContent{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:190px}.iho-table__filterFooter{display:flex;justify-content:space-between}.iho-table__time-picker{position:unset}.iho-table__time-picker .n-input{display:none}.iho-table__time-picker .v-binder-follower-container{height:auto;position:unset}.iho-table__time-picker .v-binder-follower-container .v-binder-follower-content{position:unset;transform:none!important}.iho-table__time-picker .v-binder-follower-container .v-binder-follower-content .n-time-picker-panel{box-shadow:none}.iho-table__scrollbar{margin:8px 8px 8px 0;max-height:255px}.iho-table .variable-height .vxe-cell,.iho-table .variable-height .vxe-cell--tree-node,.iho-table .variable-height .vxe-tree-cell{line-height:1.3;max-height:fit-content!important;white-space:break-spaces!important}.iho-table__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.iho-table__selectMenu .n-virtual-list::-webkit-scrollbar,.iho-table__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.iho-table__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.iho-table__selectMenu .v-vl-items{min-width:100%;width:max-content}.iho-table__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}.iho-table__selectOptionWrapper{align-items:center;display:flex}.iho-table .is--checked.vxe-checkbox,.iho-table .is--checked.vxe-checkbox .vxe-checkbox--icon,.iho-table .is--checked.vxe-custom--option,.iho-table .is--checked.vxe-custom--option .vxe-checkbox--icon,.iho-table .is--checked.vxe-export--panel-column-option,.iho-table .is--checked.vxe-export--panel-column-option .vxe-checkbox--icon,.iho-table .is--checked.vxe-table--filter-option,.iho-table .is--checked.vxe-table--filter-option .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-checkbox,.iho-table .is--indeterminate.vxe-checkbox .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-custom--option,.iho-table .is--indeterminate.vxe-custom--option .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-export--panel-column-option,.iho-table .is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-table--filter-option,.iho-table .is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon,.iho-table .vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-custom--option:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-export--panel-column-option:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-table .vxe-sort--asc-btn.sort--active,.iho-table .vxe-table .vxe-sort--desc-btn.sort--active,.iho-table .vxe-table--filter-option:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-table--render-default .is--checked.vxe-cell--checkbox,.iho-table .vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon,.iho-table .vxe-table--render-default .is--indeterminate.vxe-cell--checkbox,.iho-table .vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon,.iho-table .vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--c-primary-color)}.iho-table .vxe-header--column [annotation-hover-show=true]{visibility:hidden}.iho-table .vxe-header--column:hover [annotation-hover-show=true]{visibility:visible}@font-face{font-family:iho-table-iconfont;src:url(iconfont.ttf) format("truetype")}.iho-table .iho-table--iconfont{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:iho-table-iconfont!important;font-size:15px;font-style:normal}.iho-table .iho-table-icon-filter{display:inline-block;font-size:17px;transform:translateY(-1px);vertical-align:middle}.iho-table .iho-table-icon-filter:before{content:"\c2001"}.iho-table .iho-table-icon-date-filter{display:inline-block;transform:translateY(-1px)}.iho-table .iho-table-icon-date-filter:before{content:"\c2002"}.iho-table .row--custom{background-color:var(--row-background-color)}.iho-table__colorAndIcon{background-color:var(--color-and-icon-background-color-type);color:var(--color-and-icon-color-type)}.iho-table__htmlRender *{display:inline!important}.iho-table__ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1
+ .iho-table{height:100%}.iho-table .vxe-header--column{font-weight:400;text-shadow:0 0 1px}.iho-table .vxe-body--column.col--drag{cursor:move}.iho-table .vxe-table.size--mini{font-size:14px}.iho-table .vxe-table.size--mini .vxe-body--column:not(.col--ellipsis),.iho-table .vxe-table.size--mini .vxe-footer--column:not(.col--ellipsis),.iho-table .vxe-table.size--mini .vxe-header--column:not(.col--ellipsis){padding:4px 0}.iho-table .vxe-table.size--mini .vxe-sort--asc-btn{top:-2px}.iho-table .vxe-table.size--mini .vxe-sort--desc-btn{bottom:0}.iho-table__headerWrapper{display:inline-flex;flex-wrap:nowrap}.iho-table__boldCell{font-weight:700}.iho-table .vxe-table .vxe-table--header-wrapper,.iho-table .vxe-table.vxe-table--render-default{color:#212121}.iho-table .vxe-table--body-wrapper::-webkit-scrollbar,.iho-table .vxe-table--footer-wrapper.body--wrapper::-webkit-scrollbar{background-color:transparent;height:10px;width:10px}.iho-table .vxe-table--body-wrapper::-webkit-scrollbar-thumb,.iho-table .vxe-table--footer-wrapper.body--wrapper::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:#b2b2b2;border:3px dashed transparent;border-radius:5px}.iho-table .vxe-table--body-wrapper::-webkit-scrollbar-thumb:hover,.iho-table .vxe-table--footer-wrapper.body--wrapper::-webkit-scrollbar-thumb:hover{background:#b2b2b2}.iho-table .vxe-table--empty-content{height:100%;width:100%}.iho-table .vxe-table--empty-content>div,.iho-table .vxe-tree-cell{height:100%}.iho-table .vxe-table--header{background-color:#f2f2f2}.iho-table .vxe-table--header .checkbox-cell--disable{border:2px solid #c0c4cc;border-radius:50%;box-sizing:border-box;cursor:not-allowed;display:inline-block;height:18px;left:-2px;position:relative;top:3px;width:18px}.iho-table .vxe-table--header .checkbox-cell--disable:before{background-color:#c0c4cc;content:"";height:16px;left:50%;position:absolute;top:-2px;transform:translate(-60%) rotate(-45deg);width:2px}.iho-table .vxe-footer--row .vxe-footer--column>.vxe-cell .vxe-cell--item{height:30px;line-height:30px}.iho-table .vxe-table--render-default .vxe-body--column.col--selected{box-shadow:inset 0 0 0 2px var(--c-primary-color)}.iho-table .vxe-table--render-default .vxe-body--row.row--hover,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--stripe{background-color:var(--c-hover-color)}.iho-table .vxe-table--render-default .vxe-body--row.row--checked,.iho-table .vxe-table--render-default .vxe-body--row.row--current,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--checked,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--current,.iho-table .vxe-table--render-default .vxe-body--row.row--hover.row--radio,.iho-table .vxe-table--render-default .vxe-body--row.row--radio{background-color:var(--c-primary-color-opacity2);text-shadow:0 0 1px}.iho-table .vxe-table--render-default .vxe-body--row.row--stripe{background-color:var(--c-stripe-color)}.iho-table .vxe-body--expanded-column,.iho-table .vxe-table--border-line{border-color:var(--c-border-color)!important}.iho-table .vxe-table--footer-wrapper{border-top-color:var(--c-border-color)!important}.iho-table .border--default .vxe-body--column,.iho-table .border--default .vxe-footer--column,.iho-table .border--default .vxe-header--column,.iho-table .border--inner .vxe-body--column,.iho-table .border--inner .vxe-footer--column,.iho-table .border--inner .vxe-header--column{background-image:linear-gradient(var(--c-border-color),var(--c-border-color))!important}.iho-table .border--full .vxe-body--column,.iho-table .border--full .vxe-footer--column,.iho-table .border--full .vxe-header--column{background-image:linear-gradient(var(--c-border-color),var(--c-border-color)),linear-gradient(var(--c-border-color),var(--c-border-color))!important}.iho-table .border--default .vxe-header--row:last-child .vxe-header--gutter,.iho-table .border--full .vxe-header--row:last-child .vxe-header--gutter,.iho-table .border--inner .vxe-header--row:last-child .vxe-header--gutter,.iho-table .border--outer .vxe-header--row:last-child .vxe-header--gutter{background-image:linear-gradient(var(--c-border-color),var(--c-border-color))!important}.iho-table .vxe-table--header-border-line{border-bottom-color:var(--c-border-color)!important}.iho-table .vxe-table--fixed-left-wrapper.scrolling--middle{box-shadow:7px 0 8px -3px rgba(0,0,0,.15)!important}.iho-table .vxe-table--fixed-right-wrapper.scrolling--middle{box-shadow:-7px 0 8px -3px rgba(0,0,0,.15)!important}.iho-table .icon-dot{background:var(--table-icon-color);box-shadow:0 2px 4px 0 var(--table-icon-shadow)}.iho-table .icon-dot,.iho-table .icon-dot-red{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-red{background:red;box-shadow:0 2px 4px 0 rgba(255,0,0,.5)}.iho-table .icon-dot-blue{background:blue;box-shadow:0 2px 4px 0 rgba(0,0,255,.5)}.iho-table .icon-dot-blue,.iho-table .icon-dot-green{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-green{background:green;box-shadow:0 2px 4px 0 rgba(0,128,0,.5)}.iho-table .icon-dot-gray{background:gray;box-shadow:0 2px 4px 0 hsla(0,0%,50%,.5)}.iho-table .icon-dot-gray,.iho-table .icon-dot-yellow{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-yellow{background:#ff0;box-shadow:0 2px 4px 0 rgba(255,255,0,.5)}.iho-table .icon-dot-resolved{background:#36be8c;box-shadow:0 2px 4px 0 rgba(54,190,140,.5)}.iho-table .icon-dot-huifu,.iho-table .icon-dot-resolved{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-huifu{background:#42d0f6;box-shadow:0 2px 4px 0 rgba(66,208,246,.5)}.iho-table .icon-dot-close{background:#718391;box-shadow:0 2px 4px 0 rgba(113,131,145,.5)}.iho-table .icon-dot-audit,.iho-table .icon-dot-close{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-audit{background:#f4ba32;box-shadow:0 2px 4px 0 rgba(244,186,50,.5)}.iho-table .icon-dot-design{background:#927ce1;box-shadow:0 2px 4px 0 rgba(146,124,225,.5)}.iho-table .icon-dot-design,.iho-table .icon-dot-develop{border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .icon-dot-develop{background:#4eb0ef;box-shadow:0 2px 4px 0 rgba(78,176,239,.5)}.iho-table .icon-dot-develop-complete{background:#6381f9;border-radius:50%;box-shadow:0 2px 4px 0 rgba(99,129,249,.5);display:inline-block;height:8px;margin-right:6px;width:8px}.iho-table .is--filter-active .vxe-cell--filter .vxe-filter--btn{color:var(--c-primary-color)}.iho-table__filterIcon{cursor:pointer;padding:0 4px}.iho-table__filterIcon:hover{opacity:.7}.iho-table__filterIcon.is-active{color:var(--c-primary-color)}.iho-table__filterWrapper{display:flex;flex-direction:column;gap:8px;margin:8px 12px;width:240px}.iho-table__filterCheckAllWrapper{display:flex;justify-content:space-between}.iho-table__filterCheckAllWrapper>div{flex:1}.iho-table__filterButton{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:30px;padding:0 8px}.iho-table__filterButton--active{color:var(--c-primary-color)}.iho-table__filterButton:hover{background:rgba(0,0,0,.05)}.iho-table__filterListWrapper{border:1px solid rgba(0,0,0,.05);overflow-x:hidden}.iho-table__filterListItem{align-items:center;border-radius:4px;display:flex;padding:0 8px}.iho-table__filterListItem:hover{background:var(--c-primary-color-opacity2)}.iho-table__filterListItem .n-checkbox,.iho-table__filterListItem .n-radio{width:100%}.iho-table__filterListItem>*{padding:5px 0}.iho-table__filterListItemContent{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:190px}.iho-table__filterFooter{display:flex;justify-content:space-between}.iho-table__time-picker{position:unset}.iho-table__time-picker .n-input{display:none}.iho-table__time-picker .v-binder-follower-container{height:auto;position:unset}.iho-table__time-picker .v-binder-follower-container .v-binder-follower-content{position:unset;transform:none!important}.iho-table__time-picker .v-binder-follower-container .v-binder-follower-content .n-time-picker-panel{box-shadow:none}.iho-table__scrollbar{margin:8px 8px 8px 0;max-height:255px}.iho-table .variable-height .vxe-cell,.iho-table .variable-height .vxe-cell--tree-node,.iho-table .variable-height .vxe-tree-cell{line-height:1.3;max-height:fit-content!important;white-space:break-spaces!important}.iho-table__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.iho-table__selectMenu .n-virtual-list::-webkit-scrollbar,.iho-table__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.iho-table__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.iho-table__selectMenu .v-vl-items{min-width:100%;width:max-content}.iho-table__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}.iho-table__selectOptionWrapper{align-items:center;display:flex}.iho-table .is--checked.vxe-checkbox,.iho-table .is--checked.vxe-checkbox .vxe-checkbox--icon,.iho-table .is--checked.vxe-custom--option,.iho-table .is--checked.vxe-custom--option .vxe-checkbox--icon,.iho-table .is--checked.vxe-export--panel-column-option,.iho-table .is--checked.vxe-export--panel-column-option .vxe-checkbox--icon,.iho-table .is--checked.vxe-table--filter-option,.iho-table .is--checked.vxe-table--filter-option .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-checkbox,.iho-table .is--indeterminate.vxe-checkbox .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-custom--option,.iho-table .is--indeterminate.vxe-custom--option .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-export--panel-column-option,.iho-table .is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon,.iho-table .is--indeterminate.vxe-table--filter-option,.iho-table .is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon,.iho-table .vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-custom--option:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-export--panel-column-option:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-table .vxe-sort--asc-btn.sort--active,.iho-table .vxe-table .vxe-sort--desc-btn.sort--active,.iho-table .vxe-table--filter-option:not(.is--disabled):hover .vxe-checkbox--icon,.iho-table .vxe-table--render-default .is--checked.vxe-cell--checkbox,.iho-table .vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon,.iho-table .vxe-table--render-default .is--indeterminate.vxe-cell--checkbox,.iho-table .vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon,.iho-table .vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--c-primary-color)}.iho-table .vxe-header--column [annotation-hover-show=true]{visibility:hidden}.iho-table .vxe-header--column:hover [annotation-hover-show=true]{visibility:visible}@font-face{font-family:iho-table-iconfont;src:url(iconfont.ttf) format("truetype")}.iho-table .iho-table--iconfont{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:iho-table-iconfont!important;font-size:15px;font-style:normal}.iho-table .iho-table-icon-filter{display:inline-block;font-size:17px;transform:translateY(-1px);vertical-align:middle}.iho-table .iho-table-icon-filter:before{content:"\c2001"}.iho-table .iho-table-icon-date-filter{display:inline-block;transform:translateY(-1px)}.iho-table .iho-table-icon-date-filter:before{content:"\c2002"}.iho-table .row--custom{background-color:var(--row-background-color)}.iho-table__colorAndIcon{background-color:var(--color-and-icon-background-color-type);color:var(--color-and-icon-color-type)}.iho-table__htmlRender *{display:inline!important}.iho-table__ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}