@oinone/kunlun-vue-ui 6.3.9 → 6.4.1

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,4 +1,4 @@
1
- import{OioComponentData as e,StyleHelper as t,OioSpinProps as o,PropRecordHelper as n,OioIcon as l}from"@oinone/kunlun-vue-ui-common";import{Optional as i,StringHelper as r,CastHelper as a,DomHelper as s}from"@oinone/kunlun-shared";import{defineComponent as d,ref as c,createVNode as u,inject as p,provide as g,computed as m,watch as f,withDirectives as h,vShow as b,withModifiers as C}from"vue";import v from"vuedraggable";import y,{Table as w,Column as x,Colgroup as O}from"vxe-table";import S from"vxe-table-plugin-antd";import k from"vxe-table-plugin-element";import"vxe-table/lib/style.min.css";import"vxe-table-plugin-antd/dist/style.min.css";import"vxe-table-plugin-element/dist/style.min.css";import{OioSpin as N,PropRecordHelper as j,OioEmptyData as E,OioPopconfirm as R}from"@oinone/kunlun-vue-ui-antd";import{isNil as F,isBoolean as T,debounce as A,isString as $,toString as I,isFunction as B}from"lodash-es";const D="_X_ROW_KEY",P={itemKeyProps:"id",valueProps:"elements",cloneProps:"clone",groupProps:"group",addedCallbackProps:"addedCallback",movedCallbackProps:"movedCallback",removedCallbackProps:"removedCallback",moveToSelfCallbackProps:"moveToSelfCallback",moveToOtherCallbackProps:"moveToOtherCallback"},_={startCallback:{type:Function},endCallback:{type:Function},addedCallback:{type:Function},movedCallback:{type:Function},removedCallback:{type:Function},moveToSelfCallback:{type:Function},moveToOtherCallback:{type:Function}};var z;!function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(z||(z={}));const H={list:{type:Array,required:!0},itemKey:{type:[String,Function],required:!0},group:{type:[String,Object]},clone:{type:Function},tag:{type:String,default:"div"},sort:{type:Boolean,default:!0},direction:{type:String},swapThreshold:{type:Number},invertSwap:{type:Boolean,default:!1},invertedSwapThreshold:{type:Number},animation:{type:Number,default:150},delay:{type:Number},disabled:{type:Boolean,default:!1}},M=Object.assign(Object.assign(Object.assign(Object.assign({},H),_),e),{disableAdd:{type:Boolean,default:!1},disableMove:{type:Boolean,default:!1},filter:{type:Function},draggableFilter:{type:[String,Function]},mapper:{type:Function}});function V(e){return e.__draggable_component__}const W=["Symbol(Fragment)"];var q=d({name:"OioDraggable",components:{draggable:v},inheritAttrs:!1,props:Object.assign({},M),emits:["change"],setup(e,{emit:t}){const o=c(),n=c(),l=c(),r=()=>{l.value=void 0};return{origin:o,move:(t,o)=>{var r,a;const d=o.target,c=s.getClientRect(d),u=l.value;if(u&&s.clientRectEquals(u.clientRect,c))return u.result;let p;return p=t.from===t.to?null===(r=e.moveToSelfCallback)||void 0===r?void 0:r.call(e,t,o):!i.ofNullable(function(e){return i.ofNullable(e.relatedContext).map(e=>e.component).map(e=>e.$parent).orElse(void 0)}(t)).map(e=>e.disableAdd).orElse(!1)&&(null===(a=e.moveToOtherCallback)||void 0===a?void 0:a.call(e,t,o)),!1===p?n.value&&(n.value=void 0):n.value={sendEvent:t,originalEvent:o},l.value={dom:d,clientRect:c,result:p},p},onStart:t=>{r();const o=e.startCallback;if(!o)return;const{oldIndex:n}=t;i.ofNullable(e.list).map(e=>e[n]).ifPresent(e=>{o({element:e,index:n})})},onEnd:t=>{r();const o=e.endCallback;if(!o)return;const{oldIndex:n,newIndex:l,from:a,to:s}=t;i.ofNullable(e.list).map(e=>e[n]).ifPresent(e=>{o({fromComponent:V(a),oldElement:e,oldIndex:n,toComponent:V(s),newIndex:l})})},onChange:n=>{var l,i,r;const{added:a,moved:s,removed:d}=n;a&&e.addedCallback&&e.addedCallback(Object.assign(Object.assign({},a),{component:null===(l=o.value)||void 0===l?void 0:l.$parent})),s&&e.movedCallback&&e.movedCallback(Object.assign(Object.assign({},s),{component:null===(i=o.value)||void 0===i?void 0:i.$parent})),d&&e.removedCallback&&e.removedCallback(Object.assign(Object.assign({},d),{component:null===(r=o.value)||void 0===r?void 0:r.$parent})),t("change",n)},onDrop:e=>{e.preventDefault(),e.stopPropagation()}}},render(){const{list:e,$slots:o}=this,{item:n}=o;if(e&&n){const[s,d]=["header","footer"].map(e=>o[e]||(()=>[])),c=[];e.forEach((e,t)=>{let o=!0;this.filter&&(o=this.filter(e,t)),o&&c.push(n(i.ofNullable(this.mapper).map(o=>o({element:e,index:t})).orElse({element:e,index:t})).map(e=>{return t=e,W.includes(t.type.toString())?t.children:t;var t}))});const p=this.componentData||{},g=r.append([],a.cast(p.class),a.cast(this.$attrs.class)),m=Object.assign(Object.assign({},t.parse(a.cast(p.style))||{}),t.parse(a.cast(this.$attrs.style))||{});p.class=g,p.style=m;const f=Object.assign(Object.assign({},this.$attrs),{list:e,itemKey:this.itemKey,group:this.group,clone:this.clone,tag:this.tag,componentData:p,sort:this.sort,direction:this.direction,swapThreshold:this.swapThreshold,invertSwap:this.invertSwap,invertedSwapThreshold:this.invertedSwapThreshold,animation:this.animation,disabled:this.disabled,move:this.move,onStart:this.onStart,onEnd:this.onEnd,onChange:this.onChange,dragoverBubble:!1,filter:this.draggableFilter,ref:"origin",class:g,style:m});return l=this.tag,["transition-group","TransitionGroup"].includes(l)||(f.onDrop=this.onDrop),u(v,f,{header:s,footer:d,item:({index:e})=>c[e]})}var l;return u("div")}});q.__file="src/component/oio-draggable/oio-draggable.vue";const K=Symbol("OioTableContext"),X=e=>{g(K,e)},Y=()=>p(K);var L,G,Z,J,Q,U,ee,te,oe,ne;!function(e){e.left="left",e.right="right"}(L||(L={})),function(e){e.left="left",e.center="center",e.right="right"}(G||(G={})),function(e){e.large="large",e.middle="middle",e.small="small"}(Z||(Z={})),function(e){e.default="default",e.full="full",e.outer="outer",e.inner="inner",e.none="none"}(J||(J={})),function(e){e.ellipsis="ellipsis",e.title="title",e.tooltip="tooltip"}(Q||(Q={})),function(e){e.cell="cell",e.row="row"}(U||(U={})),function(e){e.manual="manual",e.click="click",e.dblclick="dblclick"}(ee||(ee={})),function(e){e.table="table",e.row="row",e.column="column",e.cell="cell"}(te||(te={})),function(e){e.manual="manual",e.auto="auto"}(oe||(oe={})),function(e){e.left="left",e.right="right",e.all="all"}(ne||(ne={}));const le={size:{type:String},resizable:{type:Boolean,default:void 0},height:{type:[String,Number]},border:{type:[Boolean,String],default:void 0},stripe:{type:Boolean,default:void 0},rowClassName:{type:[String,Function]},cellClassName:{type:[String,Function]},headerRowClassName:{type:[String,Function]},headerCellClassName:{type:[String,Function]},footerRowClassName:{type:[String,Function]},footerCellClassName:{type:[String,Function]},rowStyle:{type:[Object,Function]},headerRowStyle:{type:[Object,Function]},cellStyle:{type:[Object,Function]},headerCellStyle:{type:[Object,Function]},customConfig:{type:Object}},ie=Object.assign(Object.assign({},o),{data:{type:Array},showOverflow:{type:[Boolean,String],default:void 0},showHeaderOverflow:{type:[Boolean,String],default:void 0},showFooterOverflow:{type:[Boolean,String],default:void 0},emptyText:{type:String,default:""},emptyImage:{type:String,default:void 0},rowConfig:{type:Object},columnConfig:{type:Object},sortConfig:{type:Object},radioConfig:{type:Object},checkboxConfig:{type:Object},tooltipConfig:{type:Object},expandConfig:{type:Object},editConfig:{type:Object},treeConfig:{type:Object},scrollX:{type:Object},scrollY:{type:Object},showFooter:{type:Boolean,default:void 0},footerMethod:{type:Function},spanMethod:{type:Function},mergeCells:{type:Array}}),re=Object.assign(Object.assign(Object.assign({},le),ie),e),ae="oio";class VxeTableHelper{static getFlatAllColumns(e){const t=[];for(const o of e){const{children:e}=o;e?t.push(...VxeTableHelper.getFlatAllColumns(e)):t.push(o)}return t}static getKey(e){return e.__draftId||e[D]}}const se={onCellClick:"cell-click",onCellDblclick:"cell-dblclick",onHeaderCellClick:"header-cell-click",onHeaderCellDblclick:"header-cell-dblclick",onFooterCellClick:"footer-cell-click",onFooterCellDblclick:"footer-cell-dblclick",onToggleRowExpand:"toggle-row-expand",onEditActived:"edit-actived",onEditClosed:"edit-closed",onEditDisabled:"edit-disabled",onScroll:"scroll",onCurrentChange:"current-change",onResizableChange:"resizable-change"};var de=d({name:"OioTable",components:{VxeTable:w,VxeColumn:x,OioSpin:N},inheritAttrs:!1,props:Object.assign({},re),emits:["sort-change","checked-change","checked-all-change","radio-change",...Object.values(se)],slots:["default","header","footer"],setup(e,t){const o=c(),n=m(()=>{if(null!=e.size)switch(e.size){case Z.large:return"medium";case Z.middle:return"small";case Z.small:return"mini"}}),l={};Object.entries(se).forEach(([e,o])=>{l[e]=(...e)=>{t.emit(o,...e)}});const i=(e,o)=>{const n={row:o.row,rowIndex:o.rowIndex,column:{field:o.column.field},columnIndex:o.columnIndex,editableMap:{},submit:!0,origin:o};t.emit(e,n)},r={getOrigin:()=>o.value,setCurrentRow:e=>o.value.setCurrentRow(e),clearCurrentRow:()=>o.value.clearCurrentRow(),setCheckboxRow:(e,t)=>o.value.setCheckboxRow(e,t),clearCheckboxRow:()=>o.value.clearCheckboxRow(),resetCheckboxRow:e=>(o.value.clearCheckboxRow(),o.value.setCheckboxRow(e,!0)),setRadioRow:e=>o.value.setRadioRow(e),clearRadioRow:()=>o.value.clearRadioRow(),getAllColumns:()=>o.value.getTableColumn().collectColumn,refreshColumn:()=>o.value.refreshColumn(),updateFooter:()=>o.value.updateFooter(),loadColumns:e=>o.value.loadColumn(e),reloadColumns:e=>o.value.reloadColumn(e),setEditRow:e=>o.value.setEditRow(e),getActiveEditorRecord(){const e=o.value.getEditRecord();if(!e)return;const{row:t,rowIndex:n}=e;return{key:VxeTableHelper.getKey(t),data:t,index:n,origin:e}},activeCellEditor:(e,t)=>o.value.setEditCell(e,t),clearEditor:()=>o.value.clearActived(),recalculate:e=>o.value.recalculate(e),allRowExpand:()=>o.value.setAllRowExpand(!0),clearAllRowExpand:()=>o.value.clearRowExpand(),setRowExpand:(e,t)=>o.value.setRowExpand(e,t),sort:e=>o.value.sort(e)};return t.expose(r),X(r),{vxeTable:o,size:n,onEvents:l,onSortChange:e=>{const{field:o,sortList:n,column:l}=e;let{order:i}=e;const r=n.map(e=>({origin:e,field:e.field,direction:e.order,sortTime:e.sortTime}));if(!i){const e=null==n?void 0:n.find(e=>e.field===o);e&&(l.order=e.order,i=e.order)}let a;a=i?{origin:e,field:o,direction:i,sorts:r}:{origin:e,field:o,direction:!1,sorts:r},t.emit("sort-change",a)},onCheckedChange:e=>{const{checked:o,record:n,records:l}=e,i={checked:o,record:n,records:l,origin:e};t.emit("checked-change",i)},onCheckedAllChange:e=>{const{checked:o,record:n,records:l}=e,i={checked:o,record:n,records:l,origin:e};t.emit("checked-all-change",i)},onRadioChange:e=>{const{oldValue:o,newValue:n}=e,l={oldRecord:o,newRecord:n,origin:e};t.emit("radio-change",l)},onEditActived:e=>{i("edit-actived",e)},onEditClosed:e=>{i("edit-closed",e)}}},render(){const{$attrs:e,$slots:t,size:o,resizable:n,height:l,border:i,stripe:a,rowClassName:s,cellClassName:d,headerRowClassName:c,headerCellClassName:p,footerRowClassName:g,footerCellClassName:m,rowStyle:f,headerRowStyle:h,cellStyle:b,headerCellStyle:C,loading:v,loadingIndicator:y,wrapperClassName:x,emptyImage:O,emptyText:S,data:k,showOverflow:R,showHeaderOverflow:T,showFooterOverflow:A,rowConfig:$,columnConfig:I,sortConfig:B,radioConfig:D,checkboxConfig:P,tooltipConfig:_,expandConfig:z,editConfig:H,treeConfig:M,customConfig:V,scrollX:W,scrollY:q,showFooter:K,footerMethod:X,spanMethod:Y,mergeCells:L,componentData:G,onEvents:Z,onSortChange:J,onCheckedChange:Q,onCheckedAllChange:U,onRadioChange:ee,onEditActived:te,onEditClosed:oe}=this,{default:ne,header:le,footer:ie}=j.collectionSlots(t,[{origin:"default",isNotNull:!0},{origin:"header"},{origin:"footer"}]),re=[];le&&re.push(u("div",{class:`${ae}-table-header`},le())),re.push(u("div",{class:`${ae}-table-content-wrapper`},[u("div",{class:`${ae}-table-content`},[u(w,Object.assign(Object.assign(Object.assign(Object.assign({autoResize:!1},G||{}),{ref:"vxeTable",size:o,resizable:n,height:l,border:i,stripe:a,rowClassName:s,cellClassName:d,headerRowClassName:c,headerCellClassName:p,footerRowClassName:g,footerCellClassName:m,rowStyle:f,headerRowStyle:h,cellStyle:b,headerCellStyle:C,data:k,showOverflow:R,showHeaderOverflow:T,showFooterOverflow:A,rowConfig:$,columnConfig:I,sortConfig:B,radioConfig:D,checkboxConfig:P,tooltipConfig:_,expandConfig:z,editConfig:H,treeConfig:M,customConfig:V,scrollX:W,scrollY:q,showFooter:K,footerMethod:X,spanMethod:Y,mergeCells:L}),Z),{onSortChange:J,onCheckboxChange:Q,onCheckboxAll:U,onRadioChange:ee,onEditActived:te,onEditClosed:oe}),{default:ne,empty:()=>[u(E,{description:S,image:O})]})])])),ie&&re.push(u("div",{class:`${ae}-table-footer`},ie()));const se=u("div",j.collectionBasicProps(e,[`${ae}-table`]),re);return F(v)?se:u(N,{class:"default-table-view-spin",loading:v,loadingIndicator:y,wrapperClassName:r.append([`${ae}-table-wrapper`],x)},{default:()=>[se]})}});de.__file="src/component/oio-table/table/oio-table.vue",y.use(S),y.use(k);const ce={width:{type:[String,Number]},minWidth:{type:[String,Number]},label:{type:String},className:{type:[String,Function]},headerClassName:{type:[String,Function]},footerClassName:{type:[String,Function]},align:{type:String},headerAlign:{type:String},footerAlign:{type:String},fixed:{type:[String,Boolean],default:void 0},invisible:{type:Boolean,default:!1},resizable:{type:Boolean,default:void 0},treeNode:{type:Boolean,default:void 0}},ue={editable:{type:Boolean,default:!1},cellEditable:{type:[Boolean,Function],default:void 0},editorTrigger:{type:String,default:ee.manual},editorMode:{type:String,default:te.cell},editorCloseTrigger:{type:String,default:oe.manual},disableEditorRender:{type:Boolean,default:!1},rowEditorClosedByEnter:{type:Function},rowEditorClosedByCancel:{type:Function},editorConfirm:{type:[String,Function]},editorConfirmPosition:{type:[String,Function]},editorCondition:{type:Function},editorEnterText:{type:[String,Function]},editorCancelText:{type:[String,Function]}},pe={type:{type:String},field:{type:String},invisibleContent:{type:[Boolean,Function],default:void 0},sortable:{type:Boolean,default:void 0}},ge={renderDefaultSlot:{type:Function},renderEditSlot:{type:Function},renderContentSlot:{type:Function},renderHeaderSlot:{type:Function}},me=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ce),ue),pe),ge),e);
1
+ import{OioComponentData as e,StyleHelper as t,OioSpinProps as o,PropRecordHelper as n,OioIcon as l}from"@oinone/kunlun-vue-ui-common";import{Optional as i,StringHelper as a,CastHelper as r,DomHelper as s}from"@oinone/kunlun-shared";import{defineComponent as c,ref as d,createVNode as u,inject as p,provide as g,computed as m,watch as f,withDirectives as b,vShow as h,withModifiers as C}from"vue";import v from"vuedraggable";import y,{Table as w,Column as x,Colgroup as O}from"vxe-table";import S from"vxe-table-plugin-antd";import k from"vxe-table-plugin-element";import"vxe-table/lib/style.min.css";import"vxe-table-plugin-antd/dist/style.min.css";import"vxe-table-plugin-element/dist/style.min.css";import{OioSpin as E,PropRecordHelper as N,OioEmptyData as R,OioPopconfirm as j,OioTooltip as F}from"@oinone/kunlun-vue-ui-antd";import{isNil as T,isBoolean as A,debounce as I,isString as B,toString as $,isFunction as _}from"lodash-es";import D from"vxe-table/lib/v-x-e-table/src/conf";import P from"xe-utils";const H="_X_ROW_KEY",z={CHILDREN_KEY:"CHILDREN_KEY",PROPS_KEY:"PROPS_KEY",IS_LEAF_KEY:"IS_LEAF_KEY"},K={itemKeyProps:"id",valueProps:"elements",cloneProps:"clone",groupProps:"group",addedCallbackProps:"addedCallback",movedCallbackProps:"movedCallback",removedCallbackProps:"removedCallback",moveToSelfCallbackProps:"moveToSelfCallback",moveToOtherCallbackProps:"moveToOtherCallback"},M={startCallback:{type:Function},endCallback:{type:Function},addedCallback:{type:Function},movedCallback:{type:Function},removedCallback:{type:Function},moveToSelfCallback:{type:Function},moveToOtherCallback:{type:Function}};var L;!function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(L||(L={}));const V={list:{type:Array,required:!0},itemKey:{type:[String,Function],required:!0},group:{type:[String,Object]},clone:{type:Function},tag:{type:String,default:"div"},sort:{type:Boolean,default:!0},direction:{type:String},swapThreshold:{type:Number},invertSwap:{type:Boolean,default:!1},invertedSwapThreshold:{type:Number},animation:{type:Number,default:150},delay:{type:Number},disabled:{type:Boolean,default:!1}},Y=Object.assign(Object.assign(Object.assign(Object.assign({},V),M),e),{disableAdd:{type:Boolean,default:!1},disableMove:{type:Boolean,default:!1},filter:{type:Function},draggableFilter:{type:[String,Function]},mapper:{type:Function}});function W(e){return e.__draggable_component__}const q=["Symbol(Fragment)"];var X=c({name:"OioDraggable",components:{draggable:v},inheritAttrs:!1,props:Object.assign({},Y),emits:["change"],setup(e,{emit:t}){const o=d(),n=d(),l=d(),a=()=>{l.value=void 0};return{origin:o,move:(t,o)=>{var a,r;const c=o.target,d=s.getClientRect(c),u=l.value;if(u&&s.clientRectEquals(u.clientRect,d))return u.result;let p;return p=t.from===t.to?null===(a=e.moveToSelfCallback)||void 0===a?void 0:a.call(e,t,o):!i.ofNullable(function(e){return i.ofNullable(e.relatedContext).map(e=>e.component).map(e=>e.$parent).orElse(void 0)}(t)).map(e=>e.disableAdd).orElse(!1)&&(null===(r=e.moveToOtherCallback)||void 0===r?void 0:r.call(e,t,o)),!1===p?n.value&&(n.value=void 0):n.value={sendEvent:t,originalEvent:o},l.value={dom:c,clientRect:d,result:p},p},onStart:t=>{a();const o=e.startCallback;if(!o)return;const{oldIndex:n}=t;i.ofNullable(e.list).map(e=>e[n]).ifPresent(e=>{o({element:e,index:n})})},onEnd:t=>{a();const o=e.endCallback;if(!o)return;const{oldIndex:n,newIndex:l,from:r,to:s}=t;i.ofNullable(e.list).map(e=>e[n]).ifPresent(e=>{o({fromComponent:W(r),oldElement:e,oldIndex:n,toComponent:W(s),newIndex:l})})},onChange:n=>{var l,i,a;const{added:r,moved:s,removed:c}=n;r&&e.addedCallback&&e.addedCallback(Object.assign(Object.assign({},r),{component:null===(l=o.value)||void 0===l?void 0:l.$parent})),s&&e.movedCallback&&e.movedCallback(Object.assign(Object.assign({},s),{component:null===(i=o.value)||void 0===i?void 0:i.$parent})),c&&e.removedCallback&&e.removedCallback(Object.assign(Object.assign({},c),{component:null===(a=o.value)||void 0===a?void 0:a.$parent})),t("change",n)},onDrop:e=>{e.preventDefault(),e.stopPropagation()}}},render(){const{list:e,$slots:o}=this,{item:n}=o;if(e&&n){const[s,c]=["header","footer"].map(e=>o[e]||(()=>[])),d=[];e.forEach((e,t)=>{let o=!0;this.filter&&(o=this.filter(e,t)),o&&d.push(n(i.ofNullable(this.mapper).map(o=>o({element:e,index:t})).orElse({element:e,index:t})).map(e=>{return t=e,q.includes(t.type.toString())?t.children:t;var t}))});const p=this.componentData||{},g=a.append([],r.cast(p.class),r.cast(this.$attrs.class)),m=Object.assign(Object.assign({},t.parse(r.cast(p.style))||{}),t.parse(r.cast(this.$attrs.style))||{});p.class=g,p.style=m;const f=Object.assign(Object.assign({},this.$attrs),{list:e,itemKey:this.itemKey,group:this.group,clone:this.clone,tag:this.tag,componentData:p,sort:this.sort,direction:this.direction,swapThreshold:this.swapThreshold,invertSwap:this.invertSwap,invertedSwapThreshold:this.invertedSwapThreshold,animation:this.animation,disabled:this.disabled,move:this.move,onStart:this.onStart,onEnd:this.onEnd,onChange:this.onChange,dragoverBubble:!1,filter:this.draggableFilter,ref:"origin",class:g,style:m});return l=this.tag,["transition-group","TransitionGroup"].includes(l)||(f.onDrop=this.onDrop),u(v,f,{header:s,footer:c,item:({index:e})=>d[e]})}var l;return u("div")}});X.__file="src/component/oio-draggable/oio-draggable.vue";const G=Symbol("OioTableContext"),U=e=>{g(G,e)},Z=()=>p(G);var J,Q,ee,te,oe,ne,le,ie,ae,re,se;!function(e){e.left="left",e.right="right"}(J||(J={})),function(e){e.left="left",e.center="center",e.right="right"}(Q||(Q={})),function(e){e.large="large",e.middle="middle",e.small="small"}(ee||(ee={})),function(e){e.default="default",e.full="full",e.outer="outer",e.inner="inner",e.none="none"}(te||(te={})),function(e){e.ellipsis="ellipsis",e.title="title",e.tooltip="tooltip"}(oe||(oe={})),function(e){e.cell="cell",e.row="row"}(ne||(ne={})),function(e){e.manual="manual",e.click="click",e.dblclick="dblclick"}(le||(le={})),function(e){e.table="table",e.row="row",e.column="column",e.cell="cell"}(ie||(ie={})),function(e){e.manual="manual",e.auto="auto"}(ae||(ae={})),function(e){e.left="left",e.right="right",e.all="all"}(re||(re={})),function(e){e.click="click",e.dblclick="dblclick"}(se||(se={}));const ce={size:{type:String},resizable:{type:Boolean,default:void 0},autoResize:{type:Boolean,default:!1},height:{type:[String,Number]},border:{type:[Boolean,String],default:void 0},stripe:{type:Boolean,default:void 0},rowClassName:{type:[String,Function]},cellClassName:{type:[String,Function]},headerRowClassName:{type:[String,Function]},headerCellClassName:{type:[String,Function]},footerRowClassName:{type:[String,Function]},footerCellClassName:{type:[String,Function]},rowStyle:{type:[Object,Function]},headerRowStyle:{type:[Object,Function]},cellStyle:{type:[Object,Function]},headerCellStyle:{type:[Object,Function]},customConfig:{type:Object}},de=Object.assign(Object.assign({},o),{data:{type:Array},showOverflow:{type:[Boolean,String],default:void 0},showHeaderOverflow:{type:[Boolean,String],default:void 0},showFooterOverflow:{type:[Boolean,String],default:void 0},emptyText:{type:String,default:""},emptyImage:{type:String,default:void 0},rowConfig:{type:Object},columnConfig:{type:Object},sortConfig:{type:Object},radioConfig:{type:Object},checkboxConfig:{type:Object},tooltipConfig:{type:Object},expandConfig:{type:Object},editConfig:{type:Object},treeConfig:{type:Object},scrollX:{type:Object},scrollY:{type:Object},showFooter:{type:Boolean,default:void 0},footerMethod:{type:Function},spanMethod:{type:Function},mergeCells:{type:Array}}),ue=Object.assign(Object.assign(Object.assign({},ce),de),e),pe="oio";class VxeTableHelper{static getFlatAllColumns(e){const t=[];for(const o of e){const{children:e}=o;e?t.push(...VxeTableHelper.getFlatAllColumns(e)):t.push(o)}return t}static getKey(e){return e.__draftId||e[H]}}const ge={onCellClick:"cell-click",onCellDblclick:"cell-dblclick",onHeaderCellClick:"header-cell-click",onHeaderCellDblclick:"header-cell-dblclick",onFooterCellClick:"footer-cell-click",onFooterCellDblclick:"footer-cell-dblclick",onToggleRowExpand:"toggle-row-expand",onEditActived:"edit-actived",onEditClosed:"edit-closed",onEditDisabled:"edit-disabled",onScroll:"scroll",onCurrentChange:"current-change",onResizableChange:"resizable-change",onKeydown:"keydown"};var me=c({name:"OioTable",components:{VxeTable:w,VxeColumn:x,OioSpin:E},inheritAttrs:!1,props:Object.assign({},ue),emits:["sort-change","checked-change","checked-all-change","radio-change",...Object.values(ge)],slots:["default","header","footer"],setup(e,t){const o=d(),n=m(()=>{if(null!=e.size)switch(e.size){case ee.large:return"medium";case ee.middle:return"small";case ee.small:return"mini"}}),l={};Object.entries(ge).forEach(([e,o])=>{l[e]=(...e)=>{t.emit(o,...e)}});const i=(e,o)=>{const n={row:o.row,rowIndex:o.rowIndex,column:{field:o.column.field},columnIndex:o.columnIndex,editableMap:{},submit:!0,origin:o};t.emit(e,n)},a={getOrigin:()=>o.value,setCurrentRow:e=>o.value.setCurrentRow(e),clearCurrentRow:()=>o.value.clearCurrentRow(),setCheckboxRow:(e,t)=>o.value.setCheckboxRow(e,t),clearCheckboxRow:()=>o.value.clearCheckboxRow(),resetCheckboxRow:e=>(o.value.clearCheckboxRow(),o.value.setCheckboxRow(e,!0)),setRadioRow:e=>o.value.setRadioRow(e),clearRadioRow:()=>o.value.clearRadioRow(),getAllColumns:()=>o.value.getTableColumn().collectColumn,refreshColumn:()=>o.value.refreshColumn(),updateFooter:()=>o.value.updateFooter(),loadColumns:e=>o.value.loadColumn(e),reloadColumns:e=>o.value.reloadColumn(e),getTableData:e=>o.value.getTableData().tableData[e],setEditRow:e=>o.value.setEditRow(e),getActiveEditorRecord(){const e=o.value.getEditRecord();if(!e)return;const{row:t,rowIndex:n}=e;return{key:VxeTableHelper.getKey(t),data:t,index:n,origin:e}},activeCellEditor:(e,t)=>o.value.setEditCell(e,t),clearEditor:()=>o.value.clearActived(),recalculate:e=>o.value.recalculate(e),allRowExpand:()=>o.value.setAllRowExpand(!0),clearAllRowExpand:()=>o.value.clearRowExpand(),setRowExpand:(e,t)=>o.value.setRowExpand(e,t),getSortColumns:()=>o.value.getSortColumns(),clearSort:e=>o.value.clearSort(e),sort:e=>o.value.sort(e),insert:(e,t)=>null==t?o.value.insert(e):o.value.insertAt(e,t),isInsertByRow:e=>o.value.isInsertByRow(e),removeInsertRow:()=>o.value.removeInsertRow()};return t.expose(a),U(a),{vxeTable:o,size:n,onEvents:l,onSortChange:e=>{const{field:o,sortList:n,column:l}=e;let{order:i}=e;const a=n.map(e=>({origin:e,field:e.field,direction:e.order,sortTime:e.sortTime}));if(!i){const e=null==n?void 0:n.find(e=>e.field===o);e&&(l.order=e.order,i=e.order)}let r;r=i?{origin:e,field:o,direction:i,sorts:a}:{origin:e,field:o,direction:!1,sorts:a},t.emit("sort-change",r)},onCheckedChange:e=>{const{checked:o,record:n,records:l}=e,i={checked:o,record:n,records:l,origin:e};t.emit("checked-change",i)},onCheckedAllChange:e=>{const{checked:o,record:n,records:l}=e,i={checked:o,record:n,records:l,origin:e};t.emit("checked-all-change",i)},onRadioChange:e=>{const{oldValue:o,newValue:n}=e,l={oldRecord:o,newRecord:n,origin:e};t.emit("radio-change",l)},onEditActived:e=>{i("edit-actived",e)},onEditClosed:e=>{i("edit-closed",e)}}},render(){const{$attrs:e,$slots:t,autoResize:o,size:n,resizable:l,height:i,border:r,stripe:s,rowClassName:c,cellClassName:d,headerRowClassName:p,headerCellClassName:g,footerRowClassName:m,footerCellClassName:f,rowStyle:b,headerRowStyle:h,cellStyle:C,headerCellStyle:v,loading:y,loadingIndicator:x,wrapperClassName:O,emptyImage:S,emptyText:k,data:j,showOverflow:F,showHeaderOverflow:A,showFooterOverflow:I,rowConfig:B,columnConfig:$,sortConfig:_,radioConfig:D,checkboxConfig:P,tooltipConfig:H,expandConfig:z,editConfig:K,treeConfig:M,customConfig:L,scrollX:V,scrollY:Y,showFooter:W,footerMethod:q,spanMethod:X,mergeCells:G,componentData:U,onEvents:Z,onSortChange:J,onCheckedChange:Q,onCheckedAllChange:ee,onRadioChange:te,onEditActived:oe,onEditClosed:ne}=this,{default:le,header:ie,footer:ae}=N.collectionSlots(t,[{origin:"default",isNotNull:!0},{origin:"header"},{origin:"footer"}]),re=[];ie&&re.push(u("div",{class:`${pe}-table-header`},ie())),re.push(u("div",{class:`${pe}-table-content-wrapper`},[u("div",{class:`${pe}-table-content`},[u(w,Object.assign(Object.assign(Object.assign(Object.assign({autoResize:o},U||{}),{ref:"vxeTable",size:n,resizable:l,height:i,border:r,stripe:s,rowClassName:c,cellClassName:d,headerRowClassName:p,headerCellClassName:g,footerRowClassName:m,footerCellClassName:f,rowStyle:b,headerRowStyle:h,cellStyle:C,headerCellStyle:v,data:j,showOverflow:F,showHeaderOverflow:A,showFooterOverflow:I,rowConfig:B,columnConfig:$,sortConfig:_,radioConfig:D,checkboxConfig:P,tooltipConfig:H,expandConfig:z,editConfig:K,treeConfig:M,customConfig:L,scrollX:V,scrollY:Y,showFooter:W,footerMethod:q,spanMethod:X,mergeCells:G}),Z),{onSortChange:J,onCheckboxChange:Q,onCheckboxAll:ee,onRadioChange:te,onEditActived:oe,onEditClosed:ne}),{default:le,empty:()=>[u(R,{description:k,image:S})]})])])),ae&&re.push(u("div",{class:`${pe}-table-footer`},ae()));const se=u("div",N.collectionBasicProps(e,[`${pe}-table`]),re);return T(y)?se:u(E,{class:"default-table-view-spin",loading:y,loadingIndicator:x,wrapperClassName:a.append([`${pe}-table-wrapper`],O)},{default:()=>[se]})}});me.__file="src/component/oio-table/table/oio-table.vue",y.use(S),y.use(k);const fe={width:{type:[String,Number]},minWidth:{type:[String,Number]},label:{type:String},className:{type:[String,Function]},headerClassName:{type:[String,Function]},footerClassName:{type:[String,Function]},align:{type:String},headerAlign:{type:String},footerAlign:{type:String},fixed:{type:[String,Boolean],default:void 0},invisible:{type:Boolean,default:!1},resizable:{type:Boolean,default:void 0},treeNode:{type:Boolean,default:void 0}},be={editable:{type:Boolean,default:!1},cellEditable:{type:[Boolean,Function],default:void 0},editorTrigger:{type:String,default:le.manual},editorMode:{type:String,default:ie.cell},editorCloseTrigger:{type:String,default:ae.manual},editRender:{type:Object},rowEditorClosedByEnter:{type:Function},rowEditorClosedByCancel:{type:Function},editorConfirm:{type:[String,Function]},editorConfirmPosition:{type:[String,Function]},editorCondition:{type:Function},editorEnterText:{type:[String,Function]},editorCancelText:{type:[String,Function]}},he={type:{type:String},field:{type:String},invisibleContent:{type:[Boolean,Function],default:void 0},sortable:{type:Boolean,default:void 0}},Ce={renderGroupCellSlot:{type:Function},renderDefaultSlot:{type:Function},renderEditSlot:{type:Function},renderContentSlot:{type:Function},renderHeaderSlot:{type:Function},dynamicRenderDefaultSlot:{type:Function}},ve=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},fe),be),he),Ce),e);
2
2
  /*! *****************************************************************************
3
3
  Copyright (c) Microsoft Corporation.
4
4
 
@@ -13,4 +13,4 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
15
  ***************************************************************************** */
