UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 3.59 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("vue"),I=require("@aplus-frontend/antdv"),r=require("lodash-unified");require("../../../ag-grid/index.js");const O=require("../../../ap-modal/index.js");require("../../../config-provider/index.js");const p=require("../constants.js");require("../modal-layout/index.vue.js");const c=require("../utils.js");require("../wrapper/index.vue.js");const F=require("./use-ag-grid-instance.js"),G=require("./use-modal-title.js"),L=require("../../../config-provider/hooks/use-locale.js"),T=require("../wrapper/index.vue2.js"),j=require("../modal-layout/index.vue2.js"),H=require("../../../ag-grid/index.vue.js");function N(t){let d,m=null,y=null;const g=new c.AsyncCallback,[q,S]=G.useModalTitle(),{t:b}=L.useLocale(),[u,x]=F.useAgGridInstance({onSelectedRows(e){S.setCount(e?.length||0)}}),w=c.genRequest(t.api,t.getRowKey,u.setDataSourceLength),h=e=>{const{title:n,width:l,modalProps:o,...a}=r.isFunction(e)?e(r.cloneDeep(t)):e;r.isEmpty(a)||y?.(a);const s=r.omitBy({title:n,width:l,modalProps:o},r.isUndefined);r.isEmpty(s)||m?.update(s)},f=r.isFunction(t.getRowKey)?t.getRowKey:e=>e[t.getRowKey],v=()=>{const e=t.mergeRule||"old",n=u.getSelectedRows()||[];return{keys:P(n),rows:n.map(a=>{const s=f(a);return e==="old"&&d?.[s]?d[s]:c.delRowKeyField(a)})}},C=async()=>{const e=v(),n=t.maxCount||1/0;return e.keys.length>n?(I.message.warning(b("ap.apTableModal.messageMaxCount",{maxCount:n})),Promise.reject()):(await t.beforeOk?.(e),t.finishCallback?.(e),g.resolve(e),e)},K=()=>{g.reject("modal is closed!")},k=i.defineComponent({name:"AgGridModalSelectContent",props:{modalConfig:{type:Object,required:!0},selectedRows:{type:Array,default:()=>[]}},setup(e){const n=i.ref(e.modalConfig);return y=l=>{n.value={...n.value,...l}},()=>{const l=e.selectedRows?.map(s=>c.addRowKeyField(s,n.value.getRowKey)),o=n.value,a=c.getModalLayoutConfig(o.modalLayout);return i.createVNode(x,null,{default:()=>[i.createVNode(T.default,{height:o.height,rowHeight:o.rowHeight},{default:()=>[t.renderHeader?.(r.omit(u,"setInstance"),{updateProps:h}),i.createVNode(j.default,a.props,{default:()=>[i.createVNode(H.default,i.mergeProps({ref:u.setInstance,searchForm:{sortable:!1,resize:{target:"form"}},rowKey:r.isFunction(o.getRowKey)?p.ROW_KEY:o.getRowKey,request:w.request,style:{padding:"0px"},rowHeight:o.rowHeight,columns:o.columns,rowSelection:{defaultSelectedRows:l,preserveSelectedRowKeys:!0,type:o.mode||"checkbox",fixed:"left",columnWidth:38,disabled(s){return r.isFunction(o.disabledCheckbox)?o.disabledCheckbox(s,r.omit(u,"setInstance")):o.disabledCheckbox??!1},...t.rowSelection},autoHeight:!!n.value.height},t.gridProps),o.gridSlots)],...a.slots})]})]})}}});function R(e){return i.createVNode(k,{modalConfig:t,selectedRows:e},null)}function M(){const e=Object.values(d||{}),n=R(e);m=O.ApModal.createModal({title:i.createVNode(q,{title:t.title,maxCount:t.maxCount||1/0,isShowDefaultSuffix:t.mode!=="radio"},t.modalTitleSlots),width:t.width,destroyOnClose:!0,maskClosable:!1,onOk:C,onCancel:K,afterOpenChange(l){l===!1&&(u.setInstance(void 0),u.setDataSourceLength(0))},content:n,...t.modalProps||{}})}function P(e){return e?.map(f)||[]}function _(e,n,l=!1){if(d=e?.reduce((o,a)=>{const s=f(a);return o[s]=a,o},{}),w.setExtraParams(n?.extraParams),M(),l)return g.buildPromise()}function A(e,n){return _(e,n,!0)}return i.onUnmounted(()=>{g.reject("component is Unmounted!")}),{open:_,asyncOpen:A,refresh:u.refresh,getAgGridInstance:u.getInstance,genContent:R,validate:C,updateProps:h}}exports.useAgGridSelectModal=N;