Menu

Halloween pumpkin bag - Treat Bags Candy Bags for Halloween

Availability:
Brand: Halloween
SKU:{{ product.sku }}
Write a review
{{ product.price_format }}
{{ product.origin_price_format }}

{{ variable.name }}

{{ value.name }}

Quantity:

Payment & Security

Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.
  • Product Details
  • Shipping & Returns
  • Review
You may also Like!
Halloween Hand Painted Masks (50 styling masks)
$12.99
Halloween Pendants - Spooky Hanging Pumpkin Ghost Design Pendant for Parties
$3.99
Halloween Pendants - Halloween Hanging Ghost Decoration
$3.99
6-piece Halloween Honeycomb Ornament Set
$11.99
Halloween Plasma - Creates Festive Atmosphere, Entertaining Cosmetics Prop
$6.99
Halloween Vampire Dentures - Vampire Teeth Fangs Dentures Cosplay Props Halloween Props Party Favors
$8.99
Uploaded Image
[[ message ]]
`, props: { productId: { type: Number, required: true }, productRating: { type: Number, required: true }, productRatingQty: { type: Number, required: true }, }, data() { return { reviews: [], isModalVisible: false, uploadedFileUrl: '', uploadedFileUrls: [], uploadedFileVal: '', newReview: { rating: 0, content: '' }, message: '', isError: false }; }, mounted() { this.fetchReviews(); }, methods: { fetchReviews() { this.reviews = $http.get(`/products/${this.productId}/reviews`).then(response => { console.log(response) // this.reviews = response.data; if(parseInt(response.code) === 0){ this.reviews = response.data.map(review => ({ ...review, rating: Number(review.rating) })); } }); }, showReviewModal() { this.$modal.show('review-modal'); }, closeReviewModal() { this.$modal.hide('review-modal'); this.newReview = { rating: 0, content: '' }; this.message = ''; }, submitReview() { console.log(this.newReview); // this.closeReviewModal(); if (this.newReview.content.trim() === '') { // this.message = 'review cannot be empty!'; // this.isError = true; layer.msg('review cannot be empty!'); return; } $http.post(`/products/${this.productId}/reviews_store`, { content: this.newReview.content, rating: this.newReview.rating, img_urls: this.uploadedFileUrls }).then(response => { console.log(new Date()); console.log('response', response); if(parseInt(response.code) > 0){ layer.msg(response.errorMessage.message); return } layer.msg("Thank you for your review"); this.closeReviewModal(); this.fetchReviews(); }).catch(error => { console.log('error', error); if (error.response && error.response.data.errors) { const errors = error.response.data.errors; layer.msg(errors.content ? errors.content[0] : 'Failed to submit, please try again!'); } }); }, handleFileUpload(event) { const file = event.target.files[0]; if (file) { const formData = new FormData(); formData.append('file', file); formData.append('type', 'product_reviews'); this.uploadFile(formData); } }, uploadFile(formData) { $http.post(`/products/${this.productId}/reviews_upload`, formData, { headers: { 'Content-Type': 'multipart/form-data' } }).then(response => { console.log('upload response', response); if(parseInt(response.code) > 0){ layer.msg(response.errorMessage.message); return } if(parseInt(response.code) === 0){ // this.uploadedFileUrl = response.data.url; // this.uploadedFileVal = response.data.value; this.uploadedFileUrls.push({ url: response.data.url, val: response.data.value }); } }).catch(error => { console.error('Upload error:', error); layer.msg('File upload error!') }); }, removeUploadedFile(index) { this.uploadedFileUrls.splice(index, 1); }, }, }); -->