16
- function fe(e,t,o,n){return new(o||(o=Promise))(function(l,i){function r(e){try{s(n.next(e))}catch(e){i(e)}}function a(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(r,a)}s((n=n.apply(e,t||[])).next())})}const he=`${ae}-column`,be={default:"renderDefaultSlot",edit:"renderEditSlot",content:"renderContentSlot",header:"renderHeaderSlot"};function Ce(e,t){return r.append([he],e,t)}function ve(e,t){return null==t?t:B(t)?t(e):t}var ye=d({name:"OioColumn",components:{Column:x},inheritAttrs:!1,props:Object.assign({},me),setup(e,o){const n=Y(),i=m(()=>{if(!F(e.width))return t.px(e.width)}),r=m(()=>{if(!F(e.minWidth))return t.px(e.minWidth)}),a=m(()=>{const t=e.fixed;if(!F(t)&&!T(t))return t}),s=t=>fe(this,void 0,void 0,function*(){var o;let l=yield null===(o=e.rowEditorClosedByEnter)||void 0===o?void 0:o.call(e,t);null==l&&(l=!0),l&&(null==n||n.clearEditor())}),d=t=>fe(this,void 0,void 0,function*(){var o;let l=yield null===(o=e.rowEditorClosedByCancel)||void 0===o?void 0:o.call(e,t);null==l&&(l=!0),l&&(null==n||n.clearEditor())}),c=t=>{let o=e.invisibleContent;return null!=o&&(B(o)&&(o=o(t)||!1),o||!1)},p=(e,t)=>{const o=[u("div",{class:`${he}-content`},t)];return o.push(u("div",{class:`${he}-editable-handle`},[u(l,{icon:"oinone-chart-tree-edit",color:"var(--oio-default-icon-color)",onClick:C(()=>(e=>{const{origin:t}=e;null==n||n.activeCellEditor(t.row,t.column)})(e),["stop","prevent"])})])),o};let g;const v=e.renderDefaultSlot||o.slots.default;v&&(g=t=>{var o;const n=[`${he}-wrapper`];let l=v(t)||[];return"seq"===e.type?l.length||(l=[u("span",{},null===(o=t.origin)||void 0===o?void 0:o.seq)]):!e.disableEditorRender&&e.editable&&e.editorTrigger===ee.manual&&e.editorMode===te.cell&&function(e,t){if(null==t)return!0;if(T(t))return t;if(B(t)){const o=t(e);if(null!=o)return!!o}return!0}(t,e.cellEditable)&&(l=p(t,l),n.push(`${he}-manual-editor`)),l&&l.length||n.push(`${he}-wrapper-empty`),[h(u("div",{class:n},l),[[b,!c(t)]])]});const y=t=>{if(e.editorConfirm)return ve(t,e.editorConfirmPosition)},w=t=>{if(e.editorConfirm)return ve(t,e.editorConfirm)},x=t=>{if(e.editorConfirm)return ve(t,e.editorEnterText)},O=t=>{if(e.editorConfirm)return ve(t,e.editorCancelText)},S=t=>fe(this,void 0,void 0,function*(){var o;return!!e.editorConfirm&&(null===(o=e.editorCondition)||void 0===o?void 0:o.call(e,t))});let k;const N=e.renderEditSlot||o.slots.edit;return N&&(k=t=>{var o;const n=[`${he}-wrapper`];let i=N(t)||[];return"seq"===e.type?i.length||(i=[u("span",{},null===(o=t.origin)||void 0===o?void 0:o.seq)]):!e.disableEditorRender&&e.editable&&e.editorMode===te.cell&&e.editorCloseTrigger===oe.manual&&(i=((e,t)=>{const o=[u("div",{class:`${he}-content`},t)];return o.push(u("div",{class:`${he}-complete-handle`},[u(R,{placement:y(e),text:w(e),enterText:x(e),cancelText:O(e),condition:()=>S(e),confirmCallback:()=>s(e)},{default:()=>[u(l,{icon:"oinone-lujing",color:"var(--oio-default-icon-color)"})]}),u(l,{icon:"oinone-guanbi1",color:"var(--oio-default-icon-color)",size:10,onClick:C(()=>d(e),["stop","prevent"])})])),o})(t,i),n.push(`${he}-manual-editor`,`${he}-editing`)),[u("div",{class:n},i)]}),f(()=>e.invisible,()=>{n&&A(()=>{n.refreshColumn()},50)()}),{width:i,minWidth:r,fixed:a,className:t=>{const o=[];if(!F(e.width)&&parseInt(I(e.width))<=0&&o.push(`${he}-overflow-hidden`),e.align&&o.push(`col--${e.align}`),B(e.className)){const{row:n,rowIndex:l,columnIndex:i}=t;return Ce(e.className({row:n,rowIndex:l,columnIndex:i,origin:t}),o)}return Ce(e.className,o)},headerClassName:t=>{if(B(e.headerClassName)){const{rowIndex:o,columnIndex:n}=t;return Ce(e.headerClassName({row:{},rowIndex:o,columnIndex:n,origin:t}))}return Ce(e.headerClassName)},footerClassName:t=>{if(B(e.footerClassName)){const{rowIndex:o,columnIndex:n}=t;return Ce(e.footerClassName({row:{},rowIndex:o,columnIndex:n,origin:t}))}return Ce(e.footerClassName)},renderDefaultSlot:g,renderEditSlot:k}},render(){const{$attrs:e,$slots:t,type:o,label:l,headerAlign:i,footerAlign:r,width:a,minWidth:s,fixed:d,field:c,sortable:p,invisible:g,resizable:m,treeNode:f,editable:h,className:b,headerClassName:C,footerClassName:v,componentData:y}=this,w={};return Object.entries(be).forEach(([e,o])=>{const n=this[o]||t[e];n&&(w[e]=e=>function(e,t){const{rowid:o,row:n,rowIndex:l}=e,i=t({key:o,data:n,index:l,origin:e});return $(i)||T(i)?[u("span",{},i)]:i}(e,n))}),u(x,Object.assign(Object.assign(Object.assign({},n.collectionBasicProps(e)),y||{}),{type:o,title:l,headerAlign:i,footerAlign:r,width:a,minWidth:s,fixed:d,field:c,sortable:p,visible:!g,resizable:m,treeNode:f,editRender:{enabled:h},className:b,headerClassName:C,footerClassName:v}),w)}});ye.__file="src/component/oio-table/column/oio-column.vue";const we={field:{type:String}},xe=Object.assign(Object.assign(Object.assign({},ce),we),e),Oe=`${ae}-colgroup`;var Se=d({name:"OioColgroup",components:{VxeColgroup:O},inheritAttrs:!1,props:Object.assign({},xe),setup:e=>({headerAlign:m(()=>null==e.headerAlign?G.center:e.headerAlign)}),render(){const{$attrs:e,$slots:t,label:o,align:l,headerAlign:i,width:r,minWidth:a,fixed:s,field:d,invisible:c,className:p,headerClassName:g,footerClassName:m,componentData:f}=this;return u(O,Object.assign(Object.assign(Object.assign({},n.collectionBasicProps(e,[Oe])),f||{}),{title:o,align:l,headerAlign:i,width:r,minWidth:a,fixed:s,field:d,visible:!c,className:p,headerClassName:g,footerClassName:m}),t)}});Se.__file="src/component/oio-table/colgroup/oio-colgroup.vue";export{G as ColumnAlignType,L as ColumnFixedType,z as DraggableDirection,_ as EventCallbackProps,Se as OioColgroup,we as OioColgroupControlProps,xe as OioColgroupProps,ye as OioColumn,ce as OioColumnAppearanceProps,pe as OioColumnControlProps,ue as OioColumnEditorProps,me as OioColumnProps,ge as OioColumnRenderFunctionProps,q as OioDraggable,M as OioDraggableProps,de as OioTable,le as OioTableAppearanceProps,ie as OioTableControlProps,re as OioTableProps,J as TableBorder,oe as TableEditorCloseTrigger,te as TableEditorMode,ee as TableEditorTrigger,ne as TableFixed,Q as TableOverflow,U as TableSelectTrigger,Z as TableSize,D as VXE_TABLE_X_ID,H as VuedraggableProps,VxeTableHelper,P as defaultDraggableItemProperties,Y as useInjectOioTableInstance,X as useProviderOioTableInstance};
16
+ function ye(e,t,o,n){return new(o||(o=Promise))(function(l,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function r(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?l(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(a,r)}s((n=n.apply(e,t||[])).next())})}const we=`${pe}-column`,xe={default:"renderDefaultSlot",edit:"renderEditSlot",content:"renderContentSlot",header:"renderHeaderSlot"};function Oe(e,t){return a.append([we],e,t)}function Se(e,t){return null==t?t:_(t)?t(e):t}var ke=c({name:"OioColumn",components:{Column:x},inheritAttrs:!1,props:Object.assign({},ve),setup(e,o){const n=Z(),i=m(()=>{if(!T(e.width))return t.px(e.width)}),a=m(()=>{if(!T(e.minWidth))return t.px(e.minWidth)}),r=m(()=>{const t=e.fixed;if(!T(t)&&!A(t))return t}),s=t=>ye(this,void 0,void 0,function*(){var o;let l=yield null===(o=e.rowEditorClosedByEnter)||void 0===o?void 0:o.call(e,t);null==l&&(l=!0),l&&(null==n||n.clearEditor())}),c=t=>ye(this,void 0,void 0,function*(){var o;let l=yield null===(o=e.rowEditorClosedByCancel)||void 0===o?void 0:o.call(e,t);null==l&&(l=!0),l&&(null==n||n.clearEditor())}),d=t=>{let o=e.invisibleContent;return null!=o&&(_(o)&&(o=o(t)||!1),o||!1)},p=(e,t)=>{const o=[u("div",{class:`${we}-content`},t)];return o.push(u("div",{class:`${we}-editable-handle`},[u(l,{icon:"oinone-chart-tree-edit",color:"var(--oio-default-icon-color)",onClick:C(()=>(e=>{const{origin:t}=e;null==n||n.activeCellEditor(t.row,t.column)})(e),["stop","prevent"])})])),o};let g;const v=e.renderDefaultSlot||o.slots.default;v&&(g=t=>{var o;const n=[`${we}-wrapper`];let l=v(t)||[];return"seq"===e.type?l.length||(l=[u("span",{},null===(o=t.origin)||void 0===o?void 0:o.seq)]):e.editable&&e.editorTrigger===le.manual&&e.editorMode===ie.cell&&function(e,t){if(null==t)return!0;if(A(t))return t;if(_(t)){const o=t(e);if(null!=o)return!!o}return!0}(t,e.cellEditable)&&(l=p(t,l),n.push(`${we}-manual-editor`)),l&&l.length||n.push(`${we}-wrapper-empty`),[b(u("div",{class:n},l),[[h,!d(t)]])]});const y=t=>{if(e.editorConfirm)return Se(t,e.editorConfirmPosition)},w=t=>{if(e.editorConfirm)return Se(t,e.editorConfirm)},x=t=>{if(e.editorConfirm)return Se(t,e.editorEnterText)},O=t=>{if(e.editorConfirm)return Se(t,e.editorCancelText)},S=t=>ye(this,void 0,void 0,function*(){var o;return!!e.editorConfirm&&(null===(o=e.editorCondition)||void 0===o?void 0:o.call(e,t))});let k;const E=e.renderEditSlot||o.slots.edit;return E&&(k=t=>{var o;const n=[`${we}-wrapper`];let i=E(t)||[];return"seq"===e.type?i.length||(i=[u("span",{},null===(o=t.origin)||void 0===o?void 0:o.seq)]):e.editable&&e.editorMode===ie.cell&&e.editorCloseTrigger===ae.manual&&(i=((e,t)=>{const o=[u("div",{class:`${we}-content`},t)];return o.push(u("div",{class:`${we}-complete-handle`},[u(j,{placement:y(e),text:w(e),enterText:x(e),cancelText:O(e),condition:()=>S(e),confirmCallback:()=>s(e)},{default:()=>[u(l,{icon:"oinone-lujing",color:"var(--oio-default-icon-color)"})]}),u(l,{icon:"oinone-guanbi1",color:"var(--oio-default-icon-color)",size:10,onClick:C(()=>c(e),["stop","prevent"])})])),o})(t,i),n.push(`${we}-manual-editor`,`${we}-editing`)),[u("div",{class:n},i)]}),f(()=>e.invisible,()=>{n&&I(()=>{n.refreshColumn()},50)()}),{width:i,minWidth:a,fixed:r,className:t=>{const o=[];if(!T(e.width)&&parseInt($(e.width))<=0&&o.push(`${we}-overflow-hidden`),e.align&&o.push(`col--${e.align}`),_(e.className)){const{row:n,rowIndex:l,columnIndex:i}=t;return Oe(e.className({row:n,rowIndex:l,columnIndex:i,origin:t}),o)}return Oe(e.className,o)},headerClassName:t=>{if(_(e.headerClassName)){const{rowIndex:o,columnIndex:n}=t;return Oe(e.headerClassName({row:{},rowIndex:o,columnIndex:n,origin:t}))}return Oe(e.headerClassName)},footerClassName:t=>{if(_(e.footerClassName)){const{rowIndex:o,columnIndex:n}=t;return Oe(e.footerClassName({row:{},rowIndex:o,columnIndex:n,origin:t}))}return Oe(e.footerClassName)},renderDefaultSlot:g,renderEditSlot:k}},render(){const{$attrs:e,$slots:t,type:o,label:l,headerAlign:i,footerAlign:a,width:r,minWidth:s,fixed:c,field:d,sortable:p,invisible:g,resizable:m,treeNode:f,editable:b,editRender:h,className:C,headerClassName:v,footerClassName:y,componentData:w}=this,O=Object.assign({},t);return Object.entries(xe).forEach(([e,o])=>{const n=this[o]||t[e];n&&(O[e]=e=>function(e,t){const{rowid:o,row:n,rowIndex:l}=e,i=t({key:o,data:n,index:l,origin:e});return B(i)||A(i)?[u("span",{},i)]:i}(e,n))}),u(x,Object.assign(Object.assign(Object.assign({},n.collectionBasicProps(e)),w||{}),{type:o,title:l,headerAlign:i,footerAlign:a,width:r,minWidth:s,fixed:c,field:d,sortable:p,visible:!g,resizable:m,treeNode:f,editRender:Object.assign({enabled:b},h||{}),className:C,headerClassName:v,footerClassName:y}),O)}});function Ee(e){const{checked:t,indeterminate:o,disabled:n,disabledTitle:l}=e;let i,a=D.icon.TABLE_CHECKBOX_UNCHECKED;o?a=D.icon.TABLE_CHECKBOX_INDETERMINATE:t&&(a=D.icon.TABLE_CHECKBOX_CHECKED);const r=u("span",{class:["vxe-checkbox--icon",a]});return i=n&&l?u(F,{title:l},{default:()=>[r]}):r,i}function Ne(e){const{$table:t,row:o,column:n,isHidden:l,checked:i,disabled:a,disabledTitle:r,visible:s,indeterminate:c}=e,d={};l||(d.onClick=o=>{!a&&s&&t.triggerCheckRowEvent(o,e,!i)});const p=[];s&&p.push(Ee(e));const{computeCheckboxOpts:g}=t.getComputeMaps(),m=g.value,{labelField:f}=m,{slots:b}=n,h=b?b.default:null;let C;return h?C=t.callSlot(h,e):f&&(C=P.get(o,f)),C&&p.push(u("span",{class:"vxe-checkbox--label"},C)),u("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":i,"is--disabled":a,"is--indeterminate":c}]},d),p)}function Re(e){const{$table:t,column:o,isHidden:n,checked:l,disabled:i,indeterminate:a}=e,r={};n||(r.onClick=e=>{i||t.triggerCheckAllEvent(e,!l)});const s=[Ee(e)],{slots:c}=o,d=c?c.title:null,p=o.getTitle();let g;return d?g=t.callSlot(d,e):p&&(g=p),g&&s.push(u("span",{class:"vxe-checkbox--label"},g)),u("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":l,"is--disabled":i,"is--indeterminate":a}],title:D.i18n("vxe.table.allTitle")},r),s)}ke.__file="src/component/oio-table/column/oio-column.vue";const je={field:{type:String}},Fe=Object.assign(Object.assign(Object.assign({},fe),je),e),Te=`${pe}-colgroup`;var Ae=c({name:"OioColgroup",components:{VxeColgroup:O},inheritAttrs:!1,props:Object.assign({},Fe),setup:e=>({headerAlign:m(()=>null==e.headerAlign?Q.center:e.headerAlign)}),render(){const{$attrs:e,$slots:t,label:o,align:l,headerAlign:i,width:a,minWidth:r,fixed:s,field:c,invisible:d,className:p,headerClassName:g,footerClassName:m,componentData:f}=this;return u(O,Object.assign(Object.assign(Object.assign({},n.collectionBasicProps(e,[Te])),f||{}),{title:o,align:l,headerAlign:i,width:a,minWidth:r,fixed:s,field:c,visible:!d,className:p,headerClassName:g,footerClassName:m}),t)}});Ae.__file="src/component/oio-table/colgroup/oio-colgroup.vue";export{Q as ColumnAlignType,J as ColumnFixedType,L as DraggableDirection,M as EventCallbackProps,z as GROUP_TREE_KEY,Ae as OioColgroup,je as OioColgroupControlProps,Fe as OioColgroupProps,ke as OioColumn,fe as OioColumnAppearanceProps,he as OioColumnControlProps,be as OioColumnEditorProps,ve as OioColumnProps,Ce as OioColumnRenderFunctionProps,X as OioDraggable,Y as OioDraggableProps,me as OioTable,ce as OioTableAppearanceProps,de as OioTableControlProps,ue as OioTableProps,te as TableBorder,ae as TableEditorCloseTrigger,ie as TableEditorMode,le as TableEditorTrigger,re as TableFixed,oe as TableOverflow,se as TableRowClickMode,ne as TableSelectTrigger,ee as TableSize,H as VXE_TABLE_X_ID,V as VuedraggableProps,VxeTableHelper,K as defaultDraggableItemProperties,Z as useInjectOioTableInstance,U as useProviderOioTableInstance,Ne as useVxeCheckboxCell,Re as useVxeCheckboxHeader};
@@ -1,3 +1,4 @@
1
1
  export * from './typing';
