import{_ as W,V as X,o as D,c as Y,e as t,f as l,E as f,j as c,k as S,q as L,h as p,g as N,a as T,t as k}from"./index-C1KISTGN.js";import{u as P,w as Z}from"./xlsx-DrgRuPKf.js";const ee={class:"inquiry-list"},te={class:"card-header"},le={__name:"List",setup(ae){const _=S(!1),Q=S(""),I=S(!1),C=S(null),s=L({code:"",materialName:"",processType:"",status:"",finalSupplier:""}),n=L({materialName:"",spec:"",quantity:1,suppliers:"",remark:""}),M={materialName:[{required:!0,message:"请输入物料名称",trigger:"blur"}],spec:[{required:!0,message:"请输入规格",trigger:"blur"}],quantity:[{required:!0,message:"请输入数量",trigger:"blur"}],suppliers:[{required:!0,message:"请输入供应商",trigger:"blur"}]},g=L({page:1,size:20,total:0}),x=S([]),q=L({code:"",materialName:"",spec:"",quantity:0,createDate:"",status:0,quotes:[]}),V=async()=>{try{const m=localStorage.getItem("inquiries");let e=m?JSON.parse(m):[];e.length<15&&(e=[{id:1,code:"INQ202401150001",materialName:"阿莫西林胶囊",spec:"0.25g*24粒",quantity:200,supplierCount:3,quoteCount:3,lowestPrice:14.8,createDate:"2024-01-15",status:2,quotes:[{supplierName:"漱玉平民大药房",price:15.5,deliveryDays:7,quoteDate:"2024-01-16",isLowest:!1},{supplierName:"山东华润医药",price:14.8,deliveryDays:5,quoteDate:"2024-01-16",isLowest:!0},{supplierName:"国药控股山东",price:15.2,deliveryDays:6,quoteDate:"2024-01-17",isLowest:!1}]},{id:2,code:"INQ202401200002",materialName:"一次性医用口罩",spec:"50只/盒",quantity:1e3,supplierCount:4,quoteCount:4,lowestPrice:.75,createDate:"2024-01-20",status:2,quotes:[{supplierName:"稳健医疗",price:.8,deliveryDays:3,quoteDate:"2024-01-21",isLowest:!1},{supplierName:"蓝帆医疗",price:.75,deliveryDays:5,quoteDate:"2024-01-21",isLowest:!0},{supplierName:"威高集团",price:.78,deliveryDays:4,quoteDate:"2024-01-22",isLowest:!1},{supplierName:"新华医疗",price:.82,deliveryDays:3,quoteDate:"2024-01-22",isLowest:!1}]},{id:3,code:"INQ202402010003",materialName:"一次性注射器",spec:"5ml",quantity:2e3,supplierCount:3,quoteCount:2,lowestPrice:.28,createDate:"2024-02-01",status:1,quotes:[{supplierName:"康德莱医疗",price:.3,deliveryDays:7,quoteDate:"2024-02-02",isLowest:!1},{supplierName:"威高集团",price:.28,deliveryDays:5,quoteDate:"2024-02-03",isLowest:!0}]},{id:4,code:"INQ202402100004",materialName:"电子体温计",spec:"MT-101",quantity:100,supplierCount:2,quoteCount:2,lowestPrice:42,createDate:"2024-02-10",status:2,quotes:[{supplierName:"欧姆龙",price:45,deliveryDays:10,quoteDate:"2024-02-11",isLowest:!1},{supplierName:"鱼跃医疗",price:42,deliveryDays:7,quoteDate:"2024-02-12",isLowest:!0}]},{id:5,code:"INQ202402150005",materialName:"医用纱布",spec:"10cm*10cm",quantity:500,supplierCount:3,quoteCount:1,lowestPrice:2.3,createDate:"2024-02-15",status:1,quotes:[{supplierName:"振德医疗",price:2.5,deliveryDays:5,quoteDate:"2024-02-16",isLowest:!1}]},{id:6,code:"INQ202402200006",materialName:"输液器",spec:"精密过滤",quantity:800,supplierCount:2,quoteCount:0,lowestPrice:0,createDate:"2024-02-20",status:0,quotes:[]},{id:7,code:"INQ202403010007",materialName:"血压计",spec:"HEM-7136",quantity:50,supplierCount:2,quoteCount:2,lowestPrice:175,createDate:"2024-03-01",status:2,quotes:[{supplierName:"欧姆龙",price:180,deliveryDays:10,quoteDate:"2024-03-02",isLowest:!1},{supplierName:"鱼跃医疗",price:175,deliveryDays:7,quoteDate:"2024-03-03",isLowest:!0}]},{id:8,code:"INQ202403050008",materialName:"医用棉签",spec:"100支/包",quantity:400,supplierCount:3,quoteCount:3,lowestPrice:1.6,createDate:"2024-03-05",status:2,quotes:[{supplierName:"稳健医疗",price:1.8,deliveryDays:5,quoteDate:"2024-03-06",isLowest:!1},{supplierName:"振德医疗",price:1.6,deliveryDays:6,quoteDate:"2024-03-06",isLowest:!0},{supplierName:"康德莱医疗",price:1.7,deliveryDays:5,quoteDate:"2024-03-07",isLowest:!1}]},{id:9,code:"INQ202403100009",materialName:"医用胶带",spec:"2.5cm*5m",quantity:300,supplierCount:2,quoteCount:1,lowestPrice:3,createDate:"2024-03-10",status:1,quotes:[{supplierName:"3M中国",price:3.2,deliveryDays:10,quoteDate:"2024-03-11",isLowest:!1}]},{id:10,code:"INQ202403150010",materialName:"头孢克肟分散片",spec:"0.1g*6片",quantity:150,supplierCount:3,quoteCount:0,lowestPrice:0,createDate:"2024-03-15",status:0,quotes:[]},{id:11,code:"INQ202403200011",materialName:"布洛芬缓释胶囊",spec:"0.3g*20粒",quantity:100,supplierCount:2,quoteCount:2,lowestPrice:12,createDate:"2024-03-20",status:2,quotes:[{supplierName:"中美史克",price:12.8,deliveryDays:7,quoteDate:"2024-03-21",isLowest:!1},{supplierName:"齐鲁制药",price:12,deliveryDays:5,quoteDate:"2024-03-22",isLowest:!0}]},{id:12,code:"INQ202403250012",materialName:"一次性医用手套",spec:"100只/盒",quantity:500,supplierCount:3,quoteCount:2,lowestPrice:.45,createDate:"2024-03-25",status:1,quotes:[{supplierName:"蓝帆医疗",price:.5,deliveryDays:5,quoteDate:"2024-03-26",isLowest:!1},{supplierName:"威高集团",price:.45,deliveryDays:6,quoteDate:"2024-03-27",isLowest:!0}]},{id:13,code:"INQ202403280013",materialName:"N95医用防护口罩",spec:"20只/盒",quantity:300,supplierCount:2,quoteCount:0,lowestPrice:0,createDate:"2024-03-28",status:0,quotes:[]},{id:14,code:"INQ202403300014",materialName:"蒙脱石散",spec:"3g*10袋",quantity:200,supplierCount:2,quoteCount:2,lowestPrice:17.5,createDate:"2024-03-30",status:2,quotes:[{supplierName:"博福-益普生",price:18.5,deliveryDays:7,quoteDate:"2024-03-31",isLowest:!1},{supplierName:"齐鲁制药",price:17.5,deliveryDays:5,quoteDate:"2024-04-01",isLowest:!0}]},{id:15,code:"INQ202404010015",materialName:"复方氨酚烷胺片",spec:"12片",quantity:150,supplierCount:3,quoteCount:1,lowestPrice:8.2,createDate:"2024-04-01",status:1,quotes:[{supplierName:"仁和药业",price:8.5,deliveryDays:5,quoteDate:"2024-04-02",isLowest:!1}]}],localStorage.setItem("inquiries",JSON.stringify(e)));const r=["项目类","采购类","科技服务类","其他服务类"],o=["战区","集团"];e.forEach(u=>{var y;if(u.projectType||(u.projectType=r[Math.floor(Math.random()*r.length)]),u.processType||(u.processType=o[Math.floor(Math.random()*o.length)]),!u.finalSupplier){const b=(y=u.quotes)==null?void 0:y.find(d=>d.isLowest);u.finalSupplier=b?b.supplierName:""}});let i=e;s.code&&(i=i.filter(u=>u.code.includes(s.code))),s.materialName&&(i=i.filter(item=item.materialName.includes(s.materialName))),s.processType&&(i=i.filter(u=>u.processType===s.processType)),s.status!==""&&(i=i.filter(u=>u.status===Number(s.status))),s.finalSupplier&&(i=i.filter(item=item.finalSupplier.includes(s.finalSupplier))),x.value=i,g.total=i.length}catch{f.error("加载数据失败")}};X(()=>{V()});const E=async()=>{await V(),f.success("查询成功")},z=()=>{s.code="",s.materialName="",s.processType="",s.status="",s.finalSupplier="",V()},$=()=>{Q.value="创建比价单",Object.keys(n).forEach(m=>{m==="quantity"?n[m]=1:n[m]=""}),_.value=!0,C.value&&C.value.clearValidate()},J=m=>{f.info("查看详情")},B=m=>{Object.assign(q,m),I.value=!0},R=async m=>{try{const e=localStorage.getItem("inquiries");let r=e?JSON.parse(e):[];r=r.filter(o=>o.id!==m.id),localStorage.setItem("inquiries",JSON.stringify(r)),f.success("删除成功"),await V()}catch{f.error("删除失败")}},h=()=>{if(!C.value){f.warning("表单未初始化");return}C.value.validate(async m=>{if(m)try{const e=localStorage.getItem("inquiries"),r=e?JSON.parse(e):[],o=new Date().toISOString().slice(0,10).replace(/-/g,""),i=n.suppliers.split(",").map(y=>y.trim()).filter(y=>y),u={...n,id:n.id||Date.now(),code:n.code||`INQ${o}${String(r.length+1).padStart(4,"0")}`,supplierCount:i.length,quoteCount:0,lowestPrice:0,createDate:new Date().toISOString().split("T")[0],status:0,quotes:[]};if(n.id){const y=r.findIndex(b=>b.id===n.id);y!==-1&&(r[y]=u)}else r.push(u);localStorage.setItem("inquiries",JSON.stringify(r)),f.success("保存成功"),_.value=!1,await V()}catch{f.error("保存失败")}else return f.error("请填写完整信息"),!1})},F=()=>{const m=x.value.map(o=>({比价单号:o.code,物料名称:o.materialName,项目类型:o.projectType,流程类型:o.processType,数量:o.quantity,单位:o.unit,创建日期:o.createDate,截止日期:o.deadline,报价数:o.quoteCount,最终供应商:o.finalSupplier,状态:["待报价","已报价","已完成"][o.status]})),e=P.json_to_sheet(m),r=P.book_new();P.book_append_sheet(r,e,"比价列表"),Z(r,`比价列表_${new Date().toLocaleDateString()}.xlsx`),f.success("导出成功")};return(m,e)=>{const r=c("el-button"),o=c("el-input"),i=c("el-form-item"),u=c("el-option"),y=c("el-select"),b=c("el-form"),d=c("el-table-column"),w=c("el-tag"),U=c("el-table"),A=c("el-pagination"),H=c("el-card"),G=c("el-input-number"),j=c("el-dialog"),v=c("el-descriptions-item"),K=c("el-descriptions");return D(),Y("div",ee,[t(H,null,{header:l(()=>[T("div",te,[e[17]||(e[17]=T("span",null,"比价列表",-1)),T("div",null,[t(r,{type:"success",onClick:F},{default:l(()=>[...e[15]||(e[15]=[p("导出Excel",-1)])]),_:1}),t(r,{type:"primary",onClick:$},{default:l(()=>[...e[16]||(e[16]=[p("创建比价单",-1)])]),_:1})])])]),default:l(()=>[t(b,{inline:!0,model:s,class:"search-form"},{default:l(()=>[t(i,{label:"比价单号"},{default:l(()=>[t(o,{modelValue:s.code,"onUpdate:modelValue":e[0]||(e[0]=a=>s.code=a),placeholder:"请输入",clearable:""},null,8,["modelValue"])]),_:1}),t(i,{label:"物料名称"},{default:l(()=>[t(o,{modelValue:s.materialName,"onUpdate:modelValue":e[1]||(e[1]=a=>s.materialName=a),placeholder:"请输入",clearable:""},null,8,["modelValue"])]),_:1}),t(i,{label:"流程类型"},{default:l(()=>[t(y,{modelValue:s.processType,"onUpdate:modelValue":e[2]||(e[2]=a=>s.processType=a),placeholder:"请选择",clearable:"",style:{width:"150px"}},{default:l(()=>[t(u,{label:"战区",value:"战区"}),t(u,{label:"集团",value:"集团"})]),_:1},8,["modelValue"])]),_:1}),t(i,{label:"状态"},{default:l(()=>[t(y,{modelValue:s.status,"onUpdate:modelValue":e[3]||(e[3]=a=>s.status=a),placeholder:"请选择",clearable:"",style:{width:"150px"}},{default:l(()=>[t(u,{label:"待报价",value:"0"}),t(u,{label:"报价中",value:"1"}),t(u,{label:"已完成",value:"2"})]),_:1},8,["modelValue"])]),_:1}),t(i,{label:"最终供应商"},{default:l(()=>[t(o,{modelValue:s.finalSupplier,"onUpdate:modelValue":e[4]||(e[4]=a=>s.finalSupplier=a),placeholder:"请输入",clearable:""},null,8,["modelValue"])]),_:1}),t(i,null,{default:l(()=>[t(r,{type:"primary",onClick:E},{default:l(()=>[...e[18]||(e[18]=[p("查询",-1)])]),_:1}),t(r,{onClick:z},{default:l(()=>[...e[19]||(e[19]=[p("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),t(U,{data:x.value,border:""},{default:l(()=>[t(d,{prop:"code",label:"比价单号",width:"150"}),t(d,{prop:"materialName",label:"物料名称","min-width":"180"}),t(d,{prop:"projectType",label:"项目类型",width:"120"}),t(d,{prop:"processType",label:"流程类型",width:"100"}),t(d,{prop:"quantity",label:"数量",width:"80"}),t(d,{prop:"supplierCount",label:"邀请供应商数",width:"120"}),t(d,{prop:"quoteCount",label:"已报价数",width:"100"}),t(d,{prop:"lowestPrice",label:"最低报价(元)",width:"120"}),t(d,{prop:"finalSupplier",label:"最终供应商","min-width":"150"}),t(d,{prop:"createDate",label:"创建日期",width:"110"}),t(d,{prop:"status",label:"状态",width:"100"},{default:l(({row:a})=>[a.status===0?(D(),N(w,{key:0,type:"warning"},{default:l(()=>[...e[20]||(e[20]=[p("待报价",-1)])]),_:1})):a.status===1?(D(),N(w,{key:1,type:"primary"},{default:l(()=>[...e[21]||(e[21]=[p("报价中",-1)])]),_:1})):(D(),N(w,{key:2,type:"success"},{default:l(()=>[...e[22]||(e[22]=[p("已完成",-1)])]),_:1}))]),_:1}),t(d,{label:"操作",width:"200",fixed:"right"},{default:l(({row:a})=>[t(r,{link:"",type:"primary",onClick:O=>J(a)},{default:l(()=>[...e[23]||(e[23]=[p("查看",-1)])]),_:1},8,["onClick"]),t(r,{link:"",type:"success",onClick:O=>B(a)},{default:l(()=>[...e[24]||(e[24]=[p("比价详情",-1)])]),_:1},8,["onClick"]),t(r,{link:"",type:"danger",onClick:O=>R(a)},{default:l(()=>[...e[25]||(e[25]=[p("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),t(A,{"current-page":g.page,"onUpdate:currentPage":e[5]||(e[5]=a=>g.page=a),"page-size":g.size,"onUpdate:pageSize":e[6]||(e[6]=a=>g.size=a),total:g.total,layout:"total, sizes, prev, pager, next, jumper",style:{"margin-top":"20px","justify-content":"flex-end"}},null,8,["current-page","page-size","total"])]),_:1}),t(j,{modelValue:_.value,"onUpdate:modelValue":e[13]||(e[13]=a=>_.value=a),title:Q.value,width:"700px"},{footer:l(()=>[t(r,{onClick:e[12]||(e[12]=a=>_.value=!1)},{default:l(()=>[...e[26]||(e[26]=[p("取消",-1)])]),_:1}),t(r,{type:"primary",onClick:h},{default:l(()=>[...e[27]||(e[27]=[p("提交",-1)])]),_:1})]),default:l(()=>[t(b,{model:n,rules:M,ref_key:"formRef",ref:C,"label-width":"120px"},{default:l(()=>[t(i,{label:"物料名称",prop:"materialName"},{default:l(()=>[t(o,{modelValue:n.materialName,"onUpdate:modelValue":e[7]||(e[7]=a=>n.materialName=a),placeholder:"请输入物料名称"},null,8,["modelValue"])]),_:1}),t(i,{label:"规格",prop:"spec"},{default:l(()=>[t(o,{modelValue:n.spec,"onUpdate:modelValue":e[8]||(e[8]=a=>n.spec=a),placeholder:"请输入规格"},null,8,["modelValue"])]),_:1}),t(i,{label:"数量",prop:"quantity"},{default:l(()=>[t(G,{modelValue:n.quantity,"onUpdate:modelValue":e[9]||(e[9]=a=>n.quantity=a),min:1,style:{width:"100%"}},null,8,["modelValue"])]),_:1}),t(i,{label:"邀请供应商",prop:"suppliers"},{default:l(()=>[t(o,{modelValue:n.suppliers,"onUpdate:modelValue":e[10]||(e[10]=a=>n.suppliers=a),placeholder:"请输入供应商名称,多个用逗号分隔"},null,8,["modelValue"])]),_:1}),t(i,{label:"备注"},{default:l(()=>[t(o,{modelValue:n.remark,"onUpdate:modelValue":e[11]||(e[11]=a=>n.remark=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),t(j,{modelValue:I.value,"onUpdate:modelValue":e[14]||(e[14]=a=>I.value=a),title:"比价详情",width:"900px"},{default:l(()=>[t(K,{column:2,border:"",style:{"margin-bottom":"20px"}},{default:l(()=>[t(v,{label:"比价单号"},{default:l(()=>[p(k(q.code),1)]),_:1}),t(v,{label:"状态"},{default:l(()=>[q.status===0?(D(),N(w,{key:0,type:"warning"},{default:l(()=>[...e[28]||(e[28]=[p("待报价",-1)])]),_:1})):q.status===1?(D(),N(w,{key:1,type:"primary"},{default:l(()=>[...e[29]||(e[29]=[p("报价中",-1)])]),_:1})):(D(),N(w,{key:2,type:"success"},{default:l(()=>[...e[30]||(e[30]=[p("已完成",-1)])]),_:1}))]),_:1}),t(v,{label:"物料名称"},{default:l(()=>[p(k(q.materialName),1)]),_:1}),t(v,{label:"规格"},{default:l(()=>[p(k(q.spec),1)]),_:1}),t(v,{label:"数量"},{default:l(()=>[p(k(q.quantity),1)]),_:1}),t(v,{label:"创建日期"},{default:l(()=>[p(k(q.createDate),1)]),_:1})]),_:1}),t(U,{data:q.quotes,border:""},{default:l(()=>[t(d,{prop:"supplierName",label:"供应商","min-width":"180"}),t(d,{prop:"price",label:"报价(元)",width:"120"}),t(d,{prop:"deliveryDays",label:"交货期(天)",width:"120"}),t(d,{prop:"quoteDate",label:"报价日期",width:"110"}),t(d,{label:"是否最低价",width:"100"},{default:l(({row:a})=>[a.isLowest?(D(),N(w,{key:0,type:"success"},{default:l(()=>[...e[31]||(e[31]=[p("是",-1)])]),_:1})):(D(),N(w,{key:1,type:"info"},{default:l(()=>[...e[32]||(e[32]=[p("否",-1)])]),_:1}))]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue"])])}}},ie=W(le,[["__scopeId","data-v-00bd5109"]]);export{ie as default};