UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 4.01 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("../../ap-form/index.js"),r=require("lodash-unified");require("../../config-provider/index.js");const j=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const A=require("../hooks/use-editable-form-item-api.js"),D=require("../../ap-form/context.js"),P=require("../../ap-form/utils/get.js"),k=require("../utils.js"),L=require("../../ap-form/hooks/use-watch.js"),M=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../config-provider/hooks/use-global-config.js"),K=require("../index.vue.js"),O=e.defineComponent({name:"EditableGrid",__name:"form-item",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customRow:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowSelection:{type:Boolean},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},columns:{},defaultValue:{},onChange:{},maxLength:{},onFieldChange:{},label:{},name:{},formItem:{}},setup(w,{expose:y}){const h=e.useSlots(),t=w,{b}=z.useNamespace("editable-aggrid"),s=e.ref(),{internalInstance:u,model:C}=D.useInjectForm(),i=k.getShadowName(t.name);let c;e.onMounted(()=>{const o=t.formItem?.initialValue??P.getModelValue(e.unref(C),t.name);c=r.cloneDeep(o),p(o,"suffix")});const n=e.ref([]),R=L.useWatch(t.name);e.watch(()=>R.value,o=>{r.isEqual(o,n.value)||m(o??c)},{deep:!0});const v=G.useGlobalConfig("valueTypeMap"),x=j.useGetEditableColumns(t,v,i),{add:B,addMultiple:p,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,refreshRowIds:d}=A.useEditableFormItemApi(t,u,n,i);function N(){const o=s.value?._internalGridApi;if(!d.value?.length||!o)return;const a=d.value.map(l=>o.getRowNode(l)).filter(l=>!!l);o.refreshCells({rowNodes:a,force:!0}),d.value=[]}function m(o){n.value=o;const a=M.arrayToObject(o,t.rowKey);u?.setFieldValue(t.name,o),u?.setFieldValue(i,a)}function V(o){const a=o==="end"?n.value.length-1:o;s.value?.scrollToRow(a)}return y({add:B,addMultiple:p,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,setTableData:m,scrollTo:V}),(o,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(g.ApForm).FormItem,{hidden:"",name:o.name},null,8,["name"]),e.createVNode(e.unref(g.ApForm).FormItem,e.mergeProps(e.unref(r.omit)(o.formItem,"initialValue"),{label:o.label}),{default:e.withCtx(()=>[e.createVNode(K.default,e.mergeProps(e.unref(r.omit)(t,["name","maxLength","onChange","defaultValue","formItem"]),{ref_key:"tableRef",ref:s,class:e.unref(b)(),size:"mini",columns:e.unref(x),"data-source":n.value,"search-form":!1,onUpdate:N}),e.createSlots({_:2},[e.renderList(h,(l,f)=>({name:f,fn:e.withCtx(T=>[e.renderSlot(o.$slots,f,e.normalizeProps(e.guardReactiveProps(T||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["label"])],64))}});exports.default=O;