2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{_ as re}from"./BasicModal.vue_vue_type_style_index_0_lang-726d71cc.js";import{_ as ue,u as de}from"./useBaseTable-54b44400.js";import{_ as ce,B as pe}from"./button.vue_vue_type_style_index_0_lang-25794594.js";import{I as N}from"./Icon-b81ad543.js";import{t as _e}from"./useDataTime-6fbd057f.js";import{b as me,u as fe,a as ve,d as ge}from"./products-fbf3eee1.js";import{d as be,g as m,r as he,h as A,l as E,x as ke,n as ye,o as M,c as O,a as _,b as l,w as i,e as z,j as o,G as we,k as Ue,F as xe,p as Ce,D as f,H as Be}from"./index-4139499d.js";import{g as H}from"./index-ed0c2ba9.js";import{_ as Ie}from"./TextPreview.vue_vue_type_script_setup_true_lang-6f735e2e.js";import{g as Pe}from"./category-eaf80889.js";import{g as $e}from"./brand-660e2677.js";import{g as D}from"./convert-67c23be8.js";import{M as Le,_ as Me}from"./index-3fee3d89.js";import{I as Oe,_ as Te}from"./index-23976fcd.js";import{_ as De,F as Fe}from"./index-13d6d167.js";import{S as Re}from"./index-862849ae.js";import{_ as Se}from"./index-9f59e2fd.js";import{U as qe}from"./index-ef8c1567.js";import{T as J}from"./shallowequal-26ff1c74.js";import"./index-975727f6.js";import"./vnode-b177b857.js";import"./Col-8e46ddda.js";import"./_plugin-vue_export-helper-c6b863a5.js";import"./useState-ec2259f2.js";import"./FormItemContext-dfbd6afd.js";import"./index-9520c8d4.js";import"./pickAttrs-782832e8.js";import"./toArray-92f12fb1.js";import"./isPlainObject-ae5f6084.js";import"./useRefs-5fd4ee0f.js";const Ve=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:C=>C.index+1},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:C=>_e(C.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],je={class:"flex justify-between items-center mb-4"},Ne=_("h2",null,"محصولات",-1),Ae={class:"gap-2 flex justify-center"},Ee=_("span",null,"حذف",-1),ze=_("span",null,"ویرایش",-1),He={class:"col-span-2 flex"},Je={key:0},We=_("div",{style:{"margin-top":"8px"}},"آپلود",-1),Ge=_("div",null,"آپلود فایلها",-1),Xe={class:"space-y-2"},Ke={class:"grid grid-cols-3 gap-4"},It=be({__name:"index",setup(C){`${H()||localStorage.getItem("tamin_token")||""}`;const[W,F]=de(),G=m({columns:Ve,api:me,defaultPageLimit:20}),k=m(!1),B=m(!1),I=m(null),y=m(0),P=m(0),a=he({id:0,user_id:"",address_id:null,payment_sts:null,sts:0,address:"",cancel_reason:null,cancelled_at:null,closed_at:null,transaction_id:null,note:"",total_discounts:0,total_price:0,total_tax:0,updated_at:null,deleted_at:null,total_qty:0,payment_type:"",profit:0,percent_profit:0,created_at:new Date().toISOString(),discount_total_price:0,code:"",code_discount:0,discount_code_id:null,order_items:[]}),R=m(),X=A(()=>R.value.map(n=>({value:n.id,label:n.title}))),S=m(),K=A(()=>S.value.map(n=>({value:n.id,label:n.title}))),Q=[{value:1,label:"رنگ"},{value:2,label:"سایز"}],q=[{value:1,label:"قرمز"},{value:2,label:"آبی"},{value:3,label:"کوچک"},{value:4,label:"بزرگ"}],Y=n=>n===1?q.filter(e=>[1,2].includes(e.value)):n===2?q.filter(e=>[3,4].includes(e.value)):[],Z=()=>{var n;(n=a==null?void 0:a.product_attributes)==null||n.push({attribute_id:void 0,attribute_values:[],use_in_product_page:!0})},g=m([]),ee=()=>!1,te=()=>{};function le(){g.value=[],B.value=!1,I.value=null,k.value=!0}function V(){Object.assign(a,j),k.value=!1}function ae(n){return n.type.startsWith("image/")?n.size/1024/1024<5?!0:(f.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(f.error("فقط فایلهای تصویری مجاز است"),!1)}async function oe(n){const{file:e,onSuccess:c,onError:d,onProgress:v}=n,r=new FormData;r.append("file",e);const b=`${Be}/upload/machartaa-img`;P.value=0,y.value++,await new Promise((w,U)=>{const u=new XMLHttpRequest;u.open("POST",b);const $=H()||localStorage.getItem("tamin_token")||"";u.setRequestHeader("Authorization",`Bearer ${$}`),u.upload.onprogress=s=>{if(s.lengthComputable){const p=Math.round(s.loaded/s.total*100);P.value=p,v==null||v({percent:p})}},u.onload=()=>{if(P.value=100,u.status>=200&&u.status<300)try{const s=JSON.parse(u.responseText||"{}"),p=s.full_src||s.url||s.src||s.path||s.data&&(s.data.full_src||s.data.url||s.data.src||s.data.path)||"";let h=p;p!=null&&p.startsWith("http")&&(h=p.replace(/^https?:\/\/[^\/]+/,""));const L=D(h);a.original_image=h,g.value=L?[{uid:`${Date.now()}`,name:"products.jpg",status:"done",url:L,response:{path:h}}]:[],c==null||c(s,u),f.success("تصویر با موفقیت آپلود شد!"),w()}catch(s){d==null||d(s,u),U(s)}else{const s=new Error("خطا در آپلود تصویر");d==null||d(s,u),U(s)}},u.onerror=()=>{const s=new Error("خطا در آپلود کاور");d==null||d(s,u),U(s)},u.onloadend=()=>{y.value=Math.max(0,y.value-1),P.value=0},u.send(r)})}async function ne(){if(y.value>0){f.warning("لطفاً تا پایان آپلود صبر کنید");return}try{if(B.value&&I.value){debugger;await fe(I.value,a),f.success("محصول با موفقیت ویرایش شد")}else await ve(a),f.success("محصول با موفقیت افزوده شد");V(),await F()}catch(n){console.error("Error saving Product:",n),f.error("خطا در ذخیره محصول: "+(n.message||"خطای ناشناخته"))}}function se(n){var e;j=E.cloneDeep(a),B.value=!0,I.value=n.id,console.log(n);for(const c in a)n.hasOwnProperty(c)&&(a[c]=n[c]);g.value=[{uid:"-1",name:"original_image.jpg",status:"done",url:D(n.original_image),response:{path:n.original_image}}],a.files=(e=a.files)==null?void 0:e.slice(1).map((c,d)=>({uid:`${d}`,name:`product_image${d}.jpg`,status:"done",url:D(c.url),response:{path:c.url}})),k.value=!0}function ie(n){Le.confirm({title:"حذف کتاب",content:`آیا مطمئن هستید که میخواهید کتاب "${n.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await ge(n.id),f.success("کتاب با موفقیت حذف شد"),await F()}catch(e){console.error("Error deleting Product:",e),f.error("خطا در حذف کتاب: "+(e.message||"خطای ناشناخته"))}}})}let j=E.cloneDeep(a);return ke(async()=>{S.value=await Pe(),R.value=await $e()}),(n,e)=>{const c=ce,d=ue,v=Oe,r=De,b=Re,w=Se,U=Te,u=ye("plus-outlined"),$=qe,s=Me,p=pe,h=Fe,L=re;return M(),O("div",null,[_("div",je,[Ne,l(c,{type:"primary",onClick:le},{default:i(()=>[z("افزودن محصول")]),_:1})]),l(d,we(G.value,{ref:"table",onRegister:o(W)}),{text:i(({record:t})=>[l(Ie,{text:t.description},null,8,["text"])]),action:i(({record:t})=>[_("div",Ae,[l(o(J),{class:"cursor-pointer"},{title:i(()=>[Ee]),default:i(()=>[l(N,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:T=>ie(t)},null,8,["onClick"])]),_:2},1024),l(o(J),{class:"cursor-pointer"},{title:i(()=>[ze]),default:i(()=>[l(N,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:T=>se(t)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),l(L,{visible:k.value,"onUpdate:visible":e[14]||(e[14]=t=>k.value=t),title:B.value?"ویرایش محصول":"افزودن محصول",onOk:ne,onClose:e[15]||(e[15]=t=>V()),width:"80%",confirmLoading:y.value>0},{default:i(()=>[l(h,{layout:"vertical",class:"grid grid-cols-3 gap-2"},{default:i(()=>[l(r,{label:"عنوان فارسی",required:""},{default:i(()=>[l(v,{value:o(a).title_fa,"onUpdate:value":e[0]||(e[0]=t=>o(a).title_fa=t),placeholder:"عنوان فارسی محصول"},null,8,["value"])]),_:1}),l(r,{label:"عنوان انگلیسی"},{default:i(()=>[l(v,{value:o(a).title,"onUpdate:value":e[1]||(e[1]=t=>o(a).title=t),placeholder:"عنوان انگلیسی محصول"},null,8,["value"])]),_:1}),l(r,{label:"برند"},{default:i(()=>[l(b,{value:o(a).brand_id,"onUpdate:value":e[2]||(e[2]=t=>o(a).brand_id=t),placeholder:"انتخاب برند",options:o(X),"show-search":"","filter-option":n.filterOption},null,8,["value","options","filter-option"])]),_:1}),l(r,{label:"کالکشن"},{default:i(()=>[l(b,{value:o(a).collection_id,"onUpdate:value":e[3]||(e[3]=t=>o(a).collection_id=t),placeholder:"انتخاب کالکشن",options:o(K)},null,8,["value","options"])]),_:1}),l(r,{label:"قیمت (تومان)"},{default:i(()=>[l(w,{value:o(a).price,"onUpdate:value":e[4]||(e[4]=t=>o(a).price=t),style:{width:"100%"},placeholder:"قیمت را وارد کنید"},null,8,["value"])]),_:1}),l(r,{label:" تخفیف %"},{default:i(()=>[l(w,{value:o(a).discount,"onUpdate:value":e[5]||(e[5]=t=>o(a).discount=t),style:{width:"100%"},placeholder:"در صد تخفیف را وارد کنید"},null,8,["value"])]),_:1}),l(r,{label:"کد محصول"},{default:i(()=>[l(v,{value:o(a).code,"onUpdate:value":e[6]||(e[6]=t=>o(a).code=t),style:{width:"100%"},placeholder:"کد محصول را وارد کنید"},null,8,["value"])]),_:1}),l(r,{label:"تعداد موجودی محصول"},{default:i(()=>[l(w,{value:o(a).count,"onUpdate:value":e[7]||(e[7]=t=>o(a).count=t),style:{width:"100%"},placeholder:"تعداد موجودی محصول را وارد کنید"},null,8,["value"])]),_:1}),l(r,{class:"col-span-3",label:"توضیحات محصول"},{default:i(()=>[l(U,{value:o(a).description,"onUpdate:value":e[8]||(e[8]=t=>o(a).description=t),rows:"4",placeholder:"توضیحات محصول"},null,8,["value"])]),_:1}),_("div",He,[l(r,{label:"تصویر اصلی"},{default:i(()=>[l($,{"file-list":g.value,"onUpdate:fileList":e[9]||(e[9]=t=>g.value=t),"before-upload":ae,"custom-request":oe,accept:"image/*","list-type":"picture-card","max-count":1},{default:i(()=>[g.value.length<1?(M(),O("div",Je,[l(u),We])):Ue("",!0)]),_:1},8,["file-list"])]),_:1}),l(r,{label:"فایلهای محصول"},{default:i(()=>[l($,{"file-list":o(a).files,"onUpdate:fileList":e[10]||(e[10]=t=>o(a).files=t),"before-upload":ee,"custom-request":te,multiple:"","list-type":"picture-card"},{default:i(()=>[Ge]),_:1},8,["file-list"])]),_:1})]),l(r,{label:"ویژگیها (Product Attributes)"},{default:i(()=>[_("div",Xe,[(M(!0),O(xe,null,Ce(o(a).product_attributes,(t,T)=>(M(),O("div",{key:T,class:"px-3 py-2 border rounded-md"},[l(b,{value:t.attribute_id,"onUpdate:value":x=>t.attribute_id=x,options:Q,placeholder:"انتخاب ویژگی"},null,8,["value","onUpdate:value"]),l(b,{value:t.attribute_values,"onUpdate:value":x=>t.attribute_values=x,options:Y(t.attribute_id),placeholder:"انتخاب مقدار ویژگی",mode:"multiple",style:{width:"100%"},class:"mt-2"},null,8,["value","onUpdate:value","options"]),l(s,{checked:t.use_in_product_page,"onUpdate:checked":x=>t.use_in_product_page=x,class:"mt-1",checkedChildren:"نمایش در صفحه محصول",unCheckedChildren:"مخفی"},null,8,["checked","onUpdate:checked"])]))),128)),l(p,{type:"dashed",block:"",onClick:Z},{default:i(()=>[z("+ افزودن ویژگی")]),_:1})])]),_:1}),_("div",Ke,[l(r,{label:"نمایش"},{default:i(()=>[l(s,{checked:o(a).is_show,"onUpdate:checked":e[11]||(e[11]=t=>o(a).is_show=t)},null,8,["checked"])]),_:1}),l(r,{label:"فعال"},{default:i(()=>[l(s,{checked:o(a).is_active,"onUpdate:checked":e[12]||(e[12]=t=>o(a).is_active=t)},null,8,["checked"])]),_:1}),l(r,{label:"موجود"},{default:i(()=>[l(s,{checked:o(a).is_exist,"onUpdate:checked":e[13]||(e[13]=t=>o(a).is_exist=t)},null,8,["checked"])]),_:1})])]),_:1})]),_:1},8,["visible","title","confirmLoading"])])}}});export{It as default};
|