mainData.670d122d.js 5.7 KB

1
  1. import{e as Y,g as Z,u as V}from"./columns.3c261990.js";import{a as ee}from"./elementPlus.be4dc479.js";import{f as te,r as d,Q as ae,w as h,d as oe,a7 as N,h as ne,E as se,G as g,j as O,M as R,L as B,K as re,B as le,aa as de}from"./vue.9083513e.js";import{_ as ie}from"./_plugin-vue_export-helper.c27b6911.js";import"./index.b97320e9.js";import"./echarts.594b4072.js";const ce={class:"mx-3.5"},ue={class:"font-semibold"},fe={class:"font-semibold",style:{color:"#0097f8"}},me=te({__name:"mainData",props:{dayDate:Object,weekDate:Object,monthDate:Object,taskIds:Object},setup(U){const u=U,F=d(null),j=d([]),$=d([]),b=d(null),C=d(null),S=d(null),w=d(null),x=d(null),D=d(null),m=d(""),p=d(""),_=d(""),n=ae({border:"inner",height:900,align:null,round:!0,loading:!1,id:"mainDataCustomStorage",columnConfig:{resizable:!0},rowConfig:{isHover:!0},pagerConfig:{enabled:!0,total:20,currentPage:1,pageSize:20,pageSizes:[10,20,30]},sortConfig:{remote:!0},customConfig:{storage:{visible:!0}},toolbarConfig:{custom:!0,zoom:{iconIn:"vxe-icon-fullscreen",iconOut:"vxe-icon-minimize"},slots:{tools:"toolbar_buttons"}},columns:j,data:$}),K=()=>{localStorage.setItem("sortField",m.value),localStorage.setItem("sortOrder",p.value)},T=()=>{m.value=localStorage.getItem("sortField")||"",p.value=localStorage.getItem("sortOrder")||""},W={pageChange({currentPage:t,pageSize:o}){n.pagerConfig&&(n.pagerConfig.currentPage=t,n.pagerConfig.pageSize=o,v(u.taskIds))}};async function v(t,o=!1){o&&(n.pagerConfig.currentPage=1);try{n.loading=!0;const a=await Z({page:n.pagerConfig.currentPage,limit:n.pagerConfig.pageSize,task_ids:t,day_start_date:b.value,day_end_date:C.value,week_start_date:S.value,week_end_date:w.value,month_start_date:x.value,month_end_date:D.value,sort:p.value,order_date:m.value,date_type:_.value});if(n.data=a.data,n.pagerConfig.total=a.total,a.data&&a.data.length>0){const s=[],c=/\d{2}-\d{2}/,i=/\d{4}-\d{2}-\d{2}/,y=/\d{4}-\d{2}/,k=/\d{4}-\d{2}-\d{2}~\d{4}-\d{2}-\d{2}/,P=["~","截止","近90天平台退货率","余额"],M=new Set;a.data.forEach(e=>{for(const r in e)(c.test(r)||P.some(l=>r.includes(l)))&&M.add(r)});const z=[],E=[],I=[];M.forEach(e=>{let r=!1;e.includes("的销售额")&&!e.includes("广告销售额")&&!e.includes("增长率")&&(r=!0);const l={field:e,title:e,minWidth:e.includes("~")||e.includes("截止")?94:i.test(e)?95:76,align:"center",formatter:X,sortable:r};P.some(f=>e.includes(f))?E.push(l):y.test(e)&&!i.test(e)?I.push(l):c.test(e)&&z.push(l)});const A=z.filter(e=>e.field.includes("的销售额")&&!e.field.includes("增长率"));A.sort((e,r)=>{const l=e.field.match(/\d{4}-\d{2}-\d{2}/),f=r.field.match(/\d{4}-\d{2}-\d{2}/);return l&&f?new Date(l[0])-new Date(f[0]):0});const H=E.filter(e=>e.field.includes("的销售额")&&!e.field.includes("增长率"));H.sort((e,r)=>{const l=e.field.match(k)[0].split("~")[0],f=r.field.match(k)[0].split("~")[0];return new Date(l)-new Date(f)});const L=I.filter(e=>e.field.includes("的销售额"));L.sort((e,r)=>{const l=`${e.field.match(y)[0]}-01`,f=`${r.field.match(y)[0]}-01`;return new Date(l)-new Date(f)}),s.push(...A,...z.filter(e=>!e.field.includes("的销售额")),...H,...E.filter(e=>!k.test(e.field)),...L,...I.filter(e=>!e.field.includes("的销售额"))),j.value=[...V,...s]}K()}catch(a){console.error("Error fetching task data:",a)}finally{n.loading=!1}}function G({column:t,order:o}){p.value=o==="asc"?"smallfirst":"bigfirst";const a=t.field;if(a){const s=a.match(/(\d{4}-\d{2}-\d{2})的销售额/),c=a.match(/(\d{4}-\d{2}-\d{2})~(\d{4}-\d{2}-\d{2})的销售额/),i=a.match(/(\d{4}-\d{2})的销售额/);c?(m.value=c[1],_.value="week"):s?(m.value=s[1],_.value="day"):i&&(m.value=`${i[1]}-01`,_.value="month")}v(u.taskIds,!0)}async function Q(){try{n.loading=!0;const t={page:n.pagerConfig.currentPage,limit:n.pagerConfig.pageSize,task_ids:u.taskIds,day_start_date:b.value,day_end_date:C.value,week_start_date:S.value,week_end_date:w.value,month_start_date:x.value,month_end_date:D.value},o=await Y(t),a=window.URL.createObjectURL(new Blob([o.data])),s=document.createElement("a");s.href=a,s.setAttribute("download","合并数据展示.xlsx"),document.body.appendChild(s),s.click(),n.loading=!1,ee.success("导出数据成功")}catch(t){console.error("导出数据失败:",t)}}h(()=>u.taskIds,t=>{F.value=t,v(t,!0)}),h(()=>u.dayDate,t=>{if(t){const{dailyStartDate:o,dailyTime:a}=t;b.value=o,C.value=a}}),h(()=>u.weekDate,t=>{if(t){const{weekStartDate:o,weekEndDate:a}=t;S.value=o,w.value=a}}),h(()=>u.monthDate,t=>{if(t){const{startDate:o,endDate:a}=t;x.value=o,D.value=a}F.value&&v(u.taskIds,!0)});const q=({columnIndex:t})=>t<6?{fontSize:"12px",fontWeight:"500"}:{fontSize:"12px",fontWeight:"500"},J=({column:t})=>{const o=t.field,a=/\d{2}-\d{2}/,s=/\d{4}-\d{2}-\d{2}/,c=/\d{4}-\d{2}/;return o.includes("~")||o.includes("截止")||o.includes("近90天平台退货率")||o.includes("余额")?{fontSize:"12px",backgroundColor:"#b3ced7"}:c.test(o)&&!s.test(o)?{fontSize:"12px",backgroundColor:"#8cbacc"}:a.test(o)?{fontSize:"12px",backgroundColor:"#d0dadf"}:{fontSize:"12px"}};function X({cellValue:t}){return t==null||t===""?"--":typeof t=="number"?new Intl.NumberFormat("en-US",{minimumFractionDigits:0}).format(t):t}return oe(()=>{T()}),(t,o)=>{const a=N("vxe-button"),s=N("el-tag"),c=N("vxe-grid");return ne(),se(c,le({"cell-style":q,"header-cell-style":J},n,de(W),{onSortChange:G}),{toolbar_buttons:g(()=>[O("div",ce,[R(a,{circle:"",icon:"vxe-icon-download",onClick:Q})])]),platformNumber_default:g(({row:i})=>[O("div",ue,B(i.platformNumber),1)]),platformName_default:g(({row:i})=>[O("div",fe,B(i.platformName),1)]),brandName_default:g(({row:i})=>[R(s,{effect:"plain",round:"",type:"success"},{default:g(()=>[re(B(i.brandName),1)]),_:2},1024)]),_:1},16)}}});const Ce=ie(me,[["__scopeId","data-v-8545100d"]]);export{Ce as default};