Files
machartaa_admin_dist/dist/assets/index-b042ff89.js
T

2 lines
12 KiB
JavaScript

import{_ as de}from"./BasicModal.vue_vue_type_style_index_0_lang-a547157a.js";import{_ as ce,u as pe}from"./useBaseTable-13b436e1.js";import{_ as _e,B as me}from"./button.vue_vue_type_style_index_0_lang-851afdd8.js";import{I as A}from"./Icon-04c02c0b.js";import{t as ve}from"./useDataTime-10f46d84.js";import{g as I}from"./convert-c2e7255b.js";import{_ as X}from"./TextPreview.vue_vue_type_script_setup_true_lang-38b465eb.js";import{u as fe}from"./usePrice-7afab779.js";import{b as t,d as ge,g as v,r as be,h as E,l as H,x as he,n as ke,o as T,c as F,a as m,w as s,e as S,j as l,G as ye,k as we,F as xe,p as Ue,D as f,H as W}from"./index-82b07f49.js";import{g as Ce,u as Ie,a as Pe,d as $e}from"./products-198a3285.js";import{g as J}from"./index-e3788657.js";import{g as Be}from"./category-3a849218.js";import{g as Le}from"./brand-40a5ca82.js";import{M as Me,_ as Te}from"./index-5dc3a2fa.js";import{I as Fe,_ as Re}from"./index-c6d6dccd.js";import{_ as De}from"./index-fb5320fb.js";import{_ as Oe,F as Ve}from"./index-2a5d6560.js";import{_ as je}from"./index-7e5faec0.js";import{U as qe}from"./index-0f0f5d8d.js";import{T as G}from"./shallowequal-17b27246.js";import"./index-1f61ecf5.js";import"./vnode-007df887.js";import"./Col-5d52aed9.js";import"./_plugin-vue_export-helper-f81f33f1.js";import"./useState-e0a5bff5.js";import"./FormItemContext-f4f190fd.js";import"./index-d634ff29.js";import"./pickAttrs-b9acd388.js";import"./toArray-e3bbd719.js";import"./isPlainObject-f3a46277.js";import"./useRefs-e9385981.js";const Ne=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:p=>p.index+1},{title:"تصویر ",dataIndex:"original_image",key:"original_image",customRender:p=>{const R=I(p.record.original_image);return t("img",{src:R,width:60},null)}},{title:"عنوان",dataIndex:"title_fa",key:"title_fa"},{title:"کد",dataIndex:"code",key:"code"},{title:"توضیحات",dataIndex:"description",key:"description",customRender:p=>t(X,{text:p.record.description},null)},{title:"قیمت (ریال)",dataIndex:"price",key:"price",align:"center",width:120,customRender:p=>fe(p.record.price??0,!0,"")},{title:"موجودی",dataIndex:"count",key:"count",align:"center",width:120,customRender:p=>p.record.count??0},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:p=>ve(p.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],ze={class:"flex justify-between items-center mb-4"},Ae=m("h2",null,"محصولات",-1),Ee={class:"gap-2 flex justify-center"},He=m("span",null,"حذف",-1),Se=m("span",null,"ویرایش",-1),We={class:"col-span-2 flex"},Je={key:0},Ge=m("div",{style:{"margin-top":"8px"}},"آپلود",-1),Xe=m("div",null,"آپلود فایل‌ها",-1),Ke={class:"space-y-2"},Qe={class:"grid grid-cols-3 gap-4"},Bt=ge({__name:"index",setup(p){`${J()||localStorage.getItem("tamin_token")||""}`;const[R,O]=pe(),K=v({columns:Ne,api:Ce,defaultPageLimit:20}),y=v(!1),P=v(!1),$=v(null),w=v(0),B=v(0),o=be({title_fa:"",title:"",price:0,body:"",is_show:!0,is_active:!0,box_size:0,sell_type:"numeric",original_image:void 0,product_attributes:[],files:[],auto_calculate:!1,is_exist:!0,created_at:void 0,updated_at:void 0,deleted_at:null,count_order:void 0,count_fav:void 0,count_view:void 0,min_price:void 0,max_price:void 0,type:"simple",owner_id:void 0,users:void 0,saved:[],variants:[],code:void 0,brand_id:void 0,collection_id:void 0,discount:void 0,discount_type:void 0,id:void 0,count:void 0,display_price:void 0,meta:void 0,seo_title:void 0,description:void 0,product_type:void 0,weight:void 0,rial_fee:void 0,percent_fee:void 0}),V=v(),Q=E(()=>V.value.map(i=>({value:i.id,label:i.title}))),j=v(),Y=E(()=>j.value.map(i=>({value:i.id,label:i.title}))),Z=[{value:1,label:"رنگ"},{value:2,label:"سایز"}],q=[{value:1,label:"قرمز"},{value:2,label:"آبی"},{value:3,label:"کوچک"},{value:4,label:"بزرگ"}],ee=i=>i===1?q.filter(e=>[1,2].includes(e.value)):i===2?q.filter(e=>[3,4].includes(e.value)):[],te=()=>{var i;(i=o==null?void 0:o.product_attributes)==null||i.push({attribute_id:void 0,attribute_values:[],use_in_product_page:!0})},h=v([]),ae=()=>!1,oe=()=>{};function le(){h.value=[],P.value=!1,$.value=null,y.value=!0}function N(){Object.assign(o,z),y.value=!1}function ie(i){return i.type.startsWith("image/")?i.size/1024/1024<5?!0:(f.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(f.error("فقط فایل‌های تصویری مجاز است"),!1)}async function ne(i){const{file:e,onSuccess:c,onError:d,onProgress:b}=i,r=new FormData;r.append("file",e);const k=`${W}/upload/machartaa-img`;B.value=0,w.value++,await new Promise((x,U)=>{const u=new XMLHttpRequest;u.open("POST",k);const L=J()||localStorage.getItem("tamin_token")||"";u.setRequestHeader("Authorization",`Bearer ${L}`),u.upload.onprogress=n=>{if(n.lengthComputable){const _=Math.round(n.loaded/n.total*100);B.value=_,b==null||b({percent:_})}},u.onload=()=>{if(B.value=100,u.status>=200&&u.status<300)try{const n=JSON.parse(u.responseText||"{}"),_=n.full_src||n.url||n.src||n.path||n.data&&(n.data.full_src||n.data.url||n.data.src||n.data.path)||"";let g=_;_!=null&&_.startsWith("http")&&(g=_.replace(/^https?:\/\/[^\/]+/,""));const M=g.startsWith("http")?g:`${W}${g}`;o.original_image=g,h.value=M?[{uid:`${Date.now()}`,name:"products.jpg",status:"done",url:M,response:{path:g}}]:[],c==null||c(n,u),f.success("تصویر با موفقیت آپلود شد!"),x()}catch(n){d==null||d(n,u),U(n)}else{const n=new Error("خطا در آپلود تصویر");d==null||d(n,u),U(n)}},u.onerror=()=>{const n=new Error("خطا در آپلود کاور");d==null||d(n,u),U(n)},u.onloadend=()=>{w.value=Math.max(0,w.value-1),B.value=0},u.send(r)})}async function se(){if(w.value>0){f.warning("لطفاً تا پایان آپلود صبر کنید");return}try{P.value&&$.value?(await Ie($.value,o),f.success("محصول با موفقیت ویرایش شد")):(await Pe(o),f.success("محصول با موفقیت افزوده شد")),N(),await O()}catch(i){console.error("Error saving Product:",i),f.error("خطا در ذخیره محصول: "+(i.message||"خطای ناشناخته"))}}function re(i){var e;z=H.cloneDeep(o),P.value=!0,$.value=i.id,console.log(i);for(const c in o)i.hasOwnProperty(c)&&(o[c]=i[c]);h.value=[{uid:"-1",name:"original_image.jpg",status:"done",url:I(i.original_image),response:{path:I(i.original_image)}}],o.files=(e=o.files)==null?void 0:e.slice(1).map((c,d)=>({uid:`${d}`,name:`product_image${d}.jpg`,status:"done",url:I(c.url),response:{path:I(c.url)}})),y.value=!0}function ue(i){Me.confirm({title:"حذف محصول",content:`آیا مطمئن هستید که می‌خواهید محصول "${i.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await $e(i.id),f.success("محصول با موفقیت حذف شد"),await O()}catch(e){console.error("Error deleting Product:",e),f.error("خطا در حذف محصول: "+(e.message||"خطای ناشناخته"))}}})}let z=H.cloneDeep(o);return he(async()=>{j.value=await Be(),V.value=await Le()}),(i,e)=>{const c=_e,d=ce,b=Fe,r=Oe,k=je,x=De,U=Re,u=ke("plus-outlined"),L=qe,n=Te,_=me,g=Ve,M=de;return T(),F("div",null,[m("div",ze,[Ae,t(c,{type:"primary",onClick:le},{default:s(()=>[S("افزودن محصول")]),_:1})]),t(d,ye(K.value,{ref:"table",onRegister:l(R)}),{text:s(({record:a})=>[t(X,{text:a.description},null,8,["text"])]),action:s(({record:a})=>[m("div",Ee,[t(l(G),{class:"cursor-pointer"},{title:s(()=>[He]),default:s(()=>[t(A,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:D=>ue(a)},null,8,["onClick"])]),_:2},1024),t(l(G),{class:"cursor-pointer"},{title:s(()=>[Se]),default:s(()=>[t(A,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:D=>re(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),t(M,{visible:y.value,"onUpdate:visible":e[14]||(e[14]=a=>y.value=a),title:P.value?"ویرایش محصول":"افزودن محصول",onOk:se,onClose:e[15]||(e[15]=a=>N()),width:"80%",confirmLoading:w.value>0},{default:s(()=>[t(g,{layout:"vertical",class:"grid grid-cols-3 gap-2"},{default:s(()=>[t(r,{label:"عنوان فارسی",required:""},{default:s(()=>[t(b,{value:l(o).title_fa,"onUpdate:value":e[0]||(e[0]=a=>l(o).title_fa=a),placeholder:"عنوان فارسی محصول"},null,8,["value"])]),_:1}),t(r,{label:"عنوان انگلیسی"},{default:s(()=>[t(b,{value:l(o).title,"onUpdate:value":e[1]||(e[1]=a=>l(o).title=a),placeholder:"عنوان انگلیسی محصول"},null,8,["value"])]),_:1}),t(r,{label:"برند"},{default:s(()=>[t(k,{value:l(o).brand_id,"onUpdate:value":e[2]||(e[2]=a=>l(o).brand_id=a),placeholder:"انتخاب برند",options:l(Q),"show-search":"","filter-option":i.filterOption},null,8,["value","options","filter-option"])]),_:1}),t(r,{label:"کالکشن"},{default:s(()=>[t(k,{value:l(o).collection_id,"onUpdate:value":e[3]||(e[3]=a=>l(o).collection_id=a),placeholder:"انتخاب کالکشن",options:l(Y)},null,8,["value","options"])]),_:1}),t(r,{label:"قیمت (تومان)"},{default:s(()=>[t(x,{value:l(o).price,"onUpdate:value":e[4]||(e[4]=a=>l(o).price=a),style:{width:"100%"},placeholder:"قیمت را وارد کنید"},null,8,["value"])]),_:1}),t(r,{label:" تخفیف %"},{default:s(()=>[t(x,{value:l(o).discount,"onUpdate:value":e[5]||(e[5]=a=>l(o).discount=a),style:{width:"100%"},placeholder:"در صد تخفیف را وارد کنید"},null,8,["value"])]),_:1}),t(r,{label:"کد محصول"},{default:s(()=>[t(b,{value:l(o).code,"onUpdate:value":e[6]||(e[6]=a=>l(o).code=a),style:{width:"100%"},placeholder:"کد محصول را وارد کنید"},null,8,["value"])]),_:1}),t(r,{label:"تعداد موجودی محصول"},{default:s(()=>[t(x,{value:l(o).count,"onUpdate:value":e[7]||(e[7]=a=>l(o).count=a),style:{width:"100%"},placeholder:"تعداد موجودی محصول را وارد کنید"},null,8,["value"])]),_:1}),t(r,{class:"col-span-3",label:"توضیحات محصول"},{default:s(()=>[t(U,{value:l(o).description,"onUpdate:value":e[8]||(e[8]=a=>l(o).description=a),rows:"4",placeholder:"توضیحات محصول"},null,8,["value"])]),_:1}),m("div",We,[t(r,{label:"تصویر اصلی"},{default:s(()=>[t(L,{"file-list":h.value,"onUpdate:fileList":e[9]||(e[9]=a=>h.value=a),"before-upload":ie,"custom-request":ne,accept:"image/*","list-type":"picture-card","max-count":1},{default:s(()=>[h.value.length<1?(T(),F("div",Je,[t(u),Ge])):we("",!0)]),_:1},8,["file-list"])]),_:1}),t(r,{label:"فایل‌های محصول"},{default:s(()=>[t(L,{"file-list":l(o).files,"onUpdate:fileList":e[10]||(e[10]=a=>l(o).files=a),"before-upload":ae,"custom-request":oe,multiple:"","list-type":"picture-card"},{default:s(()=>[Xe]),_:1},8,["file-list"])]),_:1})]),t(r,{label:"ویژگی‌ها (Product Attributes)"},{default:s(()=>[m("div",Ke,[(T(!0),F(xe,null,Ue(l(o).product_attributes,(a,D)=>(T(),F("div",{key:D,class:"px-3 py-2 border rounded-md"},[t(k,{value:a.attribute_id,"onUpdate:value":C=>a.attribute_id=C,options:Z,placeholder:"انتخاب ویژگی"},null,8,["value","onUpdate:value"]),t(k,{value:a.attribute_values,"onUpdate:value":C=>a.attribute_values=C,options:ee(a.attribute_id),placeholder:"انتخاب مقدار ویژگی",mode:"multiple",style:{width:"100%"},class:"mt-2"},null,8,["value","onUpdate:value","options"]),t(n,{checked:a.use_in_product_page,"onUpdate:checked":C=>a.use_in_product_page=C,class:"mt-1",checkedChildren:"نمایش در صفحه محصول",unCheckedChildren:"مخفی"},null,8,["checked","onUpdate:checked"])]))),128)),t(_,{type:"dashed",block:"",onClick:te},{default:s(()=>[S("+ افزودن ویژگی")]),_:1})])]),_:1}),m("div",Qe,[t(r,{label:"نمایش"},{default:s(()=>[t(n,{checked:l(o).is_show,"onUpdate:checked":e[11]||(e[11]=a=>l(o).is_show=a)},null,8,["checked"])]),_:1}),t(r,{label:"فعال"},{default:s(()=>[t(n,{checked:l(o).is_active,"onUpdate:checked":e[12]||(e[12]=a=>l(o).is_active=a)},null,8,["checked"])]),_:1}),t(r,{label:"موجود"},{default:s(()=>[t(n,{checked:l(o).is_exist,"onUpdate:checked":e[13]||(e[13]=a=>l(o).is_exist=a)},null,8,["checked"])]),_:1})])]),_:1})]),_:1},8,["visible","title","confirmLoading"])])}}});export{Bt as default};