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