1 |
- import{e as se,g as le,u as re,a as de,b as ie,c as ce}from"./columns.969164d6.js";import{S as ue}from"./index.405f4f89.js";import fe from"./index.865a8972.js";import{j as me}from"./elementPlus.346c766a.js";import{d as ge,r as s,Q as pe,j as _e,a9 as M,o as ve,c as he,M as m,G as g,a as p,y as Se,B as De,ac as be,L as P,K as Ce}from"./vue.6daa721c.js";import{_ as ye}from"./_plugin-vue_export-helper.c27b6911.js";import"./index.ae7ce77b.js";import"./echarts.72dc8373.js";import"./isoWeek.468b1584.js";import"./index.vue_vue_type_script_setup_true_lang.c5131d55.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"},Ie={class:"font-semibold"},ze={class:"font-semibold",style:{color:"#164285"}},Ee=ge({__name:"mainData",props:{taskIds:Object,dayDate:Object,weekDate:Object,monthDate:Object},setup(K){const x=K,k=s(null),$=s([]),G=s([]),I=s([]),R=s(null),_=s(null),v=s(null),h=s(null),S=s(null),D=s(null),b=s(null),f=s(""),C=s(""),y=s(""),z=s(null),E=s(null),O=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:E,order:z}},customConfig:{storage:{visible:!0}},toolbarConfig:{custom:!0,zoom:{iconIn:"vxe-icon-fullscreen",iconOut:"vxe-icon-minimize"},slots:{tools:"toolbar_buttons"}},columns:$,data:G}),Q=()=>{localStorage.setItem("sortField",f.value),localStorage.setItem("sortOrder",C.value),localStorage.setItem("salesOrder",z.value),localStorage.setItem("salesField",E.value)},q=()=>{f.value=localStorage.getItem("sortField")||"",C.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,O.value=!1,w(x.taskIds))}};async function X(e){try{const a=await de({data_start_date:_.value,data_end_date:v.value,task_ids:e}),n=await ie({data_start_date:h.value,data_end_date:S.value,task_ids:e}),l=await ce({data_start_date:D.value,data_end_date:b.value,task_ids:e});I.value={...a.data[0],...n.data[0],...l.data[0]},I.value.platformNumber="汇总"}catch(a){console.error("Error fetching total data:",a)}}async function w(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:_.value,day_end_date:v.value,week_start_date:h.value,week_end_date:S.value,month_start_date:D.value,month_end_date:b.value,sort:C.value,order_date:f.value,date_type:y.value});if(o.data=[I.value,...n.data],o.pagerConfig.total=n.total,!O.value&&n.data&&n.data.length>0){const l=[],i=/\d{2}-\d{2}/,c=/\d{4}-\d{2}-\d{2}/,N=/\d{4}-\d{2}/,F=/\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)(i.test(r)||A.some(d=>r.includes(d)))&&U.add(r)});const T=[],j=[],B=[];U.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};A.some(u=>t.includes(u))?j.push(d):N.test(t)&&!c.test(t)?B.push(d):i.test(t)&&T.push(d)});const W=T.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=j.filter(t=>t.field.includes("的销售额")&&!t.field.includes("增长率"));H.sort((t,r)=>{const d=t.field.match(F)[0].split("~")[0],u=r.field.match(F)[0].split("~")[0];return new Date(d)-new Date(u)});const L=B.filter(t=>t.field.includes("的销售额"));L.sort((t,r)=>{const d=`${t.field.match(N)[0]}-01`,u=`${r.field.match(N)[0]}-01`;return new Date(d)-new Date(u)}),l.push(...W,...T.filter(t=>!t.field.includes("的销售额")),...H,...j.filter(t=>!F.test(t.field)),...L,...B.filter(t=>!t.field.includes("的销售额"))),$.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,E.value=e,C.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],y.value="week"):n?(f.value=n[1],y.value="day"):i&&(f.value=`${i[1]}-01`,y.value="month")}o.sortConfig.defaultSort.order=a,o.sortConfig.defaultSort.field=e,O.value=!0,w(x.taskIds,!0)}async function Z(){try{o.loading=!0;const e={page:o.pagerConfig.currentPage,limit:o.pagerConfig.pageSize,task_ids:x.taskIds,day_start_date:_.value,day_end_date:v.value,week_start_date:h.value,week_end_date:S.value,month_start_date:D.value,month_end_date:b.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=>{_.value=e.dayDate.dailyStartDate,v.value=e.dayDate.dailyTime,h.value=e.weekDate.weekStartDate,S.value=e.weekDate.weekEndDate,D.value=e.monthDate.startDate.value,b.value=e.monthDate.endDate.value,k.value&&w(k.value,!0)};function ee(e){R.value&&(k.value=e.value,w(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=M("el-card"),l=M("vxe-button"),i=M("vxe-grid");return ve(),he("div",we,[m(n,{"body-style":"padding: 10px",class:"mb-3.5 mt-3.5"},{default:g(()=>[p("div",xe,[m(ue,{ref_key:"selectorRef",ref:R,"onUpdate:updateData":ee},null,512)]),p("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(()=>[p("div",ke,[m(l,{circle:"",icon:"vxe-icon-download",onClick:Z})])]),platformNumber_default:g(({row:c})=>[p("div",Ie,P(c.platformNumber),1)]),platformName_default:g(({row:c})=>[p("div",ze,P(c.platformName),1)]),brandName_default:g(({row:c})=>[Ce(P(c.brandName),1)]),_:1},16)]),_:3})])}}});const Ae=ye(Ee,[["__scopeId","data-v-994295ab"]]);export{Ae as default};
|