mainData.34fd4e8c.js 6.1 KB

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