Files
wecom_it_smart_desk/frontend-admin/dist.old/assets/EvaluationStats-CXM5NhyG.js
T

2 lines
6.5 KiB
JavaScript
Raw Normal View History

import{d as G,o as J,b as r,c as p,e as t,f as o,w as n,t as l,r as v,S as w,E as K,i as d,j as u,I as O,L as Q,aq as V,ar as D,as as E,T,U as $,n as b,g as x,V as R,a2 as W}from"./index-BCt9h3P8.js";import{T as X}from"./admin-yH4tDL3a.js";import{_ as Z}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CTvVpU0T.js";const tt={class:"evaluation-stats"},at={class:"stats-cards"},et={class:"stat-card"},st={class:"stat-card-icon total-icon"},ot={class:"stat-card-content"},nt={class:"stat-card-value"},lt={class:"stat-card"},rt={class:"stat-card-icon star-icon"},it={class:"stat-card-content"},ct={class:"stat-card-value"},dt={class:"stat-card"},ut={class:"stat-card-icon satisfied-icon"},_t={class:"stat-card-content"},pt={class:"stat-card-value"},vt={class:"stat-card"},ft={class:"stat-card-icon neutral-icon"},gt={class:"stat-card-content"},bt={class:"stat-card-value"},mt={class:"stat-card"},ht={class:"stat-card-icon dissatisfied-icon"},yt={class:"stat-card-content"},St={class:"stat-card-value"},jt={class:"detail-section"},kt={class:"star-bars"},wt={class:"star-label"},xt={class:"star-count"},zt={class:"emoji-bars"},Ct={class:"emoji-label"},Vt={class:"emoji-count"},Dt={key:0,style:{color:"var(--text-secondary)"}},Et={key:1,style:{color:"var(--text-muted)"}},Tt={class:"pagination-container"},$t=G({__name:"EvaluationStats",setup(Pt){const m=v(!1),h=v(1),y=v(20),z=v(0),c=v({total_count:0,avg_star_rating:0,star_distribution:[],emoji_distribution:[]}),C=v([]),P=w(()=>{const e=c.value.emoji_distribution.find(a=>a.label==="满意");return e?e.percentage:0}),U=w(()=>{const e=c.value.emoji_distribution.find(a=>a.label==="一般");return e?e.percentage:0}),B=w(()=>{const e=c.value.emoji_distribution.find(a=>a.label==="不满意");return e?e.percentage:0});async function S(){m.value=!0;try{const{data:e}=await X({page:h.value,page_size:y.value});e.code===0&&(c.value={total_count:e.data.total_count,avg_star_rating:e.data.avg_star_rating,star_distribution:e.data.star_distribution||[],emoji_distribution:e.data.emoji_distribution||[]},C.value=e.data.recent_evaluations||[],z.value=e.data.total_count)}catch{K.error("加载评价统计数据失败")}finally{m.value=!1}}function M(e){const a=parseInt(e.replace("星",""));return a>=4?"#67c23a":a>=3?"#e6a23c":"#f56c6c"}function N(e){return e==="满意"?"#67c23a":e==="一般"?"#e6a23c":"#f56c6c"}function I(e){return e==="satisfied"?"success":e==="neutral"?"warning":"danger"}function L(e){return{satisfied:"满意",neutral:"一般",dissatisfied:"不满意"}[e]||e}function F(e){if(!e)return"—";const a=new Date(e),i=a.getFullYear(),g=String(a.getMonth()+1).padStart(2,"0"),f=String(a.getDate()).padStart(2,"0"),_=String(a.getHours()).padStart(2,"0"),j=String(a.getMinutes()).padStart(2,"0"),k=String(a.getSeconds()).padStart(2,"0");return`${i}-${g}-${f} ${_}:${j}:${k}`}return J(()=>S()),(e,a)=>{const i=d("el-icon"),g=d("el-progress"),f=d("el-card"),_=d("el-table-column"),j=d("el-rate"),k=d("el-tag"),q=d("el-table"),H=d("el-pagination"),Y=W("loading");return r(),p("div",tt,[t("div",at,[t("div",et,[t("div",st,[o(i,null,{default:n(()=>[o(u(O))]),_:1})]),t("div",ot,[t("div",nt,l(c.value.total_count),1),a[2]||(a[2]=t("div",{class:"stat-card-label"},"总评价数",-1))])]),t("div",lt,[t("div",rt,[o(i,null,{default:n(()=>[o(u(Q))]),_:1})]),t("div",it,[t("div",ct,l(c.value.avg_star_rating),1),a[3]||(a[3]=t("div",{class:"stat-card-label"},"平均星级",-1))])]),t("div",dt,[t("div",ut,[o(i,null,{default:n(()=>[o(u(V))]),_:1})]),t("div",_t,[t("div",pt,l(P.value)+"%",1),a[4]||(a[4]=t("div",{class:"stat-card-label"},"满意",-1))])]),t("div",vt,[t("div",ft,[o(i,null,{default:n(()=>[o(u(D))]),_:1})]),t("div",gt,[t("div",bt,l(U.value)+"%",1),a[5]||(a[5]=t("div",{class:"stat-card-label"},"一般",-1))])]),t("div",mt,[t("div",ht,[o(i,null,{default:n(()=>[o(u(E))]),_:1})]),t("div",yt,[t("div",St,l(B.value)+"%",1),a[6]||(a[6]=t("div",{class:"stat-card-label"},"不满意",-1))])])]),t("div",jt,[o(f,{class:"distribution-card",shadow:"never"},{header:n(()=>[...a[7]||(a[7]=[t("div",{class:"card-header"},[t("span",null,"