formDrawer-cef08287.js 8.6 KB

1
  1. var te=Object.defineProperty,ae=Object.defineProperties;var oe=Object.getOwnPropertyDescriptors;var B=Object.getOwnPropertySymbols;var ne=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var R=(r,s,l)=>s in r?te(r,s,{enumerable:!0,configurable:!0,writable:!0,value:l}):r[s]=l,p=(r,s)=>{for(var l in s||(s={}))ne.call(s,l)&&R(r,l,s[l]);if(B)for(var l of B(s))ie.call(s,l)&&R(r,l,s[l]);return r},w=(r,s)=>ae(r,oe(s));var f=(r,s,l)=>new Promise((x,_)=>{var P=c=>{try{d(l.next(c))}catch(o){_(o)}},u=c=>{try{d(l.throw(c))}catch(o){_(o)}},d=c=>c.done?x(c.value):Promise.resolve(c.value).then(P,u);d((l=l.apply(r,s)).next())});import{a as le,B as re}from"./index-c98ef572.js";import{u as se,B as ce}from"./useForm-c19ef35c.js";import{d as ue,e as V,f as i,r as y,aZ as de,o as b,q as D,y as g,af as I,g as F,ao as z,dh as E,v as k,w as L,m as me,F as pe,t as A,z as fe,ab as H,dA as ge,bg as he,bh as ve,bz as we,j as be}from"./index-610a1d46.js";import{u as Ie,B as xe}from"./useTable-867c4776.js";import{T as _e}from"./TableAction-5a56375b.js";import"./TableImg.vue_vue_type_style_index_0_lang-5ef0e11d.js";import{b as ye,c as De,d as Pe}from"./quoteApi-15ad0213.js";import{i as Ne}from"./standardItemApi-cb2f83bf.js";import{c as Ye}from"./customerApi-b54bb82e.js";import{u as Ce}from"./index-985aa6f5.js";import"./index-981858ed.js";/* empty css */import{T as Se}from"./TableModal-ddc4e919.js";const et=[{title:"报价编码",dataIndex:"number",align:"left",width:100},{title:"报价时间",dataIndex:"quoteTime",align:"left"},{title:"客户名称",dataIndex:"clientName",align:"left"},{title:"样品名称",dataIndex:"sample",align:"left"},{title:"负责人",dataIndex:"leader",align:"left"},{title:"联系方式",dataIndex:"contact",align:"left"},{title:"总价(元)",dataIndex:"totalPriceYuan",align:"left"},{title:"签订合同",dataIndex:"contractNumber",align:"left"}],Fe=[{label:"报价时间",field:"quoteTime",required:!0,component:"DatePicker",componentProps:{placeholder:"请输入报价时间",format:"YYYY-MM-DD HH:mm:ss",getPopupContainer:()=>document.body,valueFormat:"YYYY-MM-DD HH:mm:ss",showTime:!0}},{label:"检验周期(天)",field:"checkCycle",required:!0,component:"InputNumber",componentProps:{placeholder:"请输入检验周期"}},{label:"客户名称",field:"clientName",subLabel:"(选择客户)",subLabelColor:"#FF5D39",required:!0,component:"Input",componentProps:{placeholder:"请输入客户名称"}},{label:"样品名称",field:"sample",required:!0,component:"Input",componentProps:{placeholder:"请输入样品名称"}},{label:"负责人",field:"leader",component:"Input",componentProps:{placeholder:"请输入负责人"}},{label:"联系方式",field:"contact",component:"Input",componentProps:{placeholder:"请输入联系方式"}},{label:"报价表编码",field:"number",component:"Input",required:!0,componentProps:{placeholder:"请输入报价表编码"}}],ke=[{title:"检测项",dataIndex:"itemName",ellipsis:!1,align:"left",width:280,editRow:!0,editComponent:"Input"},{title:"单价(元)",dataIndex:"singlePriceYuan",width:90,editRow:!0,editComponent:"InputNumber",editComponentProps:{min:0}},{title:"数量",dataIndex:"count",width:90,editRow:!0,editComponent:"InputNumber",editComponentProps:{min:0}},{title:"金额(元)",dataIndex:"price",width:90}],Te=r=>(he("data-v-18e68343"),r=r(),ve(),r),Me={class:"!pl-4"},qe={class:"!pl-4"},Be={class:"flex justify-between table-footer"},Re=Te(()=>I("div",null,"合计",-1)),Ve={class:"pr-4"},ze=ue({__name:"formDrawer",emits:["success","register"],setup(r,{emit:s}){const[l,{openModal:x}]=Ce(),_=V(()=>i(u)?"编辑报价":"新增报价"),P="900px",u=y(!1),d=y(),c=y("item"),o=y([]),N=V(()=>o.value.length&&o.value.map(e=>e.singlePriceYuan*e.count||0).reduce((e,a)=>e+a,0)),{createMessage:h}=we(),[Q,{setFieldsValue:Y,resetFields:U,validate:$,getFieldsValue:T}]=se({labelWidth:"100%",schemas:Fe,showActionButtonGroup:!1,baseColProps:{span:12},wrapperCol:{span:22}}),[G,{setTableData:C,getDataSource:v}]=Ie({dataSource:o.value,title:"检测项",titleLined:!0,autoCreateKey:!0,columns:ke,showIndexColumn:!1,bordered:!0,striped:!1,pagination:!1,actionColumn:{width:60,title:"操作",dataIndex:"action"}}),[K,{setDrawerProps:S,closeDrawer:W}]=le(e=>f(this,null,function*(){if(yield U(),S({confirmLoading:!1}),u.value=!!(e!=null&&e.isUpdate),i(u)){const a=yield ye(e.record.id);d.value=a.id,a.quoteItems.length&&(o.value=a.quoteItems.map(t=>({itemName:t.itemName,count:t.count,singlePriceYuan:t.singlePriceYuan}))||[]),o.value,yield C(o.value),yield H(),o.value=v().map(t=>{var n;return(n=t.onEdit)==null||n.call(t,!0),t}),yield Y(p({},a))}else o.value=[],d.value=[],yield Y({quoteTime:ge().format("YYYY-MM-DD HH:mm:ss"),checkCycle:15})}));function Z(){return f(this,null,function*(){try{const e=yield $();S({confirmLoading:!0}),o.value,N.value;const a=w(p({},e),{totalPrice:N.value,quoteItems:o.value.filter(t=>{if(t.itemName)return{itemName:t.itemName,singlePriceYuan:t.singlePriceYuan,count:t.count}})});i(u)?yield Pe(w(p({},a),{id:d.value})):yield De(p({},a)),i(u)?h.success("编辑成功!"):h.success("新增成功!"),W(),s("success",{isUpdate:i(u),values:w(p({},e),{id:d.value})})}finally{S({confirmLoading:!1})}})}function M(e,a=!0){return f(this,null,function*(){try{if(o.value.unshift({itemName:(e==null?void 0:e.itemName)||"",singlePriceYuan:Number((e==null?void 0:e.priceYuan)||"100"),count:1,price:Number((e==null?void 0:e.priceYuan)||"100")}),C(o.value),yield H(),a){o.value=v().map(n=>{var m;return n.editable&&((m=n.onSubmit)==null||m.call(n,!0)),n});const t=v()[0];t.editable=!0,J(t)}else o.value=v().map(t=>{var n;return(n=t.onEdit)==null||n.call(t,!0),t})}catch(t){h.error("请输入必输项!")}})}function J(e){var a;(a=e.onEdit)==null||a.call(e,!0)}function X(e){return f(this,null,function*(){const t=v().findIndex(m=>m.key===e.key);(yield[e==null?void 0:e.key])?(o.value.splice(t,1),C(o.value),h.success("删除成功!")):h.error("删除失败!")})}function q(e){c.value=e,e=="item"&&x(!0,{title:"添加标准检测项",placelholder:"请输入测试标准",api:Ne,rowSelection:"checkbox",pagination:!0,width:"800px",page:{pageNum:1,pageSize:20},columns:[{title:"测试标准",dataIndex:"standardName",align:"left",width:150},{title:"目录",dataIndex:"catalog",align:"left",width:100},{title:"项目名称",dataIndex:"itemName",align:"left"},{title:"模板编码",dataIndex:"templateName",align:"left"},{title:"收费单价(元)",dataIndex:"priceYuan",align:"left"}]}),e=="customer"&&x(!0,{title:"选择客户",placelholder:"请输入客户",api:Ye,rowSelection:"radio",pagination:!0,width:"800px",page:{pageNum:1,pageSize:20},columns:[{title:"客户名称",dataIndex:"name",align:"left",width:150},{title:"联系人",dataIndex:"contract",align:"left"},{title:"联系方式",dataIndex:"contractMobile",align:"left",width:100},{title:"纳税人识别号",dataIndex:"taxNumber ",align:"left"}]})}function j(t){return f(this,arguments,function*({record:e,value:a}){const n=a[0]||[];e.singlePriceYuan=parseFloat(n.price/100).toFixed(2)})}function O(e,a){e=="subLabelLink"&&a=="clientName"&&q("customer")}function ee(e){c.value=="item"&&e.forEach(a=>{M({itemName:a.selectValue,priceYuan:a.priceYuan,count:1},!1)}),c.value=="customer"&&(T(),Y(w(p({},T()),{clientName:e[0].name})))}return(e,a)=>{const t=de("auth");return b(),D(i(re),fe(e.$attrs,{destroyOnClose:"",onRegister:i(K),title:i(_),width:P,onOk:Z,showFooter:!0}),{default:g(()=>[I("div",Me,[F(i(ce),{onRegister:i(Q),layout:"vertical",onFieldValueChange:O},null,8,["onRegister"])]),I("div",qe,[F(i(xe),{onRegister:i(G),onEditOptionsSelected:j},{toolbar:g(()=>[z((b(),D(i(E),{type:"primary",onClick:M,preIcon:"icon-plus|iconfont",class:"mr-2 btn-text",ghost:""},{default:g(()=>[k("检测项")]),_:1})),[[t,["info:standardItem:add"]]]),z((b(),D(i(E),{type:"primary",onClick:a[0]||(a[0]=n=>q("item")),preIcon:"icon-plus|iconfont",class:"mr-2 btn-text",ghost:""},{default:g(()=>[k("标准检测项")]),_:1})),[[t,["info:standardItem:add"]]])]),footer:g(()=>[I("div",Be,[Re,I("div",Ve,L(i(N).toFixed(2))+" 元",1)])]),bodyCell:g(({column:n,record:m})=>[n.key==="price"?(b(),me(pe,{key:0},[k(L((m.singlePriceYuan*m.count).toFixed(2)),1)],64)):A("",!0),n.key==="action"?(b(),D(i(_e),{key:1,actions:[{auth:"biz:quote:remove",icon:"icon-xt-details_delete_default|iconfont",tooltip:"删除",popConfirm:{title:"是否取消删除",placement:"left",confirm:X.bind(null,m,n)}}]},null,8,["actions"])):A("",!0)]),_:1},8,["onRegister"])]),F(i(Se),{onRegister:i(l),onSuccess:ee},null,8,["onRegister"])]),_:1},16,["onRegister","title"])}}});const Ee=be(ze,[["__scopeId","data-v-18e68343"]]),tt=Object.freeze(Object.defineProperty({__proto__:null,default:Ee},Symbol.toStringTag,{value:"Module"}));export{Ee as F,et as c,tt as f};