mainData.f91f2e86.js 7.9 KB

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