2 lines
15 KiB
JavaScript
2 lines
15 KiB
JavaScript
import{_ as ke,V as Me,o as R,c as S,e as t,f as i,j as g,k as y,q as ee,W as Ue,s as me,g as W,h as u,t as r,a,m as Ee,U as Ne,F as ce,r as fe,d as te,i as Te,E as Y,T as $e}from"./index-C1KISTGN.js";const Ae={class:"supplier-evaluation"},Be={class:"pagination-container"},Ie={class:"rating-stars"},Le={class:"pagination-container"},Oe={class:"evaluation-form"},je={class:"evaluation-info"},Ke={class:"rating-container"},He={class:"rating-text"},We={class:"rating-container"},Ye={class:"rating-text"},Ge={class:"rating-container"},Je={class:"rating-text"},Qe={class:"rating-container"},Xe={class:"rating-text"},Ze={class:"overall-rating"},et={class:"evaluation-detail"},tt={class:"evaluation-info"},at={class:"evaluation-ratings"},lt={class:"rating-item"},nt={class:"rating-score"},ot={class:"rating-item"},it={class:"rating-score"},st={class:"rating-item"},rt={class:"rating-score"},dt={class:"rating-item"},ut={class:"rating-score"},pt={class:"overall-rating-section"},gt={key:0,class:"evaluation-content"},vt={class:"evaluation-header"},mt={class:"eval-date"},ct={class:"eval-text"},ft={key:0,class:"eval-images"},_t={__name:"SupplierEvaluation",setup(wt){const V=y(!1),G=y("pending"),x=y(!1),U=y(!1),J=y("评价供应商"),Q=y(!1),d=y(null),w=ee({currentPage:1,pageSize:10,total:0}),h=ee({currentPage:1,pageSize:10,total:0}),s=ee({qualityRating:5,deliveryRating:5,serviceRating:5,priceRating:5,content:"",images:[]}),X=Te(()=>{const n=[s.qualityRating,s.deliveryRating,s.serviceRating,s.priceRating];return(n.reduce((l,p)=>l+p,0)/n.length).toFixed(1)}),E=["联想供应商","惠普供应商","戴尔供应商","华为供应商","苹果供应商","小米供应商","三星供应商","索尼供应商","松下供应商","格力供应商","美的供应商","海尔供应商","海信供应商","TCL供应商","长虹供应商","东芝供应商","飞利浦供应商","西门子供应商","博世供应商","三洋供应商"],N=["办公电脑","办公显示器","办公桌","办公椅","打印机","投影仪","路由器","交换机","服务器","空调","冰箱","洗衣机","微波炉","饮水机","空气净化器","加湿器","吸尘器","电风扇","电暖气","热水器"],T=["ThinkPad T14","27寸4K","1.8米实木","人体工学","HP M404","Sony 4K","企业级","48口千兆","Dell R740","3匹","双开门","滚筒10kg","微烤一体","台式冷热","除甲醛","4L大容量","手持无线","落地扇","油汀式","即热式"],$=["台","张","把","个","套","台","件"],_e=()=>{const n=[],e=new Date;for(let l=0;l<30;l++){const p=new Date(e);p.setDate(p.getDate()-l);const v=p.getMonth()+1;let f;v>=1&&v<=3?f=1:v>=4&&v<=6?f=2:v>=7&&v<=9?f=3:f=4,n.push({id:l+1,orderNo:`ORD202605${String(l+1).padStart(4,"0")}`,supplier:E[l%E.length],materialName:N[l%N.length],spec:T[l%T.length],quantity:Math.floor(Math.random()*50)+1,unit:$[l%$.length],totalPrice:Math.floor(Math.random()*1e5)+1e3,completeDate:p,quarter:f})}return n},we=()=>{const n=[],e=new Date;for(let l=0;l<25;l++){const p=new Date(e);p.setDate(p.getDate()-30-l);const v=p.getMonth()+1;let f;v>=1&&v<=3?f=1:v>=4&&v<=6?f=2:v>=7&&v<=9?f=3:f=4;const D=new Date(p);D.setDate(D.getDate()+1);const _=(Math.random()*2+3).toFixed(1),O=(Math.random()*2+3).toFixed(1),j=(Math.random()*2+3).toFixed(1),C=(Math.random()*2+3).toFixed(1),b=((parseFloat(_)+parseFloat(O)+parseFloat(j)+parseFloat(C))/4).toFixed(1),K=["商品质量很好,包装完好,使用体验非常满意!","供应商交货及时,服务态度好,值得信赖。","价格合理,质量可靠,会继续合作。","整体还不错,但服务响应速度有待提高。","产品质量超出预期,供应商配合度高,推荐!","配送速度很快,产品符合要求,好评!"],Z=Math.random()>.7,H=[{content:K[l%K.length],date:D,isAdditional:!1,images:[]}];if(Z){const F=new Date(D);F.setDate(F.getDate()+7),H.push({content:"使用了一段时间,产品质量稳定,服务也很好,追加好评!",date:F,isAdditional:!0,images:[]})}n.push({id:l+100,orderNo:`ORD202604${String(l+1).padStart(4,"0")}`,supplier:E[l%E.length],materialName:N[l%N.length],spec:T[l%T.length],quantity:Math.floor(Math.random()*50)+1,unit:$[l%$.length],totalPrice:Math.floor(Math.random()*1e5)+1e3,completeDate:p,quarter:f,evaluationDate:D,qualityRating:parseFloat(_),deliveryRating:parseFloat(O),serviceRating:parseFloat(j),priceRating:parseFloat(C),overallRating:parseFloat(b),evaluations:H})}return n},z=_e(),P=we(),ae=y([]),le=y([]),q=n=>{if(!n)return"";const e=new Date(n);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`},A=n=>n>=4.5?"非常满意":n>=3.5?"满意":n>=2.5?"一般":n>=1.5?"不满意":"非常不满意",B=()=>{V.value=!0,setTimeout(()=>{ae.value=z.slice((w.currentPage-1)*w.pageSize,w.currentPage*w.pageSize),w.total=z.length,V.value=!1},300)},I=()=>{V.value=!0,setTimeout(()=>{le.value=P.slice((h.currentPage-1)*h.pageSize,h.currentPage*h.pageSize),h.total=P.length,V.value=!1},300)},he=n=>{w.pageSize=n,B()},Re=n=>{w.currentPage=n,B()},be=n=>{h.pageSize=n,I()},ye=n=>{h.currentPage=n,I()},De=n=>{d.value=n,Q.value=!1,J.value="评价供应商",L(),x.value=!0},Ve=n=>{d.value=n,Q.value=!0,J.value="追加评价",L(),x.value=!0},xe=n=>{d.value=n,U.value=!0},L=()=>{s.qualityRating=5,s.deliveryRating=5,s.serviceRating=5,s.priceRating=5,s.content="",s.images=[]},Se=()=>{if(s.content.trim().length<10){Y.warning("评价内容至少需要10个字");return}$e.confirm("确定提交评价吗?","确认提交",{confirmButtonText:"确定",cancelButtonText:"取消",type:"info"}).then(()=>{if(Q.value){const n=P.findIndex(e=>e.id===d.value.id);n>-1&&P[n].evaluations.push({content:s.content,date:new Date,isAdditional:!0,images:s.images.map(e=>e.url||"")}),Y.success("追加评价成功")}else{const n=z.findIndex(e=>e.id===d.value.id);if(n>-1){const e={...z[n],evaluationDate:new Date,qualityRating:s.qualityRating,deliveryRating:s.deliveryRating,serviceRating:s.serviceRating,priceRating:s.priceRating,overallRating:parseFloat(X.value),evaluations:[{content:s.content,date:new Date,isAdditional:!1,images:s.images.map(l=>l.url||"")}]};P.unshift(e),z.splice(n,1)}Y.success("评价提交成功")}x.value=!1,L(),G.value==="pending"?B():I()}).catch(()=>{Y.info("已取消提交")})};return Me(()=>{B(),I()}),(n,e)=>{const l=g("el-table-column"),p=g("el-button"),v=g("el-table"),f=g("el-pagination"),D=g("el-tab-pane"),_=g("el-rate"),O=g("el-tabs"),j=g("el-card"),C=g("el-divider"),b=g("el-form-item"),K=g("el-input"),Z=g("el-icon"),H=g("el-upload"),F=g("el-form"),ne=g("el-dialog"),ze=g("el-tag"),Pe=g("el-image"),oe=Ue("loading");return R(),S("div",Ae,[t(j,{class:"card-container"},{header:i(()=>[...e[16]||(e[16]=[a("div",{class:"card-header"},[a("span",null,"供应商订单绩效评价")],-1)])]),default:i(()=>[t(O,{modelValue:G.value,"onUpdate:modelValue":e[4]||(e[4]=o=>G.value=o),type:"border-card"},{default:i(()=>[t(D,{label:"待评价",name:"pending"},{default:i(()=>[me((R(),W(v,{data:ae.value,style:{width:"100%"},border:"",stripe:""},{default:i(()=>[t(l,{prop:"orderNo",label:"订单编号","min-width":"120",fixed:"left"}),t(l,{prop:"supplier",label:"供应商","min-width":"150"}),t(l,{prop:"materialName",label:"物料名称","min-width":"200"}),t(l,{prop:"spec",label:"规格型号","min-width":"150"}),t(l,{prop:"quantity",label:"数量",width:"80"}),t(l,{prop:"unit",label:"单位",width:"60"}),t(l,{prop:"totalPrice",label:"订单金额(元)",width:"120"},{default:i(o=>{var m;return[u(r(((m=o.row.totalPrice)==null?void 0:m.toFixed(2))||"0.00"),1)]}),_:1}),t(l,{prop:"completeDate",label:"订单完成日期",width:"120"},{default:i(o=>[u(r(q(o.row.completeDate)),1)]),_:1}),t(l,{prop:"quarter",label:"季度",width:"80"},{default:i(o=>[u(" 第"+r(o.row.quarter)+"季度 ",1)]),_:1}),t(l,{label:"操作",width:"100",fixed:"right"},{default:i(o=>[t(p,{type:"primary",size:"small",onClick:m=>De(o.row)},{default:i(()=>[...e[17]||(e[17]=[u("评价",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[oe,V.value]]),a("div",Be,[t(f,{"current-page":w.currentPage,"onUpdate:currentPage":e[0]||(e[0]=o=>w.currentPage=o),"page-size":w.pageSize,"onUpdate:pageSize":e[1]||(e[1]=o=>w.pageSize=o),total:w.total,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:he,onCurrentChange:Re},null,8,["current-page","page-size","total"])])]),_:1}),t(D,{label:"已评价",name:"evaluated"},{default:i(()=>[me((R(),W(v,{data:le.value,style:{width:"100%"},border:"",stripe:""},{default:i(()=>[t(l,{prop:"orderNo",label:"订单编号","min-width":"120",fixed:"left"}),t(l,{prop:"supplier",label:"供应商","min-width":"150"}),t(l,{prop:"materialName",label:"物料名称","min-width":"200"}),t(l,{prop:"spec",label:"规格型号","min-width":"150"}),t(l,{prop:"quantity",label:"数量",width:"80"}),t(l,{prop:"unit",label:"单位",width:"60"}),t(l,{prop:"totalPrice",label:"订单金额(元)",width:"120"},{default:i(o=>{var m;return[u(r(((m=o.row.totalPrice)==null?void 0:m.toFixed(2))||"0.00"),1)]}),_:1}),t(l,{prop:"completeDate",label:"订单完成日期",width:"120"},{default:i(o=>[u(r(q(o.row.completeDate)),1)]),_:1}),t(l,{prop:"quarter",label:"季度",width:"80"},{default:i(o=>[u(" 第"+r(o.row.quarter)+"季度 ",1)]),_:1}),t(l,{prop:"evaluationDate",label:"评价日期",width:"120"},{default:i(o=>[u(r(q(o.row.evaluationDate)),1)]),_:1}),t(l,{prop:"overallRating",label:"综合评分",width:"120"},{default:i(o=>[a("div",Ie,[t(_,{modelValue:o.row.overallRating,"onUpdate:modelValue":m=>o.row.overallRating=m,disabled:"","show-score":""},null,8,["modelValue","onUpdate:modelValue"])])]),_:1}),t(l,{label:"操作",width:"120",fixed:"right"},{default:i(o=>[t(p,{type:"text",size:"small",onClick:m=>xe(o.row)},{default:i(()=>[...e[18]||(e[18]=[u("查看评价",-1)])]),_:1},8,["onClick"]),t(p,{type:"text",size:"small",onClick:m=>Ve(o.row)},{default:i(()=>[...e[19]||(e[19]=[u("追加评价",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[oe,V.value]]),a("div",Le,[t(f,{"current-page":h.currentPage,"onUpdate:currentPage":e[2]||(e[2]=o=>h.currentPage=o),"page-size":h.pageSize,"onUpdate:pageSize":e[3]||(e[3]=o=>h.pageSize=o),total:h.total,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:be,onCurrentChange:ye},null,8,["current-page","page-size","total"])])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(ne,{modelValue:x.value,"onUpdate:modelValue":e[13]||(e[13]=o=>x.value=o),title:J.value,width:"700px",onClose:L},{footer:i(()=>[t(p,{onClick:e[12]||(e[12]=o=>x.value=!1)},{default:i(()=>[...e[25]||(e[25]=[u("取消",-1)])]),_:1}),t(p,{type:"primary",onClick:Se},{default:i(()=>[...e[26]||(e[26]=[u("提交评价",-1)])]),_:1})]),default:i(()=>{var o,m,k,M;return[a("div",Oe,[a("div",je,[a("div",null,[e[20]||(e[20]=a("strong",null,"订单编号:",-1)),u(r((o=d.value)==null?void 0:o.orderNo),1)]),a("div",null,[e[21]||(e[21]=a("strong",null,"供应商:",-1)),u(r((m=d.value)==null?void 0:m.supplier),1)]),a("div",null,[e[22]||(e[22]=a("strong",null,"物料名称:",-1)),u(r((k=d.value)==null?void 0:k.materialName),1)]),a("div",null,[e[23]||(e[23]=a("strong",null,"规格型号:",-1)),u(r((M=d.value)==null?void 0:M.spec),1)])]),t(C),t(F,{model:s,"label-width":"140px"},{default:i(()=>[t(b,{label:"商品质量",required:""},{default:i(()=>[a("div",Ke,[t(_,{modelValue:s.qualityRating,"onUpdate:modelValue":e[5]||(e[5]=c=>s.qualityRating=c),"allow-half":""},null,8,["modelValue"]),a("span",He,r(A(s.qualityRating)),1)])]),_:1}),t(b,{label:"交货及时性",required:""},{default:i(()=>[a("div",We,[t(_,{modelValue:s.deliveryRating,"onUpdate:modelValue":e[6]||(e[6]=c=>s.deliveryRating=c),"allow-half":""},null,8,["modelValue"]),a("span",Ye,r(A(s.deliveryRating)),1)])]),_:1}),t(b,{label:"服务质量",required:""},{default:i(()=>[a("div",Ge,[t(_,{modelValue:s.serviceRating,"onUpdate:modelValue":e[7]||(e[7]=c=>s.serviceRating=c),"allow-half":""},null,8,["modelValue"]),a("span",Je,r(A(s.serviceRating)),1)])]),_:1}),t(b,{label:"价格竞争力",required:""},{default:i(()=>[a("div",Qe,[t(_,{modelValue:s.priceRating,"onUpdate:modelValue":e[8]||(e[8]=c=>s.priceRating=c),"allow-half":""},null,8,["modelValue"]),a("span",Xe,r(A(s.priceRating)),1)])]),_:1}),t(b,{label:"综合评分"},{default:i(()=>[a("div",Ze,[t(_,{modelValue:X.value,"onUpdate:modelValue":e[9]||(e[9]=c=>X.value=c),disabled:"","show-score":""},null,8,["modelValue"])])]),_:1}),t(b,{label:"评价内容"},{default:i(()=>[t(K,{modelValue:s.content,"onUpdate:modelValue":e[10]||(e[10]=c=>s.content=c),type:"textarea",rows:4,placeholder:"请输入评价内容,分享您的使用体验(100-500字)",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(b,{label:"上传图片"},{default:i(()=>[t(H,{"file-list":s.images,"onUpdate:fileList":e[11]||(e[11]=c=>s.images=c),action:"#","list-type":"picture-card","auto-upload":!1,limit:5,accept:"image/*"},{default:i(()=>[t(Z,null,{default:i(()=>[t(Ee(Ne))]),_:1})]),_:1},8,["file-list"]),e[24]||(e[24]=a("div",{class:"upload-tip"},"最多上传5张图片",-1))]),_:1})]),_:1},8,["model"])])]}),_:1},8,["modelValue","title"]),t(ne,{modelValue:U.value,"onUpdate:modelValue":e[15]||(e[15]=o=>U.value=o),title:"查看评价",width:"700px"},{footer:i(()=>[t(p,{onClick:e[14]||(e[14]=o=>U.value=!1)},{default:i(()=>[...e[36]||(e[36]=[u("关闭",-1)])]),_:1})]),default:i(()=>{var o,m,k,M,c,ie,se,re,de,ue,pe,ge,ve;return[a("div",et,[a("div",tt,[a("div",null,[e[27]||(e[27]=a("strong",null,"订单编号:",-1)),u(r((o=d.value)==null?void 0:o.orderNo),1)]),a("div",null,[e[28]||(e[28]=a("strong",null,"供应商:",-1)),u(r((m=d.value)==null?void 0:m.supplier),1)]),a("div",null,[e[29]||(e[29]=a("strong",null,"评价日期:",-1)),u(r(q((k=d.value)==null?void 0:k.evaluationDate)),1)])]),t(C),a("div",at,[a("div",lt,[e[30]||(e[30]=a("span",null,"商品质量:",-1)),t(_,{"model-value":(M=d.value)==null?void 0:M.qualityRating,disabled:"","allow-half":""},null,8,["model-value"]),a("span",nt,r((c=d.value)==null?void 0:c.qualityRating)+"分",1)]),a("div",ot,[e[31]||(e[31]=a("span",null,"交货及时性:",-1)),t(_,{"model-value":(ie=d.value)==null?void 0:ie.deliveryRating,disabled:"","allow-half":""},null,8,["model-value"]),a("span",it,r((se=d.value)==null?void 0:se.deliveryRating)+"分",1)]),a("div",st,[e[32]||(e[32]=a("span",null,"服务质量:",-1)),t(_,{"model-value":(re=d.value)==null?void 0:re.serviceRating,disabled:"","allow-half":""},null,8,["model-value"]),a("span",rt,r((de=d.value)==null?void 0:de.serviceRating)+"分",1)]),a("div",dt,[e[33]||(e[33]=a("span",null,"价格竞争力:",-1)),t(_,{"model-value":(ue=d.value)==null?void 0:ue.priceRating,disabled:"","allow-half":""},null,8,["model-value"]),a("span",ut,r((pe=d.value)==null?void 0:pe.priceRating)+"分",1)])]),a("div",pt,[e[34]||(e[34]=a("strong",null,"综合评分:",-1)),t(_,{"model-value":(ge=d.value)==null?void 0:ge.overallRating,disabled:"","show-score":""},null,8,["model-value"])]),(ve=d.value)!=null&&ve.evaluations?(R(),S("div",gt,[(R(!0),S(ce,null,fe(d.value.evaluations,(ht,qe)=>(R(),S("div",{key:qe,class:"evaluation-item"},[a("div",vt,[a("span",mt,r(q(n.eval.date)),1),n.eval.isAdditional?(R(),W(ze,{key:0,type:"success",size:"small"},{default:i(()=>[...e[35]||(e[35]=[u("追加评价",-1)])]),_:1})):te("",!0)]),a("div",ct,r(n.eval.content),1),n.eval.images&&n.eval.images.length>0?(R(),S("div",ft,[(R(!0),S(ce,null,fe(n.eval.images,(Ce,Fe)=>(R(),W(Pe,{key:Fe,src:Ce,"preview-src-list":n.eval.images,fit:"cover",class:"eval-image"},null,8,["src","preview-src-list"]))),128))])):te("",!0)]))),128))])):te("",!0)])]}),_:1},8,["modelValue"])])}}},bt=ke(_t,[["__scopeId","data-v-e10e08fb"]]);export{bt as default};
|