2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{_ as ue}from"./BasicModal.vue_vue_type_style_index_0_lang-cf40d4b9.js";import{_ as de,u as ce}from"./useBaseTable-f0c2fcd7.js";import{_ as pe,B as _e}from"./button.vue_vue_type_style_index_0_lang-c459624e.js";import{I as S}from"./Icon-c78bc7f2.js";import{t as me}from"./useDataTime-755a3ccc.js";import{g as F}from"./convert-67c23be8.js";import{_ as G}from"./TextPreview.vue_vue_type_script_setup_true_lang-9e0c74f3.js";import{u as ve}from"./usePrice-7afab779.js";import{b as t,d as fe,g as v,r as ge,h as z,v as be,l as he,o as M,c as T,a as m,w as s,e as A,j as l,E as ke,k as ye,F as we,n as xe,C as f,G as Ue}from"./index-ee8f85c6.js";import{g as Ce,u as Ie,a as Pe,d as Be}from"./products-05694316.js";import{g as H}from"./index-1ea5ae95.js";import{g as $e}from"./category-9380cb36.js";import{g as Le}from"./brand-2207a68f.js";import{l as J}from"./lodash-80b9e8be.js";import{M as Me,_ as Te}from"./index-e68d2a07.js";import{I as Fe,_ as Re}from"./index-3abc962d.js";import{_ as Oe}from"./index-ef01d454.js";import{_ as De,F as Ve}from"./index-5dc4c598.js";import{S as je}from"./fa_IR-7159e2b1.js";import{U as qe}from"./index-b8e9a7e7.js";import{T as W}from"./shallowequal-cf8095a7.js";import"./index-4a566df1.js";import"./vnode-273a4d64.js";import"./Col-d204d8a1.js";import"./_plugin-vue_export-helper-37459316.js";import"./useState-c96afd4c.js";import"./FormItemContext-312be600.js";import"./index-30b97b7f.js";import"./pickAttrs-04868aeb.js";import"./toArray-019e69c2.js";import"./isPlainObject-e544c601.js";import"./useRefs-697e802c.js";const Ee=[{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=F(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(G,{text:p.record.description},null)},{title:"قیمت (ریال)",dataIndex:"price",key:"price",align:"center",width:120,customRender:p=>ve(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=>me(p.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Ne={class:"flex justify-between items-center mb-4"},Se=m("h2",null,"محصولات",-1),ze={class:"gap-2 flex justify-center"},Ae=m("span",null,"حذف",-1),He=m("span",null,"ویرایش",-1),Je={class:"col-span-2 flex"},We={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"},Lt=fe({__name:"index",setup(p){`${H()||localStorage.getItem("tamin_token")||""}`;const[R,D]=ce(),X=v({columns:Ee,api:Ce,defaultPageLimit:20}),y=v(!1),I=v(!1),P=v(null),w=v(0),B=v(0),o=ge({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(),K=z(()=>V.value.map(i=>({value:i.id,label:i.title}))),j=v(),Q=z(()=>j.value.map(i=>({value:i.id,label:i.title}))),Y=[{value:1,label:"رنگ"},{value:2,label:"سایز"}],q=[{value:1,label:"قرمز"},{value:2,label:"آبی"},{value:3,label:"کوچک"},{value:4,label:"بزرگ"}],Z=i=>i===1?q.filter(e=>[1,2].includes(e.value)):i===2?q.filter(e=>[3,4].includes(e.value)):[],ee=()=>{var i;(i=o==null?void 0:o.product_attributes)==null||i.push({attribute_id:void 0,attribute_values:[],use_in_product_page:!0})},b=v([]),te=()=>!1,ae=()=>{};function oe(){b.value=[],I.value=!1,P.value=null,y.value=!0}function E(){Object.assign(o,N),y.value=!1}function le(i){return i.type.startsWith("image/")?i.size/1024/1024<5?!0:(f.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(f.error("فقط فایلهای تصویری مجاز است"),!1)}async function ie(i){const{file:e,onSuccess:c,onError:d,onProgress:g}=i,r=new FormData;r.append("file",e);const h=`${Ue}/upload/machartaa-img`;B.value=0,w.value++,await new Promise((x,U)=>{const u=new XMLHttpRequest;u.open("POST",h);const $=H()||localStorage.getItem("tamin_token")||"";u.setRequestHeader("Authorization",`Bearer ${$}`),u.upload.onprogress=n=>{if(n.lengthComputable){const _=Math.round(n.loaded/n.total*100);B.value=_,g==null||g({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 k=_;_!=null&&_.startsWith("http")&&(k=_.replace(/^https?:\/\/[^\/]+/,""));const L=F(k);o.original_image=k,b.value=L?[{uid:`${Date.now()}`,name:"products.jpg",status:"done",url:L,response:{path:k}}]:[],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 ne(){if(w.value>0){f.warning("لطفاً تا پایان آپلود صبر کنید");return}try{I.value&&P.value?(await Ie(P.value,o),f.success("محصول با موفقیت ویرایش شد")):(await Pe(o),f.success("محصول با موفقیت افزوده شد")),E(),await D()}catch(i){console.error("Error saving Product:",i),f.error("خطا در ذخیره محصول: "+(i.message||"خطای ناشناخته"))}}function se(i){var e;N=J.cloneDeep(o),I.value=!0,P.value=i.id,console.log(i);for(const c in o)i.hasOwnProperty(c)&&(o[c]=i[c]);b.value=[{uid:"-1",name:"original_image.jpg",status:"done",url:F(i.original_image),response:{path: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:F(c.url),response:{path:c.url}})),y.value=!0}function re(i){Me.confirm({title:"حذف محصول",content:`آیا مطمئن هستید که میخواهید محصول "${i.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await Be(i.id),f.success("محصول با موفقیت حذف شد"),await D()}catch(e){console.error("Error deleting Product:",e),f.error("خطا در حذف محصول: "+(e.message||"خطای ناشناخته"))}}})}let N=J.cloneDeep(o);return be(async()=>{j.value=await $e(),V.value=await Le()}),(i,e)=>{const c=pe,d=de,g=Fe,r=De,h=je,x=Oe,U=Re,u=he("plus-outlined"),$=qe,n=Te,_=_e,k=Ve,L=ue;return M(),T("div",null,[m("div",Ne,[Se,t(c,{type:"primary",onClick:oe},{default:s(()=>[A("افزودن محصول")]),_:1})]),t(d,ke(X.value,{ref:"table",onRegister:l(R)}),{text:s(({record:a})=>[t(G,{text:a.description},null,8,["text"])]),action:s(({record:a})=>[m("div",ze,[t(l(W),{class:"cursor-pointer"},{title:s(()=>[Ae]),default:s(()=>[t(S,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:O=>re(a)},null,8,["onClick"])]),_:2},1024),t(l(W),{class:"cursor-pointer"},{title:s(()=>[He]),default:s(()=>[t(S,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:O=>se(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),t(L,{visible:y.value,"onUpdate:visible":e[14]||(e[14]=a=>y.value=a),title:I.value?"ویرایش محصول":"افزودن محصول",onOk:ne,onClose:e[15]||(e[15]=a=>E()),width:"80%",confirmLoading:w.value>0},{default:s(()=>[t(k,{layout:"vertical",class:"grid grid-cols-3 gap-2"},{default:s(()=>[t(r,{label:"عنوان فارسی",required:""},{default:s(()=>[t(g,{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(g,{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(h,{value:l(o).brand_id,"onUpdate:value":e[2]||(e[2]=a=>l(o).brand_id=a),placeholder:"انتخاب برند",options:l(K),"show-search":"","filter-option":i.filterOption},null,8,["value","options","filter-option"])]),_:1}),t(r,{label:"کالکشن"},{default:s(()=>[t(h,{value:l(o).collection_id,"onUpdate:value":e[3]||(e[3]=a=>l(o).collection_id=a),placeholder:"انتخاب کالکشن",options:l(Q)},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(g,{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",Je,[t(r,{label:"تصویر اصلی"},{default:s(()=>[t($,{"file-list":b.value,"onUpdate:fileList":e[9]||(e[9]=a=>b.value=a),"before-upload":le,"custom-request":ie,accept:"image/*","list-type":"picture-card","max-count":1},{default:s(()=>[b.value.length<1?(M(),T("div",We,[t(u),Ge])):ye("",!0)]),_:1},8,["file-list"])]),_:1}),t(r,{label:"فایلهای محصول"},{default:s(()=>[t($,{"file-list":l(o).files,"onUpdate:fileList":e[10]||(e[10]=a=>l(o).files=a),"before-upload":te,"custom-request":ae,multiple:"","list-type":"picture-card"},{default:s(()=>[Xe]),_:1},8,["file-list"])]),_:1})]),t(r,{label:"ویژگیها (Product Attributes)"},{default:s(()=>[m("div",Ke,[(M(!0),T(we,null,xe(l(o).product_attributes,(a,O)=>(M(),T("div",{key:O,class:"px-3 py-2 border rounded-md"},[t(h,{value:a.attribute_id,"onUpdate:value":C=>a.attribute_id=C,options:Y,placeholder:"انتخاب ویژگی"},null,8,["value","onUpdate:value"]),t(h,{value:a.attribute_values,"onUpdate:value":C=>a.attribute_values=C,options:Z(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:ee},{default:s(()=>[A("+ افزودن ویژگی")]),_: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{Lt as default};
|