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