2
2
  export * from './props';
3
3
  export { default as OioColumn } from './oio-column.vue';
4
+ export * from './useVxeCheckboxCell';
@@ -4,6 +4,9 @@ declare const _default: import("vue").DefineComponent<{
4
4
  componentData: {
5
5
  type: import("vue").PropType<Record<string, unknown>>;
6
6
  };
7
+ renderGroupCellSlot: {
8
+ type: import("vue").PropType<CellRenderFunction<unknown>>;
9
+ };
7
10
  renderDefaultSlot: {
8
11
  type: import("vue").PropType<CellRenderFunction<unknown>>;
9
12
  };
@@ -16,6 +19,9 @@ declare const _default: import("vue").DefineComponent<{
16
19
  renderHeaderSlot: {
17
20
  type: import("vue").PropType<CellRenderFunction<unknown>>;
18
21
  };
22
+ dynamicRenderDefaultSlot: {
23
+ type: import("vue").PropType<(context: RowContext<unknown>) => CellRenderFunction<unknown>>;
24
+ };
19
25
  type: {
20
26
  type: StringConstructor;
21
27
  };
@@ -50,9 +56,8 @@ declare const _default: import("vue").DefineComponent<{
50
56
  type: import("vue").PropType<"manual" | TableEditorCloseTrigger | "auto">;
51
57
  default: TableEditorCloseTrigger;
52
58
  };
53
- disableEditorRender: {
54
- type: BooleanConstructor;
55
- default: boolean;
59
+ editRender: {
60
+ type: ObjectConstructor;
56
61
  };
57
62
  rowEditorClosedByEnter: {
58
63
  type: import("vue").PropType<(context: RowContext<unknown>) => import("@oinone/kunlun-shared").ReturnPromise<boolean, boolean>>;
@@ -131,6 +136,9 @@ declare const _default: import("vue").DefineComponent<{
131
136
  componentData: {
132
137
  type: import("vue").PropType<Record<string, unknown>>;
133
138
  };
139
+ renderGroupCellSlot: {
140
+ type: import("vue").PropType<CellRenderFunction<unknown>>;
141
+ };
134
142
  renderDefaultSlot: {
135
143
  type: import("vue").PropType<CellRenderFunction<unknown>>;
136
144
  };
@@ -143,6 +151,9 @@ declare const _default: import("vue").DefineComponent<{
143
151
  renderHeaderSlot: {
144
152
  type: import("vue").PropType<CellRenderFunction<unknown>>;
145
153
  };
154
+ dynamicRenderDefaultSlot: {
155
+ type: import("vue").PropType<(context: RowContext<unknown>) => CellRenderFunction<unknown>>;
156
+ };
146
157
  type: {
147
158
  type: StringConstructor;
148
159
  };
@@ -177,9 +188,8 @@ declare const _default: import("vue").DefineComponent<{
177
188
  type: import("vue").PropType<"manual" | TableEditorCloseTrigger | "auto">;
178
189
  default: TableEditorCloseTrigger;
179
190
  };
180
- disableEditorRender: {
181
- type: BooleanConstructor;
182
- default: boolean;
191
+ editRender: {
192
+ type: ObjectConstructor;
183
193
  };
184
194
  rowEditorClosedByEnter: {
185
195
  type: import("vue").PropType<(context: RowContext<unknown>) => import("@oinone/kunlun-shared").ReturnPromise<boolean, boolean>>;
@@ -254,7 +264,6 @@ declare const _default: import("vue").DefineComponent<{
254
264
  editorTrigger: TableEditorTrigger | "manual" | "click" | "dblclick";
255
265
  editorMode: "row" | TableEditorMode | "table" | "column" | "cell";
256
266
  editorCloseTrigger: "manual" | TableEditorCloseTrigger | "auto";
257
- disableEditorRender: boolean;
258
267
  invisible: boolean;
259
268
  resizable: boolean;
260
269
  treeNode: boolean;
@@ -70,9 +70,8 @@ export declare const OioColumnEditorProps: {
70
70
  type: PropType<"manual" | TableEditorCloseTrigger | "auto">;
71
71
  default: TableEditorCloseTrigger;
72
72
  };
73
- disableEditorRender: {
74
- type: BooleanConstructor;
75
- default: boolean;
73
+ editRender: {
74
+ type: ObjectConstructor;
76
75
  };
77
76
  rowEditorClosedByEnter: {
78
77
  type: PropType<(context: RowContext) => ReturnPromise<boolean>>;
@@ -113,6 +112,9 @@ export declare const OioColumnControlProps: {
113
112
  };
114
113
  };
115
114
  export declare const OioColumnRenderFunctionProps: {
115
+ renderGroupCellSlot: {
116
+ type: PropType<CellRenderFunction<unknown>>;
117
+ };
116
118
  renderDefaultSlot: {
117
119
  type: PropType<CellRenderFunction<unknown>>;
118
120
  };
@@ -125,11 +127,17 @@ export declare const OioColumnRenderFunctionProps: {
125
127
  renderHeaderSlot: {
126
128
  type: PropType<CellRenderFunction<unknown>>;
127
129
  };
130
+ dynamicRenderDefaultSlot: {
131
+ type: PropType<(context: RowContext) => CellRenderFunction>;
132
+ };
128
133
  };
129
134
  export declare const OioColumnProps: {
130
135
  componentData: {
131
136
  type: PropType<Record<string, unknown>>;
132
137
  };
138
+ renderGroupCellSlot: {
139
+ type: PropType<CellRenderFunction<unknown>>;
140
+ };
133
141
  renderDefaultSlot: {
134
142
  type: PropType<CellRenderFunction<unknown>>;
135
143
  };
@@ -142,6 +150,9 @@ export declare const OioColumnProps: {
142
150
  renderHeaderSlot: {
143
151
  type: PropType<CellRenderFunction<unknown>>;
144
152
  };
153
+ dynamicRenderDefaultSlot: {
154
+ type: PropType<(context: RowContext) => CellRenderFunction>;
155
+ };
145
156
  type: {
146
157
  type: StringConstructor;
147
158
  };
@@ -176,9 +187,8 @@ export declare const OioColumnProps: {
176
187
  type: PropType<"manual" | TableEditorCloseTrigger | "auto">;
177
188
  default: TableEditorCloseTrigger;
178
189
  };
179
- disableEditorRender: {
180
- type: BooleanConstructor;
181
- default: boolean;
190
+ editRender: {
191
+ type: ObjectConstructor;
182
192
  };
183
193
  rowEditorClosedByEnter: {
184
194
  type: PropType<(context: RowContext) => ReturnPromise<boolean>>;
@@ -0,0 +1,27 @@
1
+ import { VNode } from 'vue';
2
+ import type { VxeTableDefines } from 'vxe-table';
3
+ export interface VxeCheckboxCellRenderBodyParams extends VxeTableDefines.CellRenderBodyParams {
4
+ checked: boolean;
5
+ indeterminate: boolean;
6
+ visible: boolean;
7
+ disabled: boolean;
8
+ disabledTitle?: string;
9
+ }
10
+ /**
11
+ * source: vxe-table/packages/table/src/cell.ts#renderCheckboxCell
12
+ */
13
+ export declare function useVxeCheckboxCell(params: VxeCheckboxCellRenderBodyParams): VNode<import("vue").RendererNode, import("vue").RendererElement, {
14
+ [key: string]: any;
15
+ }>;
16
+ export interface VxeCheckboxHeaderRenderBodyParams extends VxeTableDefines.CellRenderHeaderParams {
17
+ checked: boolean;
18
+ indeterminate: boolean;
19
+ disabled: boolean;
20
+ disabledTitle?: string;
21
+ }
22
+ /**
23
+ * source: vxe-table/packages/table/src/cell.ts#renderCheckboxHeader
24
+ */
25
+ export declare function useVxeCheckboxHeader(params: VxeCheckboxHeaderRenderBodyParams): VNode<import("vue").RendererNode, import("vue").RendererElement, {
26
+ [key: string]: any;
27
+ }>;
@@ -50,7 +50,7 @@ declare const _default: import("vue").DefineComponent<{
50
50
  type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.SortConfig>;
51
51
  };
52
52
  radioConfig: {
53
- type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.SortConfig>;
53
+ type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.RadioConfig>;
54
54
  };
55
55
  checkboxConfig: {
56
56
  type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.CheckboxConfig>;
@@ -105,6 +105,10 @@ declare const _default: import("vue").DefineComponent<{
105
105
  type: BooleanConstructor;
106
106
  default: undefined;
107
107
  };
108
+ autoResize: {
109
+ type: BooleanConstructor;
110
+ default: boolean;
111
+ };
108
112
  height: {
109
113
  type: (StringConstructor | NumberConstructor)[];
110
114
  };
@@ -196,7 +200,7 @@ declare const _default: import("vue").DefineComponent<{
196
200
  type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.SortConfig>;
197
201
  };
198
202
  radioConfig: {
199
- type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.SortConfig>;
203
+ type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.RadioConfig>;
200
204
  };
201
205
  checkboxConfig: {
202
206
  type: import("vue").PropType<import("vxe-table").VxeTablePropTypes.CheckboxConfig>;
@@ -251,6 +255,10 @@ declare const _default: import("vue").DefineComponent<{
251
255
  type: BooleanConstructor;
252
256
  default: undefined;
253
257
  };
258
+ autoResize: {
259
+ type: BooleanConstructor;
260
+ default: boolean;
261
+ };
254
262
  height: {
255
263
  type: (StringConstructor | NumberConstructor)[];
256
264
  };
@@ -306,6 +314,7 @@ declare const _default: import("vue").DefineComponent<{
306
314
  showFooter: boolean;
307
315
  loading: boolean;
308
316
  resizable: boolean;
317
+ autoResize: boolean;
309
318
  border: boolean | "default" | "full" | "outer" | "inner" | "none";
310
319
  stripe: boolean;
311
320
  }>;
@@ -8,6 +8,10 @@ export declare const OioTableAppearanceProps: {
8
8
  type: BooleanConstructor;
9
9
  default: undefined;
10
10
  };
11
+ autoResize: {
12
+ type: BooleanConstructor;
13
+ default: boolean;
14
+ };
11
15
  height: {
12
16
  type: (StringConstructor | NumberConstructor)[];
13
17
  };
@@ -111,7 +115,7 @@ export declare const OioTableControlProps: {
111
115
  * 单选框配置
112
116
  */
113
117
  radioConfig: {
114
- type: PropType<VxeTablePropTypes.SortConfig>;
118
+ type: PropType<VxeTablePropTypes.RadioConfig>;
115
119
  };
116
120
  /**
117
121
  * 复选框配置
@@ -230,7 +234,7 @@ export declare const OioTableProps: {
230
234
  * 单选框配置
231
235
  */
232
236
  radioConfig: {
233
- type: PropType<VxeTablePropTypes.SortConfig>;
237
+ type: PropType<VxeTablePropTypes.RadioConfig>;
234
238
  };
235
239
  /**
236
240
  * 复选框配置
@@ -306,6 +310,10 @@ export declare const OioTableProps: {
306
310
  type: BooleanConstructor;
307
311
  default: undefined;
308
312
  };
313
+ autoResize: {
314
+ type: BooleanConstructor;
315
+ default: boolean;
316
+ };
309
317
  height: {
310
318
  type: (StringConstructor | NumberConstructor)[];
311
319
  };
@@ -87,3 +87,10 @@ export declare enum TableFixed {
87
87
  right = "right",
88
88
  all = "all"
89
89
  }
90
+ /**
91
+ * 表格行点击模式
92
+ */
93
+ export declare enum TableRowClickMode {
94
+ click = "click",
95
+ dblclick = "dblclick"
96
+ }
@@ -1,5 +1,6 @@
1
1
  import { VNode } from 'vue';
2
2
  import { VxeTableDefines, VxeTableInstance } from 'vxe-table';
3
+ import { TableEditorCloseTrigger, TableEditorMode } from './table';
3
4
  /**
4
5
  * 行上下文
5
6
  */
@@ -43,6 +44,18 @@ interface BaseContext<T = unknown> {
43
44
  * 行内编辑上下文
44
45
  */
45
46
  export interface ActiveEditorContext<T = unknown> extends BaseContext<T> {
47
+ /**
48
+ * 预处理的行内编辑上下文
49
+ */
50
+ prepare?: boolean;
51
+ /**
52
+ * 新行
53
+ */
54
+ new?: boolean;
55
+ /**
56
+ * 新行编辑完成后插入位置索引
57
+ */
58
+ insertTo?: number;
46
59
  /**
47
60
  * 当前列
48
61
  */
@@ -57,6 +70,22 @@ export interface ActiveEditorContext<T = unknown> extends BaseContext<T> {
57
70
  * 数据提交
58
71
  */
59
72
  submit: boolean;
73
+ /**
74
+ * 行内编辑模式; 一般用于开启行内编辑时手动指定编辑模式,强制覆盖当前配置的编辑模式;
75
+ */
76
+ editorMode?: TableEditorMode;
77
+ /**
78
+ * 行内编辑关闭触发方式; 一般用于开启行内编辑时手动指定关闭触发方式,强制覆盖当前配置的关闭触发方式;
79
+ */
80
+ editorCloseTrigger?: TableEditorCloseTrigger;
81
+ /**
82
+ * 强制编辑
83
+ */
84
+ forceEditable?: boolean;
85
+ /**
86
+ * @see RuntimeAction
87
+ */
88
+ triggerAction?: Record<string, unknown>;
60
89
  }
61
90
  export declare type RenderCellContext<T = unknown> = BaseContext<T>;
62
91
  export declare type CellRenderFunction<T = unknown> = (context: RowContext<T>) => VNode[] | string;
@@ -74,6 +103,7 @@ export interface OioTableInstance {
74
103
  loadColumns(columns: (VxeTableDefines.ColumnOptions | VxeTableDefines.ColumnInfo)[]): Promise<any>;
75
104
  reloadColumns(columns: (VxeTableDefines.ColumnOptions | VxeTableDefines.ColumnInfo)[]): Promise<any>;
76
105
  updateFooter(): any;
106
+ getTableData(index: number): Promise<any>;
77
107
  setEditRow(row: unknown): Promise<any>;
78
108
  getActiveEditorRecord(): RowContext | undefined;
79
109
  activeCellEditor(row: unknown, fieldOrColumn: string | VxeTableDefines.ColumnInfo): Promise<any>;
@@ -82,7 +112,12 @@ export interface OioTableInstance {
82
112
  allRowExpand(): Promise<any>;
83
113
  clearAllRowExpand(): Promise<any>;
84
114
  setRowExpand(row: unknown, isExpand: boolean): Promise<any>;
115
+ getSortColumns(): VxeTableDefines.SortCheckedParams[];
116
+ clearSort(fieldOrColumn: string | VxeTableDefines.ColumnInfo): Promise<any>;
85
117
  sort(sortConfs: VxeTableDefines.SortConfs[]): Promise<any>;
118
+ insert(records: Record<string, unknown> | Record<string, unknown>[], index?: number): Promise<any>;
119
+ isInsertByRow(row: unknown): boolean;
120
+ removeInsertRow(): Promise<any>;
86
121
  }
87
122
  export declare type VxeTableRowContext = RowContext<VxeTableDefines.CellRenderBodyParams>;
88
123
  export declare type VxeTableActiveEditorEventContext = ActiveEditorContext<VxeTableDefines.EditActivedEventParams>;
@@ -1 +1,6 @@
1
1
  export declare const VXE_TABLE_X_ID = "_X_ROW_KEY";
2
+ export declare const GROUP_TREE_KEY: {
3
+ CHILDREN_KEY: string;
4
+ PROPS_KEY: string;
5
+ IS_LEAF_KEY: string;
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oinone/kunlun-vue-ui",
3
- "version": "6.3.9",
3
+ "version": "6.4.1",
4
4
  "main": "index.ts",
5
5
  "scripts": {
6
6
  "prebuild": "rimraf dist",
@@ -13,8 +13,8 @@
13
13
  "doc": "typedoc --out docs src/index.ts"
14
14
  },
15
15
  "dependencies": {
16
- "@oinone/kunlun-vue-ui-antd": "6.3.9",
17
- "@oinone/kunlun-vue-ui-common": "6.3.9",
16
+ "@oinone/kunlun-vue-ui-antd": "6.4.1",
17
+ "@oinone/kunlun-vue-ui-common": "6.4.1",
18
18
  "sortablejs": "1.14.0",
19
19
  "vue3-smooth-dnd": "0.0.5",
20
20
  "vuedraggable": "4.1.0",
@@ -24,7 +24,7 @@
24
24
  "xe-utils": "3.5.7"
25
25
  },
26
26
  "devDependencies": {
27
- "@oinone/kunlun-shared": "~6.3.0",
27
+ "@oinone/kunlun-shared": "~6.4.0",
28
28
  "@types/lodash": "4.14.182",
29
29
  "@types/lodash-es": "4.17.6",
30
30
  "lodash": "4.17.21",
package/rollup.config.js CHANGED
@@ -10,6 +10,7 @@ export default rollupConfig(pkg.name, [
10
10
  'vue',
11
11
  'vxe-table',
12
12
  'vxe-table/lib/style.min.css',
13
+ 'vxe-table/lib/v-x-e-table/src/conf',
13
14
  'vxe-table-plugin-antd',
14
15
  'vxe-table-plugin-antd/dist/style.min.css',
15
16
  'vxe-table-plugin-element',
@@ -1,3 +1,4 @@
1
1
  export * from './typing';
2
2
  export * from './props';
3
3
  export { default as OioColumn } from './oio-column.vue';
4
+ export * from './useVxeCheckboxCell';
@@ -223,7 +223,7 @@ export default defineComponent({
223
223
  if (!wrapperChildren.length) {
224
224
  wrapperChildren = [createVNode('span', {}, ctx.origin?.seq)];
225
225
  }
226
- } else if (!props.disableEditorRender && props.editable) {
226
+ } else if (props.editable) {
227
227
  if (
228
228
  props.editorTrigger === TableEditorTrigger.manual &&
229
229
  props.editorMode === TableEditorMode.cell &&
@@ -323,7 +323,7 @@ export default defineComponent({
323
323
  if (!wrapperChildren.length) {
324
324
  wrapperChildren = [createVNode('span', {}, ctx.origin?.seq)];
325
325
  }
326
- } else if (!props.disableEditorRender && props.editable) {
326
+ } else if (props.editable) {
327
327
  if (
328
328
  props.editorMode === TableEditorMode.cell &&
329
329
  props.editorCloseTrigger === TableEditorCloseTrigger.manual
@@ -379,13 +379,14 @@ export default defineComponent({
379
379
  treeNode,
380
380
 
381
381
  editable,
382
+ editRender,
382
383
  className,
383
384
  headerClassName,
384
385
  footerClassName,
385
386
 
386
387
  componentData
387
388
  } = this;
388
- const children: Record<string, Slot> = {};
389
+ const children = { ...$slots } as Record<string, Slot>;
389
390
  Object.entries(renderMethods).forEach(([slotName, method]) => {
390
391
  const fn = (this[method] || $slots[slotName]) as CellRenderFunction;
391
392
  if (fn) {
@@ -411,7 +412,7 @@ export default defineComponent({
411
412
  resizable,
412
413
  treeNode,
413
414
 
414
- editRender: { enabled: editable },
415
+ editRender: { enabled: editable, ...(editRender || {}) },
415
416
  className,
416
417
  headerClassName,
417
418
  footerClassName
@@ -72,9 +72,8 @@ export const OioColumnEditorProps = {
72
72
  type: String as PropType<TableEditorCloseTrigger | keyof typeof TableEditorCloseTrigger>,
73
73
  default: TableEditorCloseTrigger.manual
74
74
  },
75
- disableEditorRender: {
76
- type: Boolean,
77
- default: false
75
+ editRender: {
76
+ type: Object
78
77
  },
79
78
  rowEditorClosedByEnter: {
80
79
  type: Function as PropType<(context: RowContext) => ReturnPromise<boolean>>
@@ -117,6 +116,9 @@ export const OioColumnControlProps = {
117
116
  };
118
117
 
119
118
  export const OioColumnRenderFunctionProps = {
119
+ renderGroupCellSlot: {
120
+ type: Function as PropType<CellRenderFunction>
121
+ },
120
122
  renderDefaultSlot: {
121
123
  type: Function as PropType<CellRenderFunction>
122
124
  },
@@ -128,6 +130,9 @@ export const OioColumnRenderFunctionProps = {
128
130
  },
129
131
  renderHeaderSlot: {
130
132
  type: Function as PropType<CellRenderFunction>
133
+ },
134
+ dynamicRenderDefaultSlot: {
135
+ type: Function as PropType<(context: RowContext) => CellRenderFunction>
131
136
  }
132
137
  };
133
138
 
@@ -0,0 +1,149 @@
1
+ import { OioTooltip } from '@oinone/kunlun-vue-ui-antd';
2
+ import { createVNode, VNode } from 'vue';
3
+ import type { SlotVNodeType, VxeTableDefines } from 'vxe-table';
4
+ import VxeGlobalConfig from 'vxe-table/lib/v-x-e-table/src/conf';
5
+ import XEUtils from 'xe-utils';
6
+
7
+ export interface VxeCheckboxCellRenderBodyParams extends VxeTableDefines.CellRenderBodyParams {
8
+ checked: boolean;
9
+ indeterminate: boolean;
10
+ visible: boolean;
11
+ disabled: boolean;
12
+ disabledTitle?: string;
13
+ }
14
+
15
+ function createCheckboxVNode(params: {
16
+ checked: boolean;
17
+ indeterminate: boolean;
18
+ disabled: boolean;
19
+ disabledTitle?: string;
20
+ }) {
21
+ const { checked, indeterminate, disabled, disabledTitle } = params;
22
+ let icon = VxeGlobalConfig.icon.TABLE_CHECKBOX_UNCHECKED;
23
+ if (indeterminate) {
24
+ icon = VxeGlobalConfig.icon.TABLE_CHECKBOX_INDETERMINATE;
25
+ } else if (checked) {
26
+ icon = VxeGlobalConfig.icon.TABLE_CHECKBOX_CHECKED;
27
+ }
28
+ let checkboxVNode: VNode;
29
+ const checkboxIcon = createVNode('span', { class: ['vxe-checkbox--icon', icon] });
30
+ if (disabled) {
31
+ if (disabledTitle) {
32
+ checkboxVNode = createVNode(
33
+ OioTooltip,
34
+ {
35
+ title: disabledTitle
36
+ },
37
+ {
38
+ default: () => {
39
+ return [checkboxIcon];
40
+ }
41
+ }
42
+ );
43
+ } else {
44
+ checkboxVNode = checkboxIcon;
45
+ }
46
+ } else {
47
+ checkboxVNode = checkboxIcon;
48
+ }
49
+ return checkboxVNode;
50
+ }
51
+
52
+ /**
53
+ * source: vxe-table/packages/table/src/cell.ts#renderCheckboxCell
54
+ */
55
+ export function useVxeCheckboxCell(params: VxeCheckboxCellRenderBodyParams) {
56
+ const { $table, row, column, isHidden, checked, disabled, disabledTitle, visible, indeterminate } = params;
57
+ const ons: Record<string, unknown> = {};
58
+ if (!isHidden) {
59
+ ons.onClick = (evnt: MouseEvent) => {
60
+ if (!disabled && visible) {
61
+ $table.triggerCheckRowEvent(evnt, params, !checked);
62
+ }
63
+ };
64
+ }
65
+ const checkVNs: VNode[] = [];
66
+ if (visible) {
67
+ checkVNs.push(createCheckboxVNode(params));
68
+ }
69
+ const { computeCheckboxOpts } = $table.getComputeMaps();
70
+ const checkboxOpts = computeCheckboxOpts.value;
71
+ const { labelField } = checkboxOpts;
72
+ const { slots } = column;
73
+ const defaultSlot = slots ? slots.default : null;
74
+ let labelVNode: SlotVNodeType[] | string | undefined;
75
+ if (defaultSlot) {
76
+ labelVNode = $table.callSlot(defaultSlot, params);
77
+ } else if (labelField) {
78
+ labelVNode = XEUtils.get(row, labelField as string);
79
+ }
80
+ if (labelVNode) {
81
+ checkVNs.push(createVNode('span', { class: 'vxe-checkbox--label' }, labelVNode));
82
+ }
83
+ return createVNode(
84
+ 'span',
85
+ {
86
+ class: [
87
+ 'vxe-cell--checkbox',
88
+ {
89
+ 'is--checked': checked,
90
+ 'is--disabled': disabled,
91
+ 'is--indeterminate': indeterminate
92
+ }
93
+ ],
94
+ ...ons
95
+ },
96
+ checkVNs
97
+ );
98
+ }
99
+
100
+ export interface VxeCheckboxHeaderRenderBodyParams extends VxeTableDefines.CellRenderHeaderParams {
101
+ checked: boolean;
102
+ indeterminate: boolean;
103
+ disabled: boolean;
104
+ disabledTitle?: string;
105
+ }
106
+
107
+ /**
108
+ * source: vxe-table/packages/table/src/cell.ts#renderCheckboxHeader
109
+ */
110
+ export function useVxeCheckboxHeader(params: VxeCheckboxHeaderRenderBodyParams) {
111
+ const { $table, column, isHidden, checked, disabled, indeterminate } = params;
112
+ const ons: Record<string, unknown> = {};
113
+ if (!isHidden) {
114
+ ons.onClick = (evnt: MouseEvent) => {
115
+ if (!disabled) {
116
+ $table.triggerCheckAllEvent(evnt, !checked);
117
+ }
118
+ };
119
+ }
120
+ const checkVNs: VNode[] = [createCheckboxVNode(params)];
121
+ const { slots } = column;
122
+ const titleSlot = slots ? slots.title : null;
123
+ const headerTitle = column.getTitle();
124
+ let labelVNode: SlotVNodeType[] | string | undefined;
125
+ if (titleSlot) {
126
+ labelVNode = $table.callSlot(titleSlot, params);
127
+ } else if (headerTitle) {
128
+ labelVNode = headerTitle;
129
+ }
130
+ if (labelVNode) {
131
+ checkVNs.push(createVNode('span', { class: 'vxe-checkbox--label' }, labelVNode));
132
+ }
133
+ return createVNode(
134
+ 'span',
135
+ {
136
+ class: [
137
+ 'vxe-cell--checkbox',
138
+ {
139
+ 'is--checked': checked,
140
+ 'is--disabled': disabled,
141
+ 'is--indeterminate': indeterminate
142
+ }
143
+ ],
144
+ title: VxeGlobalConfig.i18n('vxe.table.allTitle'),
145
+ ...ons
146
+ },
147
+ checkVNs
148
+ );
149
+ }
@@ -25,7 +25,8 @@ const events = {
25
25
  onEditDisabled: 'edit-disabled',
26
26
  onScroll: 'scroll',
27
27
  onCurrentChange: 'current-change',
28
- onResizableChange: 'resizable-change'
28
+ onResizableChange: 'resizable-change',
29
+ onKeydown: 'keydown'
29
30
  };
30
31
 
31
32
  interface OriginSort {
@@ -212,6 +213,9 @@ export default defineComponent({
212
213
  reloadColumns(columns) {
213
214
  return vxeTable.value!.reloadColumn(columns);
214
215
  },
216
+ getTableData(index: number): Promise<any> {
217
+ return vxeTable.value!.getTableData().tableData[index];
218
+ },
215
219
  setEditRow(row) {
216
220
  return vxeTable.value!.setEditRow(row);
217
221
  },
@@ -246,8 +250,26 @@ export default defineComponent({
246
250
  setRowExpand(row, isExpand: boolean): Promise<any> {
247
251
  return vxeTable.value!.setRowExpand(row, isExpand);
248
252
  },
253
+ getSortColumns(): VxeTableDefines.SortCheckedParams[] {
254
+ return vxeTable.value!.getSortColumns() as VxeTableDefines.SortCheckedParams[];
255
+ },
256
+ clearSort(fieldOrColumn: string | VxeTableDefines.ColumnInfo): Promise<any> {
257
+ return vxeTable.value!.clearSort(fieldOrColumn);
258
+ },
249
259
  sort(sortConfs: VxeTableDefines.SortConfs[]): Promise<any> {
250
260
  return vxeTable.value!.sort(sortConfs);
261
+ },
262
+ insert(records: Record<string, unknown> | Record<string, unknown>[], index?: number): Promise<any> {
263
+ if (index == null) {
264
+ return vxeTable.value!.insert(records);
265
+ }
266
+ return vxeTable.value!.insertAt(records, index);
267
+ },
268
+ isInsertByRow(row): boolean {
269
+ return vxeTable.value!.isInsertByRow(row);
270
+ },
271
+ removeInsertRow(): Promise<any> {
272
+ return vxeTable.value!.removeInsertRow();
251
273
  }
252
274
  };
253
275
 
@@ -273,7 +295,7 @@ export default defineComponent({
273
295
  const {
274
296
  $attrs,
275
297
  $slots,
276
-
298
+ autoResize,
277
299
  size,
278
300
  resizable,
279
301
  height,
@@ -347,7 +369,7 @@ export default defineComponent({
347
369
  createVNode(
348
370
  VxeTable,
349
371
  {
350
- autoResize: false,
372
+ autoResize,
351
373
  ...(componentData || {}),
352
374
 
353
375
  ref: 'vxeTable',
@@ -11,6 +11,10 @@ export const OioTableAppearanceProps = {
11
11
  type: Boolean,
12
12
  default: undefined
13
13
  },
14
+ autoResize: {
15
+ type: Boolean,
16
+ default: false
17
+ },
14
18
  height: {
15
19
  type: [String, Number]
16
20
  },
@@ -118,7 +122,7 @@ export const OioTableControlProps = {
118
122
  * 单选框配置
119
123
  */
120
124
  radioConfig: {
121
- type: Object as PropType<VxeTablePropTypes.SortConfig>
125
+ type: Object as PropType<VxeTablePropTypes.RadioConfig>
122
126
  },
123
127
  /**
124
128
  * 复选框配置
@@ -94,3 +94,11 @@ export enum TableFixed {
94
94
  right = 'right',
95
95
  all = 'all'
96
96
  }
97
+
98
+ /**
99
+ * 表格行点击模式
100
+ */
101
+ export enum TableRowClickMode {
102
+ click = 'click',
103
+ dblclick = 'dblclick'
104
+ }
@@ -1,5 +1,6 @@
1
1
  import { VNode } from 'vue';
2
2
  import { VxeTableDefines, VxeTableInstance } from 'vxe-table';
3
+ import { TableEditorCloseTrigger, TableEditorMode } from './table';
3
4
 
4
5
  /**
5
6
  * 行上下文
@@ -46,6 +47,18 @@ interface BaseContext<T = unknown> {
46
47
  * 行内编辑上下文
47
48
  */
48
49
  export interface ActiveEditorContext<T = unknown> extends BaseContext<T> {
50
+ /**
51
+ * 预处理的行内编辑上下文
52
+ */
53
+ prepare?: boolean;
54
+ /**
55
+ * 新行
56
+ */
57
+ new?: boolean;
58
+ /**
59
+ * 新行编辑完成后插入位置索引
60
+ */
61
+ insertTo?: number;
49
62
  /**
50
63
  * 当前列
51
64
  */
@@ -60,6 +73,22 @@ export interface ActiveEditorContext<T = unknown> extends BaseContext<T> {
60
73
  * 数据提交
61
74
  */
62
75
  submit: boolean;
76
+ /**
77
+ * 行内编辑模式; 一般用于开启行内编辑时手动指定编辑模式,强制覆盖当前配置的编辑模式;
78
+ */
79
+ editorMode?: TableEditorMode;
80
+ /**
81
+ * 行内编辑关闭触发方式; 一般用于开启行内编辑时手动指定关闭触发方式,强制覆盖当前配置的关闭触发方式;
82
+ */
83
+ editorCloseTrigger?: TableEditorCloseTrigger;
84
+ /**
85
+ * 强制编辑
86
+ */
87
+ forceEditable?: boolean;
88
+ /**
89
+ * @see RuntimeAction
90
+ */
91
+ triggerAction?: Record<string, unknown>;
63
92
  }
64
93
 
65
94
  export type RenderCellContext<T = unknown> = BaseContext<T>;
@@ -93,6 +122,8 @@ export interface OioTableInstance {
93
122
 
94
123
  updateFooter();
95
124
 
125
+ getTableData(index: number): Promise<any>;
126
+
96
127
  setEditRow(row: unknown): Promise<any>;
97
128
 
98
129
  getActiveEditorRecord(): RowContext | undefined;
@@ -109,7 +140,17 @@ export interface OioTableInstance {
109
140
 
110
141
  setRowExpand(row: unknown, isExpand: boolean): Promise<any>;
111
142
 
143
+ getSortColumns(): VxeTableDefines.SortCheckedParams[];
144
+
145
+ clearSort(fieldOrColumn: string | VxeTableDefines.ColumnInfo): Promise<any>;
146
+
112
147
  sort(sortConfs: VxeTableDefines.SortConfs[]): Promise<any>;
148
+
149
+ insert(records: Record<string, unknown> | Record<string, unknown>[], index?: number): Promise<any>;
150
+
151
+ isInsertByRow(row: unknown): boolean;
152
+
153
+ removeInsertRow(): Promise<any>;
113
154
  }
114
155
 
115
156
  export type VxeTableRowContext = RowContext<VxeTableDefines.CellRenderBodyParams>;
package/src/constant.ts CHANGED
@@ -1 +1,7 @@
1
1
  export const VXE_TABLE_X_ID = '_X_ROW_KEY';
2
+
3
+ export const GROUP_TREE_KEY = {
4
+ CHILDREN_KEY: 'CHILDREN_KEY',
5
+ PROPS_KEY: 'PROPS_KEY',
6
+ IS_LEAF_KEY: 'IS_LEAF_KEY'
7
+ };