@oinone/kunlun-vue-ui 6.3.8 → 6.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/oinone-kunlun-vue-ui.esm.js +2 -2
- package/dist/types/src/component/oio-table/column/index.d.ts +1 -0
- package/dist/types/src/component/oio-table/column/oio-column.vue.d.ts +16 -7
- package/dist/types/src/component/oio-table/column/props.d.ts +16 -6
- package/dist/types/src/component/oio-table/column/useVxeCheckboxCell.d.ts +27 -0
- package/dist/types/src/component/oio-table/table/oio-table.vue.d.ts +11 -2
- package/dist/types/src/component/oio-table/table/props.d.ts +10 -2
- package/dist/types/src/component/oio-table/table/typing.d.ts +7 -0
- package/dist/types/src/component/oio-table/typing.d.ts +35 -0
- package/dist/types/src/constant.d.ts +5 -0
- package/package.json +4 -4
- package/rollup.config.js +1 -0
- package/src/component/oio-table/column/index.ts +1 -0
- package/src/component/oio-table/column/oio-column.vue +5 -4
- package/src/component/oio-table/column/props.ts +8 -3
- package/src/component/oio-table/column/useVxeCheckboxCell.ts +149 -0
- package/src/component/oio-table/table/oio-table.vue +25 -3
- package/src/component/oio-table/table/props.ts +5 -1
- package/src/component/oio-table/table/typing.ts +8 -0
- package/src/component/oio-table/typing.ts +41 -0
- package/src/constant.ts +6 -0
|
@@ -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
|
|
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};
|
|
@@ -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
|
-
|
|
54
|
-
type:
|
|
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
|
-
|
|
181
|
-
type:
|
|
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
|
-
|
|
74
|
-
type:
|
|
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
|
-
|
|
180
|
-
type:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
};
|
|
@@ -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>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oinone/kunlun-vue-ui",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0",
|
|
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.
|
|
17
|
-
"@oinone/kunlun-vue-ui-common": "6.
|
|
16
|
+
"@oinone/kunlun-vue-ui-antd": "6.4.0",
|
|
17
|
+
"@oinone/kunlun-vue-ui-common": "6.4.0",
|
|
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.
|
|
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
|
@@ -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 (
|
|
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 (
|
|
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
|
|
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
|
-
|
|
76
|
-
type:
|
|
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
|
|
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.
|
|
125
|
+
type: Object as PropType<VxeTablePropTypes.RadioConfig>
|
|
122
126
|
},
|
|
123
127
|
/**
|
|
124
128
|
* 复选框配置
|
|
@@ -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>;
|