mainData.3e236467.js 7.6 KB

1
  1. import{e as re,g as de,u as ie,a as ce,b as ue,c as fe}from"./columns.230194c5.js";import{S as me}from"./index.2dab44c3.js";import ge from"./index.e71cce75.js";import{E as pe}from"./elementPlus.ff7602ba.js";import{d as _e,r as l,Q as ve,j as he,a9 as M,o as Se,c as De,M as m,G as g,a as h,y as ye,B as xe,ac as Ce,L as P,K as be}from"./vue.65d9dadc.js";import{_ as we}from"./_plugin-vue_export-helper.c27b6911.js";import"./index.5ce19447.js";import"./echarts.72dc8373.js";import"./isoWeek.0b0314c0.js";import"./index.vue_vue_type_script_setup_true_lang.637d084f.js";const ke={class:"px-3.5"},ze={class:"custom-card-style flex gap-1.5 justify-between my-1.5 mx-2",style:{display:"flex","align-items":"center"}},Ee={class:"mx-3.5"},Ie={class:"font-semibold"},Te={class:"font-semibold",style:{color:"#164285"}},Oe=_e({__name:"mainData",props:{taskIds:Object,dayDate:Object,weekDate:Object,monthDate:Object},setup(K){const G=K,p=l(null),$=l([]),Q=l([]),E=l([]),R=l(null),S=l(null),D=l(null),y=l(null),x=l(null),C=l(null),b=l(null),f=l(""),w=l(""),_=l(""),k=l(null),I=l(null),T=l(!1),v=l(null),o=ve({border:"inner",height:900,align:null,round:!0,loading:!1,id:"mainDataCustomStorage",columnConfig:{resizable:!0,isCurrent:!0},rowConfig:{isHover:!0},pagerConfig:{enabled:!0,total:20,currentPage:1,pageSize:20,pageSizes:[10,20,30]},sortConfig:{remote:!0,defaultSort:{field:I,order:k}},customConfig:{storage:{visible:!0}},toolbarConfig:{custom:!0,zoom:{iconIn:"vxe-icon-fullscreen",iconOut:"vxe-icon-minimize"},slots:{tools:"toolbar_buttons"}},columns:$,data:Q}),q=()=>{localStorage.setItem("sortField",f.value),localStorage.setItem("sortOrder",w.value),localStorage.setItem("salesOrder",k.value),localStorage.setItem("salesField",I.value)},J=()=>{f.value=localStorage.getItem("sortField")||"",w.value=localStorage.getItem("sortOrder")||"",o.sortConfig.defaultSort.order=localStorage.getItem("salesOrder")||"",o.sortConfig.defaultSort.field=localStorage.getItem("salesField")||""},X={pageChange({currentPage:e,pageSize:a}){o.pagerConfig&&(o.pagerConfig.currentPage=e,o.pagerConfig.pageSize=a,T.value=!1,z(G.taskIds))}};async function Y(e){try{const a=await ce({data_start_date:S.value,data_end_date:D.value,dataType:"all",task_ids:e}),n=await ue({data_start_date:y.value,data_end_date:x.value,dataType:"all",task_ids:e}),s=await fe({data_start_date:C.value,data_end_date:b.value,dataType:"all",task_ids:e});E.value={...a.data[0],...n.data[0],...s.data[0]},E.value.platformNumber="汇总"}catch(a){console.error("Error fetching total data:",a)}}async function z(e,a=!1){a&&(o.pagerConfig.currentPage=1);try{o.loading=!0,await Y(e);const n=await de({page:o.pagerConfig.currentPage,limit:o.pagerConfig.pageSize,task_ids:e,day_start_date:S.value,day_end_date:D.value,week_start_date:y.value,week_end_date:x.value,month_start_date:C.value,month_end_date:b.value,sort:w.value,order_date:f.value,date_type:_.value,order_total_sales_current_monthly:v.value});if(o.data=[E.value,...n.data],o.pagerConfig.total=n.total,!T.value&&n.data&&n.data.length>0){const s=[],c=/\d{2}-\d{2}/,i=/\d{4}-\d{2}-\d{2}/,O=/\d{4}-\d{2}/,N=/\d{4}-\d{2}-\d{2}~\d{4}-\d{2}-\d{2}/,A=["~","截止","近90天平台退货率","余额"],U=new Set;n.data.forEach(t=>{for(const r in t)(c.test(r)||A.some(d=>r.includes(d)))&&U.add(r)});const F=[],B=[],j=[];U.forEach(t=>{let r=!1;(t.includes("的销售额")||t.includes("当月累计销售额")&&!t.includes("广告销售额")&&!t.includes("增长率"))&&(r=!0);const d={field:t,title:t,minWidth:t.includes("~")||t.includes("截止")?94:i.test(t)?95:/\d{4}-\d{2}的销售额/.test(t)?127:76,align:"center",formatter:se,sortable:r};A.some(u=>t.includes(u))?B.push(d):O.test(t)&&!i.test(t)?j.push(d):c.test(t)&&F.push(d)});const W=F.filter(t=>t.field.includes("的销售额")&&!t.field.includes("增长率"));W.sort((t,r)=>{const d=t.field.match(/\d{4}-\d{2}-\d{2}/),u=r.field.match(/\d{4}-\d{2}-\d{2}/);return d&&u?new Date(d[0])-new Date(u[0]):0});const H=B.filter(t=>t.field.includes("的销售额")&&!t.field.includes("增长率"));H.sort((t,r)=>{const d=t.field.match(N)[0].split("~")[0],u=r.field.match(N)[0].split("~")[0];return new Date(d)-new Date(u)});const L=j.filter(t=>t.field.includes("的销售额"));L.sort((t,r)=>{const d=`${t.field.match(O)[0]}-01`,u=`${r.field.match(O)[0]}-01`;return new Date(d)-new Date(u)}),s.push(...W,...F.filter(t=>!t.field.includes("的销售额")),...H,...B.filter(t=>!N.test(t.field)),...L,...j.filter(t=>!t.field.includes("的销售额"))),$.value=[...ie,...s]}q()}catch(n){console.error("Error fetching task data:",n)}finally{o.loading=!1}}function Z(){f.value="",k.value=null}function V({field:e,order:a}){if(k.value=a,I.value=e,w.value=a==="asc"?"smallfirst":"bigfirst",e){const n=e.match(/(\d{4}-\d{2}-\d{2})的销售额/),s=e.match(/(\d{4}-\d{2}-\d{2})~(\d{4}-\d{2}-\d{2})的销售额/),c=e.match(/(\d{4}-\d{2})的销售额/),i=e.match(/当月累计销售额/);s?(f.value=s[1],_.value="week",v.value=""):n?(f.value=n[1],_.value="day",v.value=""):c?(f.value=`${c[1]}-01`,_.value="month",v.value=""):i&&(Z(),_.value="week",v.value=!0)}o.sortConfig.defaultSort.order=a,o.sortConfig.defaultSort.field=e,T.value=!0,z(p.value,!0)}async function ee(){try{o.loading=!0;const e={page:o.pagerConfig.currentPage,limit:o.pagerConfig.pageSize,task_ids:p.value,day_start_date:S.value,day_end_date:D.value,week_start_date:y.value,week_end_date:x.value,month_start_date:C.value,month_end_date:b.value},a=await re(e),n=window.URL.createObjectURL(new Blob([a.data])),s=document.createElement("a");s.href=n,s.setAttribute("download","合并数据展示.xlsx"),document.body.appendChild(s),s.click(),o.loading=!1,pe.success("导出数据成功")}catch(e){console.error("导出数据失败:",e)}}const te=e=>{S.value=e.dayDate.dailyStartDate,D.value=e.dayDate.dailyTime,y.value=e.weekDate.weekStartDate,x.value=e.weekDate.weekEndDate,C.value=e.monthDate.startDate.value,b.value=e.monthDate.endDate.value,p.value&&z(p.value,!0)};function ae(e){R.value&&(p.value=e.value,z(e.value,!0))}const oe=e=>e.$rowIndex===0&&e.$columnIndex<5?{position:"sticky",top:0,zIndex:30,fontSize:"12px",fontWeight:"600"}:{fontSize:"12px",fontWeight:"600",padding:"2px 0"},ne=({column:e})=>{const a=e.field,n=/\d{2}-\d{2}/,s=/\d{4}-\d{2}-\d{2}/,c=/\d{4}-\d{2}/;return a.includes("~")||a.includes("截止")||a.includes("近90天平台退货率")||a.includes("余额")?{fontSize:"12px",padding:"2px 0",backgroundColor:"#e0f2fe"}:c.test(a)&&!s.test(a)?{fontSize:"12px",padding:"2px 0",backgroundColor:"rgba(186,230,253,0.9)"}:n.test(a)?{fontSize:"12px",padding:"2px 0",backgroundColor:"#f0f9ff"}:{fontSize:"12px",padding:"2px 0"}},le=e=>e.$rowIndex===0?{background:"#ffffff",position:"sticky",top:0,zIndex:1}:{height:"48px"};function se({cellValue:e}){return e==null||e===""?"--":typeof e=="number"?new Intl.NumberFormat("en-US",{minimumFractionDigits:2}).format(e):e}return he(()=>{J()}),(e,a)=>{const n=M("el-card"),s=M("vxe-button"),c=M("vxe-grid");return Se(),De("div",ke,[m(n,{"body-style":"padding: 10px",class:"mb-3.5 mt-3.5"},{default:g(()=>[h("div",ze,[m(me,{ref_key:"selectorRef",ref:R,"onUpdate:updateData":ae},null,512)]),h("div",null,[m(ge,{style:{display:"flex","align-items":"center",gap:"16px"},onChangeDate:te})])]),_:1}),m(n,{class:"mt-3"},{default:g(()=>[ye(e.$slots,"table-header",{},void 0,!0),m(c,xe({"cell-style":oe,"header-cell-style":ne,"row-style":le},o,{stripe:""},Ce(X),{onSortChange:V}),{toolbar_buttons:g(()=>[h("div",Ee,[m(s,{circle:"",icon:"vxe-icon-download",onClick:ee})])]),platformNumber_default:g(({row:i})=>[h("div",Ie,P(i.platformNumber),1)]),platformName_default:g(({row:i})=>[h("div",Te,P(i.platformName),1)]),brandName_default:g(({row:i})=>[be(P(i.brandName),1)]),_:1},16)]),_:3})])}}});const We=we(Oe,[["__scopeId","data-v-4a6c68a7"]]);export{We as default};