@aplus-frontend/ui
Version:
2 lines (1 loc) • 4.18 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../../ap-form/index.js"),s=require("lodash-unified");require("../../config-provider/index.js");require("../../hooks/index.js");const O=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const P=require("../hooks/use-editable-api.js"),c=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../hooks/useControllableValue.js"),I=require("../../config-provider/hooks/use-global-config.js"),L=require("../index.vue.js"),M=e.defineComponent({name:"EditableGrid",__name:"index",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:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(m,{expose:y,emit:w}){const b=e.useSlots(),o=m,{b:g}=z.useNamespace("editable-aggrid"),h=w,u=e.ref(),{value:r,updateValue:p}=G.useControllableValue(o,h),l=e.ref(),v=d.ApForm.useWatch(o.name,l);e.watch(r,a=>{const t=c.arrayToObject(a,o.rowKey);s.isEqual(t,e.unref(v))||l.value?.setFieldValue(o.name,t)},{deep:!0});const C=I.useGlobalConfig("valueTypeMap"),R=O.useGetEditableColumns(o,C),{add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,refreshRowIds:i}=P.useEditableApi(o,l,r,p);function A(){const a=u.value?._internalGridApi;if(!i.value?.length||!a)return;const t=i.value.map(n=>a.getRowNode(n)).filter(n=>!!n);a.refreshCells({rowNodes:t,force:!0}),i.value=[]}function N(){l.value?.resetFields()}function V(a){return a?(s.isArray(a)?a:[a]).map(n=>s.isArray(n)?[o.name,...n]:[o.name,n]):void 0}async function j(a,t){return(await l.value?.validateFields(V(a),t))?.[o.name]}function k(a){p(a);const t=c.arrayToObject(a,o.rowKey);l.value?.setFieldValue(o.name,t)}function D(a){const t=a==="end"?r.value.length-1:a;u.value?.scrollToRow(t)}return y({resetFields:N,validateFields:j,add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,setTableData:k,scrollTo:D}),(a,t)=>(e.openBlock(),e.createBlock(e.unref(d.ApForm),{ref_key:"formRef",ref:l,"initial-values":{[o.name]:e.unref(c.arrayToObject)(e.unref(r),o.rowKey)},style:{height:"100%"}},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ApForm).FormItem,{name:a.name,"no-style":""},{default:e.withCtx(()=>[e.createVNode(L.default,e.mergeProps(e.unref(s.omit)(o,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:u,class:e.unref(g)(),size:"mini",columns:e.unref(R),"data-source":e.unref(r),"search-form":!1,onUpdate:A}),e.createSlots({_:2},[e.renderList(b,(n,f)=>({name:f,fn:e.withCtx(K=>[e.renderSlot(a.$slots,f,e.normalizeProps(e.guardReactiveProps(K||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=M;