TableDataDisplay.8bfa2d84.js 6.1 KB

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