1 line
5.3 KiB
JavaScript
1 line
5.3 KiB
JavaScript
import{$ as e,H as t,L as n,P as r,V as i,Wt as a,_ as o,d as s,et as c,i as l,lt as u,p as d,st as f,u as p,v as m,z as h}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{l as g,s as _,t as v}from"./index-DK5nh4op.js";import"./request-BcX6wdRT.js";import{n as y}from"./report-DwsbaDxh.js";var b={class:`p-6 space-y-4`},x={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},S={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},C={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},w={class:`px-2`},T={key:1,class:`text-muted`},E={class:`px-5 py-3 border-t border-gray-50`},D=v({__name:`index`,setup(v){let D=u([]),O=u(0),k=u(!1),A=u(!1),j=u(!1),M=f({type:``,status:``}),N=f({page:1,per_page:20}),P=u(null),F=f({name:``,type:``,params:``}),I={name:[{required:!0,message:`请输入报表名称`,trigger:`blur`}],type:[{required:!0,message:`请选择报表类型`,trigger:`change`}]},L=[{label:`经营概览`,value:`overview`},{label:`营收报表`,value:`revenue`},{label:`入住率报表`,value:`occupancy`},{label:`CRM转化报表`,value:`crm`}],R={0:`生成中`,1:`已完成`,2:`失败`},z={0:`warning`,1:`success`,2:`danger`};async function B(){k.value=!0;try{let e=await y.getList({...M,...N});D.value=e.data?.list||e.data?.data||[],O.value=e.data?.total||0}finally{k.value=!1}}function V(){N.page=1,B()}function H(){Object.assign(M,{type:``,status:``}),V()}function U(){Object.assign(F,{name:``,type:``,params:``}),A.value=!0}async function W(){P.value&&await P.value.validate(async e=>{if(e){j.value=!0;try{let e={...F};if(e.params)try{e.params=JSON.parse(e.params)}catch{}await y.create(e),_.success(`导出任务已创建`),A.value=!1,B()}finally{j.value=!1}}})}function G(e){e.file_path&&window.open(e.file_path,`_blank`)}function K(e){N.page=e,B()}function q(e){N.per_page=e,N.page=1,B()}return r(B),(r,u)=>{let f=i(`el-input`),_=i(`el-option`),v=i(`el-select`),y=i(`el-button`),B=i(`el-table-column`),J=i(`el-tag`),Y=i(`el-table`),X=i(`el-pagination`),Z=i(`el-form-item`),Q=i(`el-form`),$=i(`el-dialog`),ee=t(`loading`);return n(),d(`div`,b,[p(`div`,x,[m(f,{modelValue:M.type,"onUpdate:modelValue":u[0]||=e=>M.type=e,placeholder:`报表类型`,style:{width:`160px`},clearable:``,onKeydown:g(V,[`enter`])},null,8,[`modelValue`]),m(v,{modelValue:M.status,"onUpdate:modelValue":u[1]||=e=>M.status=e,placeholder:`状态`,clearable:``,style:{width:`130px`}},{default:e(()=>[(n(),d(l,null,h(R,(e,t)=>m(_,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),m(y,{type:`primary`,onClick:V},{default:e(()=>[...u[9]||=[o(`查询`,-1)]]),_:1}),m(y,{onClick:H},{default:e(()=>[...u[10]||=[o(`重置`,-1)]]),_:1})]),p(`div`,S,[p(`div`,C,[u[12]||=p(`div`,{class:`flex items-center gap-3`},[p(`span`,{class:`font-medium text-gray-700`},`导出记录列表`)],-1),m(y,{type:`primary`,onClick:U},{default:e(()=>[...u[11]||=[o(`新建导出`,-1)]]),_:1})]),p(`div`,w,[c((n(),s(Y,{data:D.value,style:{width:`100%`}},{default:e(()=>[m(B,{prop:`name`,label:`报表名称`,"min-width":`160`}),m(B,{prop:`type`,label:`类型`,"min-width":`120`}),m(B,{label:`状态`,width:`100`,align:`center`},{default:e(({row:t})=>[m(J,{type:z[t.status],size:`small`},{default:e(()=>[o(a(R[t.status]||`-`),1)]),_:2},1032,[`type`])]),_:1}),m(B,{label:`操作人`,"min-width":`100`},{default:e(({row:e})=>[o(a(e.operator?.name||`-`),1)]),_:1}),m(B,{prop:`created_at`,label:`创建时间`,"min-width":`160`}),m(B,{label:`操作`,width:`100`,fixed:`right`,align:`center`},{default:e(({row:t})=>[t.status===1&&t.file_path?(n(),s(y,{key:0,size:`small`,type:`primary`,text:``,onClick:e=>G(t)},{default:e(()=>[...u[13]||=[o(`下载`,-1)]]),_:1},8,[`onClick`])):(n(),d(`span`,T,`-`))]),_:1})]),_:1},8,[`data`])),[[ee,k.value]])]),p(`div`,E,[m(X,{"current-page":N.page,"onUpdate:currentPage":u[2]||=e=>N.page=e,"page-size":N.per_page,"onUpdate:pageSize":u[3]||=e=>N.per_page=e,total:O.value,"page-sizes":[10,20,50],layout:`total, sizes, prev, pager, next, jumper`,background:``,onCurrentChange:K,onSizeChange:q},null,8,[`current-page`,`page-size`,`total`])])]),m($,{modelValue:A.value,"onUpdate:modelValue":u[8]||=e=>A.value=e,title:`新建导出`,width:`550px`,"destroy-on-close":``},{footer:e(()=>[m(y,{onClick:u[7]||=e=>A.value=!1},{default:e(()=>[...u[14]||=[o(`取消`,-1)]]),_:1}),m(y,{type:`primary`,loading:j.value,onClick:W},{default:e(()=>[...u[15]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[m(Q,{ref_key:`formRef`,ref:P,model:F,rules:I,"label-width":`90px`},{default:e(()=>[m(Z,{label:`报表名称`,prop:`name`},{default:e(()=>[m(f,{modelValue:F.name,"onUpdate:modelValue":u[4]||=e=>F.name=e,placeholder:`请输入报表名称`},null,8,[`modelValue`])]),_:1}),m(Z,{label:`报表类型`,prop:`type`},{default:e(()=>[m(v,{modelValue:F.type,"onUpdate:modelValue":u[5]||=e=>F.type=e,placeholder:`请选择报表类型`,style:{width:`100%`}},{default:e(()=>[(n(),d(l,null,h(L,e=>m(_,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1}),m(Z,{label:`参数`},{default:e(()=>[m(f,{modelValue:F.params,"onUpdate:modelValue":u[6]||=e=>F.params=e,type:`textarea`,rows:4,placeholder:`可选,JSON 格式参数`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`])])}}},[[`__scopeId`,`data-v-ebc24859`]]);export{D as default}; |