UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 5.27 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 N=require("../../ap-table/index.js"),m=require("lodash-unified"),A=require("@aplus-frontend/utils");require("./modal-title.vue.js");const y=require("./interface.js");require("./table-layout/index.vue.js");const L=require("./style/index.js"),D=require("../../config-provider/hooks/use-namespace.js"),E=require("../../config-provider/hooks/use-locale.js"),F=require("./modal-title.vue2.js"),U=require("./table-layout/index.vue2.js"),j=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,u=t.ref(!1),v=t.ref({}),i=t.ref(null),n=t.ref([]),b=t.ref();let d=null,c=null;const{b:R}=D.useNamespace("ap-table-modal"),T=L.default("ap-table-modal"),{t:x}=E.useLocale(),S=async(o=[],a={})=>{switch(n.value=[...o],u.value=!0,v.value=a?.extraParams,b.value=a.apTableDataSources||e.apTableProps?.dataSource,a.refreshMode||"reset"){case"reset":i.value?.reset();break;case"submit":i.value?.submit();break;case"none":break}return new Promise((l,r)=>{d=l,c=s=>r("Ignored Reject: "+s)})},C=()=>{u.value=!1,d=null,c?.(y.AsyncOpenResultError.ModalCancel),c=null},_=async o=>{o=A.transformTableParams({...o,...v.value});const a=e.api,{records:l,total:r}=await a(o);return{data:l,total:r}},B=async()=>{if(n.value.length>e.maxCount){c?.(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{c?.(y.AsyncOpenResultError.NotFineGetRowKey);return}u.value=!1},P=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(x("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}const r=i.value?.dataSource;if(a){const s=t.unref(r).filter(f=>!n.value.some(I=>o(I)===o(f)));n.value=n.value.concat(s)}else n.value=n.value?.filter(s=>!r.some(f=>o(f)===o(s)))},onSelect(a,l){if(l){if(n.value.length>=e.maxCount){p.message.warning(x("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}e.rowSelection?.type==="radio"?n.value=[a]:n.value.push(a)}else{const r=n.value.findIndex(s=>o(a)===o(s));n.value.splice(r,1)}},getCheckboxProps:a=>({disabled:typeof e.disabledCheckbox=="function"?e.disabledCheckbox(a,n.value):e.disabledCheckbox}),...e.rowSelection||{}}}),q=()=>e.isRenderModalTitleSuffix?t.h(F.default,{title:e.title,count:n.value.length||0,maxCount:e.maxCount},{default:e.renderModalTitleSuffix??void 0}):e.title,M=()=>i.value,K=()=>{n.value=[]},O=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:S,close:C,getApTableInstance:M}),(o,a)=>(t.openBlock(),t.createBlock(t.unref(p.Modal),t.mergeProps({open:u.value,"onUpdate:open":a[0]||(a[0]=l=>u.value=l)},t.unref(m.omit)(e,["api","getRowKey","centered","apTableProps","onOk","maxCount","title","renderModalTitleSuffix","isRenderModalTitleSuffix","rowSelection","disabledCheckbox","tableLayoutConfig"]),{title:q(),centered:e.centered??!0,"wrap-class-name":`${t.unref(R)()} ${t.unref(T)}`,onOk:B,onCancel:C}),{default:t.withCtx(()=>[e.renderHeader?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.renderHeader),{key:0})):t.createCommentVNode("",!0),t.createVNode(U.default,t.mergeProps(e.tableLayoutConfig||{},{"selected-list":n.value,onClear:K,onDeleteItem:O}),{default:t.withCtx(()=>[t.createVNode(t.unref(N.ApTable),t.mergeProps({ref_key:"apTableRef",ref:i,scroll:{y:450},style:{padding:"0px"},columns:o.columns,request:_,"row-key":o.getRowKey,"row-selection":P.value,"data-source":b.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","wrap-class-name"]))}});exports.default=j;