@aplus-frontend/ui
Version:
2 lines (1 loc) • 5.48 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),M=require("@ant-design/icons-vue"),c=require("@aplus-frontend/antdv"),V=require("@aplus-frontend/hooks"),D=require("@aplus-frontend/utils"),R=require("lodash-unified");require("../../ap-button/index.js");const I=require("../../ap-table/context.js");require("../../config-provider/index.js");const K=require("../ap-batch-action-group/index.js"),j=require("./convertExportField.js"),O=require("./handleExportDownload.js"),n=require("./interface.js"),$=require("../../config-provider/hooks/use-namespace.js"),z=require("../../config-provider/hooks/use-locale.js"),U=require("../../config-provider/hooks/use-global-config.js"),m=require("../../ap-button/ap-button.vue.js"),H=e.defineComponent({__name:"ApExportGroup",props:{type:{default:"button"},selectedRowKeys:{},groupList:{},buttonProps:{},disabled:{type:Boolean},auth:{},ifShow:{},text:{},idKey:{},request:{},getRequestParams:{},getInitialParams:{},beforeRequest:{},successMessage:{type:[Boolean,String],default:!1},exportField:{type:[Boolean,Object],default:void 0}},setup(C){const{hasPermission:h}=V.usePermission(),o=C,{columns:k,dataSource:b,getSearchFormValues:S,getLastParams:A}=I.useInjectApTable(),{b:q}=$.useNamespace("ap-export-group"),{t:u}=z.useLocale(),w=U.useGlobalConfig("exportField"),s=e.ref(!1),x=e.ref(!1),l=e.computed(()=>!!o?.disabled||(b!==void 0?!b?.value?.length:!1)||s.value);e.watch(()=>l.value,()=>{l.value&&(x.value=!1)},{immediate:!0});const B=e.computed(()=>o?.successMessage===!0?u("ap.apExportGroup.exportSuccess"):o?.successMessage?o.successMessage:""),T=(t=o?.exportField)=>{const a="exportFieldList",r=t??(w.value===""?!0:w.value)??!1;return r===!0?{key:a}:typeof r=="object"?{...r,key:r.key??a}:r},L={textAlign:"center"},d=e.computed(()=>o?.selectedRowKeys||[]),y=e.computed(()=>{let t=o?.ifShow;return!o?.ifShow&&o?.auth&&(t=()=>h(o.auth)),t?.()??!0});async function P(){d.value.length>0?i({key:n.ApExportGroupActionType.SELECT}):i({key:n.ApExportGroupActionType.ALL})}async function i({key:t,option:a}){const r=R.merge({},o,a||{}),{getRequestParams:_,request:G}=r||{},E=A?.()?.sort,F=E?D.transformTableParamsNoTimezone({sort:E}):{},g=T(r?.exportField);let v={};t===n.ApExportGroupActionType.SELECT?v={[r?.idKey||"ids"]:d.value}:t===n.ApExportGroupActionType.ALL&&(v=_?.()||S?.(!0)||{});const N=r?.getInitialParams?.()||{};try{s.value=!0;let f=Object.assign({...v,...N,...F},g&&k?.value?{[g.key]:j.convertExportField(k.value,g?.convertField)}:{});f=r?.beforeRequest?.(f)||f,await O.handleExportDownload(async()=>await G?.(f)),r?.successMessage&&c.message.success(B.value)}finally{s.value=!1}}const p=e.computed(()=>o?.groupList?.filter(t=>{let a=t?.ifShow;return!t?.ifShow&&t?.auth&&(a=()=>h(t.auth)),a?.()??!0})?.map((t,a)=>({key:a,content:t?.text,auth:t?.auth,ifShow:t?.ifShow,disabled:t?.disabled,onClick:()=>{d.value.length>0?i({key:n.ApExportGroupActionType.SELECT,option:t}):i({key:n.ApExportGroupActionType.ALL,option:t})}}))||[]);return(t,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[y.value&&o.type==="button"?(e.openBlock(),e.createBlock(e.unref(m.default),e.mergeProps({key:0},{...t.$attrs},{disabled:l.value,loading:s.value,"min-width":"",onClick:P}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o?.text??e.unref(u)("ap.apExportGroup.export")),1)]),_:1},16,["disabled","loading"])):e.createCommentVNode("",!0),y.value&&o.type==="dropdown"?(e.openBlock(),e.createBlock(e.unref(c.Dropdown),{key:1,open:x.value,"onUpdate:open":a[0]||(a[0]=r=>x.value=r),class:e.normalizeClass([e.unref(q)()]),"overlay-style":L,disabled:l.value},{overlay:e.withCtx(()=>[e.createVNode(e.unref(c.Menu),{onClick:i},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.unref(c.MenuItem),{key:e.unref(n.ApExportGroupActionType).SELECT,disabled:d.value?.length===0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(u)("ap.apExportGroup.exportSelected")),1)]),_:1},8,["disabled"])),(e.openBlock(),e.createBlock(e.unref(c.MenuItem),{key:e.unref(n.ApExportGroupActionType).ALL},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(u)("ap.apExportGroup.exportAll")),1)]),_:1}))]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(m.default),e.mergeProps({...t.$attrs},{loading:s.value}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o?.text??e.unref(u)("ap.apExportGroup.export"))+" ",1),e.createVNode(e.unref(M.DownOutlined))]),_:1},16,["loading"])]),_:1},8,["open","class","disabled"])):e.createCommentVNode("",!0),y.value&&o.type==="group"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[p.value.length===1?(e.openBlock(),e.createBlock(e.unref(m.default),e.mergeProps({key:0},{...t.$attrs},{disabled:l.value||p.value?.[0]?.disabled,loading:s.value,"min-width":"",onClick:p.value?.[0]?.onClick}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.value?.[0]?.content??o?.text??e.unref(u)("ap.apExportGroup.export")),1)]),_:1},16,["disabled","loading","onClick"])):(e.openBlock(),e.createBlock(e.unref(K.ApBatchActionGroup),e.mergeProps({key:1},{...t.$attrs},{disabled:l.value,loading:s.value,"button-props":{...o.buttonProps,content:o?.buttonProps?.content??e.unref(u)("ap.apExportGroup.export"),type:o?.buttonProps?.type??"default"},"menu-list":p.value}),null,16,["disabled","loading","button-props","menu-list"]))],64)):e.createCommentVNode("",!0)],64))}});exports.default=H;