UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 5.02 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),p=require("@aplus-frontend/antdv");require("../../config-provider/index.js");const O=require("../../ap-table/index.js"),m=require("lodash-unified"),I=require("@aplus-frontend/utils");require("./modal-title.vue.js");const y=require("./interface.js");require("./table-layout/index.vue.js");const A=require("../../config-provider/hooks/use-locale.js"),L=require("./modal-title.vue2.js"),N=require("./table-layout/index.vue2.js"),D=t.defineComponent({__name:"table-modal",props:{columns:{},getRowKey:{},api:{type:Function,default:async()=>({records:[],total:0})},apTableProps:{},maxCount:{default:1/0},isRenderModalTitleSuffix:{type:Boolean,default:!0},renderModalTitleSuffix:{},disabledCheckbox:{type:[Boolean,Function]},rowSelection:{},tableLayoutConfig:{},renderHeader:{},onOk:{},prefixCls:{},confirmLoading:{type:Boolean,default:void 0},title:{},closable:{type:Boolean,default:void 0},closeIcon:{},onCancel:{},"onUpdate:visible":{},"onUpdate:open":{},onChange:{},afterClose:{},afterOpenChange:{},centered:{type:Boolean,default:void 0},width:{},footer:{},okText:{},okType:{},cancelText:{},icon:{},maskClosable:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},okButtonProps:{},cancelButtonProps:{},destroyOnClose:{type:Boolean,default:void 0},wrapClassName:{},maskTransitionName:{},transitionName:{},getContainer:{type:[String,Boolean,Function],default:void 0},zIndex:{},bodyStyle:{},maskStyle:{},mask:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},wrapProps:{},focusTriggerAfterClose:{type:Boolean,default:void 0},modalRender:{},mousePosition:{},loading:{type:Boolean}},emits:["finish"],setup(g,{expose:w,emit:k}){const e=g,h=k,s=t.ref(!1),v=t.ref({}),u=t.ref(null),n=t.ref([]),C=t.ref();let d=null,i=null;const{t:b}=A.useLocale(),R=async(o=[],a={})=>{switch(n.value=[...o],s.value=!0,v.value=a?.extraParams,C.value=a.apTableDataSources||e.apTableProps?.dataSource,a.refreshMode||"reset"){case"reset":u.value?.reset();break;case"submit":u.value?.submit();break;case"none":break}return new Promise((l,r)=>{d=l,i=r})},x=()=>{s.value=!1,d=null,i?.(y.AsyncOpenResultError.ModalCancel),i=null},T=async o=>{o=I.transformTableParams({...o,...v.value});const a=e.api,{records:l,total:r}=await a(o);return{data:l,total:r}},S=async()=>{if(n.value.length>e.maxCount){i?.(y.AsyncOpenResultError.ExceedMaxCount);return}if(e.getRowKey){const o=m.cloneDeep(t.unref(n)),a=o.map(e.getRowKey);if(e.onOk&&await e.onOk({keys:a,rows:o})===!1)return;h("finish",a,o),d?.({keys:a,rows:o})}else{i?.(y.AsyncOpenResultError.NotFineGetRowKey);return}s.value=!1},_=t.computed(()=>{if(!e.getRowKey)return;const o=e.getRowKey;return{fixed:!0,selectedRowKeys:n.value.map(o),columnWidth:50,preserveSelectedRowKeys:!0,onSelectAll(a,l){if(l.length>e.maxCount){p.message.warning(b("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}const r=u.value?.dataSource;if(a){const c=t.unref(r).filter(f=>!n.value.some(K=>o(K)===o(f)));n.value=n.value.concat(c)}else n.value=n.value?.filter(c=>!r.some(f=>o(f)===o(c)))},onSelect(a,l){if(l){if(n.value.length>=e.maxCount){p.message.warning(b("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}e.rowSelection?.type==="radio"?n.value=[a]:n.value.push(a)}else{const r=n.value.findIndex(c=>o(a)===o(c));n.value.splice(r,1)}},getCheckboxProps:a=>({disabled:typeof e.disabledCheckbox=="function"?e.disabledCheckbox(a,n.value):e.disabledCheckbox}),...e.rowSelection||{}}}),B=()=>e.isRenderModalTitleSuffix?t.h(L.default,{title:e.title,count:n.value.length||0,maxCount:e.maxCount},{default:e.renderModalTitleSuffix??void 0}):e.title,P=()=>u.value,M=()=>{n.value=[]},q=o=>{const a=e.getRowKey;if(!a)return;const l=n.value.findIndex(r=>a(o)===a(r));n.value.splice(l,1)};return w({open:R,close:x,getApTableInstance:P}),(o,a)=>(t.openBlock(),t.createBlock(t.unref(p.Modal),t.mergeProps({open:s.value,"onUpdate:open":a[0]||(a[0]=l=>s.value=l)},t.unref(m.omit)(e,["api","getRowKey","centered","apTableProps","onOk","maxCount","title","renderModalTitleSuffix","isRenderModalTitleSuffix","rowSelection","disabledCheckbox","tableLayoutConfig"]),{title:B(),centered:e.centered??!0,onOk:S,onCancel:x}),{default:t.withCtx(()=>[e.renderHeader?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.renderHeader),{key:0})):t.createCommentVNode("",!0),t.createVNode(N.default,t.mergeProps(e.tableLayoutConfig||{},{"selected-list":n.value,onClear:M,onDeleteItem:q}),{default:t.withCtx(()=>[t.createVNode(t.unref(O.ApTable),t.mergeProps({ref_key:"apTableRef",ref:u,scroll:{y:450},style:{padding:"0px"},columns:o.columns,request:T,"row-key":o.getRowKey,"row-selection":_.value,"data-source":C.value,"search-form":{sortable:!1,countPerRow:2}},t.unref(m.omit)(e.apTableProps,"dataSource")),null,16,["columns","row-key","row-selection","data-source"])]),_:1},16,["selected-list"])]),_:1},16,["open","title","centered"]))}});exports.default=D;