cnhis-design-vue 3.1.51-beta.6 → 3.1.51-beta.7

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.
@@ -1 +1 @@
1
- import{unref as e}from"vue";import{promiseTimeout as t}from"@vueuse/shared";import"../../../index.js";import{useSessionStorage as n}from"@vueuse/core";import{isString as o,trim as l,isEmpty as i,isEqual as r,isFunction as u}from"lodash-es";import{selectOptionsMap as d}from"../rendererPlugins/editableWidgets/hooks/useSelectOption.js";import{IhoTableUtils as a}from"../../utils/index.js";import{EDITABLE_WIDGET_TYPE as s}from"../../constants/index.js";import{parse as c,isValid as p,compareDesc as f}from"date-fns";import{defineTablePlugin as m}from"../../hooks/useTablePlugin.js";function v(){const v="keyboardEventPlugin",g=n("ihoTableClipData","");return m({name:v,apply(n){function m(t,n,m,v,w){var b,C;if(!(null==(b=null==m?void 0:m.keyboardConfig)?void 0:b.isClip))return;if("paste"===t&&!n.getSelectedCell())return;const{row:y,column:R}=n.getSelectedCell()||n.getEditRecord()||{};if(!y||!R||!E(R,s.SELECT)&&e(g)===y[R.field])return;const x=m.uuid&&E(R,s.SELECT)&&d.get(m.uuid)[R.field],T=y[R.field];if("copy"===t){const e=(null==(C=(x||[]).filter((e=>T.includes(e.value))))?void 0:C.map((e=>e.label)).join(","))||T;g.value=e}else{if(o(e(g))&&(g.value=l(e(g)||"")),!e(g)||!function(e){var t;const n=null==(t=e.editRender)?void 0:t.props;return n&&Object.keys(s).includes(a.getCellType(n))}(R)||y.$__SEPARATE||!function(e,t,n,o){var l,i;const{beforeEditMethod:r}=t.editConfig||{},d={rowIndex:null!=(l=e.getRowIndex(n))?l:0,columnIndex:null!=(i=e.getColumnIndex(o))?i:0};return!r||u(r)&&r({row:n,column:o,...d,$table:e,$grid:void 0})}(n,m,y,R))return;if(E(R,s.DATE)&&function(t,n){var l;const i=null==(l=t.editRender)?void 0:l.props,r=e(g)||"";return!p(new Date(r))||o(i.connectField)&&n[i.connectField]&&(i.isStartDate&&f(new Date(r),new Date(n[i.connectField]))<0||i.isEndDate&&f(new Date(r),new Date(n[i.connectField]))>0)}(R,y))return;if(E(R,s.NUMBER)&&!/^-?\d*\.?\d+$/.test((e(g)||"").toString()))return;if(E(R,s.TIME)&&function(t){var n,o;const l=e(g)||"",i=null==(n=t.editRender)?void 0:n.props,r=c(l,(null==(o=null==i?void 0:i.componentProps)?void 0:o.valueFormat)||"HH:mm",new Date);return!p(r)}(R))return;let t=e(g)||"";if(x&&!i(x)){const e=x.filter((e=>t.split(",").includes(e.label))).map((e=>e.value));if(i(e))return;if(function(e){var t,n;const o=null==(t=e.editRender)?void 0:t.props;return E(e,s.SELECT)&&(null==(n=o.componentProps)?void 0:n.multiple)}(R)){if(r(T,e))return;t=e}else{if(e.includes(T))return;t=e[0]}}y[R.field]=t,v("formChange",{column:R,row:y,oldValue:T,value:t,index:n.getRowIndex(y)}),E(R,s.SEPARATE)&&(null==w||w())}}function E(e,t){var n;const o=null==(n=e.editRender)?void 0:n.props;return o&&a.getCellType(o)===t}n.eventHooks.onCopy.tap(v,(({$table:e},t,{emits:n})=>m("copy",e,t,n))),n.eventHooks.onPaste.tap(v,(({$table:e},t,{emits:n,updateTableDataRef:o})=>m("paste",e,t,n,o))),n.eventHooks.onKeydown.tap(v,(async({$event:e,$table:n},o,{emits:l})=>{await t(0);const{row:i,column:r}=n.getSelectedCell()||n.getEditRecord()||{};if(!i||!r)return;l("keyboard",{$table:n,key:e.key,index:n.getRowIndex(i),value:i[r.field],row:i,column:r})}))}})}export{v as keyboardEventPlugin};
1
+ import{unref as e}from"vue";import{promiseTimeout as t}from"@vueuse/shared";import"../../../index.js";import{useSessionStorage as n}from"@vueuse/core";import{selectOptionsMap as o}from"../rendererPlugins/editableWidgets/hooks/useSelectOption.js";import{IhoTableUtils as l}from"../../utils/index.js";import{EDITABLE_WIDGET_TYPE as i}from"../../constants/index.js";import{isString as r,trim as u,isEmpty as d,isEqual as a,isFunction as s}from"lodash-es";import{parse as c,isValid as p,compareDesc as f}from"date-fns";import{defineTablePlugin as m}from"../../hooks/useTablePlugin.js";function v(){const v="keyboardEventPlugin",g=n("ihoTableClipData","");return m({name:v,apply(n){function m(t,n,m,v,w){var b,C;if(!(null==(b=null==m?void 0:m.keyboardConfig)?void 0:b.isClip))return;if("paste"===t&&!n.getSelectedCell())return;const{row:y,column:R}=n.getSelectedCell()||n.getEditRecord()||{};if(!y||!R||!E(R,i.SELECT)&&e(g)===y[R.field])return;const x=m.uuid&&E(R,i.SELECT)&&o.get(m.uuid)[R.field],T=y[R.field];if("copy"===t){const e=(null==(C=(x||[]).filter((e=>T.includes(e.value))))?void 0:C.map((e=>e.label)).join(","))||T;g.value=e}else{if(r(e(g))&&(g.value=u(e(g)||"")),!e(g)||!function(e){var t;const n=null==(t=e.editRender)?void 0:t.props;return n&&Object.keys(i).includes(l.getCellType(n))}(R)||y.$__SEPARATE||!function(e,t,n,o){var l,i;const{beforeEditMethod:r}=t.editConfig||{},u={rowIndex:null!=(l=e.getRowIndex(n))?l:0,columnIndex:null!=(i=e.getColumnIndex(o))?i:0};return!r||s(r)&&r({row:n,column:o,...u,$table:e,$grid:void 0})}(n,m,y,R))return;if(E(R,i.DATE)&&function(t,n){var o;const l=null==(o=t.editRender)?void 0:o.props,i=e(g)||"";return!p(new Date(i))||r(l.connectField)&&n[l.connectField]&&(l.isStartDate&&f(new Date(i),new Date(n[l.connectField]))<0||l.isEndDate&&f(new Date(i),new Date(n[l.connectField]))>0)}(R,y))return;if(E(R,i.NUMBER)&&!/^-?\d*\.?\d+$/.test((e(g)||"").toString()))return;if(E(R,i.TIME)&&function(t){var n,o;const l=e(g)||"",i=null==(n=t.editRender)?void 0:n.props,r=c(l,(null==(o=null==i?void 0:i.componentProps)?void 0:o.valueFormat)||"HH:mm",new Date);return!p(r)}(R))return;let t=e(g)||"";if(x&&!d(x)){const e=x.filter((e=>t.split(",").includes(e.label))).map((e=>e.value));if(d(e))return;if(function(e){var t,n;const o=null==(t=e.editRender)?void 0:t.props;return E(e,i.SELECT)&&(null==(n=o.componentProps)?void 0:n.multiple)}(R)){if(a(T,e))return;t=e}else{if(e.includes(T))return;t=e[0]}}y[R.field]=t,v("formChange",{column:R,row:y,oldValue:T,value:t,index:n.getRowIndex(y)}),E(R,i.SEPARATE)&&(null==w||w())}}function E(e,t){var n;const o=null==(n=e.editRender)?void 0:n.props;return o&&l.getCellType(o)===t}n.eventHooks.onCopy.tap(v,(({$table:e},t,{emits:n})=>m("copy",e,t,n))),n.eventHooks.onPaste.tap(v,(({$table:e},t,{emits:n,updateTableDataRef:o})=>m("paste",e,t,n,o))),n.eventHooks.onKeydown.tap(v,(async({$event:e,$table:n},o,{emits:l})=>{await t(0);const{row:i,column:r}=n.getSelectedCell()||n.getEditRecord()||{};if(!i||!r)return;l("keyboard",{$table:n,key:e.key,index:n.getRowIndex(i),value:i[r.field],row:i,column:r})}))}})}export{v as keyboardEventPlugin};
@@ -59,6 +59,14 @@ declare const _default: import("vue").DefineComponent<{
59
59
  type: BooleanConstructor;
60
60
  default: boolean;
61
61
  };
