Files
tehran_tala/apps/admin-panel/dist/assets/AddProduct-GERNxu1X.js
T

2 lines
10 KiB
JavaScript
Raw Normal View History

2026-09-19 13:08:27 +03:30
import{d as se,u as ne,v as ue,x as V,b as v,c as l,w as a,A as re,j as pe,l as m,y as z,r,o as s,n as f,F as C,e as O,f as c,a as y,h as Q,E as _e,i as j,D as ce,t as M,z as A,k as ve}from"./index-DxJ0cEtz.js";import{_ as I}from"./ImageUploadInput.vue_vue_type_script_setup_true_lang-B0QvUk3P.js";import{_ as me}from"./_plugin-vue_export-helper-DlAUqK2U.js";const fe={id:"page-user-view"},ye={class:"grid-2"},ge={class:"image-grid"},be={class:"image-grid"},ke={class:"grid-3"},we={class:"grid-1"},Ue={class:"grid-3"},xe={class:"flex"},Ve=se({__name:"AddProduct",setup(Ce){const W=pe(),X=ve(),Y=ne(),N=u=>!!Y.hasPermission(u),S=W.params.id,D=m(!1),F=m([]),h=m([]),L=m([]),i=z({title:"",product_code:"",show_type:3,category_id:void 0,brand_id:void 0,ciny_ids:[],body_html:"",is_active:!0,indicator_id:null,mobile_pic:null}),k=z({}),w=m([]),U=m([]),x=m([]),$=m(!1),q=m(null),n=z({__key:"",title:"",grams:void 0,percentage_pay:void 0,qty:0,is_active:!0,is_pre_order:!1}),Z=[{title:"عنوان",dataIndex:"title"},{title:"وزن",dataIndex:"grams"},{title:"اجرت درصدی",dataIndex:"percentage_pay"},{title:"تعداد",dataIndex:"qty"},{title:"فعال",dataIndex:"is_active"},{title:" پیش سفارش",dataIndex:"is_pre_order"},{title:"عملیات",dataIndex:"op"}];function T(u,e){u&&e!==void 0?(q.value=e,Object.assign(n,u)):(q.value=null,Object.assign(n,{__key:`v-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,id:void 0,title:"",grams:void 0,percentage_pay:void 0,qty:0,is_active:!0,is_pre_order:!1})),$.value=!0}function ee(){if(!n.title){A.error("عنوان تنوع الزامی است");return}const u={...n};q.value===null?x.value.push(u):x.value[q.value]=u,$.value=!1}function te(){return Object.keys(k).forEach(u=>delete k[u]),i.title||(k.title="لطفا مقدار را وارد کنید"),Object.keys(k).length===0}async function G(){var u,e;if(te())try{D.value=!0;const o={...i,cats:i.category_id?[i.category_id]:[],images:w.value,images_mobile:U.value,variants:x.value.map(d=>({id:d.id,title:d.title,grams:d.grams,percentage_pay:d.percentage_pay,qty:d.qty,is_active:d.is_active,is_pre_order:d.is_pre_order}))};S?await V.put(`product/update/${S}`,o):await V.post("product/create",o),A.info("اطلاعات با موفقیت به ثبت رسید."),X.push("/apps/product/list")}catch(o){A.error(((e=(u=o==null?void 0:o.response)==null?void 0:u.data)==null?void 0:e.message)??"خطا در ثبت اطلاعات.")}finally{D.value=!1}}return ue(async()=>{var u,e;try{const[o,d,b]=await Promise.all([V.get("brand"),V.post("category"),V.get("admin/products/collections")]);F.value=o.data,h.value=(d.data.rows??d.data).map(p=>({id:p.id,title:p.type_str?`${p.title} (${p.type_str}) `:p.title,type:p.type})),L.value=b.data}catch(o){console.log(o)}if(S)try{const{data:o}=await V.get(`product/show/${S}`);Object.assign(i,{title:o.title??"",product_code:o.product_code??"",show_type:o.show_type??3,category_id:((u=o.category)==null?void 0:u.id)??void 0,brand_id:((e=o.brand)==null?void 0:e.id)??void 0,ciny_ids:o.ciny_ids??[],body_html:o.body_html??"",is_active:o.is_active??!0,indicator_id:o.indicator_id??null,mobile_pic:o.mobile_pic??null}),w.value=o.images_gallery??[],U.value=o.images_mobile??[],x.value=(o.variants_all??[]).map((d,b)=>({__key:d.id??`v-${b}`,id:d.id,title:d.title,grams:Number(d.grams),percentage_pay:Number(d.percentage_pay),qty:d.qty,is_active:d.is_active,is_pre_order:d.is_pre_order}))}catch(o){console.log(o)}}),(u,e)=>{const o=r("a-form-item"),d=r("a-card"),b=r("a-input"),p=r("a-select-option"),B=r("a-select"),le=r("a-textarea"),E=r("a-switch"),P=r("a-button"),H=r("a-tooltip"),J=r("a-tag"),ae=r("a-table"),oe=r("a-spin"),K=r("a-form"),R=r("a-input-number"),ie=r("a-modal");return s(),v("div",fe,[l(K,{layout:"vertical",onSubmit:re(G,["prevent"])},{default:a(()=>[l(oe,{spinning:D.value},{default:a(()=>[l(d,{title:"تصاویر محصول",class:"mb-base"},{default:a(()=>[f("div",ye,[l(o,{label:"تصویر شاخص"},{default:a(()=>[l(I,{modelValue:i.indicator_id,"onUpdate:modelValue":e[0]||(e[0]=t=>i.indicator_id=t),purpose:"product.indicato