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