62
+ deletable: {
63
+ type: BooleanConstructor;
64
+ default: boolean;
65
+ };
66
+ selectAll: {
67
+ type: BooleanConstructor;
68
+ default: boolean;
69
+ };
62
70
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
63
71
  value: {
64
72
  type: PropType<string | number | (string | number)[]>;
@@ -116,6 +124,14 @@ declare const _default: import("vue").DefineComponent<{
116
124
  type: BooleanConstructor;
117
125
  default: boolean;
118
126
  };
127
+ deletable: {
128
+ type: BooleanConstructor;
129
+ default: boolean;
130
+ };
131
+ selectAll: {
132
+ type: BooleanConstructor;
133
+ default: boolean;
134
+ };
119
135
  }>> & {
120
136
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
121
137
  }, {
@@ -124,8 +140,10 @@ declare const _default: import("vue").DefineComponent<{
124
140
  labelField: string;
125
141
  valueField: string;
126
142
  placeholder: string;
143
+ deletable: boolean;
127
144
  shouldSave: boolean;
128
145
  consistentMenuWidth: boolean;
129
146
  allowCreate: boolean;
147
+ selectAll: boolean;
130
148
  }>;
131
149
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,inject as l,ref as t,computed as o,createVNode as a,toRaw as n,Fragment as u,createTextVNode as i}from"vue";import{keywordMatcher as r,arrayed as d}from"../../../../../../../shared/utils/index.js";import{NSelect as s,NTooltip as p,NIcon as c,NTag as v,NButton as m}from"naive-ui";import{HelpCircleSharp as f}from"@vicons/ionicons5";import{InjectionIhoTableUUID as y}from"../../../../constants/index.js";import{selectOptionsMap as h}from"../hooks/useSelectOption.js";import{useIhoTableFormEvent as b}from"../../../../utils/index.js";import{useDebounceFn as F}from"@vueuse/core";import{isEmpty as w,isFunction as g,isArray as S,isObject as O,omit as q,cloneDeep as x}from"lodash-es";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:"请选择"},allowCreate:{type:Boolean,default:!1},shouldSave:{type:Boolean,default:!1},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean,default:!1}},emits:["update:value"],setup(e,{emit:j}){const k=l("$xetable"),C=t(null);function P(e){C.value=e}const _=t(!1),{emitFormChangeWithParams:W}=b({...e,$table:k}),B=t("");function M(){return U()}const $=t([]),E=o((()=>{let l=w($.value)?e.options:$.value;return B.value?(l=l.filter((l=>l[e.labelField]&&l[e.labelField].includes(B.value)||r(B.value,l.keyword))),!e.allowCreate||l.some((l=>l[e.labelField]===B.value))?l:[...l,{[e.labelField]:B.value,[e.valueField]:B.value,created:!0,shouldSave:e.shouldSave}]):l})),I=t(!1),U=F((async function(l=""){B.value=l;try{if(I.value=!0,!g(e.queryOptions)||!w(e.options))return;$.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),V=l(y);function z(l,t){const o=e.value;j("update:value",l);const a=h.get(V);a&&S(a[e.column.field])&&d(t).forEach((l=>{if(!O(l))return;const t=l;t.created&&t.shouldSave&&a[e.column.field].push(q(n(t),["created","shouldSave"]))})),W({oldValue:o,option:x(t)})}function A(e){var l,t;"Tab"===e.key&&C.value&&(null==(t=(l=C.value).handleKeydown)||t.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}))}function D(l){const t=l?E.value.map((l=>l[e.valueField])):[],o=e.value,a=S(o)?o.length:0;t.length!==a&&(j("update:value",t),W({oldValue:o,option:l?x(E.value):[]}))}function K({node:e,option:l}){return l.desc?a("div",{class:"iho-table__selectOptionWrapper"},[[e,a(p,null,{trigger:()=>a(c,{component:f},null),default:()=>l.desc})]]):e}function N({option:l,handleClose:t}){var o;const n=null!=(o=e.aliasField&&l[e.aliasField])?o:l[e.labelField];return S(e.value)?a(v,{closable:!0,onClose:e=>{e.stopPropagation(),t()}},{default:()=>n}):a(u,null,[n])}function T(){return e.multiple?a("div",null,[[a(m,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>D(!0)},{default:()=>[i("全选")]}),a(m,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>D(!1)},{default:()=>[i("清空")]})]]):null}const G=()=>({class:"iho-table__selectOption"}),H=o((()=>{var l,t;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(t=null==(l=e.menuProps)?void 0:l.class)?t:""}`}}));return()=>a(s,{ref:P,show:_.value,"onUpdate:show":e=>_.value=e,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:I.value,options:E.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:U,clearable:!0,filterable:!0,nodeProps:G,menuProps:H.value,renderTag:N,renderOption:K,onUpdateShow:M,onUpdateValue:z,onKeydown:A},{action:T})}});export{j as default};
1
+ import{defineComponent as e,inject as l,ref as t,computed as o,createVNode as a,toRaw as n,Fragment as u,createTextVNode as r}from"vue";import{keywordMatcher as i,arrayed as d}from"../../../../../../../shared/utils/index.js";import{NSelect as s,NTooltip as p,NIcon as c,NTag as v,NButton as m}from"naive-ui";import{HelpCircleSharp as f}from"@vicons/ionicons5";import{InjectionIhoTableUUID as y}from"../../../../constants/index.js";import{selectOptionsMap as h}from"../hooks/useSelectOption.js";import{useIhoTableFormEvent as b}from"../../../../utils/index.js";import{useDebounceFn as F}from"@vueuse/core";import{isEmpty as w,isFunction as g,isArray as S,isObject as O,omit as q,cloneDeep as x}from"lodash-es";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:"请选择"},allowCreate:{type:Boolean,default:!1},shouldSave:{type:Boolean,default:!1},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean,default:!1},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0}},emits:["update:value"],setup(e,{emit:j}){const k=l("$xetable"),C=t(null);function P(e){C.value=e}const B=t(!1),{emitFormChangeWithParams:_}=b({...e,$table:k}),W=t("");function $(){return I()}const A=t([]),M=o((()=>{let l=w(A.value)?e.options:A.value;return W.value?(l=l.filter((l=>l[e.labelField]&&l[e.labelField].includes(W.value)||i(W.value,l.keyword))),!e.allowCreate||l.some((l=>l[e.labelField]===W.value))?l:[...l,{[e.labelField]:W.value,[e.valueField]:W.value,created:!0,shouldSave:e.shouldSave}]):l})),E=t(!1),I=F((async function(l=""){W.value=l;try{if(E.value=!0,!g(e.queryOptions)||!w(e.options))return;A.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{E.value=!1}}),400),U=l(y);function V(l,t){const o=e.value;j("update:value",l);const a=h.get(U);a&&S(a[e.column.field])&&d(t).forEach((l=>{if(!O(l))return;const t=l;t.created&&t.shouldSave&&a[e.column.field].push(q(n(t),["created","shouldSave"]))})),_({oldValue:o,option:x(t)})}function z(e){var l,t;"Tab"===e.key&&C.value&&(null==(t=(l=C.value).handleKeydown)||t.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}))}function D(l){const t=l?M.value.map((l=>l[e.valueField])):[],o=e.value,a=S(o)?o.length:0;t.length!==a&&(j("update:value",t),_({oldValue:o,option:l?x(M.value):[]}))}function K({node:e,option:l}){return l.desc?a("div",{class:"iho-table__selectOptionWrapper"},[[e,a(p,null,{trigger:()=>a(c,{component:f},null),default:()=>l.desc})]]):e}function N({option:l,handleClose:t}){var o;const n=null!=(o=e.aliasField&&l[e.aliasField])?o:l[e.labelField];return S(e.value)?e.deletable?a(v,{closable:!0,onClose:e=>{e.stopPropagation(),t()}},{default:()=>n}):`${n} ;`:a(u,null,[n])}function T(){return a(u,null,[a(m,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>D(!0)},{default:()=>[r("全选")]}),a(m,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>D(!1)},{default:()=>[r("清空")]})])}const G=()=>({class:"iho-table__selectOption"}),H=o((()=>{var l,t;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(t=null==(l=e.menuProps)?void 0:l.class)?t:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=T),a(s,{ref:P,show:B.value,"onUpdate:show":e=>B.value=e,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:E.value,options:M.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:I,clearable:!0,filterable:!0,nodeProps:G,menuProps:H.value,renderTag:N,renderOption:K,onUpdateShow:$,onUpdateValue:V,onKeydown:z},l)}}});export{j as default};
@@ -1 +1 @@
1
- import{inject as e,createVNode as o,mergeProps as t,onBeforeUnmount as i}from"vue";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as n,InjectionIhoTableUUID as l}from"../../../../constants/index.js";import{useAutoFocus as r}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as s,getTitle as u,IhoTableRenderHelper as d,IhoTableUtils as p}from"../../../../utils/index.js";import c from"./editSelect.js";import{getDefaultValue as a,getArray as f}from"./selectUtils.js";import{selectOptionsMap as m}from"../hooks/useSelectOption.js";import{defineTablePlugin as v}from"../../../../hooks/useTablePlugin.js";function E(){const E="selectRendererPlugin";return v({name:E,vxe(i){i.interceptor.add("event.clearActived",s(n.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),i.renderer.add(n.SELECT,{renderCell({props:t},{row:i,column:n}){const r=e(l),s=m.get(r)[n.field]||[],d=a(i,t,s);return[o("span",{title:u(n,d)},[d])]},renderEdit:d.createRenderEdit((({fieldItem:i,emitFormClick:n,row:r,column:s,$rowIndex:u})=>{const d=e(l),p=m.get(d)[s.field]||[];return[o(c,t({queryOptions:i.queryOptions},i.componentProps,{options:p,column:s,row:r,"row-index":u,value:r[s.field],"onUpdate:value":e=>r[s.field]=e,onClick:n}),null)]}))})},apply(e){r(e).bindAutoFocusConfig(E,n.SELECT,".n-base-selection-input");let o=null;e.fieldHooks.fieldList.tap(E,((e,{uuid:t})=>(o=e,t&&m.set(t,{}),e))),e.fieldHooks.fieldEnd.tapPromise(E,(async({uuid:e})=>{if(!e)return;const t=m.get(e);null==o||o.forEach((async e=>{var o,i,n;const l=null==(o=e.editRender)?void 0:o.props;if(e.field&&l&&"SELECT"===p.getCellType(l)){if(t[e.field])return;let o=f(l.options)||f(null==(i=l.componentProps)?void 0:i.options)||[];if(l.queryOptions)try{const t={column:e,isFullData:!0};o=await(null==(n=l.queryOptions)?void 0:n.call(l,t))}catch(e){console.log(`获取${l.field}_options错误`)}t[e.field]=o}})),o=null})),e.setupHooks.setup.tap(E,(e=>{i((()=>{e.value.uuid&&m.delete(e.value.uuid)}))}))}})}export{E as selectRendererPlugin};
1
+ import{inject as e,createVNode as o,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 n,InjectionIhoTableUUID as r}from"../../../../constants/index.js";import{useAutoFocus as s}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as u,getTitle as d,IhoTableRenderHelper as c,IhoTableUtils as a}from"../../../../utils/index.js";import p from"./editSelect.js";import{getDefaultValue as m,getArray as f}from"./selectUtils.js";import{selectOptionsMap as v}from"../hooks/useSelectOption.js";import{isEqual as E}from"lodash-es";import{defineTablePlugin as g}from"../../../../hooks/useTablePlugin.js";function C(){const C="selectRendererPlugin";return g({name:C,vxe(l){l.interceptor.add("event.clearActived",u(n.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),l.renderer.add(n.SELECT,{renderCell({props:t},{row:l,column:n}){var s;const u=e(r),c=v.get(u)[n.field]||[],a=m(l,t,c),p=i(a).join(","),f=t&&(!0===(E=t.variableHeight)||"1"===E||(null==(s=t.componentProps)?void 0:s.indexedText));var E;return[o("span",{title:d(n,p)},[f?i(a).filter((e=>null!=e)).map(((e,t)=>[t+1,".",e,";",o("br",null,null)])):p])]},renderEdit:c.createRenderEdit((({fieldItem:l,emitFormClick:i,row:n,column:s,$rowIndex:u})=>{const d=e(r),c=v.get(d)[s.field]||[];return[o(p,t({queryOptions:l.queryOptions},l.componentProps,{options:c,column:s,row:n,"row-index":u,value:n[s.field],"onUpdate:value":e=>n[s.field]=e,onClick:i}),null)]}))})},apply(e){s(e).bindAutoFocusConfig(C,n.SELECT,".n-base-selection-input");let o=null;e.fieldHooks.fieldList.tap(C,((e,{uuid:t})=>(o=e,t&&v.set(t,{}),e))),e.fieldHooks.fieldEnd.tapPromise(C,(async({uuid:e})=>{if(!e)return;const t=v.get(e);null==o||o.forEach((async e=>{var o,l,i;const n=null==(o=e.editRender)?void 0:o.props;if(e.field&&n&&"SELECT"===a.getCellType(n)){if(t[e.field])return;let o=f(n.options)||f(null==(l=n.componentProps)?void 0:l.options)||[];if(n.queryOptions)try{const t={column:e,isFullData:!0};o=await(null==(i=n.queryOptions)?void 0:i.call(n,t))}catch(e){console.log(`获取${n.field}_options错误`)}t[e.field]=o}})),o=null})),e.setupHooks.setup.tap(C,(e=>{l((()=>{e.value.uuid&&v.delete(e.value.uuid)}))})),e.eventHooks.onCellDblclick.tap(C,(({$table:e},o,{emits:t})=>{var l;const{column:i,row:r}=e.reactData.editStore.actived,s=null==(l=i.editRender)?void 0:l.props,{cellDblclickSelectable:u=!1,multiple:d=!1,valueField:c="value"}=s.componentProps||{};if(!u||!i||!function(e){return e&&a.getCellType(e)===n.SELECT}(s))return;const p=o.uuid&&v.get(o.uuid)[i.field];if(1!==(null==p?void 0:p.length))return;const m=d?[p[0][c]]:p[0][c],f=r[i.field];e.clearEdit(),E(m,f)||(r[i.field]=m,t("formChange",{column:i,row:r,oldValue:f,value:m,index:e.getRowIndex(r),$table:e,option:p[0]}))}))}})}export{C as selectRendererPlugin};
@@ -1 +1 @@
1
- function l(l,r,u=[]){const{aliasField:i="",labelField:o="label",valueField:e="value"}=(null==r?void 0:r.componentProps)||{},a=l[r.columnName];return Array.isArray(a)?a.map((l=>t(l))).join(","):t(a);function t(l){var r,a,t;const d=null==(r=n(u))?void 0:r.find((n=>n[e]==l));return null!=(t=null!=(a=null==d?void 0:d[i])?a:null==d?void 0:d[o])?t:l}}function n(l){return Array.isArray(l)&&!l.length?null:l}export{n as getArray,l as getDefaultValue};
1
+ function l(l,r,u=[]){const{aliasField:e="",labelField:i="label",valueField:o="value"}=(null==r?void 0:r.componentProps)||{},a=l[r.columnName];return Array.isArray(a)?a.map((l=>t(l))):t(a);function t(l){var r,a,t;const d=null==(r=n(u))?void 0:r.find((n=>n[o]==l));return null!=(t=null!=(a=null==d?void 0:d[e])?a:null==d?void 0:d[i])?t:l}}function n(l){return Array.isArray(l)&&!l.length?null:l}export{n as getArray,l as getDefaultValue};
@@ -1 +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 d,h as c}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{EDITABLE_WIDGET_TYPE as b,InjectionIhoTableUUID as I}from"../../constants/index.js";import{useUUIDMap as T,IhoTableUtils as w}from"../../utils/index.js";import{defineTablePlugin as R}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:H,removeItemFromUUID:M}=T((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:C,setItemFromUUID:U}=T((()=>null)),{getItemFromUUID:$,removeItemFromUUID:k,setItemFromUUID:F}=T((()=>{}));let j={};function E(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=H(a),{oSize:u=0,gt:d=100}=null!=(n=$(a))?n:{},{internalData:c,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=c;if(d>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let T=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const w=[0];let R=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(w)||0)+Math.max(y,i.getMax(n));if(w.push(r),r>l)return R=Math.max(0,o-u),T+=Math.min(R,u),!0})),R>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;R>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[R],rowIndex:R,$rowIndex:R,_rowIndex:R,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return R--,!0})))break}}const D=`${w[R]}px`,M=`${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=D,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=M)}))}));const S=Math.min(h.length,R+T);if(f.startIndex===R&&f.endIndex===S)return;f.startIndex=R,f.endIndex=S;const C=h.slice(f.startIndex,f.endIndex);C.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...C)}const Y=h(E,300);function q(e){var t,o;return(!0===e.variableHeight||"1"===e.variableHeight)&&(null!=(o=null==(t=e.editRender)?void 0:t.name)?o:w.getCellType(e))!==b.SEPARATE}function L(){const o="variableHeightRendererPlugin";return R({name:o,vxe(e){j=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(I),n=r("$xetable"),p=a(),m=H(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()})),d((()=>{n&&!S(o)&&U(o,n),v()}));const b=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})),T=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:T.value,overflow:"hidden"}},[c(b.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&&E(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=$(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(j,{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&&q(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&&E(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(q(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,i,u;if(null==(s=null==(a=t.editRender)?void 0:a.props)?void 0:s.variableHeight){const t=null!=(u=null==(i=o.rowConfig)?void 0:i.height)?u:36,a=H(o.uuid),s=o.cellStyle;if(o.cellStyle=function(e){const o={};if(l.value){const n=Math.max(t,a.getMax(l.value.getRowSeq(e.row)));o.height=`${n}px`}return Object.assign(o,s?x(s)?s(e):s: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)&&E(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:d}=r,{refTableLeftBody:c,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=d,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 T=c.value,w=p.value,R=T?T.$el:null,D=w?w.$el:null,H=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=H*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,R&&(R.scrollTop=e),D&&(D.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{F(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),C(e.value.uuid),k(e.value.uuid))}))}))}})}export{L as variableHeightRendererPlugin};
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 d,h as c}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{EDITABLE_WIDGET_TYPE as b,InjectionIhoTableUUID as I}from"../../constants/index.js";import{useUUIDMap as T,IhoTableUtils as w}from"../../utils/index.js";import{defineTablePlugin as R}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:H,removeItemFromUUID:M}=T((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:C,setItemFromUUID:U}=T((()=>null)),{getItemFromUUID:$,removeItemFromUUID:k,setItemFromUUID:F}=T((()=>{}));let j={};function E(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=H(a),{oSize:u=0,gt:d=100}=null!=(n=$(a))?n:{},{internalData:c,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=c;if(d>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let T=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const w=[0];let R=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(w)||0)+Math.max(y,i.getMax(n));if(w.push(r),r>l)return R=Math.max(0,o-u),T+=Math.min(R,u),!0})),R>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;R>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[R],rowIndex:R,$rowIndex:R,_rowIndex:R,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return R--,!0})))break}}const D=`${w[R]}px`,M=`${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=D,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=M)}))}));const S=Math.min(h.length,R+T);if(f.startIndex===R&&f.endIndex===S)return;f.startIndex=R,f.endIndex=S;const C=h.slice(f.startIndex,f.endIndex);C.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...C)}const Y=h(E,300);function q(e){var t,o;return(!0===e.variableHeight||"1"===e.variableHeight)&&(null!=(o=null==(t=e.editRender)?void 0:t.name)?o:w.getCellType(e))!==b.SEPARATE}function L(){const o="variableHeightRendererPlugin";return R({name:o,vxe(e){j=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(I),n=r("$xetable"),p=a(),m=H(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()})),d((()=>{n&&!S(o)&&U(o,n),v()}));const b=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})),T=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:T.value,overflow:"hidden"}},[c(b.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&&E(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=$(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(j,{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&&q(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&&E(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(q(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(q(t)){const t=null!=(s=null==(a=o.rowConfig)?void 0:a.height)?s:36,i=H(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)&&E(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:d}=r,{refTableLeftBody:c,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=d,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 T=c.value,w=p.value,R=T?T.$el:null,D=w?w.$el:null,H=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=H*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,R&&(R.scrollTop=e),D&&(D.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{F(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),C(e.value.uuid),k(e.value.uuid))}))}))}})}export{L as variableHeightRendererPlugin};
@@ -1 +1 @@
1
- var e="@cnhis-design-vue/shared",i="3.1.51-beta.6",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.1.51-beta.6",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
1
+ var e="@cnhis-design-vue/shared",i="3.1.51-beta.7",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.1.51-beta.7",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "3.1.51-beta.6",
3
+ "version": "3.1.51-beta.7",
4
4
  "license": "ISC",
5
5
  "module": "./es/components/index.js",
6
6
  "main": "./es/components/index.js",
@@ -63,5 +63,5 @@
63
63
  "iOS 7",
64
64
  "last 3 iOS versions"
65
65
  ],
66
- "gitHead": "cf656683d8f618ebfe9144726befd3c7f29fa93d"
66
+ "gitHead": "a1a0e0c0d15baa0b1fb610a50ce5a9d836496c63"
67
67
  }