TableDataDisplay.6bb164f8.js 6.1 KB

1
  1. import{d as gt,am as pt,q as P,r as l,Q as ht,k as Dt,w as _t,j as yt,a9 as j,o as wt,c as St,M as A,G as y,K as bt,a as q,L as G,B as Ct,ac as Yt}from"./vue.65d9dadc.js";import{n as R,w as H,o as L,p as kt,q as xt,r as Mt,a as Tt,b as zt,c as Et}from"./columns.230194c5.js";import{d as v}from"./elementPlus.ff7602ba.js";import{_ as It}from"./_plugin-vue_export-helper.c27b6911.js";import"./index.5ce19447.js";import"./echarts.72dc8373.js";const Nt={class:"font-semibold",style:{padding:"0"}},Ot={class:"font-semibold",style:{color:"#164285"}},Bt=gt({__name:"TableDataDisplay",props:{taskIds:Object},setup(Q){const U=pt(),o=P("dateDimension"),J=P("currentDate"),w=l(!1),D=Q;l(D.taskIds);const g=l(null),S=l(null),b=l(null),C=l(null),Y=l(null),k=l(null),x=l(null),K=[],X=[],Z=[],f=l(""),M=l(""),_=l(null),T=l(null),z=l(!0),n=ht({border:"inner",keepSource:!0,height:900,align:null,round:!0,loading:!1,id:"normalCustomStorage",customConfig:{storage:{visible:!0}},columnConfig:{isCurrent:!0,resizable:!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:_}},toolbarConfig:{custom:!0,zoom:{iconIn:"vxe-icon-fullscreen",iconOut:"vxe-icon-minimize"},slots:{buttons:"toolbar_buttons"}},day:{columns:R,data:K},week:{columns:H,data:X},month:{columns:L,data:Z}}),V=Dt(()=>{const t=n[o.value];return{...n,...t}}),tt={pageChange({currentPage:t,pageSize:a}){n.pagerConfig&&(n.pagerConfig.currentPage=t,n.pagerConfig.pageSize=a,O(D.taskIds))}},B=()=>{localStorage.setItem("sortField",f.value),localStorage.setItem("sortOrder",M.value),localStorage.setItem("salesOrder",_.value),localStorage.setItem("salesField",T.value)},E=l({});async function I(t,a,c,d,s){try{const i=await a({data_start_date:c.value,data_end_date:d.value,task_ids:t});E.value=i.data[0]||{},E.value.platformNumber="汇总"}catch(i){console.error("Error fetching total data:",i)}}async function et(t){await I(t,Tt,S,b)}async function at(t){await I(t,zt,C,Y)}async function ot(t){await I(t,Et,k,x)}async function nt(t){o.value==="day"?await et(t):o.value==="week"?await at(t):o.value==="month"&&await ot(t)}async function N(t,a,c,d,s,i){try{const m=await a({page:n.pagerConfig.currentPage,limit:n.pagerConfig.pageSize,[`${i}_start_date`]:c.value,[`${i}_end_date`]:d.value,task_ids:t,sort:M.value,order_date:f.value,order_total_sales_current_monthly:g.value});if(n[o.value].data=[E.value,...m.data],n.pagerConfig.total=m.total,z.value&&m.data.length>0){const $=new Set,p=[],F=[];s.value=s.value.filter(e=>!/\d{2}-\d{2}/.test(e.field)&&!e.field.includes("余额币种")&&!e.field.includes("退货率")),m.data.forEach(e=>{for(const r in e)(/\d{2}-\d{2}/.test(r)||r.includes("余额币种")||r.includes("退货率"))&&$.add(r)}),$.forEach(e=>{let r=!1;(e.includes("的销售额")||e.includes("当月累计销售额")&&!e.includes("增长率"))&&(r=!0);const u={field:e,title:e,minWidth:e.includes("~")?95:/\d{4}-\d{2}-\d{2}的/.test(e)?93:e.includes("截止")?90:/\d{4}-\d{2}的销售额/.test(e)?127:79,align:"center",formatter:dt,sortable:r};e.includes("的销售额")&&!e.includes("增长率")?p.push(u):F.push(u)}),o.value=="day"?p.sort((e,r)=>{const u=e.field.match(/\d{4}-\d{2}-\d{2}/)[0],h=r.field.match(/\d{4}-\d{2}-\d{2}/)[0];return new Date(u)-new Date(h)}):o.value=="week"?p.sort((e,r)=>{const u=e.field.match(/\d{4}-\d{2}-\d{2}~\d{4}-\d{2}-\d{2}/)[0].split("~")[0],h=r.field.match(/\d{4}-\d{2}-\d{2}~\d{4}-\d{2}-\d{2}/)[0].split("~")[0];return new Date(u)-new Date(h)}):o.value=="month"&&p.sort((e,r)=>{const u=e.field.match(/\d{4}-\d{2}/)[0],h=r.field.match(/\d{4}-\d{2}/)[0];return new Date(u)-new Date(h)});const vt=[...p,...F];o.value===i?s.value=[...s.value,...vt]:(s.value=[],n.pagerConfig.total=0)}B()}catch(m){console.error("Error fetching task data:",m)}}async function lt(t){await N(t,kt,S,b,R,"day")}async function st(t){await N(t,xt,C,Y,H,"week")}async function rt(t){await N(t,Mt,k,x,L,"month")}async function O(t,a=!1){n.loading=!0,a&&(n.pagerConfig.currentPage=1),await nt(t),o.value==="day"?await lt(t):o.value==="week"?await st(t):o.value==="month"&&await rt(t),n.loading=!1}function it({field:t,order:a}){if(_.value=a,T.value=t,M.value=a==="asc"?"smallfirst":"bigfirst",t){const c=t.match(/(\d{4}-\d{2}-\d{2})的销售额/),d=t.match(/(\d{4}-\d{2}-\d{2})~(\d{4}-\d{2}-\d{2})的销售额/),s=t.match(/(\d{4}-\d{2})的销售额/),i=t.match(/当月累计销售额/);d?(f.value=d[1],g.value=""):c?(f.value=c[1],g.value=""):s?(f.value=`${s[1]}-01`,g.value=""):i&&(W(),g.value=!0)}B(),n.sortConfig.defaultSort.order=a,n.sortConfig.defaultSort.field=t,z.value=!1,O(D.taskIds,!0)}function W(){f.value="",_.value=null}const ct=()=>{const t=U.resolve({name:"TableDataEntry",query:{dateType:o.value}}).href;window.open(t,"_blank")};function dt({cellValue:t}){return t==null||t===""?"--":typeof t=="number"?new Intl.NumberFormat("en-US",{minimumFractionDigits:2}).format(t):t}const ut=t=>t.$rowIndex===0&&t.$columnIndex<5?{position:"sticky",top:0,zIndex:30,fontSize:"12px",fontWeight:"600"}:{fontSize:"12px",fontWeight:"600",padding:0},ft=()=>({fontSize:"12px"}),mt=t=>t.$rowIndex===0?{background:"#def6fe",position:"sticky",top:0,zIndex:1}:{padding:0,height:"50px"};return _t([()=>D.taskIds,J],async([t,a])=>{z.value=!0,o.value==="day"?(S.value=v(a.dailyStartDate).format("YYYY-MM-DD"),b.value=v(a.dailyTime).format("YYYY-MM-DD")):o.value==="week"?(C.value=v(a.weekStartDate).format("YYYY-MM-DD"),Y.value=v(a.weekEndDate).format("YYYY-MM-DD")):o.value==="month"&&(k.value=v(a.startDate).format("YYYY-MM-DD"),x.value=v(a.endDate).format("YYYY-MM-DD")),W(),t&&(w.value=!0),w.value&&t&&(await O(t,!0),w.value=!1)}),yt(()=>{}),(t,a)=>{const c=j("el-button"),d=j("vxe-grid");return wt(),St("div",null,[A(d,Ct({"cell-style":ut,"header-cell-style":ft,"row-style":mt,stripe:""},V.value,Yt(tt),{onSortChange:it}),{toolbar_buttons:y(()=>[A(c,{icon:"plus",target:"_blank",type:"primary",onClick:ct},{default:y(()=>[bt("数据录入")]),_:1})]),platformNumber_default:y(({row:s})=>[q("div",Nt,G(s.platformNumber),1)]),platformName_default:y(({row:s})=>[q("div",Ot,G(s.platformName),1)]),_:1},16)])}}});const qt=It(Bt,[["__scopeId","data-v-09598a88"]]);export{qt as default};