UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 13.3 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),C=require("vxe-table");require("vxe-table/es/style.css");const s=require("lodash-unified"),Fe=require("../ap-form/index.js");require("../config-provider/index.js");const Ie=require("../ap-table/constants.js"),d=require("../ap-table/utils.js"),Ne=require("../ap-table/hooks/use-table-paging-ng.js"),S=require("@aplus-frontend/antdv"),Pe=require("./hooks/use-inner-params.js"),E=require("./utils/table.js"),Te=require("./hooks/use-row-selection.js"),qe=require("../ap-table/context.js"),h=require("./constants.js"),ze=require("./hooks/use-render-columns.js"),Ve=require("@aplus-frontend/antdv/es/theme/internal");require("../scroll-bar/index.js");const _e=require("../utils/index.js"),Ae=require("../utils/slot.js"),Le=require("./hooks/use-table-style.js"),Oe=require("../utils/warning.js"),De=require("../config-provider/hooks/use-namespace.js"),U=require("../config-provider/hooks/use-global-config.js"),Ke=require("../config-provider/hooks/use-locale.js"),$e=require("../scroll-bar/index.vue.js"),Ue=e.defineComponent({name:"ApGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean,default:!1},locale:{},onChange:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{default:()=>["ascend","descend"]},showSorterTooltip:{type:[Boolean,Object],default:!1},prefixCls:{},tableLayout:{},title:{},id:{},showHeader:{type:Boolean,default:!0},components:{},customRow:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean],default:!1},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean,default:!1},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean,default:!1},indentSize:{default:15},expandIconColumnIndex:{},showExpandColumn:{type:Boolean,default:!0},expandedRowClassName:{},childrenColumnName:{default:"children"},rowExpandable:{},sticky:{type:[Boolean,Object],default:!1},transformCellText:{},rowClassName:{},stripe:{type:Boolean},headerRowClassName:{},footerRowClassName:{},cellClassName:{},headerCellClassName:{},footerCellClassName:{},rowStyle:{},headerRowStyle:{},footerRowStyle:{},cellStyle:{},headerCellStyle:{},footerCellStyle:{},height:{},minHeight:{},maxHeight:{},mergeCells:{},mergeFooterItems:{},cellConfig:{},loading:{type:Boolean,default:void 0},loadingConfig:{},headerCellConfig:{},footerCellConfig:{},round:{type:Boolean,default:void 0},columns:{},rowSelection:{type:Boolean},card:{type:Boolean,default:!1},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean,default:!1},columnResizable:{type:[Boolean,Object],default:!1},rowKey:{default:"key"},footer:{},virtual:{type:[Boolean,Object],default:void 0},expandable:{},value:{},rowHighlightable:{type:[Boolean,Function],default:!1},treeConfig:{},onReady:{}},setup(G,{expose:W}){const b=e.useSlots(),r=G,v=e.getCurrentInstance()?.appContext.app;v&&!v.__VXE_PC_UI_INSTALLED__&&(v.use(C.VxeUI),v.__VXE_PC_UI_INSTALLED__=!0),Oe.useDevWarning("ApGrid")(!1,"breaking","AgGrid has been EOL, Please use AgGrid(https://aplus.aplnk.com/aplus-ui/components/ag-grid/) instead.");const{e:y,b:u,be:M}=De.useNamespace("ap-grid"),j=U.useGlobalConfig("valueTypeMap"),H=U.useGlobalConfig("apGrid"),l=e.ref([]),F=e.ref([]),a=e.ref(),w=e.ref(r.size),X=Le.useTableStyle(),[,J]=Ve.useToken(),{t:Q}=Ke.useLocale();C.VxeUI.setConfig({i18n:(t,o)=>Q(`ap.${t}`,o)});const{renderConfig:Y,updateSignal:Z}=ze.useRenderColumns(l);let I=0;const m=e.computed(()=>{let t=r.rowSelection||H.value?.rowSelection;if(t)return t===!0?h.DEFAULT_ROW_SELECTION_CONFIG:{...h.DEFAULT_ROW_SELECTION_CONFIG,...t}}),ee=e.computed(()=>{if(a.value)return a.value.$el.querySelector(".vxe-table--header-inner-wrapper")}),N=e.computed(()=>(I++,r.columns?.filter(t=>!t.hideInSearch&&t.dataIndex&&(t.valueType||t.customRenderFormItem)&&!Ie.noRenderAsFormItemValueList.includes(t.valueType))?.sort((t,o)=>{let n=d.getColumnOrder(t.order);return d.getColumnOrder(o.order)-n})?.map(t=>{const o=d.updateFormProps(t,d.getFieldProps(t.fieldProps,{})),n={...t,fieldProps:{label:t.title,name:t.dataIndex,bordered:!0,...o||{},_signal:I},renderNode:void 0};return n.renderNode=d.getSearchFormItemRenderNode(n,e.unref(j)),n})||[])),te=e.computed(()=>_e.isDef(r.manual)?r.manual:Ae.getValidVNodeList(b.searchFormExtra?.()||[]).some(o=>o.type?.name==="ApView")),re=e.computed(()=>[u(),r.card?null:u("wrapper"),r.adaptive?u("adaptive"):null,r.sticky?u("sticky"):null].filter(Boolean)),P=e.computed(()=>d.recursionApColumns(e.unref(l),t=>{if(t.sorter===!0)return t.key||t.dataIndex}).filter(Boolean)),T=e.computed(()=>d.recursionApColumns(e.unref(l),t=>{if(t.filters&&!t.onFilter)return t.key||t.dataIndex}).filter(Boolean)),{formRef:f,submit:R,reset:x,refresh:q,data:i,tableProps:z,setDataSource:oe,handleTableChangeOptional:ne,getPaging:ae,setPaging:le,submitWith:V}=Ne.useTablePaging({async request(t){if(m.value&&!m.value.preserveSelectedRowKeys&&s.isUndefined(r.dataSource)&&B(),!s.isUndefined(r.dataSource)){const n=t.pageSize*(t.current-1);return{data:(r.pagination===!1?r.dataSource:r.dataSource.slice(n,n+t.pageSize))||[],total:r.dataSource.length||0}}const o=await r.request?.(t);return{data:o?.data||[],total:o?.total||0}},namespace:"ap-grid",filterFields:T,sortFields:P,params:e.toRef(r,"params"),defaultData:r.defaultData,manual:e.unref(te),formatParams:r.beforeSearchSubmit,pagination:r.pagination,onClickReset:Se,onAfterRequest:be}),{sortChangeEvent:se,filterChangeEvent:ue,paginationChangeEvent:ie}=Pe.useInnerParams(ne);qe.useProvideApTable({columns:e.computed(()=>l.value),columnsBackup:e.computed(()=>F.value),size:e.computed(()=>h.sizeMap[w.value]),updateColumns(t){l.value=t,r.onShownColumnsChange?.(t)},updateSize(t){w.value=h.sizeReverseMap[t]},renderConfig:e.computed(()=>({className:M("table-header","title"),color:J.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(i).records),getSearchFormValues:A,setSearchFormValues:_,submit:R,submitWith:V,reset:x,refresh:q,getSearchFormSorterItems:L,setSearchFormSorterItems:O,resetSearchFormSorterItems:D});const ce=e.computed(()=>l.value.some(t=>t.fixed==="left"||t.fixed===!0)?"left":void 0),de=e.computed(()=>s.isUndefined(r.loading)?i.loading:r.loading),fe=e.computed(()=>s.isUndefined(r.dataSource)?i.records:r.dataSource),{selectedRows:k,rowSelection:p,...g}=Te.default({...m.value,dataSource:fe,rowKey:r.rowKey}),pe=({checked:t})=>{const o=a.value;o&&o&&g.selectChange(t,o.getCheckboxRecords(),o.getCheckboxReserveRecords())},me=({checked:t})=>{const o=a.value;o&&g.selectAllChange(t,[...o.getCheckboxReserveRecords(),...o.getCheckboxRecords()])},ge=()=>{const t=a.value;t&&g.selectRangeChange(t.getCheckboxRecords(),[...t.getCheckboxReserveRecords(),...t.getCheckboxRecords()])},Ce=()=>{const t=a.value;t&&(k.value=[t.getRadioRecord()])},he=({row:t})=>{const o=r.rowHighlightable;s.isFunction(o)&&o(t)};function ve(){return r.columns?.filter(t=>!t.hideInTable)||[]}function _(t){f.value?.apForm?.setFieldsValue?.(t)}function A(t=!1){const o=t?"getFieldsValueTransformed":"getFieldsValue";return f.value?.apForm?.[o]?.(!0)}function L(){return f.value?.getSorterItems()||[]}function O(t){f.value?.setSorterItems(t)}function D(){f.value?.resetSorterItems()}function B(){g.clearAll();const t=a.value;t&&(p.value.type==="radio"?(t.clearRadioRow(),t.clearRadioReserve()):(t.clearCheckboxRow(),t.clearCheckboxReserve()))}function ye(t){s.isFunction(r.rowKey)||(g.selectMultiByKeys(t),K())}function we(t){const o=a.value;if(!o)return;const n=String(t[r.rowKey]),c=o.getRowById(n);o.setCurrentRow(c)}function Se(){const t=a.value;t&&(t.clearSort(),t.clearFilter())}function K(){e.nextTick(()=>{p.value.type==="radio"?a.value?.setRadioRowKey(p.value.selectedRowKeys[0]):a.value?.setCheckboxRowKey(p.value.selectedRowKeys,!0)})}function be(t){K(),r.onReady&&e.nextTick(()=>{r.onReady(t)})}async function Re(t,o){const n=i.records[t];if(n)return a.value?.scrollToRow(n,o)}const xe=t=>s.isFunction(r.rowKey)?r.rowKey(t):t[r.rowKey];async function ke(t,o=!0){const n=a.value;if(!n)return;const c=s.isArray(t)?t:[t],Be=(n.getData()||[]).filter(Ee=>c.includes(xe(Ee)));n.setRowExpand(Be,o)}return e.watch(()=>[r.columnResizable,r.columns],()=>{const t=ve();l.value=t,r.onShownColumnsChange?.(t),F.value=t},{deep:!0,immediate:!0}),e.watch(()=>r.dataSource,t=>{oe(t)},{immediate:!0,deep:!0}),e.watch(()=>e.unref(i).loading,t=>{r.onLoadingChange?.(t)}),e.watch(()=>r.size,t=>{w.value=t}),W({submit:R,reset:x,refresh:q,submitWith:V,setSearchFormValues:_,getSearchFormValues:A,getShowColumns:()=>e.unref(l),rowSelection:{selectedRows:e.computed(()=>k.value),setSelectedRowKeys:ye,clearAll:B},scrollToRow:Re,getDataSource:()=>e.unref(i.records),setCurrentRow:we,getPaging:ae,setPaging:le,getSearchFormSorterItems:L,setSearchFormSorterItems:O,resetSearchFormSorterItems:D,setRowExpand:ke}),(t,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(re.value),style:e.normalizeStyle(t.wrapperStyle)},[e.unref(s.isUndefined)(t.dataSource)&&t.searchForm!==!1&&N.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.card?e.unref(y)("search-wrapper"):null),style:e.normalizeStyle(t.searchFormWrapperStyle)},[e.createVNode(e.unref(Fe.ApForm).SearchForm,e.mergeProps(t.searchForm||{},{ref_key:"formRef",ref:f,"custom-reset":"","submit-loading":e.unref(z).loading,onSubmit:e.unref(R),onReset:e.unref(x)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[b.searchFormExtra?{name:"extra",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(y)("table-wrapper"),t.card?e.unref(y)("table-wrapper-card"):null]),style:e.normalizeStyle(t.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("header-wrapper"))},[e.renderSlot(t.$slots,"title",{selectedRows:e.unref(k),selectedRowKeys:e.unref(p).selectedRowKeys,shownColumns:l.value,clearAll:B})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("vxe-wrapper"))},[(e.openBlock(),e.createBlock(e.unref(C.VxeTable),e.mergeProps(e.unref(E.toVxeProps)(r,m.value),{ref_key:"tableRef",ref:a,key:e.unref(Z),data:e.unref(i).records,"sort-config":{remote:P.value.length>0,trigger:"cell"},"filter-config":{remote:T.value.length>0},loading:de.value,style:e.unref(X),size:w.value,onSortChange:e.unref(se),onFilterChange:e.unref(ue),onCheckboxChange:pe,onCheckboxRangeChange:ge,onCheckboxAll:me,onRadioChange:Ce,onCurrentRowChange:he}),e.createSlots({empty:e.withCtx(()=>[e.createVNode(e.unref(S.Empty),{image:e.unref(S.Empty).PRESENTED_IMAGE_SIMPLE},null,8,["image"])]),loading:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(y)("table-loading-wrapper"))},[e.createVNode(e.unref(S.Spin))],2)]),default:e.withCtx(()=>[r.expandable&&l.value.length?(e.openBlock(),e.createBlock(e.unref(C.VxeColumn),e.mergeProps({key:0},e.unref(E.getRowExpandProps)(t.expandable),{fixed:ce.value}),e.createSlots({content:e.withCtx(n=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.expandable.renderContent(n))))]),_:2},[t.expandable?.renderCell?{name:"default",fn:e.withCtx(n=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.expandable.renderCell(n.$table.isRowExpandByRow(n.row),n.row))))]),key:"0"}:void 0]),1040,["fixed"])):e.createCommentVNode("",!0),m.value&&l.value.length?(e.openBlock(),e.createBlock(e.unref(C.VxeColumn),e.mergeProps({key:1},e.unref(E.getRowSelectionProps)(e.unref(p),l.value,r.size),{resizable:!1,field:e.unref(h.ROW_SELECTION_FIELD)}),null,16,["field"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Y),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n),{key:n.props.colId}))),128))]),_:2},[e.renderList(e.unref(s.omit)(b,["searchFormExtra"]),(n,c)=>({name:c,fn:e.withCtx($=>[e.renderSlot(t.$slots,c,e.normalizeProps(e.guardReactiveProps($||{})))])}))]),1040,["data","sort-config","filter-config","loading","style","size","onSortChange","onFilterChange"]))],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("pagination-wrapper"))},[t.sticky?(e.openBlock(),e.createBlock(e.unref($e.default),{key:0,direction:"horizontal","scroll-container":ee.value,"extra-size":-4.2,"bar-color":"var(--ap-scrollbar-thumb-color-base)","track-color":"var(--ap-table-header-bg, #f2f6f9)"},null,8,["scroll-container"])):e.createCommentVNode("",!0),t.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(S.Pagination),e.mergeProps({key:1,class:e.unref(u)("pagination")},e.unref(z).pagination,{onChange:e.unref(ie)}),null,16,["class","onChange"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=Ue;