diff --git a/dist/css/512.a445f3d6.css b/dist/css/512.a445f3d6.css new file mode 100644 index 0000000..9f10388 --- /dev/null +++ b/dist/css/512.a445f3d6.css @@ -0,0 +1 @@ +.product-grid-page[data-v-01008c52]{padding:20px;background-color:#f5f7fa;max-width:1400px;margin:0 auto}.product-grid-page .filter-bar[data-v-01008c52]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center;padding:15px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05)}.product-grid-page .filter-bar .search-input[data-v-01008c52]{flex:1;min-width:200px}.product-grid-page .filter-bar .filter-select[data-v-01008c52]{min-width:140px}.product-grid-page .result-stats[data-v-01008c52]{margin:0 0 15px 5px;color:#666;font-size:14px;padding:5px 0}.product-grid-page .result-stats .category[data-v-01008c52],.product-grid-page .result-stats .keyword[data-v-01008c52]{color:#ff4d4f;font-weight:500;margin:0 5px}.product-grid-page .product-grid[data-v-01008c52]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:30px}.product-grid-page .product-card[data-v-01008c52]{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);overflow:hidden;transition:transform .3s,box-shadow .3s;cursor:pointer;position:relative}.product-grid-page .product-card[data-v-01008c52]:hover{transform:translateY(-5px);box-shadow:0 8px 16px rgba(0,0,0,.1)}.product-grid-page .product-card .product-img[data-v-01008c52]{width:100%;height:200px;background-color:#f5f5f5}.product-grid-page .product-card .image-placeholder[data-v-01008c52]{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5}.product-grid-page .product-card .tag[data-v-01008c52]{position:absolute;top:10px;left:10px;padding:3px 8px;font-size:12px;color:#fff;border-radius:4px;z-index:1}.product-grid-page .product-card .product-info[data-v-01008c52]{padding:15px}.product-grid-page .product-card .product-info .product-name[data-v-01008c52]{font-size:14px;color:#333;margin-bottom:10px;height:40px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-grid-page .product-card .product-info .price-row[data-v-01008c52]{display:flex;align-items:center;margin-bottom:8px}.product-grid-page .product-card .product-info .price-row .current-price[data-v-01008c52]{color:#ff4d4f;font-weight:700;font-size:16px}.product-grid-page .product-card .product-info .price-row .original-price[data-v-01008c52]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-grid-page .product-card .product-info .sales-volume[data-v-01008c52]{font-size:12px;color:#666;margin-bottom:10px;display:flex;align-items:center}.product-grid-page .product-card .product-info .sales-volume i[data-v-01008c52]{font-size:12px;margin-right:4px}.product-grid-page .product-card .product-info .cart-btn[data-v-01008c52]{width:100%}.product-grid-page .empty-state[data-v-01008c52]{grid-column:1/-1;padding:60px 0;text-align:center}.product-grid-page .pagination-container[data-v-01008c52]{display:flex;justify-content:center;margin-top:20px;padding:10px}@media(max-width:768px){.product-grid-page[data-v-01008c52]{padding:10px}.product-grid-page .filter-bar[data-v-01008c52]{padding:10px;gap:10px}.product-grid-page .product-grid[data-v-01008c52]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.product-grid-page .product-card .image-placeholder[data-v-01008c52],.product-grid-page .product-card .product-img[data-v-01008c52]{height:140px}} \ No newline at end of file diff --git a/dist/css/934.80745de8.css b/dist/css/83.e0b9b1ac.css similarity index 65% rename from dist/css/934.80745de8.css rename to dist/css/83.e0b9b1ac.css index fb97396..3db434a 100644 --- a/dist/css/934.80745de8.css +++ b/dist/css/83.e0b9b1ac.css @@ -1 +1 @@ -.home-layout-container[data-v-185af175]{display:flex;width:100%;height:auto}.left-nav[data-v-185af175]{width:200px;background-color:#f8f9fa;padding:20px 0;box-sizing:border-box;border-radius:10px 0 0 10px}.nav-list[data-v-185af175]{list-style:none;margin:0;padding:0}.nav-item[data-v-185af175]{padding:12px 20px;cursor:pointer;color:#333;transition:all .3s ease;display:flex}.nav-item img[data-v-185af175]{width:20px;margin-right:5px}.nav-item[data-v-185af175]:hover{background-color:#e9ecef;padding-left:25px;color:#fff;background:#6a8a27}.main-content[data-v-185af175]{flex:1;height:auto;overflow:hidden}.carousel-img[data-v-185af175]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.main-content[data-v-185af175] .el-carousel__container{height:100%!important}.right-info[data-v-185af175]{width:280px;background-color:#fff;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;border-left:1px solid #eee;border-radius:0 10px 10px 0}.avatar-container[data-v-185af175]{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.user-avatar[data-v-185af175]{width:60px;height:60px;border-radius:50%;margin-bottom:10px;border:2px solid #f0f0f0}.welcome-text[data-v-185af175]{font-size:14px;color:#333}.btn-group[data-v-185af175]{display:flex;gap:10px;margin-bottom:30px;width:100%}.func-icons[data-v-185af175]{display:flex;justify-content:space-around;flex-wrap:wrap;width:100%;margin-bottom:10px;padding:10px 0;border-top:1px dashed #eee;border-bottom:1px dashed #eee}.icon-item[data-v-185af175]{display:flex;flex-direction:column;align-items:center;cursor:pointer;color:#666;transition:color .3s ease;width:50%}.icon-item[data-v-185af175]:nth-child(n+3){margin-top:20px}.icon-item[data-v-185af175]:hover{color:#1890ff}.icon[data-v-185af175]{font-size:24px;margin-bottom:5px}.icon-item span[data-v-185af175]{font-size:12px}.announcement[data-v-185af175]{display:flex;align-items:center;font-size:12px;color:#666;width:100%;padding-top:10px;cursor:pointer}.announcement span[data-v-185af175]{margin-left:10px}.product-list .product-grid[data-v-71ee3626]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.product-list .product-card[data-v-71ee3626]{border:1px solid #eaeaea;border-radius:8px;overflow:hidden;transition:all .3s ease;padding:10px;background:#fff;border-radius:10px}.product-list .product-card[data-v-71ee3626]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.product-list .product-card .product-img[data-v-71ee3626]{height:250px;overflow:hidden}.product-list .product-card .product-img .product-pic[data-v-71ee3626]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.product-list .product-card .product-img .product-pic[data-v-71ee3626]:hover{transform:scale(1.05)}.product-list .product-card .product-info[data-v-71ee3626]{padding:10px}.product-list .product-card .product-info .product-name[data-v-71ee3626]{font-size:14px;line-height:20px;min-height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px}.product-list .product-card .product-info .product-name a[data-v-71ee3626]{color:#333}.product-list .product-card .product-info .product-name a[data-v-71ee3626]:hover{color:#409eff}.product-list .product-card .product-info .product-price[data-v-71ee3626]{margin-bottom:15px}.product-list .product-card .product-info .product-price .current-price[data-v-71ee3626]{color:#f40;font-size:16px;font-weight:700}.product-list .product-card .product-info .product-price .original-price[data-v-71ee3626]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-list .product-card .product-info .product-actions[data-v-71ee3626]{margin-bottom:10px}.product-list .product-card .product-info .product-sales[data-v-71ee3626]{font-size:12px;color:#999;margin-bottom:15px}.product-list .no-products[data-v-71ee3626]{padding:50px 0;text-align:center}.product-box[data-v-6fb8cf7d]{margin:30px 0}.product-box h2[data-v-6fb8cf7d]{margin-bottom:20px} \ No newline at end of file +.home-layout-container[data-v-6d7df74e]{display:flex;width:100%;height:auto}.left-nav[data-v-6d7df74e]{width:200px;background-color:#f8f9fa;padding:20px 0;box-sizing:border-box;border-radius:10px 0 0 10px}.nav-list[data-v-6d7df74e]{list-style:none;margin:0;padding:0}.nav-item[data-v-6d7df74e]{padding:12px 20px;cursor:pointer;color:#333;transition:all .3s ease;display:flex}.nav-item img[data-v-6d7df74e]{width:20px;margin-right:5px}.nav-item[data-v-6d7df74e]:hover{background-color:#e9ecef;padding-left:25px;color:#fff;background:#6a8a27}.main-content[data-v-6d7df74e]{flex:1;height:auto;overflow:hidden}.carousel-img[data-v-6d7df74e]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.main-content[data-v-6d7df74e] .el-carousel__container{height:100%!important}.right-info[data-v-6d7df74e]{width:280px;background-color:#fff;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;border-left:1px solid #eee;border-radius:0 10px 10px 0}.avatar-container[data-v-6d7df74e]{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.user-avatar[data-v-6d7df74e]{width:60px;height:60px;border-radius:50%;margin-bottom:10px;border:2px solid #f0f0f0}.welcome-text[data-v-6d7df74e]{font-size:14px;color:#333}.btn-group[data-v-6d7df74e]{display:flex;gap:10px;margin-bottom:30px;width:100%}.func-icons[data-v-6d7df74e]{display:flex;justify-content:space-around;flex-wrap:wrap;width:100%;margin-bottom:10px;padding:10px 0;border-top:1px dashed #eee;border-bottom:1px dashed #eee}.icon-item[data-v-6d7df74e]{display:flex;flex-direction:column;align-items:center;cursor:pointer;color:#666;transition:color .3s ease;width:50%}.icon-item[data-v-6d7df74e]:nth-child(n+3){margin-top:20px}.icon-item[data-v-6d7df74e]:hover{color:#1890ff}.icon[data-v-6d7df74e]{font-size:24px;margin-bottom:5px}.icon-item span[data-v-6d7df74e]{font-size:12px}.announcement[data-v-6d7df74e]{display:flex;align-items:center;font-size:12px;color:#666;width:100%;padding-top:10px;cursor:pointer}.announcement span[data-v-6d7df74e]{margin-left:10px}.product-list .product-grid[data-v-71ee3626]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.product-list .product-card[data-v-71ee3626]{border:1px solid #eaeaea;border-radius:8px;overflow:hidden;transition:all .3s ease;padding:10px;background:#fff;border-radius:10px}.product-list .product-card[data-v-71ee3626]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.product-list .product-card .product-img[data-v-71ee3626]{height:250px;overflow:hidden}.product-list .product-card .product-img .product-pic[data-v-71ee3626]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.product-list .product-card .product-img .product-pic[data-v-71ee3626]:hover{transform:scale(1.05)}.product-list .product-card .product-info[data-v-71ee3626]{padding:10px}.product-list .product-card .product-info .product-name[data-v-71ee3626]{font-size:14px;line-height:20px;min-height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px}.product-list .product-card .product-info .product-name a[data-v-71ee3626]{color:#333}.product-list .product-card .product-info .product-name a[data-v-71ee3626]:hover{color:#409eff}.product-list .product-card .product-info .product-price[data-v-71ee3626]{margin-bottom:15px}.product-list .product-card .product-info .product-price .current-price[data-v-71ee3626]{color:#f40;font-size:16px;font-weight:700}.product-list .product-card .product-info .product-price .original-price[data-v-71ee3626]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-list .product-card .product-info .product-actions[data-v-71ee3626]{margin-bottom:10px}.product-list .product-card .product-info .product-sales[data-v-71ee3626]{font-size:12px;color:#999;margin-bottom:15px}.product-list .no-products[data-v-71ee3626]{padding:50px 0;text-align:center}.product-box[data-v-6fb8cf7d]{margin:30px 0}.product-box h2[data-v-6fb8cf7d]{margin-bottom:20px} \ No newline at end of file diff --git a/dist/css/896.4400289a.css b/dist/css/896.4400289a.css deleted file mode 100644 index bc11f35..0000000 --- a/dist/css/896.4400289a.css +++ /dev/null @@ -1 +0,0 @@ -.product-grid-page[data-v-4eb980d8]{padding:20px;background-color:#f5f7fa;max-width:1400px;margin:0 auto}.product-grid-page .filter-bar[data-v-4eb980d8]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center;padding:15px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05)}.product-grid-page .filter-bar .search-input[data-v-4eb980d8]{flex:1;min-width:200px}.product-grid-page .filter-bar .filter-select[data-v-4eb980d8]{min-width:140px}.product-grid-page .result-stats[data-v-4eb980d8]{margin:0 0 15px 5px;color:#666;font-size:14px;padding:5px 0}.product-grid-page .result-stats .category[data-v-4eb980d8],.product-grid-page .result-stats .keyword[data-v-4eb980d8]{color:#ff4d4f;font-weight:500;margin:0 5px}.product-grid-page .product-grid[data-v-4eb980d8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:30px}.product-grid-page .product-card[data-v-4eb980d8]{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);overflow:hidden;transition:transform .3s,box-shadow .3s;cursor:pointer;position:relative}.product-grid-page .product-card[data-v-4eb980d8]:hover{transform:translateY(-5px);box-shadow:0 8px 16px rgba(0,0,0,.1)}.product-grid-page .product-card .product-img[data-v-4eb980d8]{width:100%;height:200px;background-color:#f5f5f5}.product-grid-page .product-card .image-placeholder[data-v-4eb980d8]{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5}.product-grid-page .product-card .tag[data-v-4eb980d8]{position:absolute;top:10px;left:10px;padding:3px 8px;font-size:12px;color:#fff;border-radius:4px;z-index:1}.product-grid-page .product-card .product-info[data-v-4eb980d8]{padding:15px}.product-grid-page .product-card .product-info .product-name[data-v-4eb980d8]{font-size:14px;color:#333;margin-bottom:10px;height:40px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-grid-page .product-card .product-info .price-row[data-v-4eb980d8]{display:flex;align-items:center;margin-bottom:8px}.product-grid-page .product-card .product-info .price-row .current-price[data-v-4eb980d8]{color:#ff4d4f;font-weight:700;font-size:16px}.product-grid-page .product-card .product-info .price-row .original-price[data-v-4eb980d8]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-grid-page .product-card .product-info .sales-volume[data-v-4eb980d8]{font-size:12px;color:#666;margin-bottom:10px;display:flex;align-items:center}.product-grid-page .product-card .product-info .sales-volume i[data-v-4eb980d8]{font-size:12px;margin-right:4px}.product-grid-page .product-card .product-info .cart-btn[data-v-4eb980d8]{width:100%}.product-grid-page .empty-state[data-v-4eb980d8]{grid-column:1/-1;padding:60px 0;text-align:center}.product-grid-page .pagination-container[data-v-4eb980d8]{display:flex;justify-content:center;margin-top:20px;padding:10px}@media(max-width:768px){.product-grid-page[data-v-4eb980d8]{padding:10px}.product-grid-page .filter-bar[data-v-4eb980d8]{padding:10px;gap:10px}.product-grid-page .product-grid[data-v-4eb980d8]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.product-grid-page .product-card .image-placeholder[data-v-4eb980d8],.product-grid-page .product-card .product-img[data-v-4eb980d8]{height:140px}} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index d933393..44de23e 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -shiweisuzhou
\ No newline at end of file +shiweisuzhou
\ No newline at end of file diff --git a/dist/js/512.f7e0fd2d.js b/dist/js/512.f7e0fd2d.js new file mode 100644 index 0000000..511c5a8 --- /dev/null +++ b/dist/js/512.f7e0fd2d.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkshiweisuzhou"]=self["webpackChunkshiweisuzhou"]||[]).push([[512],{2512:function(t,e,s){s.r(e),s.d(e,{default:function(){return n}});s(8111),s(116);var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"product-grid-page"},[t.showFilter?e("div",{staticClass:"filter-bar"},[e("el-select",{staticClass:"filter-select",attrs:{placeholder:"全部分类"},on:{change:t.handleCategoryChange},model:{value:t.selectedCategory,callback:function(e){t.selectedCategory=e},expression:"selectedCategory"}},t._l(t.categories,function(t){return e("el-option",{key:t.id,attrs:{label:t.name,value:t.id}})}),1),e("el-select",{staticClass:"filter-select",attrs:{placeholder:"综合排序"},on:{change:t.handleSortChange},model:{value:t.selectedSort,callback:function(e){t.selectedSort=e},expression:"selectedSort"}},[e("el-option",{attrs:{label:"综合排序",value:"default"}}),e("el-option",{attrs:{label:"销量↑",value:"sales_asc"}}),e("el-option",{attrs:{label:"销量↓",value:"sales_desc"}}),e("el-option",{attrs:{label:"价格↑",value:"price_asc"}}),e("el-option",{attrs:{label:"价格↓",value:"price_desc"}})],1)],1):t._e(),"search"==t.type?e("div",{staticClass:"result-stats"},[e("span",[t._v("全部结果 >")]),t.searchKeyword?e("span",{staticClass:"keyword"},[t._v('"'+t._s(t.searchKeyword)+'"')]):t._e(),t.selectedCategory&&t.categories.find(e=>e.value===t.selectedCategory)?e("span",{staticClass:"category"},[t._v(' "'+t._s(t.categories.find(e=>e.value===t.selectedCategory).label)+'" ')]):t._e(),e("span",[t._v("共"+t._s(t.totalProducts)+"个结果")])]):t._e(),e("div",{staticClass:"product-grid"},[t._l(t.visibleProducts,function(s,a){return e("div",{key:a,staticClass:"product-card",on:{click:function(e){return t.goToDetail(s.id)}}},[e("img",{directives:[{name:"lazy",rawName:"v-lazy",value:s.headimg,expression:"product.headimg"}],staticClass:"product-img",attrs:{alt:s.title,fit:"cover"}}),e("div",{staticClass:"product-info"},[e("div",{staticClass:"product-name"},[t._v(t._s(s.title))]),e("div",{staticClass:"price-row"},[e("span",{staticClass:"current-price"},[t._v("¥"+t._s(s.price/100))]),s.market_price?e("span",{staticClass:"original-price"},[t._v("¥"+t._s(s.market_price/100))]):t._e()]),e("div",{staticClass:"sales-volume"},[e("i",{staticClass:"el-icon-shopping-cart"}),t._v(" 已售 "+t._s(s.sales_number)+" ")]),e("el-button",{staticClass:"cart-btn",attrs:{type:"primary",size:"mini"}},[t._v(" 立即购买 ")])],1)])}),0===t.visibleProducts.length?e("div",{staticClass:"empty-state"},[e("el-empty",{attrs:{description:"暂无符合条件的商品"}})],1):t._e()],2),t.totalProducts>0?e("div",{staticClass:"pagination-container"},[e("el-pagination",{attrs:{"current-page":t.currentPage,"page-sizes":[12,24,36],"page-size":t.pageSize,layout:"total, sizes, prev, pager, next, jumper",total:t.totalProducts},on:{"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}})],1):t._e()])},i=[],r=(s(4114),s(7588),s(1701),s(3518)),c={name:"ProductGridPage",data(){return{type:"",searchKeyword:"",selectedCategory:"",selectedSort:"default",showFilter:!0,currentPage:1,pageSize:12,visibleProducts:[],totalProducts:0,categories:[],id:"",keyword:""}},computed:{...(0,r.L8)(["getSearchText"]),currentOffset(){return(this.currentPage-1)*this.pageSize}},watch:{getSearchText(t,e){t!==e&&(this.searchKeyword=t,this.fetchProducts())}},created(){this.type=this.$route.query?.type,this.searchKeyword=this.getSearchText,this.getTagList()},beforeDestroy(){this.searchKeyword="",this.$store.commit("setSearchText",""),this.currentPage=1,this.selectedCategory="",this.selectedSort="default"},methods:{getTagList(){this.post({pid:this.VUE_APP_GLOBAL_TAGS.side_all},"/api/product/tag_list").then(t=>{this.categories=t.data;let e=[];this.post({pid:this.VUE_APP_GLOBAL_TAGS.pc_all},"/api/product/tag_list").then(t=>{t.data.forEach(t=>e.push(t.id));const s=t.data.map(t=>this.post({pid:t.id},"/api/product/tag_list").then(t=>{t.data.forEach(t=>e.push(t.id))}));Promise.all(s).then(()=>{this.categories[0].id=e.join(",");const t=this.$route.query.id;if(t){this.id=t;const e=this.categories.find(e=>e.id==t);console.log(t,e),e&&(this.selectedCategory=e.name),this.fetchProducts()}else this.id=e.join(","),this.fetchProducts()})})})},async fetchProducts(){const t={tag_id:this.id||this.selectedCategory,offset:this.currentOffset,limit:this.pageSize,title:this.searchKeyword,...this.parseSortParams()};this.searchKeyword&&(t.keyword=this.searchKeyword);const e=await this.post(t,"/api/product/get_product_by_tag");this.visibleProducts=e.data.list||[],this.totalProducts=Number(e.data.total)||0},parseSortParams(){if("default"===this.selectedSort)return{};const[t,e]=this.selectedSort.split("_"),s={sales:"sales_number",price:"price"};return{sort:s[t],order:e}},handleCategoryChange(t){this.id=t,this.currentPage=1,this.fetchProducts()},handleSortChange(){this.currentPage=1,this.fetchProducts()},handleSizeChange(t){this.pageSize=t,this.currentPage=1,this.fetchProducts()},handleCurrentChange(t){this.currentPage=t,this.fetchProducts(),window.scrollTo(0,0)},goToDetail(t){this.$router.push(`/Detail/${t}`)}}},o=c,l=s(845),d=(0,l.A)(o,a,i,!1,null,"01008c52",null),n=d.exports}}]); +//# sourceMappingURL=512.f7e0fd2d.js.map \ No newline at end of file diff --git a/dist/js/512.f7e0fd2d.js.map b/dist/js/512.f7e0fd2d.js.map new file mode 100644 index 0000000..ad58263 --- /dev/null +++ b/dist/js/512.f7e0fd2d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/512.f7e0fd2d.js","mappings":"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","sources":["webpack://shiweisuzhou/./src/views/ProductPage/Index.vue","webpack://shiweisuzhou/src/views/ProductPage/Index.vue","webpack://shiweisuzhou/./src/views/ProductPage/Index.vue?0236","webpack://shiweisuzhou/./src/views/ProductPage/Index.vue?5c2d"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-grid-page\"},[(_vm.showFilter)?_c('div',{staticClass:\"filter-bar\"},[_c('el-select',{staticClass:\"filter-select\",attrs:{\"placeholder\":\"全部分类\"},on:{\"change\":_vm.handleCategoryChange},model:{value:(_vm.selectedCategory),callback:function ($$v) {_vm.selectedCategory=$$v},expression:\"selectedCategory\"}},_vm._l((_vm.categories),function(cat){return _c('el-option',{key:cat.id,attrs:{\"label\":cat.name,\"value\":cat.id}})}),1),_c('el-select',{staticClass:\"filter-select\",attrs:{\"placeholder\":\"综合排序\"},on:{\"change\":_vm.handleSortChange},model:{value:(_vm.selectedSort),callback:function ($$v) {_vm.selectedSort=$$v},expression:\"selectedSort\"}},[_c('el-option',{attrs:{\"label\":\"综合排序\",\"value\":\"default\"}}),_c('el-option',{attrs:{\"label\":\"销量↑\",\"value\":\"sales_asc\"}}),_c('el-option',{attrs:{\"label\":\"销量↓\",\"value\":\"sales_desc\"}}),_c('el-option',{attrs:{\"label\":\"价格↑\",\"value\":\"price_asc\"}}),_c('el-option',{attrs:{\"label\":\"价格↓\",\"value\":\"price_desc\"}})],1)],1):_vm._e(),(_vm.type == 'search')?_c('div',{staticClass:\"result-stats\"},[_c('span',[_vm._v(\"全部结果 >\")]),(_vm.searchKeyword)?_c('span',{staticClass:\"keyword\"},[_vm._v(\"\\\"\"+_vm._s(_vm.searchKeyword)+\"\\\"\")]):_vm._e(),(\n _vm.selectedCategory &&\n _vm.categories.find((cat) => cat.value === _vm.selectedCategory)\n )?_c('span',{staticClass:\"category\"},[_vm._v(\" \\\"\"+_vm._s(_vm.categories.find((cat) => cat.value === _vm.selectedCategory).label)+\"\\\" \")]):_vm._e(),_c('span',[_vm._v(\"共\"+_vm._s(_vm.totalProducts)+\"个结果\")])]):_vm._e(),_c('div',{staticClass:\"product-grid\"},[_vm._l((_vm.visibleProducts),function(product,index){return _c('div',{key:index,staticClass:\"product-card\",on:{\"click\":function($event){return _vm.goToDetail(product.id)}}},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(product.headimg),expression:\"product.headimg\"}],staticClass:\"product-img\",attrs:{\"alt\":product.title,\"fit\":\"cover\"}}),_c('div',{staticClass:\"product-info\"},[_c('div',{staticClass:\"product-name\"},[_vm._v(_vm._s(product.title))]),_c('div',{staticClass:\"price-row\"},[_c('span',{staticClass:\"current-price\"},[_vm._v(\"¥\"+_vm._s(product.price / 100))]),(product.market_price)?_c('span',{staticClass:\"original-price\"},[_vm._v(\"¥\"+_vm._s(product.market_price / 100))]):_vm._e()]),_c('div',{staticClass:\"sales-volume\"},[_c('i',{staticClass:\"el-icon-shopping-cart\"}),_vm._v(\" 已售 \"+_vm._s(product.sales_number)+\" \")]),_c('el-button',{staticClass:\"cart-btn\",attrs:{\"type\":\"primary\",\"size\":\"mini\"}},[_vm._v(\" 立即购买 \")])],1)])}),(_vm.visibleProducts.length === 0)?_c('div',{staticClass:\"empty-state\"},[_c('el-empty',{attrs:{\"description\":\"暂无符合条件的商品\"}})],1):_vm._e()],2),(_vm.totalProducts > 0)?_c('div',{staticClass:\"pagination-container\"},[_c('el-pagination',{attrs:{\"current-page\":_vm.currentPage,\"page-sizes\":[12, 24, 36],\"page-size\":_vm.pageSize,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.totalProducts},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=01008c52&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=01008c52&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01008c52\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","showFilter","attrs","on","handleCategoryChange","model","value","selectedCategory","callback","$$v","expression","_l","categories","cat","key","id","name","handleSortChange","selectedSort","_e","type","_v","searchKeyword","_s","find","label","totalProducts","visibleProducts","product","index","$event","goToDetail","directives","rawName","headimg","title","price","market_price","sales_number","length","currentPage","pageSize","handleSizeChange","handleCurrentChange","staticRenderFns","data","keyword","computed","mapGetters","currentOffset","watch","getSearchText","newVal","oldVal","fetchProducts","created","$route","query","getTagList","beforeDestroy","$store","commit","methods","post","pid","VUE_APP_GLOBAL_TAGS","side_all","then","res","ids","pc_all","forEach","item","push","subTagPromises","map","subRes","i","Promise","all","join","routeId","matchedCategory","console","log","params","tag_id","offset","limit","parseSortParams","response","list","Number","total","sortField","order","split","sortMap","sales","sort","event","val","window","scrollTo","$router","component"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/83.4f3ee6fe.js b/dist/js/83.4f3ee6fe.js new file mode 100644 index 0000000..763403e --- /dev/null +++ b/dist/js/83.4f3ee6fe.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkshiweisuzhou"]=self["webpackChunkshiweisuzhou"]||[]).push([[83],{7083:function(t,s,i){i.r(s),i.d(s,{default:function(){return h}});var a=function(){var t=this,s=t._self._c;return s("div",{staticClass:"bg"},[s("HomeLayout",{attrs:{topBanner:t.topBanner,tagList:t.tagList}}),s("div",{staticClass:"product-box"},[s("h2",[t._v("今日推荐")]),s("ProductList",{attrs:{products:t.prouctList[0].list}})],1),s("div",{staticClass:"product-box"},[s("h2",[t._v("热销排行")]),s("ProductList",{attrs:{products:t.prouctList[1].list}})],1),s("div",{staticClass:"product-box"},[s("h2",[t._v("新品上市")]),s("ProductList",{attrs:{products:t.prouctList[2].list}})],1)],1)},e=[],r=(i(8111),i(1701),function(){var t=this,s=t._self._c;return s("div",{staticClass:"home-layout-container"},[s("div",{staticClass:"left-nav"},[s("ul",{staticClass:"nav-list"},t._l(t.tagList,function(i,a){return s("router-link",{key:i.id,staticClass:"nav-item",attrs:{to:"/productList?id="+(0!=a?i.id:""),tag:"li"}},[s("img",{attrs:{src:t.util.showImg(i.image),alt:""}}),t._v(t._s(i.name)+" ")])}),1)]),s("div",{staticClass:"main-content"},[s("el-carousel",{staticStyle:{height:"100%"}},t._l(t.topBanner,function(t){return s("el-carousel-item",{key:t.id},[s("img",{staticClass:"carousel-img",attrs:{src:t.head_img}})])}),1)],1),s("div",{staticClass:"right-info"},[t.$store.getters.isUserLogin?s("div",{staticClass:"avatar-container"},[s("img",{staticClass:"user-avatar",attrs:{src:t.$store.getters.getUserInfo.avatar,alt:"用户头像"}}),s("div",{staticClass:"welcome-text"},[t._v("Hi-欢迎您")])]):t._e(),t._e(),s("div",{staticClass:"func-icons"},[s("router-link",{staticClass:"icon-item",attrs:{to:"/User/UserCenter"}},[s("i",{staticClass:"icon el-icon-user"}),s("span",[t._v("个人中心")])]),s("router-link",{staticClass:"icon-item",attrs:{to:"/User/OrderList"}},[s("i",{staticClass:"icon el-icon-goods"}),s("span",[t._v("我的订单")])]),s("router-link",{staticClass:"icon-item",attrs:{to:"/User/CommentManage"}},[s("i",{staticClass:"icon el-icon-star-off"}),s("span",[t._v("评价管理")])]),s("router-link",{staticClass:"icon-item",attrs:{to:"/NoticeList"}},[s("i",{staticClass:"icon el-icon-pie-chart"}),s("span",[t._v("公告中心")])])],1),s("router-link",{staticClass:"announcement",attrs:{to:"/NoticeDetail?type=notice&id="+t.notice.id}},[s("el-tag",{attrs:{type:"danger",size:"mini"}},[t._v("公告")]),s("span",{staticClass:"text-overflowRows"},[t._v(t._s(t.notice.title))])],1)],1)])}),c=[],o={name:"HomeLayout",data(){return{notice:""}},props:{topBanner:{type:Array,default:()=>[]},tagList:{type:Array,default:()=>[]}},mounted(){this.post({},"/api/anncmnt/getLatest").then(t=>{this.notice=t.data})}},n=o,l=i(845),d=(0,l.A)(n,r,c,!1,null,"6d7df74e",null),p=d.exports,u=i(8977),g={components:{HomeLayout:p,ProductList:u.A},data(){return{topBanner:[],tagList:[],prouctList:[{id:this.VUE_APP_GLOBAL_TAGS.pc_index_recommend,title:"今日推荐",list:[]},{id:this.VUE_APP_GLOBAL_TAGS.pc_index_hot,title:"热销排行",list:[]},{id:this.VUE_APP_GLOBAL_TAGS.pc_index_new,title:"新品上市",list:[]}],newProducts:[{id:7,name:"高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪",price:3299,originalPrice:3699,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:156,categoryId:1},{id:8,name:"保湿面霜",price:299,originalPrice:359,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:423,categoryId:4},{id:9,name:"有机水果礼盒",price:159,originalPrice:199,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:287,categoryId:5},{id:10,name:"经典文学名著",price:129,originalPrice:199,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:342,categoryId:6}]}},created(){this.getTopBanner(),this.getTags(),this.getProductList()},methods:{getTopBanner(){this.post({type_id:6,position:0},"/api/adv/getAdv").then(t=>{t&&(this.topBanner=t.data)})},getTags(){this.post({pid:this.VUE_APP_GLOBAL_TAGS.side_all},"/api/product/tag_list").then(t=>{this.tagList=t.data,this.tagList[0].id=this.VUE_APP_GLOBAL_TAGS.pc_all})},getProductList(){this.prouctList.map(t=>{this.post({tag_id:t.id,offset:0,limit:4},"/api/product/get_product_by_tag").then(s=>{t.list=s.data.list})})}}},m=g,_=(0,l.A)(m,a,e,!1,null,"6fb8cf7d",null),h=_.exports},8977:function(t,s,i){i.d(s,{A:function(){return l}});var a=function(){var t=this,s=t._self._c;return s("div",{staticClass:"product-list"},[s("div",{staticClass:"product-grid"},t._l(t.products,function(i){return s("router-link",{key:i.id,staticClass:"product-card",attrs:{to:`/Detail/${i.id}`}},[s("div",{staticClass:"product-img"},[s("img",{directives:[{name:"lazy",rawName:"v-lazy",value:i.headimg,expression:"product.headimg"}],staticClass:"product-pic",attrs:{alt:i.title}})]),s("div",{staticClass:"product-info"},[s("div",{staticClass:"flex-between"},[s("div",{staticClass:"product-price"},[s("span",{staticClass:"current-price"},[t._v("¥"+t._s(i.price/100))]),i.market_price?s("span",{staticClass:"original-price"},[t._v("¥"+t._s(i.market_price/100))]):t._e()]),i.sales?s("div",{staticClass:"product-sales"},[s("span",[t._v("已售 "+t._s(i.sales_number)+" 件")])]):t._e()]),s("h3",{staticClass:"product-name"},[s("router-link",{attrs:{to:`/Detail/${i.id}`}},[t._v(" "+t._s(i.title)+" ")])],1),s("div",{staticClass:"product-actions"},[s("el-button",{staticStyle:{"background-color":"#6a8a27",border:"none"},attrs:{type:"primary",size:"small"}},[s("el-icon",{attrs:{name:"el-icon-shopping-cart"}}),t._v(" 立即购买 ")],1)],1)])])}),1),0===t.products.length?s("div",{staticClass:"no-products"},[s("el-empty",{attrs:{description:"暂无相关商品"}})],1):t._e()])},e=[],r={name:"ProductList",props:{products:{type:Array,default:()=>[]}},methods:{}},c=r,o=i(845),n=(0,o.A)(c,a,e,!1,null,"71ee3626",null),l=n.exports}}]); +//# sourceMappingURL=83.4f3ee6fe.js.map \ No newline at end of file diff --git a/dist/js/83.4f3ee6fe.js.map b/dist/js/83.4f3ee6fe.js.map new file mode 100644 index 0000000..b317667 --- /dev/null +++ b/dist/js/83.4f3ee6fe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/83.4f3ee6fe.js","mappings":"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","sources":["webpack://shiweisuzhou/./src/views/Index.vue","webpack://shiweisuzhou/./src/components/layout/HomeLayout.vue","webpack://shiweisuzhou/src/components/layout/HomeLayout.vue","webpack://shiweisuzhou/./src/components/layout/HomeLayout.vue?030d","webpack://shiweisuzhou/./src/components/layout/HomeLayout.vue?d86f","webpack://shiweisuzhou/src/views/Index.vue","webpack://shiweisuzhou/./src/views/Index.vue?ac36","webpack://shiweisuzhou/./src/views/Index.vue?f8a7","webpack://shiweisuzhou/./src/components/product/ProductList.vue","webpack://shiweisuzhou/src/components/product/ProductList.vue","webpack://shiweisuzhou/./src/components/product/ProductList.vue?9721","webpack://shiweisuzhou/./src/components/product/ProductList.vue?97f4"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bg\"},[_c('HomeLayout',{attrs:{\"topBanner\":_vm.topBanner,\"tagList\":_vm.tagList}}),_c('div',{staticClass:\"product-box\"},[_c('h2',[_vm._v(\"今日推荐\")]),_c('ProductList',{attrs:{\"products\":_vm.prouctList[0].list}})],1),_c('div',{staticClass:\"product-box\"},[_c('h2',[_vm._v(\"热销排行\")]),_c('ProductList',{attrs:{\"products\":_vm.prouctList[1].list}})],1),_c('div',{staticClass:\"product-box\"},[_c('h2',[_vm._v(\"新品上市\")]),_c('ProductList',{attrs:{\"products\":_vm.prouctList[2].list}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"home-layout-container\"},[_c('div',{staticClass:\"left-nav\"},[_c('ul',{staticClass:\"nav-list\"},_vm._l((_vm.tagList),function(item,index){return _c('router-link',{key:item.id,staticClass:\"nav-item\",attrs:{\"to\":'/productList?id=' + (index != 0 ? item.id : ''),\"tag\":\"li\"}},[_c('img',{attrs:{\"src\":_vm.util.showImg(item.image),\"alt\":\"\"}}),_vm._v(_vm._s(item.name)+\" \")])}),1)]),_c('div',{staticClass:\"main-content\"},[_c('el-carousel',{staticStyle:{\"height\":\"100%\"}},_vm._l((_vm.topBanner),function(item){return _c('el-carousel-item',{key:item.id},[_c('img',{staticClass:\"carousel-img\",attrs:{\"src\":item.head_img}})])}),1)],1),_c('div',{staticClass:\"right-info\"},[(_vm.$store.getters.isUserLogin)?_c('div',{staticClass:\"avatar-container\"},[_c('img',{staticClass:\"user-avatar\",attrs:{\"src\":_vm.$store.getters.getUserInfo.avatar,\"alt\":\"用户头像\"}}),_c('div',{staticClass:\"welcome-text\"},[_vm._v(\"Hi-欢迎您\")])]):_vm._e(),(false)?_c('div',{staticClass:\"btn-group\"},[_c('el-button',{attrs:{\"type\":\"danger\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.gotoPath('/Login')}}},[_vm._v(\"登录\")]),_c('el-button',{attrs:{\"type\":\"warning\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.gotoPath('/Register')}}},[_vm._v(\"注册\")]),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\"}},[_vm._v(\"客服\")])],1):_vm._e(),_c('div',{staticClass:\"func-icons\"},[_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/User/UserCenter\"}},[_c('i',{staticClass:\"icon el-icon-user\"}),_c('span',[_vm._v(\"个人中心\")])]),_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/User/OrderList\"}},[_c('i',{staticClass:\"icon el-icon-goods\"}),_c('span',[_vm._v(\"我的订单\")])]),_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/User/CommentManage\"}},[_c('i',{staticClass:\"icon el-icon-star-off\"}),_c('span',[_vm._v(\"评价管理\")])]),_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/NoticeList\"}},[_c('i',{staticClass:\"icon el-icon-pie-chart\"}),_c('span',[_vm._v(\"公告中心\")])])],1),_c('router-link',{staticClass:\"announcement\",attrs:{\"to\":'/NoticeDetail?type=notice&id=' + _vm.notice.id}},[_c('el-tag',{attrs:{\"type\":\"danger\",\"size\":\"mini\"}},[_vm._v(\"公告\")]),_c('span',{staticClass:\"text-overflowRows\"},[_vm._v(_vm._s(_vm.notice.title))])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n ","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeLayout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeLayout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HomeLayout.vue?vue&type=template&id=6d7df74e&scoped=true\"\nimport script from \"./HomeLayout.vue?vue&type=script&lang=js\"\nexport * from \"./HomeLayout.vue?vue&type=script&lang=js\"\nimport style0 from \"./HomeLayout.vue?vue&type=style&index=0&id=6d7df74e&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d7df74e\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=6fb8cf7d&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=6fb8cf7d&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fb8cf7d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-list\"},[_c('div',{staticClass:\"product-grid\"},_vm._l((_vm.products),function(product){return _c('router-link',{key:product.id,staticClass:\"product-card\",attrs:{\"to\":`/Detail/${product.id}`}},[_c('div',{staticClass:\"product-img\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(product.headimg),expression:\"product.headimg\"}],staticClass:\"product-pic\",attrs:{\"alt\":product.title}})]),_c('div',{staticClass:\"product-info\"},[_c('div',{staticClass:\"flex-between\"},[_c('div',{staticClass:\"product-price\"},[_c('span',{staticClass:\"current-price\"},[_vm._v(\"¥\"+_vm._s(product.price / 100))]),(product.market_price)?_c('span',{staticClass:\"original-price\"},[_vm._v(\"¥\"+_vm._s(product.market_price / 100))]):_vm._e()]),(product.sales)?_c('div',{staticClass:\"product-sales\"},[_c('span',[_vm._v(\"已售 \"+_vm._s(product.sales_number)+\" 件\")])]):_vm._e()]),_c('h3',{staticClass:\"product-name\"},[_c('router-link',{attrs:{\"to\":`/Detail/${product.id}`}},[_vm._v(\" \"+_vm._s(product.title)+\" \")])],1),_c('div',{staticClass:\"product-actions\"},[_c('el-button',{staticStyle:{\"background-color\":\"#6a8a27\",\"border\":\"none\"},attrs:{\"type\":\"primary\",\"size\":\"small\"}},[_c('el-icon',{attrs:{\"name\":\"el-icon-shopping-cart\"}}),_vm._v(\" 立即购买 \")],1)],1)])])}),1),(_vm.products.length === 0)?_c('div',{staticClass:\"no-products\"},[_c('el-empty',{attrs:{\"description\":\"暂无相关商品\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductList.vue?vue&type=template&id=71ee3626&scoped=true\"\nimport script from \"./ProductList.vue?vue&type=script&lang=js\"\nexport * from \"./ProductList.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductList.vue?vue&type=style&index=0&id=71ee3626&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71ee3626\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","attrs","topBanner","tagList","_v","prouctList","list","staticRenderFns","_l","item","index","key","id","util","showImg","image","_s","name","staticStyle","head_img","$store","getters","isUserLogin","getUserInfo","avatar","_e","notice","title","data","props","type","Array","default","mounted","post","then","res","component","components","HomeLayout","ProductList","VUE_APP_GLOBAL_TAGS","pc_index_recommend","pc_index_hot","pc_index_new","newProducts","price","originalPrice","sales","categoryId","created","getTopBanner","getTags","getProductList","methods","type_id","position","pid","side_all","pc_all","map","i","tag_id","offset","limit","products","product","directives","rawName","value","headimg","expression","market_price","sales_number","length"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/896.87e420a5.js b/dist/js/896.87e420a5.js deleted file mode 100644 index 883b6c5..0000000 --- a/dist/js/896.87e420a5.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkshiweisuzhou"]=self["webpackChunkshiweisuzhou"]||[]).push([[896],{3896:function(e,t,s){s.r(t),s.d(t,{default:function(){return n}});s(8111),s(116);var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"product-grid-page"},[e.showFilter?t("div",{staticClass:"filter-bar"},[t("el-select",{staticClass:"filter-select",attrs:{placeholder:"全部分类"},on:{change:e.handleCategoryChange},model:{value:e.selectedCategory,callback:function(t){e.selectedCategory=t},expression:"selectedCategory"}},e._l(e.categories,function(e){return t("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})}),1),t("el-select",{staticClass:"filter-select",attrs:{placeholder:"综合排序"},on:{change:e.handleSortChange},model:{value:e.selectedSort,callback:function(t){e.selectedSort=t},expression:"selectedSort"}},[t("el-option",{attrs:{label:"综合排序",value:"default"}}),t("el-option",{attrs:{label:"销量↑",value:"sales_asc"}}),t("el-option",{attrs:{label:"销量↓",value:"sales_desc"}}),t("el-option",{attrs:{label:"价格↑",value:"price_asc"}}),t("el-option",{attrs:{label:"价格↓",value:"price_desc"}})],1)],1):e._e(),"search"==e.type?t("div",{staticClass:"result-stats"},[t("span",[e._v("全部结果 >")]),e.searchKeyword?t("span",{staticClass:"keyword"},[e._v('"'+e._s(e.searchKeyword)+'"')]):e._e(),e.selectedCategory&&e.categories.find(t=>t.value===e.selectedCategory)?t("span",{staticClass:"category"},[e._v(' "'+e._s(e.categories.find(t=>t.value===e.selectedCategory).label)+'" ')]):e._e(),t("span",[e._v("共"+e._s(e.totalProducts)+"个结果")])]):e._e(),t("div",{staticClass:"product-grid"},[e._l(e.visibleProducts,function(s,a){return t("div",{key:a,staticClass:"product-card",on:{click:function(t){return e.goToDetail(s.id)}}},[t("img",{directives:[{name:"lazy",rawName:"v-lazy",value:s.headimg,expression:"product.headimg"}],staticClass:"product-img",attrs:{alt:s.title,fit:"cover"}}),t("div",{staticClass:"product-info"},[t("div",{staticClass:"product-name"},[e._v(e._s(s.title))]),t("div",{staticClass:"price-row"},[t("span",{staticClass:"current-price"},[e._v("¥"+e._s(s.price/100))]),s.market_price?t("span",{staticClass:"original-price"},[e._v("¥"+e._s(s.market_price/100))]):e._e()]),t("div",{staticClass:"sales-volume"},[t("i",{staticClass:"el-icon-shopping-cart"}),e._v(" 已售 "+e._s(s.sales_number)+" ")]),t("el-button",{staticClass:"cart-btn",attrs:{type:"primary",size:"mini"}},[e._v(" 立即购买 ")])],1)])}),0===e.visibleProducts.length?t("div",{staticClass:"empty-state"},[t("el-empty",{attrs:{description:"暂无符合条件的商品"}})],1):e._e()],2),e.totalProducts>0?t("div",{staticClass:"pagination-container"},[t("el-pagination",{attrs:{"current-page":e.currentPage,"page-sizes":[12,24,36],"page-size":e.pageSize,layout:"total, sizes, prev, pager, next, jumper",total:e.totalProducts},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1):e._e()])},r=[],i=(s(4114),s(3518)),c={name:"ProductGridPage",data(){return{type:"",searchKeyword:"",selectedCategory:"",selectedSort:"default",showFilter:!0,currentPage:1,pageSize:12,visibleProducts:[],totalProducts:0,categories:[],id:"",keyword:""}},computed:{...(0,i.L8)(["getSearchText"]),currentOffset(){return(this.currentPage-1)*this.pageSize}},watch:{getSearchText(e,t){e!==t&&(this.searchKeyword=e,this.fetchProducts())}},created(){this.type=this.$route.query?.type,this.searchKeyword=this.getSearchText,this.getTagList()},beforeDestroy(){this.searchKeyword="",this.$store.commit("setSearchText",""),this.currentPage=1,this.selectedCategory="",this.selectedSort="default"},methods:{getTagList(){this.post({pid:this.VUE_APP_GLOBAL_TAGS.side_all},"/api/product/tag_list").then(e=>{this.categories=e.data,this.categories[0].id=this.VUE_APP_GLOBAL_TAGS.pc_all;const t=this.$route.query.id||this.VUE_APP_GLOBAL_TAGS.pc_all;if(t){this.id=t;const e=this.categories.find(e=>e.id==t);console.log(t,e),e&&(this.selectedCategory=e.name)}this.fetchProducts()})},async fetchProducts(){const e={tag_id:this.id||this.selectedCategory,offset:this.currentOffset,limit:this.pageSize,title:this.searchKeyword,...this.parseSortParams()};this.searchKeyword&&(e.keyword=this.searchKeyword);const t=await this.post(e,"/api/product/get_product_by_tag");this.visibleProducts=t.data.list||[],this.totalProducts=Number(t.data.total)||0},parseSortParams(){if("default"===this.selectedSort)return{};const[e,t]=this.selectedSort.split("_"),s={sales:"sales_number",price:"price"};return{sort:s[e],order:t}},handleCategoryChange(e){this.id=e,this.currentPage=1,this.fetchProducts()},handleSortChange(){this.currentPage=1,this.fetchProducts()},handleSizeChange(e){this.pageSize=e,this.currentPage=1,this.fetchProducts()},handleCurrentChange(e){this.currentPage=e,this.fetchProducts(),window.scrollTo(0,0)},goToDetail(e){this.$router.push(`/Detail/${e}`)}}},l=c,o=s(845),d=(0,o.A)(l,a,r,!1,null,"4eb980d8",null),n=d.exports}}]); -//# sourceMappingURL=896.87e420a5.js.map \ No newline at end of file diff --git a/dist/js/896.87e420a5.js.map b/dist/js/896.87e420a5.js.map deleted file mode 100644 index 7770e03..0000000 --- a/dist/js/896.87e420a5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/896.87e420a5.js","mappings":"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","sources":["webpack://shiweisuzhou/./src/views/ProductPage/Index.vue","webpack://shiweisuzhou/src/views/ProductPage/Index.vue","webpack://shiweisuzhou/./src/views/ProductPage/Index.vue?0236","webpack://shiweisuzhou/./src/views/ProductPage/Index.vue?5c2d"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-grid-page\"},[(_vm.showFilter)?_c('div',{staticClass:\"filter-bar\"},[_c('el-select',{staticClass:\"filter-select\",attrs:{\"placeholder\":\"全部分类\"},on:{\"change\":_vm.handleCategoryChange},model:{value:(_vm.selectedCategory),callback:function ($$v) {_vm.selectedCategory=$$v},expression:\"selectedCategory\"}},_vm._l((_vm.categories),function(cat){return _c('el-option',{key:cat.id,attrs:{\"label\":cat.name,\"value\":cat.id}})}),1),_c('el-select',{staticClass:\"filter-select\",attrs:{\"placeholder\":\"综合排序\"},on:{\"change\":_vm.handleSortChange},model:{value:(_vm.selectedSort),callback:function ($$v) {_vm.selectedSort=$$v},expression:\"selectedSort\"}},[_c('el-option',{attrs:{\"label\":\"综合排序\",\"value\":\"default\"}}),_c('el-option',{attrs:{\"label\":\"销量↑\",\"value\":\"sales_asc\"}}),_c('el-option',{attrs:{\"label\":\"销量↓\",\"value\":\"sales_desc\"}}),_c('el-option',{attrs:{\"label\":\"价格↑\",\"value\":\"price_asc\"}}),_c('el-option',{attrs:{\"label\":\"价格↓\",\"value\":\"price_desc\"}})],1)],1):_vm._e(),(_vm.type == 'search')?_c('div',{staticClass:\"result-stats\"},[_c('span',[_vm._v(\"全部结果 >\")]),(_vm.searchKeyword)?_c('span',{staticClass:\"keyword\"},[_vm._v(\"\\\"\"+_vm._s(_vm.searchKeyword)+\"\\\"\")]):_vm._e(),(\n _vm.selectedCategory &&\n _vm.categories.find((cat) => cat.value === _vm.selectedCategory)\n )?_c('span',{staticClass:\"category\"},[_vm._v(\" \\\"\"+_vm._s(_vm.categories.find((cat) => cat.value === _vm.selectedCategory).label)+\"\\\" \")]):_vm._e(),_c('span',[_vm._v(\"共\"+_vm._s(_vm.totalProducts)+\"个结果\")])]):_vm._e(),_c('div',{staticClass:\"product-grid\"},[_vm._l((_vm.visibleProducts),function(product,index){return _c('div',{key:index,staticClass:\"product-card\",on:{\"click\":function($event){return _vm.goToDetail(product.id)}}},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(product.headimg),expression:\"product.headimg\"}],staticClass:\"product-img\",attrs:{\"alt\":product.title,\"fit\":\"cover\"}}),_c('div',{staticClass:\"product-info\"},[_c('div',{staticClass:\"product-name\"},[_vm._v(_vm._s(product.title))]),_c('div',{staticClass:\"price-row\"},[_c('span',{staticClass:\"current-price\"},[_vm._v(\"¥\"+_vm._s(product.price / 100))]),(product.market_price)?_c('span',{staticClass:\"original-price\"},[_vm._v(\"¥\"+_vm._s(product.market_price / 100))]):_vm._e()]),_c('div',{staticClass:\"sales-volume\"},[_c('i',{staticClass:\"el-icon-shopping-cart\"}),_vm._v(\" 已售 \"+_vm._s(product.sales_number)+\" \")]),_c('el-button',{staticClass:\"cart-btn\",attrs:{\"type\":\"primary\",\"size\":\"mini\"}},[_vm._v(\" 立即购买 \")])],1)])}),(_vm.visibleProducts.length === 0)?_c('div',{staticClass:\"empty-state\"},[_c('el-empty',{attrs:{\"description\":\"暂无符合条件的商品\"}})],1):_vm._e()],2),(_vm.totalProducts > 0)?_c('div',{staticClass:\"pagination-container\"},[_c('el-pagination',{attrs:{\"current-page\":_vm.currentPage,\"page-sizes\":[12, 24, 36],\"page-size\":_vm.pageSize,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.totalProducts},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=4eb980d8&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=4eb980d8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4eb980d8\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","showFilter","attrs","on","handleCategoryChange","model","value","selectedCategory","callback","$$v","expression","_l","categories","cat","key","id","name","handleSortChange","selectedSort","_e","type","_v","searchKeyword","_s","find","label","totalProducts","visibleProducts","product","index","$event","goToDetail","directives","rawName","headimg","title","price","market_price","sales_number","length","currentPage","pageSize","handleSizeChange","handleCurrentChange","staticRenderFns","data","keyword","computed","mapGetters","currentOffset","watch","getSearchText","newVal","oldVal","fetchProducts","created","$route","query","getTagList","beforeDestroy","$store","commit","methods","post","pid","VUE_APP_GLOBAL_TAGS","side_all","then","res","pc_all","routeId","matchedCategory","console","log","params","tag_id","offset","limit","parseSortParams","response","list","Number","total","sortField","order","split","sortMap","sales","sort","event","val","window","scrollTo","$router","push","component"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/934.c3cb9093.js b/dist/js/934.c3cb9093.js deleted file mode 100644 index a0e1594..0000000 --- a/dist/js/934.c3cb9093.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkshiweisuzhou"]=self["webpackChunkshiweisuzhou"]||[]).push([[934],{2934:function(t,s,i){i.r(s),i.d(s,{default:function(){return h}});var a=function(){var t=this,s=t._self._c;return s("div",{staticClass:"bg"},[s("HomeLayout",{attrs:{topBanner:t.topBanner,tagList:t.tagList}}),s("div",{staticClass:"product-box"},[s("h2",[t._v("今日推荐")]),s("ProductList",{attrs:{products:t.prouctList[0].list}})],1),s("div",{staticClass:"product-box"},[s("h2",[t._v("热销排行")]),s("ProductList",{attrs:{products:t.prouctList[1].list}})],1),s("div",{staticClass:"product-box"},[s("h2",[t._v("新品上市")]),s("ProductList",{attrs:{products:t.prouctList[2].list}})],1)],1)},e=[],r=(i(8111),i(1701),function(){var t=this,s=t._self._c;return s("div",{staticClass:"home-layout-container"},[s("div",{staticClass:"left-nav"},[s("ul",{staticClass:"nav-list"},t._l(t.tagList,function(i){return s("router-link",{key:i.id,staticClass:"nav-item",attrs:{to:"/productList?id="+i.id,tag:"li"}},[s("img",{attrs:{src:t.util.showImg(i.image),alt:""}}),t._v(t._s(i.name)+" ")])}),1)]),s("div",{staticClass:"main-content"},[s("el-carousel",{staticStyle:{height:"100%"}},t._l(t.topBanner,function(t){return s("el-carousel-item",{key:t.id},[s("img",{staticClass:"carousel-img",attrs:{src:t.head_img}})])}),1)],1),s("div",{staticClass:"right-info"},[t.$store.getters.isUserLogin?s("div",{staticClass:"avatar-container"},[s("img",{staticClass:"user-avatar",attrs:{src:t.$store.getters.getUserInfo.avatar,alt:"用户头像"}}),s("div",{staticClass:"welcome-text"},[t._v("Hi-欢迎您")])]):t._e(),t._e(),s("div",{staticClass:"func-icons"},[s("router-link",{staticClass:"icon-item",attrs:{to:"/User/UserCenter"}},[s("i",{staticClass:"icon el-icon-user"}),s("span",[t._v("个人中心")])]),s("router-link",{staticClass:"icon-item",attrs:{to:"/User/OrderList"}},[s("i",{staticClass:"icon el-icon-goods"}),s("span",[t._v("我的订单")])]),s("router-link",{staticClass:"icon-item",attrs:{to:"/User/CommentManage"}},[s("i",{staticClass:"icon el-icon-star-off"}),s("span",[t._v("评价管理")])]),s("router-link",{staticClass:"icon-item",attrs:{to:"/NoticeList"}},[s("i",{staticClass:"icon el-icon-pie-chart"}),s("span",[t._v("公告中心")])])],1),s("router-link",{staticClass:"announcement",attrs:{to:"/NoticeDetail?type=notice&id="+t.notice.id}},[s("el-tag",{attrs:{type:"danger",size:"mini"}},[t._v("公告")]),s("span",{staticClass:"text-overflowRows"},[t._v(t._s(t.notice.title))])],1)],1)])}),c=[],o={name:"HomeLayout",data(){return{notice:""}},props:{topBanner:{type:Array,default:()=>[]},tagList:{type:Array,default:()=>[]}},mounted(){this.post({},"/api/anncmnt/getLatest").then(t=>{this.notice=t.data})}},n=o,l=i(845),d=(0,l.A)(n,r,c,!1,null,"185af175",null),p=d.exports,u=i(8977),g={components:{HomeLayout:p,ProductList:u.A},data(){return{topBanner:[],tagList:[],prouctList:[{id:this.VUE_APP_GLOBAL_TAGS.pc_index_recommend,title:"今日推荐",list:[]},{id:this.VUE_APP_GLOBAL_TAGS.pc_index_hot,title:"热销排行",list:[]},{id:this.VUE_APP_GLOBAL_TAGS.pc_index_new,title:"新品上市",list:[]}],newProducts:[{id:7,name:"高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪高清投影仪",price:3299,originalPrice:3699,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:156,categoryId:1},{id:8,name:"保湿面霜",price:299,originalPrice:359,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:423,categoryId:4},{id:9,name:"有机水果礼盒",price:159,originalPrice:199,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:287,categoryId:5},{id:10,name:"经典文学名著",price:129,originalPrice:199,image:"https://static.ticket.sz-trip.com/jundaosuzhou/images/scenicType/topImg.png",sales:342,categoryId:6}]}},created(){this.getTopBanner(),this.getTags(),this.getProductList()},methods:{getTopBanner(){this.post({type_id:6,position:0},"/api/adv/getAdv").then(t=>{t&&(this.topBanner=t.data)})},getTags(){this.post({pid:this.VUE_APP_GLOBAL_TAGS.side_all},"/api/product/tag_list").then(t=>{this.tagList=t.data,this.tagList[0].id=this.VUE_APP_GLOBAL_TAGS.pc_all})},getProductList(){this.prouctList.map(t=>{this.post({tag_id:t.id,offset:0,limit:4},"/api/product/get_product_by_tag").then(s=>{t.list=s.data.list})})}}},m=g,_=(0,l.A)(m,a,e,!1,null,"6fb8cf7d",null),h=_.exports},8977:function(t,s,i){i.d(s,{A:function(){return l}});var a=function(){var t=this,s=t._self._c;return s("div",{staticClass:"product-list"},[s("div",{staticClass:"product-grid"},t._l(t.products,function(i){return s("router-link",{key:i.id,staticClass:"product-card",attrs:{to:`/Detail/${i.id}`}},[s("div",{staticClass:"product-img"},[s("img",{directives:[{name:"lazy",rawName:"v-lazy",value:i.headimg,expression:"product.headimg"}],staticClass:"product-pic",attrs:{alt:i.title}})]),s("div",{staticClass:"product-info"},[s("div",{staticClass:"flex-between"},[s("div",{staticClass:"product-price"},[s("span",{staticClass:"current-price"},[t._v("¥"+t._s(i.price/100))]),i.market_price?s("span",{staticClass:"original-price"},[t._v("¥"+t._s(i.market_price/100))]):t._e()]),i.sales?s("div",{staticClass:"product-sales"},[s("span",[t._v("已售 "+t._s(i.sales_number)+" 件")])]):t._e()]),s("h3",{staticClass:"product-name"},[s("router-link",{attrs:{to:`/Detail/${i.id}`}},[t._v(" "+t._s(i.title)+" ")])],1),s("div",{staticClass:"product-actions"},[s("el-button",{staticStyle:{"background-color":"#6a8a27",border:"none"},attrs:{type:"primary",size:"small"}},[s("el-icon",{attrs:{name:"el-icon-shopping-cart"}}),t._v(" 立即购买 ")],1)],1)])])}),1),0===t.products.length?s("div",{staticClass:"no-products"},[s("el-empty",{attrs:{description:"暂无相关商品"}})],1):t._e()])},e=[],r={name:"ProductList",props:{products:{type:Array,default:()=>[]}},methods:{}},c=r,o=i(845),n=(0,o.A)(c,a,e,!1,null,"71ee3626",null),l=n.exports}}]); -//# sourceMappingURL=934.c3cb9093.js.map \ No newline at end of file diff --git a/dist/js/934.c3cb9093.js.map b/dist/js/934.c3cb9093.js.map deleted file mode 100644 index 1bb05a4..0000000 --- a/dist/js/934.c3cb9093.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/934.c3cb9093.js","mappings":"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","sources":["webpack://shiweisuzhou/./src/views/Index.vue","webpack://shiweisuzhou/./src/components/layout/HomeLayout.vue","webpack://shiweisuzhou/src/components/layout/HomeLayout.vue","webpack://shiweisuzhou/./src/components/layout/HomeLayout.vue?030d","webpack://shiweisuzhou/./src/components/layout/HomeLayout.vue?d86f","webpack://shiweisuzhou/src/views/Index.vue","webpack://shiweisuzhou/./src/views/Index.vue?ac36","webpack://shiweisuzhou/./src/views/Index.vue?f8a7","webpack://shiweisuzhou/./src/components/product/ProductList.vue","webpack://shiweisuzhou/src/components/product/ProductList.vue","webpack://shiweisuzhou/./src/components/product/ProductList.vue?9721","webpack://shiweisuzhou/./src/components/product/ProductList.vue?97f4"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bg\"},[_c('HomeLayout',{attrs:{\"topBanner\":_vm.topBanner,\"tagList\":_vm.tagList}}),_c('div',{staticClass:\"product-box\"},[_c('h2',[_vm._v(\"今日推荐\")]),_c('ProductList',{attrs:{\"products\":_vm.prouctList[0].list}})],1),_c('div',{staticClass:\"product-box\"},[_c('h2',[_vm._v(\"热销排行\")]),_c('ProductList',{attrs:{\"products\":_vm.prouctList[1].list}})],1),_c('div',{staticClass:\"product-box\"},[_c('h2',[_vm._v(\"新品上市\")]),_c('ProductList',{attrs:{\"products\":_vm.prouctList[2].list}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"home-layout-container\"},[_c('div',{staticClass:\"left-nav\"},[_c('ul',{staticClass:\"nav-list\"},_vm._l((_vm.tagList),function(item){return _c('router-link',{key:item.id,staticClass:\"nav-item\",attrs:{\"to\":'/productList?id=' + item.id,\"tag\":\"li\"}},[_c('img',{attrs:{\"src\":_vm.util.showImg(item.image),\"alt\":\"\"}}),_vm._v(_vm._s(item.name)+\" \")])}),1)]),_c('div',{staticClass:\"main-content\"},[_c('el-carousel',{staticStyle:{\"height\":\"100%\"}},_vm._l((_vm.topBanner),function(item){return _c('el-carousel-item',{key:item.id},[_c('img',{staticClass:\"carousel-img\",attrs:{\"src\":item.head_img}})])}),1)],1),_c('div',{staticClass:\"right-info\"},[(_vm.$store.getters.isUserLogin)?_c('div',{staticClass:\"avatar-container\"},[_c('img',{staticClass:\"user-avatar\",attrs:{\"src\":_vm.$store.getters.getUserInfo.avatar,\"alt\":\"用户头像\"}}),_c('div',{staticClass:\"welcome-text\"},[_vm._v(\"Hi-欢迎您\")])]):_vm._e(),(false)?_c('div',{staticClass:\"btn-group\"},[_c('el-button',{attrs:{\"type\":\"danger\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.gotoPath('/Login')}}},[_vm._v(\"登录\")]),_c('el-button',{attrs:{\"type\":\"warning\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.gotoPath('/Register')}}},[_vm._v(\"注册\")]),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\"}},[_vm._v(\"客服\")])],1):_vm._e(),_c('div',{staticClass:\"func-icons\"},[_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/User/UserCenter\"}},[_c('i',{staticClass:\"icon el-icon-user\"}),_c('span',[_vm._v(\"个人中心\")])]),_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/User/OrderList\"}},[_c('i',{staticClass:\"icon el-icon-goods\"}),_c('span',[_vm._v(\"我的订单\")])]),_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/User/CommentManage\"}},[_c('i',{staticClass:\"icon el-icon-star-off\"}),_c('span',[_vm._v(\"评价管理\")])]),_c('router-link',{staticClass:\"icon-item\",attrs:{\"to\":\"/NoticeList\"}},[_c('i',{staticClass:\"icon el-icon-pie-chart\"}),_c('span',[_vm._v(\"公告中心\")])])],1),_c('router-link',{staticClass:\"announcement\",attrs:{\"to\":'/NoticeDetail?type=notice&id='+_vm.notice.id}},[_c('el-tag',{attrs:{\"type\":\"danger\",\"size\":\"mini\"}},[_vm._v(\"公告\")]),_c('span',{staticClass:\"text-overflowRows\"},[_vm._v(_vm._s(_vm.notice.title))])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n ","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeLayout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeLayout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HomeLayout.vue?vue&type=template&id=185af175&scoped=true\"\nimport script from \"./HomeLayout.vue?vue&type=script&lang=js\"\nexport * from \"./HomeLayout.vue?vue&type=script&lang=js\"\nimport style0 from \"./HomeLayout.vue?vue&type=style&index=0&id=185af175&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"185af175\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=6fb8cf7d&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=6fb8cf7d&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fb8cf7d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-list\"},[_c('div',{staticClass:\"product-grid\"},_vm._l((_vm.products),function(product){return _c('router-link',{key:product.id,staticClass:\"product-card\",attrs:{\"to\":`/Detail/${product.id}`}},[_c('div',{staticClass:\"product-img\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(product.headimg),expression:\"product.headimg\"}],staticClass:\"product-pic\",attrs:{\"alt\":product.title}})]),_c('div',{staticClass:\"product-info\"},[_c('div',{staticClass:\"flex-between\"},[_c('div',{staticClass:\"product-price\"},[_c('span',{staticClass:\"current-price\"},[_vm._v(\"¥\"+_vm._s(product.price / 100))]),(product.market_price)?_c('span',{staticClass:\"original-price\"},[_vm._v(\"¥\"+_vm._s(product.market_price / 100))]):_vm._e()]),(product.sales)?_c('div',{staticClass:\"product-sales\"},[_c('span',[_vm._v(\"已售 \"+_vm._s(product.sales_number)+\" 件\")])]):_vm._e()]),_c('h3',{staticClass:\"product-name\"},[_c('router-link',{attrs:{\"to\":`/Detail/${product.id}`}},[_vm._v(\" \"+_vm._s(product.title)+\" \")])],1),_c('div',{staticClass:\"product-actions\"},[_c('el-button',{staticStyle:{\"background-color\":\"#6a8a27\",\"border\":\"none\"},attrs:{\"type\":\"primary\",\"size\":\"small\"}},[_c('el-icon',{attrs:{\"name\":\"el-icon-shopping-cart\"}}),_vm._v(\" 立即购买 \")],1)],1)])])}),1),(_vm.products.length === 0)?_c('div',{staticClass:\"no-products\"},[_c('el-empty',{attrs:{\"description\":\"暂无相关商品\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductList.vue?vue&type=template&id=71ee3626&scoped=true\"\nimport script from \"./ProductList.vue?vue&type=script&lang=js\"\nexport * from \"./ProductList.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductList.vue?vue&type=style&index=0&id=71ee3626&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71ee3626\",\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","staticClass","attrs","topBanner","tagList","_v","prouctList","list","staticRenderFns","_l","item","key","id","util","showImg","image","_s","name","staticStyle","head_img","$store","getters","isUserLogin","getUserInfo","avatar","_e","notice","title","data","props","type","Array","default","mounted","post","then","res","component","components","HomeLayout","ProductList","VUE_APP_GLOBAL_TAGS","pc_index_recommend","pc_index_hot","pc_index_new","newProducts","price","originalPrice","sales","categoryId","created","getTopBanner","getTags","getProductList","methods","type_id","position","pid","side_all","pc_all","map","i","tag_id","offset","limit","products","product","directives","rawName","value","headimg","expression","market_price","sales_number","length"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/app.0b4d0b5a.js b/dist/js/app.0b4d0b5a.js new file mode 100644 index 0000000..829a225 --- /dev/null +++ b/dist/js/app.0b4d0b5a.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={3153:function(e,t,n){e.exports=n.p+"img/logo.bb511aff.png"},5129:function(e,t,n){var o=n(6674),a=n(3518),r=n(5131);o["default"].use(a.Ay),t.A=new a.Ay.Store({plugins:[(0,r.A)({storage:window.localStorage,reducer(e){return{cart:e.cart,user:e.user}}})],state:{cart:{items:[],totalCount:0,totalPrice:0},user:{isLogin:!1,info:null,token:""},categories:[],loading:!1,searchText:"",orderData:null},mutations:{setOrderData(e,t){e.orderData=t},clearOrderData(e){e.orderData=null},UPDATE_CATEGORIES(e,t){e.categories=t},UPDATE_LOADING(e,t){e.loading=t},USER_LOGIN(e,{userInfo:t,token:n}){e.user.isLogin=!0,e.user.info=t,e.user.token=n,localStorage.setItem("token",n)},USER_LOGOUT(e){e.user.isLogin=!1,e.user.info=null,e.user.token="",localStorage.removeItem("token"),e.cart.totalCount=0},UPDATE_CART_TOTAL_COUNT(e,t){e.cart.totalCount=t},setSearchText(e,t){e.searchText=t}},actions:{submitOrderData({commit:e},t){e("setOrderData",t)},fetchCategories({commit:e}){return e("UPDATE_LOADING",!0),new Promise(t=>{setTimeout(()=>{const n=[{id:1,name:"电子产品",icon:"el-icon-laptop"},{id:2,name:"服装鞋帽",icon:"el-icon-shopping-bag-1"},{id:3,name:"家居用品",icon:"el-icon-home"},{id:4,name:"美妆个护",icon:"el-icon-present"},{id:5,name:"食品饮料",icon:"el-icon-dish"},{id:6,name:"图书音像",icon:"el-icon-document"}];e("UPDATE_CATEGORIES",n),e("UPDATE_LOADING",!1),t(n)},500)})},login({commit:e,dispatch:t},{userInfo:n,token:o}){e("USER_LOGIN",{userInfo:n,token:o}),t("fetchCartCount")},logout({commit:e}){e("USER_LOGOUT")},addToCart({dispatch:e},t){return o["default"].prototype.post({sku_id:t.id,num:t.quantity||1},"/api/cart/add_sku").then(t=>{if(t)return o["default"].prototype.$message.success("购物车添加成功!"),e("fetchCartCount")}).catch(e=>{throw console.error("添加到购物车请求失败",e),e})},fetchCartCount({commit:e,state:t}){return t.user.token?o["default"].prototype.post({},"/api/cart/get_count").then(t=>(console.log("购物车数量接口返回",t),1==t.code&&e("UPDATE_CART_TOTAL_COUNT",t.data),t.data)).catch(e=>{throw console.error("获取购物车数量失败",e),e}):(e("UPDATE_CART_TOTAL_COUNT",0),Promise.resolve(0))},removeFromCart({dispatch:e},t){return o["default"].prototype.post({sku_id:t},"/api/cart/remove_sku").then(()=>e("fetchCartCount")).catch(e=>{throw console.error("删除购物车商品失败",e),e})},updateCartItemQuantity({dispatch:e},{productId:t,quantity:n}){return o["default"].prototype.post({sku_id:t,num:n},"/api/cart/add_sku").then(()=>e("fetchCartCount")).catch(e=>{throw console.error("更新购物车商品数量失败",e),e})},clearCart({dispatch:e}){return o["default"].prototype.post({},"/api/cart/clear").then(()=>e("fetchCartCount")).catch(e=>{throw console.error("清空购物车失败",e),e})}},getters:{getOrderData:e=>e.orderData,getCategories:e=>e.categories,getCart:e=>e.cart,getCartTotalCount:e=>e.cart.totalCount,isUserLogin:e=>e.user.isLogin,getUserInfo:e=>e.user.info,getLoadingStatus:e=>e.loading,getSearchText:e=>e.searchText}})},6477:function(e,t,n){n(4114);var o=n(6674),a=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"app"}},["Register"!==e.$route.name?t("HeaderNav"):e._e(),"Login"!==e.$route.name?t("main",{staticClass:"main-container"},[t("router-view")],1):e._e(),"Login"==e.$route.name?t("main",{staticClass:"main-containers"},[t("router-view")],1):e._e(),"Register"!==e.$route.name?t("Sidebar"):e._e(),"Register"!==e.$route.name?t("Footer"):e._e()],1)},r=[],i=function(){var e=this,t=e._self._c;return t("header",{staticClass:"header-nav"},[t("div",{staticClass:"top-notice"},[t("div",{staticClass:"container"},[t("p",[e._v(" 欢迎来到时味苏州平台! "),e._e()],1),t("div",{staticClass:"top-links"},[e.isLogin?t("router-link",{staticClass:"user-link",attrs:{to:"/User"}},[t("img",{directives:[{name:"lazy",rawName:"v-lazy",value:e.userInfo.avatar,expression:"userInfo.avatar"}],staticClass:"avatar",attrs:{alt:"用户头像"}}),e._v(" "+e._s(e.userInfo.username)+" ")]):t("router-link",{attrs:{to:"/Login"}},[e._v("登录")]),e._e(),e._e(),t("router-link",{attrs:{to:"/User"}},[e._v("采购人中心")]),t("router-link",{staticClass:"cart-link",attrs:{to:"/User/ShoppingCart"}},[e._v(" 购物车"),e.cartTotalCount>0?t("span",[e._v("("+e._s(e.cartTotalCount)+"件)")]):e._e()]),e.isLogin?t("router-link",{attrs:{to:"/User/OrderList"}},[e._v("我的订单")]):e._e(),e.isLogin?t("div",{staticClass:"logout-btn",on:{click:e.handleLogout}},[e._v(" 退出 ")]):e._e()],1)])]),t("div",{staticClass:"main-nav"},[t("div",{staticClass:"container"},[t("div",{staticClass:"logo"},[t("router-link",{attrs:{to:"/"}},[t("img",{staticClass:"logo-img",attrs:{src:"https://static.ticket.sz-trip.com/shiweisuzhou/pc/logo.png",alt:"logo"},on:{click:function(t){e.searchText=""}}})])],1),t("div",{staticClass:"search-box"},[t("el-input",{staticClass:"search-input",attrs:{placeholder:"请输入搜索内容"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleSearch.apply(null,arguments)}},model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}},[t("el-button",{attrs:{slot:"append",icon:"el-icon-search"},on:{click:e.handleSearch},slot:"append"})],1),e.hotList.length>0?t("div",{staticClass:"hot-tags"},[t("span",[e._v("热门搜索:")]),e._l(e.hotList,function(n,o){return t("div",{key:o,staticClass:"hot-tag",on:{click:function(t){e.searchText=n.name,e.handleSearch()}}},[e._v(" "+e._s(n.name)+" ")])})],2):e._e()],1),t("div",{staticClass:"phone-entry"},[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("img",{staticStyle:{"margin-right":"5px"},attrs:{src:"https://static.ticket.sz-trip.com/shiweisuzhou/pc/login/phone.png",alt:"联系电话"}}),t("span",[e._v("0512-80822586")]),(e.cartTotalCount,e._e())])])])]),e.categories.length>0?t("div",{staticClass:"category-nav"},[t("div",{staticClass:"container"},[e._e()])]):e._e()])},s=[],c=n(3518),l={name:"HeaderNav",data(){return{searchText:"",hotList:[]}},computed:{...(0,c.L8)(["getCategories","getCartTotalCount","isUserLogin","getUserInfo"]),categories(){return this.getCategories||[]},cartTotalCount(){return this.getCartTotalCount||0},isLogin(){return this.isUserLogin},userInfo(){return this.getUserInfo||{}}},created(){this.fetchCategories(),this.post({offset:0,limit:5},"/api/search/hot").then(e=>{this.hotList=e.data})},methods:{...(0,c.i0)(["fetchCategories","logout"]),handleSearch(){this.searchText.trim()&&(this.$store.commit("setSearchText",this.searchText),"/ProductList"===this.$route.path||this.$router.push({path:"/ProductList",query:{keyword:this.searchText,type:"search"}}))},handleLogout(){this.$confirm("确定要退出登录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.logout().then(()=>{this.$message.success("退出登录成功"),localStorage.setItem("redirectPath",this.$route.path),this.$router.push("/Login")}).catch(e=>{this.$message.error("退出失败:"+(e.message||"未知错误"))})}).catch(()=>{})}}},u=l,d=n(845),p=(0,d.A)(u,i,s,!1,null,"00f3c839",null),h=p.exports,m=function(){var e=this,t=e._self._c;return t("div",{staticClass:"footer-container"},[t("div",{staticClass:"footer-top"},[e._l(e.nonQrcodeColumns,function(n,o){return t("div",{key:n.id,staticClass:"footer-column"},[t("h3",[e._v(e._s(n.title))]),t("ul",e._l(n.list,function(n,a){return t("li",{key:a,style:{cursor:o<4?"pointer":""},on:{click:function(t){o<4&&e.gotoDetail(n)}}},[e._v(" "+e._s(n.title)+" ")])}),0)])}),t("div",{staticClass:"qrcode-group"},e._l(e.qrcodeColumn.list,function(n,o){return t("div",{key:o,staticClass:"qrcode-item"},[t("img",{staticStyle:{width:"100px",height:"100px"},attrs:{src:e.util.showImg(n.image)}}),t("p",[e._v(e._s(n.title))])])}),0)],2),e._m(0)])},f=[function(){var e=this,t=e._self._c;return t("div",{staticClass:"footer-bottom"},[t("p",[e._v("版权所有 苏州市特色农产品发展有限公司 | 苏ICP备2023023300号-1")]),t("p",[e._v("本网站由 江苏大运远见文化科技发展有限公司 运营维护")])])}],g=(n(8111),n(2489),n(116),n(7588),{name:"Footer",data(){return{list:[{id:1,title:"关于我们",list:[]},{id:2,title:"新手上路",list:[]},{id:5,title:"交易流程",list:[]},{id:3,title:"常见问题",list:[]},{id:6,title:"联系方式",list:[]},{id:4,title:"二维码推荐",list:[]}]}},computed:{nonQrcodeColumns(){return this.list.filter(e=>"二维码推荐"!==e.title)},qrcodeColumn(){return this.list.find(e=>"二维码推荐"===e.title)||{list:[]}}},mounted(){this.list.forEach(e=>{this.get({type_id:e.id},"/api/navigation/getNavigationByTypeList").then(t=>{e.list=t.data})})},methods:{gotoDetail(e){e.link_url?window.location.href=e.link_url:this.$router.push(`/NoticeDetail?type=footer&id=${e.id}`)}}}),v=g,b=(0,d.A)(v,m,f,!1,null,"3080ae3e",null),C=b.exports,y=function(){var e=this,t=e._self._c;return t("div",{staticClass:"sidebar-container"},[t("div",{staticClass:"sidebar-item",on:{click:e.handleCartClick}},[t("el-badge",{staticClass:"item-badge",attrs:{value:e.$store.getters.getCartTotalCount}},[t("i",{staticClass:"el-icon-shopping-cart-full"})]),t("div",{staticClass:"item-text"},[e._v("购物车")])],1),t("div",{staticClass:"sidebar-item",on:{click:e.handleServiceClick}},[t("i",{staticClass:"el-icon-headset"}),t("div",{staticClass:"item-text"},[e._v("在线客服")])]),t("div",{staticClass:"sidebar-item back-to-top",class:{active:e.isShowBackTop},on:{click:e.handleBackToTop}},[t("i",{staticClass:"el-icon-caret-top"}),t("div",{staticClass:"item-text"},[e._v("回到顶部")])])])},_=[],k=n(5129),T={name:"Sidebar",data(){return{cartCount:0,isShowBackTop:!1,scrollTimer:null}},computed:{...(0,c.L8)(["getCartTotalCount"])},mounted(){window.addEventListener("scroll",this.handleScroll),this.$store.dispatch("fetchCartCount")},beforeDestroy(){window.removeEventListener("scroll",this.handleScroll),this.scrollTimer&&clearTimeout(this.scrollTimer)},methods:{handleCartClick(){this.$router.push("/User/ShoppingCart")},handleServiceClick(){const e=k.A.state.user?.info?.token||"";window.location.href="https://api.sutenong.com/kefu?token="+e},handleBackToTop(){window.scrollTo({top:0,behavior:"smooth"})},handleScroll(){this.scrollTimer&&clearTimeout(this.scrollTimer),this.scrollTimer=setTimeout(()=>{this.isShowBackTop=window.pageYOffset>300},200)}}},w=T,A=(0,d.A)(w,y,_,!1,null,"6df28cc6",null),L=A.exports,x=function(){var e=this,t=e._self._c;return e.showBackToTop?t("div",{staticClass:"back-to-top",on:{click:e.scrollToTop}},[t("el-icon",{attrs:{name:"el-icon-arrow-up"}})],1):e._e()},O=[],S={name:"BackToTop",data(){return{showBackToTop:!1}},mounted(){window.addEventListener("scroll",this.handleScroll)},beforeDestroy(){window.removeEventListener("scroll",this.handleScroll)},methods:{handleScroll(){this.showBackToTop=window.pageYOffset>500},scrollToTop(){const e=window.setInterval(()=>{const t=window.pageYOffset;t>0?window.scrollTo(0,t-Math.max(20,t/10)):window.clearInterval(e)},16)}}},U=S,P=(0,d.A)(U,x,O,!1,null,"7ea6dee0",null),E=P.exports,I={name:"App",components:{HeaderNav:h,Footer:C,BackToTop:E,Sidebar:L},computed:{...(0,c.L8)(["getLoadingStatus"]),loading(){return this.getLoadingStatus}}},B=I,D=(0,d.A)(B,a,r,!1,null,null,null),$=D.exports,R=n(6178);o["default"].use(R.Ay);const N=R.Ay.prototype.push;R.Ay.prototype.push=function(e){return N.call(this,e).catch(e=>{if("NavigationDuplicated"!==e.name)throw e})};const z=new R.Ay({mode:"history",base:"/",routes:[{path:"/",name:"Index",meta:{title:"首页 - 精品商城",keepAlive:!1},component:()=>n.e(83).then(n.bind(n,7083))},{path:"/Login",name:"Login",meta:{title:"登录 - 精品商城",keepAlive:!1},component:()=>n.e(992).then(n.bind(n,3992))},{path:"/Register",name:"Register",meta:{title:"注册 - 精品商城",keepAlive:!1},component:()=>n.e(632).then(n.bind(n,2632))},{path:"/Home",name:"Home",meta:{title:"首页 - 精品商城",keepAlive:!1},component:()=>n.e(339).then(n.bind(n,9339))},{path:"/Detail/:id",name:"Detail",meta:{title:"首页 - 精品商城",keepAlive:!1},component:()=>n.e(707).then(n.bind(n,3707))},{path:"/ProductList",name:"ProductList",meta:{title:"商品列表",keepAlive:!1},component:()=>n.e(512).then(n.bind(n,2512))},{path:"/ProductReview",name:"ProductReview",meta:{title:"商品评价",keepAlive:!1},component:()=>n.e(905).then(n.bind(n,2905))},{path:"/NoticeList",name:"NoticeList",meta:{title:"公告列表",keepAlive:!1},component:()=>n.e(705).then(n.bind(n,6705))},{path:"/NoticeDetail",name:"NoticeDetail",meta:{title:"公告详情",keepAlive:!1},component:()=>n.e(133).then(n.bind(n,7133))},{path:"/User",name:"User",component:()=>n.e(809).then(n.bind(n,809)),redirect:"/User/UserCenter",children:[{path:"UserCenter",name:"UserCenter",component:()=>n.e(168).then(n.bind(n,4168))},{path:"OrderList",name:"OrderList",meta:{title:"我的订单 - 精品商城",keepAlive:!1},component:()=>n.e(140).then(n.bind(n,9759))},{path:"UserInfo",name:"UserInfo",meta:{title:"个人信息 - 精品商城",keepAlive:!1},component:()=>n.e(667).then(n.bind(n,5667))},{path:"ViewHistory",name:"ViewHistory",meta:{title:"我的足迹 - 精品商城",keepAlive:!1},component:()=>n.e(933).then(n.bind(n,1933))},{path:"UserAddress",name:"UserAddress",meta:{title:"我的收货地址 - 精品商城",keepAlive:!1},component:()=>n.e(597).then(n.bind(n,597))},{path:"UserInvoice",name:"UserInvoice",meta:{title:"发票抬头 - 精品商城",keepAlive:!1},component:()=>n.e(788).then(n.bind(n,9788))},{path:"UserInvoiceList",name:"UserInvoiceList",meta:{title:"我的发票 - 精品商城",keepAlive:!1},component:()=>n.e(576).then(n.bind(n,5576))},{path:"ShoppingCart",name:"ShoppingCart",meta:{title:"购物车 - 精品商城",keepAlive:!1},component:()=>n.e(145).then(n.bind(n,4145))},{path:"CommentManage",name:"CommentManage",meta:{title:"评价管理 - 精品商城",keepAlive:!1},component:()=>n.e(754).then(n.bind(n,3754))},{path:"ContractList",name:"ContractList",meta:{title:"合同管理 - 精品商城",keepAlive:!1},component:()=>n.e(420).then(n.bind(n,7420))},{path:"MessageList",name:"MessageList",meta:{title:"消息中心 - 精品商城",keepAlive:!1},component:()=>n.e(47).then(n.bind(n,3047))},{path:"PurchaserAdd",name:"PurchaserAdd",meta:{title:"添加采购单位信息 - 精品商城",keepAlive:!1},component:()=>n.e(878).then(n.bind(n,6878))}]},{path:"/Order",name:"Order",meta:{title:"下单",keepAlive:!1},component:()=>n.e(828).then(n.bind(n,8828))},{path:"/OrderDetail",name:"OrderDetail",meta:{title:"订单详情 - 精品商城",keepAlive:!1},component:()=>n.e(528).then(n.bind(n,2528))},{path:"/OrderPay",name:"OrderPay",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(241).then(n.bind(n,4241))},{path:"/OrderPayB2B",name:"OrderPayB2B",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(395).then(n.bind(n,8776))},{path:"/OrderPayCode",name:"OrderPayCode",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(154).then(n.bind(n,9154))},{path:"/OrderPaySuccess",name:"OrderPaySuccess",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(359).then(n.bind(n,5359))}],scrollBehavior(e,t,n){return{x:0,y:0}}});z.beforeEach((e,t,n)=>{if(e.meta.title&&(document.title=e.meta.title),e.meta.requireAuth){const t=k.A.state.user?.info?.token||"";t?n():n({path:"/Login",query:{redirect:e.fullPath}})}else n()});var j=z,q=n(9143),G=n.n(q),M=n(5847),V=n(4373);const F=V.A.create({timeout:6e3});F.interceptors.request.use(e=>{const{customBaseURL:t}=e.params||e.data||{};t?(e.baseURL=t,e.params?delete e.params.customBaseURL:e.data&&delete e.data.customBaseURL):e.baseURL="https://api.sutenong.com";const n=k.A.state.user?.info?.token||"";return e.headers["token"]=n||"",e.headers["Content-Type"]="application/json;charset=UTF-8","get"===e.method?.toLowerCase()?e.params={platform_type:2,...e.params}:e.data={platform_type:2,...e.data},!1!==e.loading&&(e.loadingInstance=q.Loading.service({lock:!0,text:"加载中...",background:"rgba(0, 0, 0, 0.7)"})),e},e=>Promise.reject(e)),F.interceptors.response.use(e=>{if(e.config.loadingInstance&&e.config.loadingInstance.close(),200!==e.status&&1!==e.status){const t=`请求失败,状态码:${e.status}`;return q.MessageBox.alert(t,"错误提示",{confirmButtonText:"确定",type:"error"}),Promise.reject(new Error(t))}{const t=e.data;if(1===t.code||200===t.code)return t;{const e=t.msg||`业务处理失败,错误码:${t.code}`;q.MessageBox.alert(e,"错误提示",{confirmButtonText:"确定",type:"error"}).then(()=>{if(401===t.code){const e=j.currentRoute.fullPath;"/Login"!==e&&localStorage.setItem("redirectPath",e),j.push("/Login")}}).catch(()=>{})}}},e=>{if(e.config&&e.config.loadingInstance&&e.config.loadingInstance.close(),e.response&&e.response.status)switch(e.response.status){case 401:q.MessageBox.confirm("请登录后操作","提示",{confirmButtonText:"去登录",cancelButtonText:"取消",type:"warning"}).then(()=>{j.push("/Login")}).catch(()=>{});break;case 404:(0,q.Message)({message:"网络繁忙,请刷新再试",type:"error",duration:2e3});break;default:(0,q.Message)({message:"网络繁忙,请刷新再试",type:"error",duration:2e3});break}return Promise.reject(e)}),o["default"].prototype.get=(e,t,n=!1)=>new Promise((o,a)=>{F.get(t,{params:e,loading:n}).then(e=>{o(e)}).catch(e=>{a(e)})}),o["default"].prototype.post=(e,t,n=!1)=>new Promise((o,a)=>{F.post(t,e,{loading:n}).then(e=>{o(e)}).catch(e=>{a(e)})});var H={install(e){e.prototype.util={formateRichText(e){if(!e)return"";var t=new RegExp("'),t=new RegExp("section","g"),e=e.replace(t,"div"),t=new RegExp("↵","g"),e=e.replace(t,"
"),e=e.replace(/{t.onload=()=>{e(t.result)}})},copyId(t){const n=document.createElement("input");n.value=t,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),e.prototype.$message({message:"复制成功",type:"success"})}}}};o["default"].use(H),o["default"].config.productionTip=!1,o["default"].use(G());let Z="production";console.log(Z),o["default"].prototype.VUE_APP_GLOBAL_TAGS={pc_all:675,side_all:701,all_prod:676,pc_index_recommend:683,pc_index_hot:684,pc_index_new:685},"development"===Z&&(o["default"].prototype.VUE_APP_GLOBAL_TAGS={pc_all:662,all_prod:663,pc_index_recommend:670,pc_index_hot:671,pc_index_new:672}),o["default"].use(M.A,{preLoad:1.3,error:n(3153),loading:n(3153),attempt:3,listenEvents:["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],adapter:{loaded({bindType:e,el:t,naturalHeight:n,naturalWidth:o,$parent:a,src:r,loading:i,error:s,Init:c}){console.log("图片加载完成:",r)},error({bindType:e,el:t,error:n,$parent:o,src:a,loading:r}){console.log("图片加载失败:",a)}}}),o["default"].prototype.gotoPath=function(e,t={}){const n=this.$router.currentRoute.fullPath;if(e!==n)try{"string"===typeof e?this.$router.push({path:e,query:t.query||{}}):"object"===typeof e&&this.$router.push(e),"function"===typeof t.success&&t.success()}catch(o){console.error("路由跳转失败:",o),"function"===typeof t.fail&&t.fail(o)}},new o["default"]({el:"#app",router:j,store:k.A,components:{App:$},template:""})}},t={};function n(o){var a=t[o];if(void 0!==a)return a.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=e,function(){n.amdO={}}(),function(){var e=[];n.O=function(t,o,a,r){if(!o){var i=1/0;for(u=0;u=r)&&Object.keys(n.O).every(function(e){return n.O[e](o[c])})?o.splice(c--,1):(s=!1,r0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[o,a,r]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce(function(t,o){return n.f[o](e,t),t},[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{47:"91e22ff7",83:"4f3ee6fe",133:"635d95e6",140:"2a9e3041",145:"bdf9dbc6",154:"8a9d2cca",168:"791742aa",241:"17bc4b66",339:"793917b1",359:"9bec58e0",395:"bf4b57c0",420:"2ae90b4c",512:"f7e0fd2d",528:"f5163631",576:"59915dd8",597:"bc6f8420",632:"bc245760",667:"6a70b405",705:"c96616d8",707:"b7263128",754:"eb8a67d3",788:"c3e035d9",809:"6bde92a7",828:"6987a2ad",878:"ed5a6807",905:"e365cd50",933:"a1573a86",992:"12386cc8"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{47:"4c0b65d7",83:"e0b9b1ac",133:"f060a013",140:"703f0337",145:"e6d20e0d",154:"edd4b6a0",168:"8b344007",241:"51eebda5",339:"9419445b",359:"a7db186a",395:"42e712d8",420:"37d35775",512:"a445f3d6",528:"701f8f15",576:"b751536e",597:"268eb302",632:"2661f71c",667:"3189fded",705:"91c548ed",707:"ec7235c5",754:"fb749462",809:"5ae3b03a",828:"9b5bd9e0",878:"81403639",905:"b5e6f704",933:"5507be5a",992:"5f484165"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="shiweisuzhou:";n.l=function(o,a,r,i){if(e[o])e[o].push(a);else{var s,c;if(void 0!==r)for(var l=document.getElementsByTagName("script"),u=0;u {\n setTimeout(() => {\n const categories = [\n { id: 1, name: '电子产品', icon: 'el-icon-laptop' },\n { id: 2, name: '服装鞋帽', icon: 'el-icon-shopping-bag-1' },\n { id: 3, name: '家居用品', icon: 'el-icon-home' },\n { id: 4, name: '美妆个护', icon: 'el-icon-present' },\n { id: 5, name: '食品饮料', icon: 'el-icon-dish' },\n { id: 6, name: '图书音像', icon: 'el-icon-document' }\n ]\n commit('UPDATE_CATEGORIES', categories)\n commit('UPDATE_LOADING', false)\n resolve(categories)\n }, 500)\n })\n },\n\n // 用户登录\n login({ commit, dispatch }, { userInfo, token }) {\n // 先调用 mutation 更新登录状态\n commit('USER_LOGIN', { userInfo, token })\n // 登录成功后,调用获取购物车数量的 action\n dispatch('fetchCartCount')\n },\n \n // 用户登出\n logout({ commit }) {\n commit('USER_LOGOUT')\n },\n \n // 添加商品到购物车\n addToCart({ dispatch }, product) {\n // 调用接口,参数为商品id和数量\n return Vue.prototype.post(\n {\n sku_id: product.id,\n num: product.quantity || 1\n },\n \"/api/cart/add_sku\"\n ).then((res) => {\n if (res) {\n Vue.prototype.$message.success(\"购物车添加成功!\");\n // 添加成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }\n }).catch((err) => {\n console.error('添加到购物车请求失败', err);\n throw err\n });\n },\n\n // 获取购物车数量\n fetchCartCount({ commit, state }) {\n // 检查是否存在token,不存在则直接返回0\n if (!state.user.token) {\n commit('UPDATE_CART_TOTAL_COUNT', 0)\n return Promise.resolve(0)\n }\n return Vue.prototype.post(\n {},\n \"/api/cart/get_count\"\n ).then((res) => {\n console.log('购物车数量接口返回', res)\n if (res.code == 1) {\n commit('UPDATE_CART_TOTAL_COUNT', res.data)\n }\n return res.data\n }).catch((err) => {\n console.error('获取购物车数量失败', err)\n throw err\n });\n },\n \n // 从购物车移除商品\n removeFromCart({ dispatch }, productId) {\n // 调用删除接口\n return Vue.prototype.post(\n { sku_id: productId },\n \"/api/cart/remove_sku\"\n ).then(() => {\n // 删除成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }).catch(err => {\n console.error('删除购物车商品失败', err)\n throw err\n })\n },\n \n // 更新购物车商品数量\n updateCartItemQuantity({ dispatch }, { productId, quantity }) {\n // 调用更新数量接口\n return Vue.prototype.post(\n { \n sku_id: productId,\n num: quantity\n },\n \"/api/cart/add_sku\"\n ).then(() => {\n // 更新成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }).catch(err => {\n console.error('更新购物车商品数量失败', err)\n throw err\n })\n },\n \n // 清空购物车\n clearCart({ dispatch }) {\n // 调用清空接口\n return Vue.prototype.post(\n {},\n \"/api/cart/clear\"\n ).then(() => {\n // 清空成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }).catch(err => {\n console.error('清空购物车失败', err)\n throw err\n })\n }\n },\n getters: {\n // 获取订单数据\n getOrderData: state => state.orderData,\n\n // 获取分类列表\n getCategories: state => state.categories,\n \n // 获取购物车信息\n getCart: state => state.cart,\n \n // 获取购物车商品总数\n getCartTotalCount: state => state.cart.totalCount,\n \n // 获取用户登录状态\n isUserLogin: state => state.user.isLogin,\n \n // 获取用户信息\n getUserInfo: state => state.user.info,\n \n // 获取加载状态\n getLoadingStatus: state => state.loading,\n\n // 获取搜索词\n getSearchText: state => state.searchText\n }\n})","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.$route.name !== 'Register')?_c('HeaderNav'):_vm._e(),(_vm.$route.name !== 'Login')?_c('main',{staticClass:\"main-container\"},[_c('router-view')],1):_vm._e(),(_vm.$route.name == 'Login')?_c('main',{staticClass:\"main-containers\"},[_c('router-view')],1):_vm._e(),(_vm.$route.name !== 'Register')?_c('Sidebar'):_vm._e(),(_vm.$route.name !== 'Register')?_c('Footer'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('header',{staticClass:\"header-nav\"},[_c('div',{staticClass:\"top-notice\"},[_c('div',{staticClass:\"container\"},[_c('p',[_vm._v(\" 欢迎来到时味苏州平台! \"),(false)?_c('router-link',{staticClass:\"highlight\",attrs:{\"to\":\"/Register\"}},[_vm._v(\"立即注册\")]):_vm._e()],1),_c('div',{staticClass:\"top-links\"},[(_vm.isLogin)?_c('router-link',{staticClass:\"user-link\",attrs:{\"to\":\"/User\"}},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(_vm.userInfo.avatar),expression:\"userInfo.avatar\"}],staticClass:\"avatar\",attrs:{\"alt\":\"用户头像\"}}),_vm._v(\" \"+_vm._s(_vm.userInfo.username)+\" \")]):_c('router-link',{attrs:{\"to\":\"/Login\"}},[_vm._v(\"登录\")]),(false)?_c('span',{staticClass:\"separator\"},[_vm._v(\"|\")]):_vm._e(),(false)?_c('router-link',{attrs:{\"to\":\"/Register\"}},[_vm._v(\"注册\")]):_vm._e(),_c('router-link',{attrs:{\"to\":\"/User\"}},[_vm._v(\"采购人中心\")]),_c('router-link',{staticClass:\"cart-link\",attrs:{\"to\":\"/User/ShoppingCart\"}},[_vm._v(\" 购物车\"),(_vm.cartTotalCount > 0)?_c('span',[_vm._v(\"(\"+_vm._s(_vm.cartTotalCount)+\"件)\")]):_vm._e()]),(_vm.isLogin)?_c('router-link',{attrs:{\"to\":\"/User/OrderList\"}},[_vm._v(\"我的订单\")]):_vm._e(),(_vm.isLogin)?_c('div',{staticClass:\"logout-btn\",on:{\"click\":_vm.handleLogout}},[_vm._v(\" 退出 \")]):_vm._e()],1)])]),_c('div',{staticClass:\"main-nav\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"logo\"},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"logo-img\",attrs:{\"src\":\"https://static.ticket.sz-trip.com/shiweisuzhou/pc/logo.png\",\"alt\":\"logo\"},on:{\"click\":function($event){_vm.searchText = ''}}})])],1),_c('div',{staticClass:\"search-box\"},[_c('el-input',{staticClass:\"search-input\",attrs:{\"placeholder\":\"请输入搜索内容\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.handleSearch.apply(null, arguments)}},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}},[_c('el-button',{attrs:{\"slot\":\"append\",\"icon\":\"el-icon-search\"},on:{\"click\":_vm.handleSearch},slot:\"append\"})],1),(_vm.hotList.length > 0)?_c('div',{staticClass:\"hot-tags\"},[_c('span',[_vm._v(\"热门搜索:\")]),_vm._l((_vm.hotList),function(item,index){return _c('div',{key:index,staticClass:\"hot-tag\",on:{\"click\":function($event){_vm.searchText = item.name;\n _vm.handleSearch();}}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])})],2):_vm._e()],1),_c('div',{staticClass:\"phone-entry\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticStyle:{\"margin-right\":\"5px\"},attrs:{\"src\":\"https://static.ticket.sz-trip.com/shiweisuzhou/pc/login/phone.png\",\"alt\":\"联系电话\"}}),_c('span',[_vm._v(\"0512-80822586\")]),(_vm.cartTotalCount > 0 && false)?_c('span',{staticClass:\"cart-count\"},[_vm._v(_vm._s(_vm.cartTotalCount))]):_vm._e()])])])]),(_vm.categories.length > 0)?_c('div',{staticClass:\"category-nav\"},[_c('div',{staticClass:\"container\"},[(false)?_c('ul',{staticClass:\"nav-list\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",class:{ active: _vm.$route.path === '/' },attrs:{\"to\":\"/\"}},[_vm._v(\"首页\")])],1),_vm._l((_vm.categories),function(category){return _c('li',{key:category.id,staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",class:{ active: _vm.$route.params.id == category.id },attrs:{\"to\":`/category/${category.id}`}},[_vm._v(\" \"+_vm._s(category.name)+\" \")])],1)})],2):_vm._e()])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HeaderNav.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HeaderNav.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HeaderNav.vue?vue&type=template&id=00f3c839&scoped=true\"\nimport script from \"./HeaderNav.vue?vue&type=script&lang=js\"\nexport * from \"./HeaderNav.vue?vue&type=script&lang=js\"\nimport style0 from \"./HeaderNav.vue?vue&type=style&index=0&id=00f3c839&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00f3c839\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"footer-container\"},[_c('div',{staticClass:\"footer-top\"},[_vm._l((_vm.nonQrcodeColumns),function(column,index){return _c('div',{key:column.id,staticClass:\"footer-column\"},[_c('h3',[_vm._v(_vm._s(column.title))]),_c('ul',_vm._l((column.list),function(item,itemIndex){return _c('li',{key:itemIndex,style:({cursor: index < 4 ? 'pointer' : ''}),on:{\"click\":function($event){index < 4 ? _vm.gotoDetail(item): ''}}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),0)])}),_c('div',{staticClass:\"qrcode-group\"},_vm._l((_vm.qrcodeColumn.list),function(item,index){return _c('div',{key:index,staticClass:\"qrcode-item\"},[_c('img',{staticStyle:{\"width\":\"100px\",\"height\":\"100px\"},attrs:{\"src\":_vm.util.showImg(item.image)}}),_c('p',[_vm._v(_vm._s(item.title))])])}),0)],2),_vm._m(0)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"footer-bottom\"},[_c('p',[_vm._v(\"版权所有 苏州市特色农产品发展有限公司 | 苏ICP备2023023300号-1\")]),_c('p',[_vm._v(\"本网站由 江苏大运远见文化科技发展有限公司 运营维护\")])])\n}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=3080ae3e&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=3080ae3e&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3080ae3e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sidebar-container\"},[_c('div',{staticClass:\"sidebar-item\",on:{\"click\":_vm.handleCartClick}},[_c('el-badge',{staticClass:\"item-badge\",attrs:{\"value\":_vm.$store.getters.getCartTotalCount}},[_c('i',{staticClass:\"el-icon-shopping-cart-full\"})]),_c('div',{staticClass:\"item-text\"},[_vm._v(\"购物车\")])],1),_c('div',{staticClass:\"sidebar-item\",on:{\"click\":_vm.handleServiceClick}},[_c('i',{staticClass:\"el-icon-headset\"}),_c('div',{staticClass:\"item-text\"},[_vm._v(\"在线客服\")])]),_c('div',{staticClass:\"sidebar-item back-to-top\",class:{ active: _vm.isShowBackTop },on:{\"click\":_vm.handleBackToTop}},[_c('i',{staticClass:\"el-icon-caret-top\"}),_c('div',{staticClass:\"item-text\"},[_vm._v(\"回到顶部\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=6df28cc6&scoped=true\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=6df28cc6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6df28cc6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showBackToTop)?_c('div',{staticClass:\"back-to-top\",on:{\"click\":_vm.scrollToTop}},[_c('el-icon',{attrs:{\"name\":\"el-icon-arrow-up\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BackToTop.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BackToTop.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BackToTop.vue?vue&type=template&id=7ea6dee0&scoped=true\"\nimport script from \"./BackToTop.vue?vue&type=script&lang=js\"\nexport * from \"./BackToTop.vue?vue&type=script&lang=js\"\nimport style0 from \"./BackToTop.vue?vue&type=style&index=0&id=7ea6dee0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ea6dee0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=2c267866\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=2c267866&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport store from '@/store';\r\n\r\nVue.use(Router)\r\n\r\n// 解决重复导航错误\r\nconst originalPush = Router.prototype.push\r\nRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch(err => {\r\n // 只捕获重复导航的错误,其他错误正常抛出\r\n if (err.name !== 'NavigationDuplicated') {\r\n throw err\r\n }\r\n })\r\n}\r\n\r\nconst router = new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'Index',\r\n meta: {\r\n title: '首页 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Index.vue')\r\n },\r\n {\r\n path: '/Login',\r\n name: 'Login',\r\n meta: {\r\n title: '登录 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Login.vue')\r\n },\r\n {\r\n path: '/Register',\r\n name: 'Register',\r\n meta: {\r\n title: '注册 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Register.vue')\r\n },\r\n {\r\n path: '/Home',\r\n name: 'Home',\r\n meta: {\r\n title: '首页 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Home.vue')\r\n },\r\n {\r\n path: '/Detail/:id',\r\n name: 'Detail',\r\n meta: {\r\n title: '首页 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Detail/Index.vue')\r\n },\r\n {\r\n path: '/ProductList',\r\n name: 'ProductList',\r\n meta: {\r\n title: '商品列表',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/ProductPage/Index.vue')\r\n },\r\n {\r\n path: '/ProductReview',\r\n name: 'ProductReview',\r\n meta: {\r\n title: '商品评价',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/ProductPage/ProductReview.vue')\r\n },\r\n {\r\n path: '/NoticeList',\r\n name: 'NoticeList',\r\n meta: {\r\n title: '公告列表',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/notice/noticeList.vue')\r\n },\r\n {\r\n path: '/NoticeDetail',\r\n name: 'NoticeDetail',\r\n meta: {\r\n title: '公告详情',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/notice/noticeDetail.vue')\r\n },\r\n // {\r\n // path: '/category/:id?',\r\n // name: 'Category',\r\n // meta: {\r\n // title: '商品分类 - 精品商城',\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/Category.vue')\r\n // },\r\n // {\r\n // path: '/product/:id',\r\n // name: 'ProductDetail',\r\n // meta: {\r\n // title: '商品详情 - 精品商城',\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/ProductDetail.vue')\r\n // },\r\n // {\r\n // path: '/cart',\r\n // name: 'Cart',\r\n // meta: {\r\n // title: '购物车 - 精品商城',\r\n // requireAuth: true,\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/Cart.vue')\r\n // },\r\n // {\r\n // path: '/checkout',\r\n // name: 'Checkout',\r\n // meta: {\r\n // title: '结算 - 精品商城',\r\n // requireAuth: true,\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/Checkout.vue')\r\n // },\r\n {\r\n path: '/User',\r\n name: 'User',\r\n // meta: { title: '个人中心 - 精品商城',requireAuth: true,keepAlive: false},\r\n component: () => import('@/views/User/Index.vue'),\r\n redirect: '/User/UserCenter',\r\n children: [\r\n {\r\n path:'UserCenter', \r\n name: \"UserCenter\",\r\n // meta: {title: '个人中心 - 精品商城',keepAlive: false,},\r\n component: ()=>import('@/views/User/UserCenter.vue')\r\n },\r\n {\r\n path: 'OrderList',\r\n name: 'OrderList',\r\n meta: { title: '我的订单 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderList.vue')\r\n },\r\n {\r\n path: 'UserInfo',\r\n name: 'UserInfo',\r\n meta: { title: '个人信息 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserInfo.vue')\r\n },\r\n {\r\n path: 'ViewHistory',\r\n name: 'ViewHistory',\r\n meta: { title: '我的足迹 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/ViewHistory.vue')\r\n },\r\n {\r\n path: 'UserAddress',\r\n name: 'UserAddress',\r\n meta: { title: '我的收货地址 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserAddress.vue')\r\n },\r\n {\r\n path: 'UserInvoice',\r\n name: 'UserInvoice',\r\n meta: { title: '发票抬头 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserInvoice.vue')\r\n },\r\n {\r\n path: 'UserInvoiceList',\r\n name: 'UserInvoiceList',\r\n meta: { title: '我的发票 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserInvoiceList.vue')\r\n },\r\n {\r\n path: 'ShoppingCart',\r\n name: 'ShoppingCart',\r\n meta: { title: '购物车 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/ShoppingCart.vue')\r\n },\r\n {\r\n path: 'CommentManage',\r\n name: 'CommentManage',\r\n meta: { title: '评价管理 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/CommentManage.vue')\r\n },\r\n {\r\n path: 'ContractList',\r\n name: 'ContractList',\r\n meta: { title: '合同管理 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/ContractList.vue')\r\n },\r\n {\r\n path: 'MessageList',\r\n name: 'MessageList',\r\n meta: { title: '消息中心 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/MessageList.vue')\r\n },\r\n {\r\n path: 'PurchaserAdd',\r\n name: 'PurchaserAdd',\r\n meta: { title: '添加采购单位信息 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/PurchaserAdd.vue')\r\n },\r\n ],\r\n },\r\n {\r\n path: '/Order',\r\n name: 'Order',\r\n meta: { title: '下单', keepAlive: false },\r\n component: () => import('@/views/Order/Index.vue')\r\n },\r\n {\r\n path: '/OrderDetail',\r\n name: 'OrderDetail',\r\n meta: { title: '订单详情 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/Order/OrderDetail.vue')\r\n },\r\n \r\n {\r\n path: '/OrderPay',\r\n name: 'OrderPay',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPay.vue')\r\n },\r\n {\r\n path: '/OrderPayB2B',\r\n name: 'OrderPayB2B',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPayB2B.vue')\r\n },\r\n {\r\n path: '/OrderPayCode',\r\n name: 'OrderPayCode',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPayCode.vue')\r\n },\r\n {\r\n path: '/OrderPaySuccess',\r\n name: 'OrderPaySuccess',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPaySuccess.vue')\r\n },\r\n \r\n // {\r\n // path: '/user/orders/:id',\r\n // name: 'OrderDetail',\r\n // meta: {\r\n // title: '订单详情 - 精品商城',\r\n // requireAuth: true,\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/OrderDetail.vue')\r\n // },\r\n // {\r\n // path: '*',\r\n // name: 'NotFound',\r\n // meta: {\r\n // title: '页面不存在 - 精品商城',\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/NotFound.vue')\r\n // }\r\n ],\r\n scrollBehavior(to, from, savedPosition) {\r\n // 页面滚动到顶部\r\n return { x: 0, y: 0 }\r\n }\r\n})\r\n\r\n// 路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n // 设置页面标题\r\n if (to.meta.title) {\r\n document.title = to.meta.title\r\n }\r\n \r\n // 验证登录状态\r\n if (to.meta.requireAuth) {\r\n const token = store.state.user?.info?.token || '';\r\n if (token) {\r\n next()\r\n } else {\r\n next({\r\n path: '/Login',\r\n query: { redirect: to.fullPath }\r\n })\r\n }\r\n } else {\r\n next()\r\n }\r\n})\r\n\r\nexport default router","import Vue from 'vue'\r\nimport axios from \"axios\";\r\nimport { Message, MessageBox, Loading } from \"element-ui\"; // 引入 Element UI 组件\r\nimport store from '@/store';\r\nimport router from \"@/router\"\r\n\r\nconst http = axios.create({\r\n timeout: 6000 // 请求超时时间\r\n})\r\n\r\n// 添加请求拦截器\r\nhttp.interceptors.request.use((config) => {\r\n const { customBaseURL } = config.params || config.data || {};\r\n if (customBaseURL) {\r\n config.baseURL = customBaseURL;\r\n if (config.params) {\r\n delete config.params.customBaseURL;\r\n } else if (config.data) {\r\n delete config.data.customBaseURL;\r\n }\r\n } else {\r\n config.baseURL = process.env.VUE_APP_URL;\r\n }\r\n \r\n const token = store.state.user?.info?.token || '';\r\n config.headers['token'] = token || \"\"\r\n // config.headers['token'] = token || \"745f2b4c-49b7-4393-bf58-bc380a87149a\";\r\n config.headers['Content-Type'] = 'application/json;charset=UTF-8';\r\n\r\n // 统一添加 platform_type = 2 参数\r\n // GET 请求在 params 中添加\r\n if (config.method?.toLowerCase() === 'get') {\r\n config.params = {\r\n platform_type: 2,\r\n ...config.params\r\n };\r\n } \r\n // POST 等其他请求在 data 中添加\r\n else {\r\n config.data = {\r\n platform_type: 2,\r\n ...config.data\r\n };\r\n }\r\n \r\n // 显示加载中状态(Element UI 的 Loading)\r\n if (config.loading !== false) { // 默认显示,可通过参数关闭\r\n config.loadingInstance = Loading.service({\r\n lock: true,\r\n text: '加载中...',\r\n background: 'rgba(0, 0, 0, 0.7)'\r\n });\r\n }\r\n \r\n return config;\r\n}, (error) => {\r\n return Promise.reject(error);\r\n});\r\n\r\n// 添加响应拦截器\r\nhttp.interceptors.response.use(response => {\r\n // 关闭加载状态\r\n if (response.config.loadingInstance) {\r\n response.config.loadingInstance.close();\r\n }\r\n \r\n if (response.status === 200 || response.status === 1) {\r\n const resData = response.data;\r\n // 假设接口约定 code 为 0 或 200 时表示业务成功(可根据实际情况修改)\r\n if (resData.code === 1 || resData.code === 200) {\r\n return resData;\r\n } else {\r\n // code 不符合预期时显示错误提示,优先使用接口返回的消息\r\n const errorMsg = resData.msg || `业务处理失败,错误码:${resData.code}`;\r\n MessageBox.alert(errorMsg, '错误提示', {\r\n confirmButtonText: '确定',\r\n type: 'error'\r\n }).then(() => {\r\n if (resData.code === 401) {\r\n // 存储当前路由(排除登录页自身,避免死循环)\r\n const currentPath = router.currentRoute.fullPath;\r\n if (currentPath !== '/Login') { // 假设登录页路径是 /Login\r\n localStorage.setItem('redirectPath', currentPath); // 存到本地存储\r\n }\r\n // 登录操作\r\n router.push(\"/Login\")\r\n }\r\n }).catch(() => {\r\n \r\n });\r\n // return Promise.reject(new Error(errorMsg));\r\n }\r\n } else {\r\n // HTTP状态码非200和1时的弹框提示\r\n const errorMsg = `请求失败,状态码:${response.status}`;\r\n MessageBox.alert(errorMsg, '错误提示', {\r\n confirmButtonText: '确定',\r\n type: 'error'\r\n });\r\n return Promise.reject(new Error(errorMsg));\r\n }\r\n}, error => {\r\n // 关闭加载状态\r\n if (error.config && error.config.loadingInstance) {\r\n error.config.loadingInstance.close();\r\n }\r\n \r\n if (error.response && error.response.status) {\r\n switch (error.response.status) {\r\n case 401:\r\n MessageBox.confirm('请登录后操作', '提示', {\r\n confirmButtonText: '去登录',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n // 登录操作\r\n router.push(\"/Login\")\r\n }).catch(() => {\r\n // 取消登录回调\r\n });\r\n break;\r\n case 404:\r\n Message({\r\n message: '网络繁忙,请刷新再试',\r\n type: 'error',\r\n duration: 2000\r\n });\r\n break;\r\n default:\r\n Message({\r\n message: '网络繁忙,请刷新再试',\r\n type: 'error',\r\n duration: 2000\r\n });\r\n break;\r\n }\r\n }\r\n return Promise.reject(error);\r\n});\r\n\r\n// 请求方法挂载\r\nVue.prototype.get = (params, url, loading = false) => {\r\n return new Promise((resolve, reject) => {\r\n http.get(url, { \r\n params,\r\n loading // 传递加载状态参数\r\n })\r\n .then(res => {\r\n resolve(res);\r\n })\r\n .catch(err => {\r\n reject(err);\r\n });\r\n })\r\n}\r\n\r\nVue.prototype.post = (data, url, loading = false) => {\r\n return new Promise((resolve, reject) => {\r\n http.post(url, data, {\r\n loading // 传递加载状态参数\r\n })\r\n .then(res => {\r\n resolve(res);\r\n })\r\n .catch(err => {\r\n reject(err);\r\n });\r\n })\r\n}","export default {\r\n\tinstall(Vue) {\r\n\t\tVue.prototype.util = {\r\n\t\t\t// 格式化富文本\r\n\t\t\tformateRichText(str) {\r\n\t\t\t\tif (!str) return \"\";\r\n\t\t\t\tvar reg = new RegExp(\"')\r\n\t\t\t\treg = new RegExp(\"section\", \"g\");\r\n\t\t\t\tstr = str.replace(reg, 'div');\r\n\t\t\t\treg = new RegExp(\"↵\", \"g\");\r\n\t\t\t\tstr = str.replace(reg, '
');\r\n\t\t\t\tstr = str.replace(/
{\r\n\t\t\t\t\treader.onload = () => {\r\n\t\t\t\t\t\tresolve(reader.result);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tcopyId(value) {\r\n\t\t\t\tconst input = document.createElement('input');\r\n\t\t\t\tinput.value = value;\r\n\t\t\t\tdocument.body.appendChild(input);\r\n\t\t\t\tinput.select();\r\n\t\t\t\tdocument.execCommand('copy');\r\n\t\t\t\tdocument.body.removeChild(input);\r\n\t\t\t\t\r\n\t\t\t\tVue.prototype.$message({\r\n\t\t\t\t\tmessage: '复制成功',\r\n\t\t\t\t\ttype: 'success'\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t}\r\n\t}\r\n}\r\n","import Vue from 'vue'\r\nimport App from './App'\r\nimport router from './router'\r\nimport store from './store'\r\nimport ElementUI from 'element-ui'\r\nimport 'element-ui/lib/theme-chalk/index.css'\r\nimport VueLazyload from 'vue-lazyload'\r\nimport '@/assets/css/common.scss'\r\nimport '../src/libs/axios.js' // axios处理\r\n\r\nimport utils from './libs/utils.js'\r\nVue.use(utils)\r\n\r\n// 全局配置\r\nVue.config.productionTip = false\r\nVue.use(ElementUI)\r\n\r\nlet env = process.env.NODE_ENV;\r\nconsole.log(env)\r\nVue.prototype.VUE_APP_GLOBAL_TAGS = {\r\n // 正式数据\r\n pc_all: 675, // pc-分类集合\r\n side_all: 701, //侧边栏\r\n all_prod: 676, // 全部商品\r\n // mmy: 677, //米面油\r\n // twgh: 678, // 调味干货\r\n // xxls: 679, //休闲零食\r\n // qxrd: 680, // 禽畜肉蛋\r\n // xgsz: 681, //鲜果蔬菜\r\n // zhjs: 682, //组合集市\r\n pc_index_recommend: 683, //PC-首页-今日推荐\r\n pc_index_hot: 684, //pc-首页-热销排行\r\n pc_index_new: 685, // pc-首页-新品上市\r\n}\r\nif (env === 'development') {\r\n Vue.prototype.VUE_APP_GLOBAL_TAGS = {\r\n // 测试数据\r\n pc_all: 662, // pc-分类集合\r\n all_prod: 663, // 全部商品\r\n // mmy: 664, //米面油\r\n // twgh: 665, // 调味干货\r\n // xxls: 666, //休闲零食\r\n // qxrd: 667, // 禽畜肉蛋\r\n // xgsz: 668, //鲜果蔬菜\r\n // zhjs: 669, //组合集市\r\n pc_index_recommend: 670, //PC-首页-今日推荐\r\n pc_index_hot: 671, //pc-首页-热销排行\r\n pc_index_new: 672, // pc-首页-新品上市\r\n }\r\n}\r\n\r\n// 配置图片懒加载\r\nVue.use(VueLazyload, {\r\n preLoad: 1.3, // 预加载高度比例\r\n error: require('./assets/logo.png'),\r\n loading: require('./assets/logo.png'),\r\n attempt: 3, // 增加尝试次数\r\n listenEvents: ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'], // 确保监听事件完整\r\n adapter: {\r\n // 增加加载状态日志\r\n loaded({ bindType, el, naturalHeight, naturalWidth, $parent, src, loading, error, Init }) {\r\n console.log('图片加载完成:', src)\r\n },\r\n error({ bindType, el, error, $parent, src, loading }) {\r\n console.log('图片加载失败:', src)\r\n }\r\n }\r\n})\r\n\r\n// 全局挂载公共路由跳转方法\r\nVue.prototype.gotoPath = function(path, options = {}) {\r\n // 1. 避免重复跳转同一页面\r\n const currentPath = this.$router.currentRoute.fullPath\r\n if (path === currentPath) {\r\n return\r\n }\r\n\r\n try {\r\n // 2. 支持两种跳转方式:路径字符串或配置对象\r\n if (typeof path === 'string') {\r\n // 字符串路径,可附带query参数\r\n this.$router.push({\r\n path,\r\n query: options.query || {}\r\n })\r\n } else if (typeof path === 'object') {\r\n // 直接传入路由配置对象(如命名路由)\r\n this.$router.push(path)\r\n }\r\n \r\n // 3. 可选的跳转成功回调\r\n if (typeof options.success === 'function') {\r\n options.success()\r\n }\r\n } catch (error) {\r\n // 4. 错误处理\r\n console.error('路由跳转失败:', error)\r\n if (typeof options.fail === 'function') {\r\n options.fail(error)\r\n }\r\n }\r\n}\r\n\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n el: '#app',\r\n router,\r\n store,\r\n components: { App },\r\n template: ''\r\n})\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"47\":\"91e22ff7\",\"133\":\"635d95e6\",\"140\":\"2a9e3041\",\"145\":\"bdf9dbc6\",\"154\":\"8a9d2cca\",\"168\":\"791742aa\",\"241\":\"17bc4b66\",\"339\":\"793917b1\",\"359\":\"9bec58e0\",\"395\":\"bf4b57c0\",\"420\":\"2ae90b4c\",\"528\":\"f5163631\",\"576\":\"59915dd8\",\"597\":\"bc6f8420\",\"632\":\"bc245760\",\"667\":\"6a70b405\",\"705\":\"c96616d8\",\"707\":\"b7263128\",\"754\":\"eb8a67d3\",\"788\":\"c3e035d9\",\"809\":\"6bde92a7\",\"828\":\"6987a2ad\",\"878\":\"ed5a6807\",\"896\":\"87e420a5\",\"905\":\"e365cd50\",\"933\":\"a1573a86\",\"934\":\"c3cb9093\",\"992\":\"12386cc8\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"47\":\"4c0b65d7\",\"133\":\"f060a013\",\"140\":\"703f0337\",\"145\":\"e6d20e0d\",\"154\":\"edd4b6a0\",\"168\":\"8b344007\",\"241\":\"51eebda5\",\"339\":\"9419445b\",\"359\":\"a7db186a\",\"395\":\"42e712d8\",\"420\":\"37d35775\",\"528\":\"701f8f15\",\"576\":\"b751536e\",\"597\":\"268eb302\",\"632\":\"2661f71c\",\"667\":\"3189fded\",\"705\":\"91c548ed\",\"707\":\"ec7235c5\",\"754\":\"fb749462\",\"809\":\"5ae3b03a\",\"828\":\"9b5bd9e0\",\"878\":\"81403639\",\"896\":\"4400289a\",\"905\":\"b5e6f704\",\"933\":\"5507be5a\",\"934\":\"80745de8\",\"992\":\"5f484165\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"shiweisuzhou:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"47\":1,\"133\":1,\"140\":1,\"145\":1,\"154\":1,\"168\":1,\"241\":1,\"339\":1,\"359\":1,\"395\":1,\"420\":1,\"528\":1,\"576\":1,\"597\":1,\"632\":1,\"667\":1,\"705\":1,\"707\":1,\"754\":1,\"809\":1,\"828\":1,\"878\":1,\"896\":1,\"905\":1,\"933\":1,\"934\":1,\"992\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkshiweisuzhou\"] = self[\"webpackChunkshiweisuzhou\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(6477); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["Vue","use","Vuex","plugins","createPersistedState","storage","window","localStorage","reducer","val","cart","user","state","items","totalCount","totalPrice","isLogin","info","token","categories","loading","searchText","orderData","mutations","setOrderData","data","clearOrderData","UPDATE_CATEGORIES","UPDATE_LOADING","status","USER_LOGIN","userInfo","setItem","USER_LOGOUT","removeItem","UPDATE_CART_TOTAL_COUNT","count","setSearchText","text","actions","submitOrderData","commit","fetchCategories","Promise","resolve","setTimeout","id","name","icon","login","dispatch","logout","addToCart","product","prototype","post","sku_id","num","quantity","then","res","$message","success","catch","err","console","error","fetchCartCount","log","code","removeFromCart","productId","updateCartItemQuantity","clearCart","getters","getOrderData","getCategories","getCart","getCartTotalCount","isUserLogin","getUserInfo","getLoadingStatus","getSearchText","render","_vm","this","_c","_self","attrs","$route","_e","staticClass","staticRenderFns","_v","directives","rawName","value","avatar","expression","_s","username","cartTotalCount","on","handleLogout","$event","nativeOn","type","indexOf","_k","keyCode","key","handleSearch","apply","arguments","model","callback","$$v","slot","hotList","length","_l","item","index","staticStyle","computed","mapGetters","created","offset","limit","methods","mapActions","trim","$store","path","$router","push","query","keyword","$confirm","confirmButtonText","cancelButtonText","message","component","nonQrcodeColumns","column","title","list","itemIndex","style","cursor","gotoDetail","qrcodeColumn","util","showImg","image","_m","filter","find","mounted","forEach","get","type_id","link_url","location","href","handleCartClick","handleServiceClick","class","active","isShowBackTop","handleBackToTop","cartCount","scrollTimer","addEventListener","handleScroll","beforeDestroy","removeEventListener","clearTimeout","store","process","scrollTo","top","behavior","pageYOffset","showBackToTop","scrollToTop","setInterval","position","Math","max","clearInterval","components","HeaderNav","Footer","BackToTop","Sidebar","Router","originalPush","call","router","mode","base","routes","meta","keepAlive","redirect","children","scrollBehavior","to","from","savedPosition","x","y","beforeEach","next","document","requireAuth","fullPath","http","axios","create","timeout","interceptors","request","config","customBaseURL","params","baseURL","headers","method","toLowerCase","platform_type","loadingInstance","Loading","service","lock","background","reject","response","close","errorMsg","MessageBox","alert","Error","resData","msg","currentPath","currentRoute","confirm","Message","duration","url","install","formateRichText","str","reg","RegExp","replace","mobileValid","test","idNumberValid","passportValid","taiwanValid","gangaoValid","foreignerValid","officerValid","emailValid","getUrlPara","arrUrl","split","para","img","imgToBase64","reader","FileReader","readAsDataURL","onload","result","copyId","input","createElement","body","appendChild","select","execCommand","removeChild","utils","productionTip","ElementUI","env","VUE_APP_GLOBAL_TAGS","pc_all","side_all","all_prod","pc_index_recommend","pc_index_hot","pc_index_new","VueLazyload","preLoad","require","attempt","listenEvents","adapter","loaded","bindType","el","naturalHeight","naturalWidth","$parent","src","Init","gotoPath","options","fail","App","template","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","e","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","nc","setAttribute","onScriptComplete","prev","event","onerror","doneFns","parentNode","bind","target","head","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/app.0b4d0b5a.js","mappings":"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","sources":["webpack://shiweisuzhou/./src/store/index.js","webpack://shiweisuzhou/./src/App.vue","webpack://shiweisuzhou/./src/components/layout/HeaderNav.vue","webpack://shiweisuzhou/src/components/layout/HeaderNav.vue","webpack://shiweisuzhou/./src/components/layout/HeaderNav.vue?9b38","webpack://shiweisuzhou/./src/components/layout/HeaderNav.vue?fb3d","webpack://shiweisuzhou/./src/components/layout/Footer.vue","webpack://shiweisuzhou/src/components/layout/Footer.vue","webpack://shiweisuzhou/./src/components/layout/Footer.vue?7e11","webpack://shiweisuzhou/./src/components/layout/Footer.vue?caf1","webpack://shiweisuzhou/./src/components/layout/Sidebar.vue","webpack://shiweisuzhou/src/components/layout/Sidebar.vue","webpack://shiweisuzhou/./src/components/layout/Sidebar.vue?a327","webpack://shiweisuzhou/./src/components/layout/Sidebar.vue?0f55","webpack://shiweisuzhou/./src/components/common/BackToTop.vue","webpack://shiweisuzhou/src/components/common/BackToTop.vue","webpack://shiweisuzhou/./src/components/common/BackToTop.vue?2194","webpack://shiweisuzhou/./src/components/common/BackToTop.vue?62a4","webpack://shiweisuzhou/src/App.vue","webpack://shiweisuzhou/./src/App.vue?60e0","webpack://shiweisuzhou/./src/App.vue?01fe","webpack://shiweisuzhou/./src/router/index.js","webpack://shiweisuzhou/./src/libs/axios.js","webpack://shiweisuzhou/./src/libs/utils.js","webpack://shiweisuzhou/./src/main.js","webpack://shiweisuzhou/webpack/bootstrap","webpack://shiweisuzhou/webpack/runtime/amd options","webpack://shiweisuzhou/webpack/runtime/chunk loaded","webpack://shiweisuzhou/webpack/runtime/compat get default export","webpack://shiweisuzhou/webpack/runtime/define property getters","webpack://shiweisuzhou/webpack/runtime/ensure chunk","webpack://shiweisuzhou/webpack/runtime/get javascript chunk filename","webpack://shiweisuzhou/webpack/runtime/get mini-css chunk filename","webpack://shiweisuzhou/webpack/runtime/global","webpack://shiweisuzhou/webpack/runtime/hasOwnProperty shorthand","webpack://shiweisuzhou/webpack/runtime/load script","webpack://shiweisuzhou/webpack/runtime/make namespace object","webpack://shiweisuzhou/webpack/runtime/node module decorator","webpack://shiweisuzhou/webpack/runtime/publicPath","webpack://shiweisuzhou/webpack/runtime/css loading","webpack://shiweisuzhou/webpack/runtime/jsonp chunk loading","webpack://shiweisuzhou/webpack/startup"],"sourcesContent":["// index.js\nimport Vue from 'vue'\nimport Vuex from 'vuex'\nimport createPersistedState from 'vuex-persistedstate'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n plugins: [\n createPersistedState({\n storage: window.localStorage,\n reducer(val) {\n return {\n cart: val.cart,\n user: val.user\n }\n }\n })\n ],\n state: {\n // 购物车状态\n cart: {\n items: [], // 购物车商品列表\n totalCount: 0, // 商品总数\n totalPrice: 0 // 商品总价\n },\n // 用户状态\n user: {\n isLogin: false,\n info: null,\n token: ''\n },\n // 分类数据\n categories: [],\n // 全局加载状态\n loading: false,\n searchText: '', // 存储搜索词\n // 存储订单数据\n orderData: null\n },\n mutations: {\n // 设置订单数据\n setOrderData(state, data) {\n state.orderData = data\n },\n // 清空订单数据\n clearOrderData(state) {\n state.orderData = null\n },\n // 更新分类数据\n UPDATE_CATEGORIES(state, categories) {\n state.categories = categories\n },\n \n // 更新加载状态\n UPDATE_LOADING(state, status) {\n state.loading = status\n },\n \n // 用户登录\n USER_LOGIN(state, { userInfo, token }) {\n state.user.isLogin = true\n state.user.info = userInfo\n state.user.token = token\n localStorage.setItem('token', token)\n },\n \n // 用户登出\n USER_LOGOUT(state) {\n state.user.isLogin = false\n state.user.info = null\n state.user.token = ''\n localStorage.removeItem('token')\n state.cart.totalCount = 0\n },\n \n // 更新购物车总数\n UPDATE_CART_TOTAL_COUNT(state, count) {\n state.cart.totalCount = count\n },\n\n setSearchText(state, text) {\n state.searchText = text;\n }\n },\n actions: {\n // 提交订单数据\n submitOrderData({ commit }, data) {\n commit('setOrderData', data)\n },\n // 获取分类数据\n fetchCategories({ commit }) {\n commit('UPDATE_LOADING', true)\n // 模拟API请求\n return new Promise(resolve => {\n setTimeout(() => {\n const categories = [\n { id: 1, name: '电子产品', icon: 'el-icon-laptop' },\n { id: 2, name: '服装鞋帽', icon: 'el-icon-shopping-bag-1' },\n { id: 3, name: '家居用品', icon: 'el-icon-home' },\n { id: 4, name: '美妆个护', icon: 'el-icon-present' },\n { id: 5, name: '食品饮料', icon: 'el-icon-dish' },\n { id: 6, name: '图书音像', icon: 'el-icon-document' }\n ]\n commit('UPDATE_CATEGORIES', categories)\n commit('UPDATE_LOADING', false)\n resolve(categories)\n }, 500)\n })\n },\n\n // 用户登录\n login({ commit, dispatch }, { userInfo, token }) {\n // 先调用 mutation 更新登录状态\n commit('USER_LOGIN', { userInfo, token })\n // 登录成功后,调用获取购物车数量的 action\n dispatch('fetchCartCount')\n },\n \n // 用户登出\n logout({ commit }) {\n commit('USER_LOGOUT')\n },\n \n // 添加商品到购物车\n addToCart({ dispatch }, product) {\n // 调用接口,参数为商品id和数量\n return Vue.prototype.post(\n {\n sku_id: product.id,\n num: product.quantity || 1\n },\n \"/api/cart/add_sku\"\n ).then((res) => {\n if (res) {\n Vue.prototype.$message.success(\"购物车添加成功!\");\n // 添加成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }\n }).catch((err) => {\n console.error('添加到购物车请求失败', err);\n throw err\n });\n },\n\n // 获取购物车数量\n fetchCartCount({ commit, state }) {\n // 检查是否存在token,不存在则直接返回0\n if (!state.user.token) {\n commit('UPDATE_CART_TOTAL_COUNT', 0)\n return Promise.resolve(0)\n }\n return Vue.prototype.post(\n {},\n \"/api/cart/get_count\"\n ).then((res) => {\n console.log('购物车数量接口返回', res)\n if (res.code == 1) {\n commit('UPDATE_CART_TOTAL_COUNT', res.data)\n }\n return res.data\n }).catch((err) => {\n console.error('获取购物车数量失败', err)\n throw err\n });\n },\n \n // 从购物车移除商品\n removeFromCart({ dispatch }, productId) {\n // 调用删除接口\n return Vue.prototype.post(\n { sku_id: productId },\n \"/api/cart/remove_sku\"\n ).then(() => {\n // 删除成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }).catch(err => {\n console.error('删除购物车商品失败', err)\n throw err\n })\n },\n \n // 更新购物车商品数量\n updateCartItemQuantity({ dispatch }, { productId, quantity }) {\n // 调用更新数量接口\n return Vue.prototype.post(\n { \n sku_id: productId,\n num: quantity\n },\n \"/api/cart/add_sku\"\n ).then(() => {\n // 更新成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }).catch(err => {\n console.error('更新购物车商品数量失败', err)\n throw err\n })\n },\n \n // 清空购物车\n clearCart({ dispatch }) {\n // 调用清空接口\n return Vue.prototype.post(\n {},\n \"/api/cart/clear\"\n ).then(() => {\n // 清空成功后重新获取购物车数量\n return dispatch('fetchCartCount')\n }).catch(err => {\n console.error('清空购物车失败', err)\n throw err\n })\n }\n },\n getters: {\n // 获取订单数据\n getOrderData: state => state.orderData,\n\n // 获取分类列表\n getCategories: state => state.categories,\n \n // 获取购物车信息\n getCart: state => state.cart,\n \n // 获取购物车商品总数\n getCartTotalCount: state => state.cart.totalCount,\n \n // 获取用户登录状态\n isUserLogin: state => state.user.isLogin,\n \n // 获取用户信息\n getUserInfo: state => state.user.info,\n \n // 获取加载状态\n getLoadingStatus: state => state.loading,\n\n // 获取搜索词\n getSearchText: state => state.searchText\n }\n})","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.$route.name !== 'Register')?_c('HeaderNav'):_vm._e(),(_vm.$route.name !== 'Login')?_c('main',{staticClass:\"main-container\"},[_c('router-view')],1):_vm._e(),(_vm.$route.name == 'Login')?_c('main',{staticClass:\"main-containers\"},[_c('router-view')],1):_vm._e(),(_vm.$route.name !== 'Register')?_c('Sidebar'):_vm._e(),(_vm.$route.name !== 'Register')?_c('Footer'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('header',{staticClass:\"header-nav\"},[_c('div',{staticClass:\"top-notice\"},[_c('div',{staticClass:\"container\"},[_c('p',[_vm._v(\" 欢迎来到时味苏州平台! \"),(false)?_c('router-link',{staticClass:\"highlight\",attrs:{\"to\":\"/Register\"}},[_vm._v(\"立即注册\")]):_vm._e()],1),_c('div',{staticClass:\"top-links\"},[(_vm.isLogin)?_c('router-link',{staticClass:\"user-link\",attrs:{\"to\":\"/User\"}},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(_vm.userInfo.avatar),expression:\"userInfo.avatar\"}],staticClass:\"avatar\",attrs:{\"alt\":\"用户头像\"}}),_vm._v(\" \"+_vm._s(_vm.userInfo.username)+\" \")]):_c('router-link',{attrs:{\"to\":\"/Login\"}},[_vm._v(\"登录\")]),(false)?_c('span',{staticClass:\"separator\"},[_vm._v(\"|\")]):_vm._e(),(false)?_c('router-link',{attrs:{\"to\":\"/Register\"}},[_vm._v(\"注册\")]):_vm._e(),_c('router-link',{attrs:{\"to\":\"/User\"}},[_vm._v(\"采购人中心\")]),_c('router-link',{staticClass:\"cart-link\",attrs:{\"to\":\"/User/ShoppingCart\"}},[_vm._v(\" 购物车\"),(_vm.cartTotalCount > 0)?_c('span',[_vm._v(\"(\"+_vm._s(_vm.cartTotalCount)+\"件)\")]):_vm._e()]),(_vm.isLogin)?_c('router-link',{attrs:{\"to\":\"/User/OrderList\"}},[_vm._v(\"我的订单\")]):_vm._e(),(_vm.isLogin)?_c('div',{staticClass:\"logout-btn\",on:{\"click\":_vm.handleLogout}},[_vm._v(\" 退出 \")]):_vm._e()],1)])]),_c('div',{staticClass:\"main-nav\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"logo\"},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"logo-img\",attrs:{\"src\":\"https://static.ticket.sz-trip.com/shiweisuzhou/pc/logo.png\",\"alt\":\"logo\"},on:{\"click\":function($event){_vm.searchText = ''}}})])],1),_c('div',{staticClass:\"search-box\"},[_c('el-input',{staticClass:\"search-input\",attrs:{\"placeholder\":\"请输入搜索内容\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.handleSearch.apply(null, arguments)}},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}},[_c('el-button',{attrs:{\"slot\":\"append\",\"icon\":\"el-icon-search\"},on:{\"click\":_vm.handleSearch},slot:\"append\"})],1),(_vm.hotList.length > 0)?_c('div',{staticClass:\"hot-tags\"},[_c('span',[_vm._v(\"热门搜索:\")]),_vm._l((_vm.hotList),function(item,index){return _c('div',{key:index,staticClass:\"hot-tag\",on:{\"click\":function($event){_vm.searchText = item.name;\n _vm.handleSearch();}}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])})],2):_vm._e()],1),_c('div',{staticClass:\"phone-entry\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticStyle:{\"margin-right\":\"5px\"},attrs:{\"src\":\"https://static.ticket.sz-trip.com/shiweisuzhou/pc/login/phone.png\",\"alt\":\"联系电话\"}}),_c('span',[_vm._v(\"0512-80822586\")]),(_vm.cartTotalCount > 0 && false)?_c('span',{staticClass:\"cart-count\"},[_vm._v(_vm._s(_vm.cartTotalCount))]):_vm._e()])])])]),(_vm.categories.length > 0)?_c('div',{staticClass:\"category-nav\"},[_c('div',{staticClass:\"container\"},[(false)?_c('ul',{staticClass:\"nav-list\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",class:{ active: _vm.$route.path === '/' },attrs:{\"to\":\"/\"}},[_vm._v(\"首页\")])],1),_vm._l((_vm.categories),function(category){return _c('li',{key:category.id,staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",class:{ active: _vm.$route.params.id == category.id },attrs:{\"to\":`/category/${category.id}`}},[_vm._v(\" \"+_vm._s(category.name)+\" \")])],1)})],2):_vm._e()])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HeaderNav.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HeaderNav.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HeaderNav.vue?vue&type=template&id=00f3c839&scoped=true\"\nimport script from \"./HeaderNav.vue?vue&type=script&lang=js\"\nexport * from \"./HeaderNav.vue?vue&type=script&lang=js\"\nimport style0 from \"./HeaderNav.vue?vue&type=style&index=0&id=00f3c839&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00f3c839\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"footer-container\"},[_c('div',{staticClass:\"footer-top\"},[_vm._l((_vm.nonQrcodeColumns),function(column,index){return _c('div',{key:column.id,staticClass:\"footer-column\"},[_c('h3',[_vm._v(_vm._s(column.title))]),_c('ul',_vm._l((column.list),function(item,itemIndex){return _c('li',{key:itemIndex,style:({cursor: index < 4 ? 'pointer' : ''}),on:{\"click\":function($event){index < 4 ? _vm.gotoDetail(item): ''}}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),0)])}),_c('div',{staticClass:\"qrcode-group\"},_vm._l((_vm.qrcodeColumn.list),function(item,index){return _c('div',{key:index,staticClass:\"qrcode-item\"},[_c('img',{staticStyle:{\"width\":\"100px\",\"height\":\"100px\"},attrs:{\"src\":_vm.util.showImg(item.image)}}),_c('p',[_vm._v(_vm._s(item.title))])])}),0)],2),_vm._m(0)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"footer-bottom\"},[_c('p',[_vm._v(\"版权所有 苏州市特色农产品发展有限公司 | 苏ICP备2023023300号-1\")]),_c('p',[_vm._v(\"本网站由 江苏大运远见文化科技发展有限公司 运营维护\")])])\n}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=3080ae3e&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=3080ae3e&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3080ae3e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sidebar-container\"},[_c('div',{staticClass:\"sidebar-item\",on:{\"click\":_vm.handleCartClick}},[_c('el-badge',{staticClass:\"item-badge\",attrs:{\"value\":_vm.$store.getters.getCartTotalCount}},[_c('i',{staticClass:\"el-icon-shopping-cart-full\"})]),_c('div',{staticClass:\"item-text\"},[_vm._v(\"购物车\")])],1),_c('div',{staticClass:\"sidebar-item\",on:{\"click\":_vm.handleServiceClick}},[_c('i',{staticClass:\"el-icon-headset\"}),_c('div',{staticClass:\"item-text\"},[_vm._v(\"在线客服\")])]),_c('div',{staticClass:\"sidebar-item back-to-top\",class:{ active: _vm.isShowBackTop },on:{\"click\":_vm.handleBackToTop}},[_c('i',{staticClass:\"el-icon-caret-top\"}),_c('div',{staticClass:\"item-text\"},[_vm._v(\"回到顶部\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=6df28cc6&scoped=true\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=6df28cc6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6df28cc6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showBackToTop)?_c('div',{staticClass:\"back-to-top\",on:{\"click\":_vm.scrollToTop}},[_c('el-icon',{attrs:{\"name\":\"el-icon-arrow-up\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BackToTop.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BackToTop.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BackToTop.vue?vue&type=template&id=7ea6dee0&scoped=true\"\nimport script from \"./BackToTop.vue?vue&type=script&lang=js\"\nexport * from \"./BackToTop.vue?vue&type=script&lang=js\"\nimport style0 from \"./BackToTop.vue?vue&type=style&index=0&id=7ea6dee0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ea6dee0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=2c267866\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=2c267866&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport store from '@/store';\r\n\r\nVue.use(Router)\r\n\r\n// 解决重复导航错误\r\nconst originalPush = Router.prototype.push\r\nRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch(err => {\r\n // 只捕获重复导航的错误,其他错误正常抛出\r\n if (err.name !== 'NavigationDuplicated') {\r\n throw err\r\n }\r\n })\r\n}\r\n\r\nconst router = new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'Index',\r\n meta: {\r\n title: '首页 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Index.vue')\r\n },\r\n {\r\n path: '/Login',\r\n name: 'Login',\r\n meta: {\r\n title: '登录 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Login.vue')\r\n },\r\n {\r\n path: '/Register',\r\n name: 'Register',\r\n meta: {\r\n title: '注册 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Register.vue')\r\n },\r\n {\r\n path: '/Home',\r\n name: 'Home',\r\n meta: {\r\n title: '首页 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Home.vue')\r\n },\r\n {\r\n path: '/Detail/:id',\r\n name: 'Detail',\r\n meta: {\r\n title: '首页 - 精品商城',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/Detail/Index.vue')\r\n },\r\n {\r\n path: '/ProductList',\r\n name: 'ProductList',\r\n meta: {\r\n title: '商品列表',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/ProductPage/Index.vue')\r\n },\r\n {\r\n path: '/ProductReview',\r\n name: 'ProductReview',\r\n meta: {\r\n title: '商品评价',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/ProductPage/ProductReview.vue')\r\n },\r\n {\r\n path: '/NoticeList',\r\n name: 'NoticeList',\r\n meta: {\r\n title: '公告列表',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/notice/noticeList.vue')\r\n },\r\n {\r\n path: '/NoticeDetail',\r\n name: 'NoticeDetail',\r\n meta: {\r\n title: '公告详情',\r\n keepAlive: false\r\n },\r\n component: () => import('@/views/notice/noticeDetail.vue')\r\n },\r\n // {\r\n // path: '/category/:id?',\r\n // name: 'Category',\r\n // meta: {\r\n // title: '商品分类 - 精品商城',\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/Category.vue')\r\n // },\r\n // {\r\n // path: '/product/:id',\r\n // name: 'ProductDetail',\r\n // meta: {\r\n // title: '商品详情 - 精品商城',\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/ProductDetail.vue')\r\n // },\r\n // {\r\n // path: '/cart',\r\n // name: 'Cart',\r\n // meta: {\r\n // title: '购物车 - 精品商城',\r\n // requireAuth: true,\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/Cart.vue')\r\n // },\r\n // {\r\n // path: '/checkout',\r\n // name: 'Checkout',\r\n // meta: {\r\n // title: '结算 - 精品商城',\r\n // requireAuth: true,\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/Checkout.vue')\r\n // },\r\n {\r\n path: '/User',\r\n name: 'User',\r\n // meta: { title: '个人中心 - 精品商城',requireAuth: true,keepAlive: false},\r\n component: () => import('@/views/User/Index.vue'),\r\n redirect: '/User/UserCenter',\r\n children: [\r\n {\r\n path:'UserCenter', \r\n name: \"UserCenter\",\r\n // meta: {title: '个人中心 - 精品商城',keepAlive: false,},\r\n component: ()=>import('@/views/User/UserCenter.vue')\r\n },\r\n {\r\n path: 'OrderList',\r\n name: 'OrderList',\r\n meta: { title: '我的订单 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderList.vue')\r\n },\r\n {\r\n path: 'UserInfo',\r\n name: 'UserInfo',\r\n meta: { title: '个人信息 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserInfo.vue')\r\n },\r\n {\r\n path: 'ViewHistory',\r\n name: 'ViewHistory',\r\n meta: { title: '我的足迹 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/ViewHistory.vue')\r\n },\r\n {\r\n path: 'UserAddress',\r\n name: 'UserAddress',\r\n meta: { title: '我的收货地址 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserAddress.vue')\r\n },\r\n {\r\n path: 'UserInvoice',\r\n name: 'UserInvoice',\r\n meta: { title: '发票抬头 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserInvoice.vue')\r\n },\r\n {\r\n path: 'UserInvoiceList',\r\n name: 'UserInvoiceList',\r\n meta: { title: '我的发票 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/UserInvoiceList.vue')\r\n },\r\n {\r\n path: 'ShoppingCart',\r\n name: 'ShoppingCart',\r\n meta: { title: '购物车 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/ShoppingCart.vue')\r\n },\r\n {\r\n path: 'CommentManage',\r\n name: 'CommentManage',\r\n meta: { title: '评价管理 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/CommentManage.vue')\r\n },\r\n {\r\n path: 'ContractList',\r\n name: 'ContractList',\r\n meta: { title: '合同管理 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/ContractList.vue')\r\n },\r\n {\r\n path: 'MessageList',\r\n name: 'MessageList',\r\n meta: { title: '消息中心 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/MessageList.vue')\r\n },\r\n {\r\n path: 'PurchaserAdd',\r\n name: 'PurchaserAdd',\r\n meta: { title: '添加采购单位信息 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/PurchaserAdd.vue')\r\n },\r\n ],\r\n },\r\n {\r\n path: '/Order',\r\n name: 'Order',\r\n meta: { title: '下单', keepAlive: false },\r\n component: () => import('@/views/Order/Index.vue')\r\n },\r\n {\r\n path: '/OrderDetail',\r\n name: 'OrderDetail',\r\n meta: { title: '订单详情 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/Order/OrderDetail.vue')\r\n },\r\n \r\n {\r\n path: '/OrderPay',\r\n name: 'OrderPay',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPay.vue')\r\n },\r\n {\r\n path: '/OrderPayB2B',\r\n name: 'OrderPayB2B',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPayB2B.vue')\r\n },\r\n {\r\n path: '/OrderPayCode',\r\n name: 'OrderPayCode',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPayCode.vue')\r\n },\r\n {\r\n path: '/OrderPaySuccess',\r\n name: 'OrderPaySuccess',\r\n meta: { title: '订单支付 - 精品商城', keepAlive: false },\r\n component: () => import('@/views/User/OrderPaySuccess.vue')\r\n },\r\n \r\n // {\r\n // path: '/user/orders/:id',\r\n // name: 'OrderDetail',\r\n // meta: {\r\n // title: '订单详情 - 精品商城',\r\n // requireAuth: true,\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/OrderDetail.vue')\r\n // },\r\n // {\r\n // path: '*',\r\n // name: 'NotFound',\r\n // meta: {\r\n // title: '页面不存在 - 精品商城',\r\n // keepAlive: false\r\n // },\r\n // component: () => import('@/views/NotFound.vue')\r\n // }\r\n ],\r\n scrollBehavior(to, from, savedPosition) {\r\n // 页面滚动到顶部\r\n return { x: 0, y: 0 }\r\n }\r\n})\r\n\r\n// 路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n // 设置页面标题\r\n if (to.meta.title) {\r\n document.title = to.meta.title\r\n }\r\n \r\n // 验证登录状态\r\n if (to.meta.requireAuth) {\r\n const token = store.state.user?.info?.token || '';\r\n if (token) {\r\n next()\r\n } else {\r\n next({\r\n path: '/Login',\r\n query: { redirect: to.fullPath }\r\n })\r\n }\r\n } else {\r\n next()\r\n }\r\n})\r\n\r\nexport default router","import Vue from 'vue'\r\nimport axios from \"axios\";\r\nimport { Message, MessageBox, Loading } from \"element-ui\"; // 引入 Element UI 组件\r\nimport store from '@/store';\r\nimport router from \"@/router\"\r\n\r\nconst http = axios.create({\r\n timeout: 6000 // 请求超时时间\r\n})\r\n\r\n// 添加请求拦截器\r\nhttp.interceptors.request.use((config) => {\r\n const { customBaseURL } = config.params || config.data || {};\r\n if (customBaseURL) {\r\n config.baseURL = customBaseURL;\r\n if (config.params) {\r\n delete config.params.customBaseURL;\r\n } else if (config.data) {\r\n delete config.data.customBaseURL;\r\n }\r\n } else {\r\n config.baseURL = process.env.VUE_APP_URL;\r\n }\r\n \r\n const token = store.state.user?.info?.token || '';\r\n config.headers['token'] = token || \"\"\r\n // config.headers['token'] = token || \"745f2b4c-49b7-4393-bf58-bc380a87149a\";\r\n config.headers['Content-Type'] = 'application/json;charset=UTF-8';\r\n\r\n // 统一添加 platform_type = 2 参数\r\n // GET 请求在 params 中添加\r\n if (config.method?.toLowerCase() === 'get') {\r\n config.params = {\r\n platform_type: 2,\r\n ...config.params\r\n };\r\n } \r\n // POST 等其他请求在 data 中添加\r\n else {\r\n config.data = {\r\n platform_type: 2,\r\n ...config.data\r\n };\r\n }\r\n \r\n // 显示加载中状态(Element UI 的 Loading)\r\n if (config.loading !== false) { // 默认显示,可通过参数关闭\r\n config.loadingInstance = Loading.service({\r\n lock: true,\r\n text: '加载中...',\r\n background: 'rgba(0, 0, 0, 0.7)'\r\n });\r\n }\r\n \r\n return config;\r\n}, (error) => {\r\n return Promise.reject(error);\r\n});\r\n\r\n// 添加响应拦截器\r\nhttp.interceptors.response.use(response => {\r\n // 关闭加载状态\r\n if (response.config.loadingInstance) {\r\n response.config.loadingInstance.close();\r\n }\r\n \r\n if (response.status === 200 || response.status === 1) {\r\n const resData = response.data;\r\n // 假设接口约定 code 为 0 或 200 时表示业务成功(可根据实际情况修改)\r\n if (resData.code === 1 || resData.code === 200) {\r\n return resData;\r\n } else {\r\n // code 不符合预期时显示错误提示,优先使用接口返回的消息\r\n const errorMsg = resData.msg || `业务处理失败,错误码:${resData.code}`;\r\n MessageBox.alert(errorMsg, '错误提示', {\r\n confirmButtonText: '确定',\r\n type: 'error'\r\n }).then(() => {\r\n if (resData.code === 401) {\r\n // 存储当前路由(排除登录页自身,避免死循环)\r\n const currentPath = router.currentRoute.fullPath;\r\n if (currentPath !== '/Login') { // 假设登录页路径是 /Login\r\n localStorage.setItem('redirectPath', currentPath); // 存到本地存储\r\n }\r\n // 登录操作\r\n router.push(\"/Login\")\r\n }\r\n }).catch(() => {\r\n \r\n });\r\n // return Promise.reject(new Error(errorMsg));\r\n }\r\n } else {\r\n // HTTP状态码非200和1时的弹框提示\r\n const errorMsg = `请求失败,状态码:${response.status}`;\r\n MessageBox.alert(errorMsg, '错误提示', {\r\n confirmButtonText: '确定',\r\n type: 'error'\r\n });\r\n return Promise.reject(new Error(errorMsg));\r\n }\r\n}, error => {\r\n // 关闭加载状态\r\n if (error.config && error.config.loadingInstance) {\r\n error.config.loadingInstance.close();\r\n }\r\n \r\n if (error.response && error.response.status) {\r\n switch (error.response.status) {\r\n case 401:\r\n MessageBox.confirm('请登录后操作', '提示', {\r\n confirmButtonText: '去登录',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n // 登录操作\r\n router.push(\"/Login\")\r\n }).catch(() => {\r\n // 取消登录回调\r\n });\r\n break;\r\n case 404:\r\n Message({\r\n message: '网络繁忙,请刷新再试',\r\n type: 'error',\r\n duration: 2000\r\n });\r\n break;\r\n default:\r\n Message({\r\n message: '网络繁忙,请刷新再试',\r\n type: 'error',\r\n duration: 2000\r\n });\r\n break;\r\n }\r\n }\r\n return Promise.reject(error);\r\n});\r\n\r\n// 请求方法挂载\r\nVue.prototype.get = (params, url, loading = false) => {\r\n return new Promise((resolve, reject) => {\r\n http.get(url, { \r\n params,\r\n loading // 传递加载状态参数\r\n })\r\n .then(res => {\r\n resolve(res);\r\n })\r\n .catch(err => {\r\n reject(err);\r\n });\r\n })\r\n}\r\n\r\nVue.prototype.post = (data, url, loading = false) => {\r\n return new Promise((resolve, reject) => {\r\n http.post(url, data, {\r\n loading // 传递加载状态参数\r\n })\r\n .then(res => {\r\n resolve(res);\r\n })\r\n .catch(err => {\r\n reject(err);\r\n });\r\n })\r\n}","export default {\r\n\tinstall(Vue) {\r\n\t\tVue.prototype.util = {\r\n\t\t\t// 格式化富文本\r\n\t\t\tformateRichText(str) {\r\n\t\t\t\tif (!str) return \"\";\r\n\t\t\t\tvar reg = new RegExp(\"')\r\n\t\t\t\treg = new RegExp(\"section\", \"g\");\r\n\t\t\t\tstr = str.replace(reg, 'div');\r\n\t\t\t\treg = new RegExp(\"↵\", \"g\");\r\n\t\t\t\tstr = str.replace(reg, '
');\r\n\t\t\t\tstr = str.replace(/
{\r\n\t\t\t\t\treader.onload = () => {\r\n\t\t\t\t\t\tresolve(reader.result);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tcopyId(value) {\r\n\t\t\t\tconst input = document.createElement('input');\r\n\t\t\t\tinput.value = value;\r\n\t\t\t\tdocument.body.appendChild(input);\r\n\t\t\t\tinput.select();\r\n\t\t\t\tdocument.execCommand('copy');\r\n\t\t\t\tdocument.body.removeChild(input);\r\n\t\t\t\t\r\n\t\t\t\tVue.prototype.$message({\r\n\t\t\t\t\tmessage: '复制成功',\r\n\t\t\t\t\ttype: 'success'\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t}\r\n\t}\r\n}\r\n","import Vue from 'vue'\r\nimport App from './App'\r\nimport router from './router'\r\nimport store from './store'\r\nimport ElementUI from 'element-ui'\r\nimport 'element-ui/lib/theme-chalk/index.css'\r\nimport VueLazyload from 'vue-lazyload'\r\nimport '@/assets/css/common.scss'\r\nimport '../src/libs/axios.js' // axios处理\r\n\r\nimport utils from './libs/utils.js'\r\nVue.use(utils)\r\n\r\n// 全局配置\r\nVue.config.productionTip = false\r\nVue.use(ElementUI)\r\n\r\nlet env = process.env.NODE_ENV;\r\nconsole.log(env)\r\nVue.prototype.VUE_APP_GLOBAL_TAGS = {\r\n // 正式数据\r\n pc_all: 675, // pc-分类集合\r\n side_all: 701, //侧边栏\r\n all_prod: 676, // 全部商品\r\n // mmy: 677, //米面油\r\n // twgh: 678, // 调味干货\r\n // xxls: 679, //休闲零食\r\n // qxrd: 680, // 禽畜肉蛋\r\n // xgsz: 681, //鲜果蔬菜\r\n // zhjs: 682, //组合集市\r\n pc_index_recommend: 683, //PC-首页-今日推荐\r\n pc_index_hot: 684, //pc-首页-热销排行\r\n pc_index_new: 685, // pc-首页-新品上市\r\n}\r\nif (env === 'development') {\r\n Vue.prototype.VUE_APP_GLOBAL_TAGS = {\r\n // 测试数据\r\n pc_all: 662, // pc-分类集合\r\n all_prod: 663, // 全部商品\r\n // mmy: 664, //米面油\r\n // twgh: 665, // 调味干货\r\n // xxls: 666, //休闲零食\r\n // qxrd: 667, // 禽畜肉蛋\r\n // xgsz: 668, //鲜果蔬菜\r\n // zhjs: 669, //组合集市\r\n pc_index_recommend: 670, //PC-首页-今日推荐\r\n pc_index_hot: 671, //pc-首页-热销排行\r\n pc_index_new: 672, // pc-首页-新品上市\r\n }\r\n}\r\n\r\n// 配置图片懒加载\r\nVue.use(VueLazyload, {\r\n preLoad: 1.3, // 预加载高度比例\r\n error: require('./assets/logo.png'),\r\n loading: require('./assets/logo.png'),\r\n attempt: 3, // 增加尝试次数\r\n listenEvents: ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'], // 确保监听事件完整\r\n adapter: {\r\n // 增加加载状态日志\r\n loaded({ bindType, el, naturalHeight, naturalWidth, $parent, src, loading, error, Init }) {\r\n console.log('图片加载完成:', src)\r\n },\r\n error({ bindType, el, error, $parent, src, loading }) {\r\n console.log('图片加载失败:', src)\r\n }\r\n }\r\n})\r\n\r\n// 全局挂载公共路由跳转方法\r\nVue.prototype.gotoPath = function(path, options = {}) {\r\n // 1. 避免重复跳转同一页面\r\n const currentPath = this.$router.currentRoute.fullPath\r\n if (path === currentPath) {\r\n return\r\n }\r\n\r\n try {\r\n // 2. 支持两种跳转方式:路径字符串或配置对象\r\n if (typeof path === 'string') {\r\n // 字符串路径,可附带query参数\r\n this.$router.push({\r\n path,\r\n query: options.query || {}\r\n })\r\n } else if (typeof path === 'object') {\r\n // 直接传入路由配置对象(如命名路由)\r\n this.$router.push(path)\r\n }\r\n \r\n // 3. 可选的跳转成功回调\r\n if (typeof options.success === 'function') {\r\n options.success()\r\n }\r\n } catch (error) {\r\n // 4. 错误处理\r\n console.error('路由跳转失败:', error)\r\n if (typeof options.fail === 'function') {\r\n options.fail(error)\r\n }\r\n }\r\n}\r\n\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n el: '#app',\r\n router,\r\n store,\r\n components: { App },\r\n template: ''\r\n})\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"47\":\"91e22ff7\",\"83\":\"4f3ee6fe\",\"133\":\"635d95e6\",\"140\":\"2a9e3041\",\"145\":\"bdf9dbc6\",\"154\":\"8a9d2cca\",\"168\":\"791742aa\",\"241\":\"17bc4b66\",\"339\":\"793917b1\",\"359\":\"9bec58e0\",\"395\":\"bf4b57c0\",\"420\":\"2ae90b4c\",\"512\":\"f7e0fd2d\",\"528\":\"f5163631\",\"576\":\"59915dd8\",\"597\":\"bc6f8420\",\"632\":\"bc245760\",\"667\":\"6a70b405\",\"705\":\"c96616d8\",\"707\":\"b7263128\",\"754\":\"eb8a67d3\",\"788\":\"c3e035d9\",\"809\":\"6bde92a7\",\"828\":\"6987a2ad\",\"878\":\"ed5a6807\",\"905\":\"e365cd50\",\"933\":\"a1573a86\",\"992\":\"12386cc8\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"47\":\"4c0b65d7\",\"83\":\"e0b9b1ac\",\"133\":\"f060a013\",\"140\":\"703f0337\",\"145\":\"e6d20e0d\",\"154\":\"edd4b6a0\",\"168\":\"8b344007\",\"241\":\"51eebda5\",\"339\":\"9419445b\",\"359\":\"a7db186a\",\"395\":\"42e712d8\",\"420\":\"37d35775\",\"512\":\"a445f3d6\",\"528\":\"701f8f15\",\"576\":\"b751536e\",\"597\":\"268eb302\",\"632\":\"2661f71c\",\"667\":\"3189fded\",\"705\":\"91c548ed\",\"707\":\"ec7235c5\",\"754\":\"fb749462\",\"809\":\"5ae3b03a\",\"828\":\"9b5bd9e0\",\"878\":\"81403639\",\"905\":\"b5e6f704\",\"933\":\"5507be5a\",\"992\":\"5f484165\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"shiweisuzhou:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"47\":1,\"83\":1,\"133\":1,\"140\":1,\"145\":1,\"154\":1,\"168\":1,\"241\":1,\"339\":1,\"359\":1,\"395\":1,\"420\":1,\"512\":1,\"528\":1,\"576\":1,\"597\":1,\"632\":1,\"667\":1,\"705\":1,\"707\":1,\"754\":1,\"809\":1,\"828\":1,\"878\":1,\"905\":1,\"933\":1,\"992\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkshiweisuzhou\"] = self[\"webpackChunkshiweisuzhou\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(6477); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["Vue","use","Vuex","plugins","createPersistedState","storage","window","localStorage","reducer","val","cart","user","state","items","totalCount","totalPrice","isLogin","info","token","categories","loading","searchText","orderData","mutations","setOrderData","data","clearOrderData","UPDATE_CATEGORIES","UPDATE_LOADING","status","USER_LOGIN","userInfo","setItem","USER_LOGOUT","removeItem","UPDATE_CART_TOTAL_COUNT","count","setSearchText","text","actions","submitOrderData","commit","fetchCategories","Promise","resolve","setTimeout","id","name","icon","login","dispatch","logout","addToCart","product","prototype","post","sku_id","num","quantity","then","res","$message","success","catch","err","console","error","fetchCartCount","log","code","removeFromCart","productId","updateCartItemQuantity","clearCart","getters","getOrderData","getCategories","getCart","getCartTotalCount","isUserLogin","getUserInfo","getLoadingStatus","getSearchText","render","_vm","this","_c","_self","attrs","$route","_e","staticClass","staticRenderFns","_v","directives","rawName","value","avatar","expression","_s","username","cartTotalCount","on","handleLogout","$event","nativeOn","type","indexOf","_k","keyCode","key","handleSearch","apply","arguments","model","callback","$$v","slot","hotList","length","_l","item","index","staticStyle","computed","mapGetters","created","offset","limit","methods","mapActions","trim","$store","path","$router","push","query","keyword","$confirm","confirmButtonText","cancelButtonText","message","component","nonQrcodeColumns","column","title","list","itemIndex","style","cursor","gotoDetail","qrcodeColumn","util","showImg","image","_m","filter","find","mounted","forEach","get","type_id","link_url","location","href","handleCartClick","handleServiceClick","class","active","isShowBackTop","handleBackToTop","cartCount","scrollTimer","addEventListener","handleScroll","beforeDestroy","removeEventListener","clearTimeout","store","process","scrollTo","top","behavior","pageYOffset","showBackToTop","scrollToTop","setInterval","position","Math","max","clearInterval","components","HeaderNav","Footer","BackToTop","Sidebar","Router","originalPush","call","router","mode","base","routes","meta","keepAlive","redirect","children","scrollBehavior","to","from","savedPosition","x","y","beforeEach","next","document","requireAuth","fullPath","http","axios","create","timeout","interceptors","request","config","customBaseURL","params","baseURL","headers","method","toLowerCase","platform_type","loadingInstance","Loading","service","lock","background","reject","response","close","errorMsg","MessageBox","alert","Error","resData","msg","currentPath","currentRoute","confirm","Message","duration","url","install","formateRichText","str","reg","RegExp","replace","mobileValid","test","idNumberValid","passportValid","taiwanValid","gangaoValid","foreignerValid","officerValid","emailValid","getUrlPara","arrUrl","split","para","img","imgToBase64","reader","FileReader","readAsDataURL","onload","result","copyId","input","createElement","body","appendChild","select","execCommand","removeChild","utils","productionTip","ElementUI","env","VUE_APP_GLOBAL_TAGS","pc_all","side_all","all_prod","pc_index_recommend","pc_index_hot","pc_index_new","VueLazyload","preLoad","require","attempt","listenEvents","adapter","loaded","bindType","el","naturalHeight","naturalWidth","$parent","src","Init","gotoPath","options","fail","App","template","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","e","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","charset","nc","setAttribute","onScriptComplete","prev","event","onerror","doneFns","parentNode","bind","target","head","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/app.4470121a.js b/dist/js/app.4470121a.js deleted file mode 100644 index 50f9b6f..0000000 --- a/dist/js/app.4470121a.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){"use strict";var e={3153:function(e,t,n){e.exports=n.p+"img/logo.bb511aff.png"},5129:function(e,t,n){var o=n(6674),a=n(3518),r=n(5131);o["default"].use(a.Ay),t.A=new a.Ay.Store({plugins:[(0,r.A)({storage:window.localStorage,reducer(e){return{cart:e.cart,user:e.user}}})],state:{cart:{items:[],totalCount:0,totalPrice:0},user:{isLogin:!1,info:null,token:""},categories:[],loading:!1,searchText:"",orderData:null},mutations:{setOrderData(e,t){e.orderData=t},clearOrderData(e){e.orderData=null},UPDATE_CATEGORIES(e,t){e.categories=t},UPDATE_LOADING(e,t){e.loading=t},USER_LOGIN(e,{userInfo:t,token:n}){e.user.isLogin=!0,e.user.info=t,e.user.token=n,localStorage.setItem("token",n)},USER_LOGOUT(e){e.user.isLogin=!1,e.user.info=null,e.user.token="",localStorage.removeItem("token"),e.cart.totalCount=0},UPDATE_CART_TOTAL_COUNT(e,t){e.cart.totalCount=t},setSearchText(e,t){e.searchText=t}},actions:{submitOrderData({commit:e},t){e("setOrderData",t)},fetchCategories({commit:e}){return e("UPDATE_LOADING",!0),new Promise(t=>{setTimeout(()=>{const n=[{id:1,name:"电子产品",icon:"el-icon-laptop"},{id:2,name:"服装鞋帽",icon:"el-icon-shopping-bag-1"},{id:3,name:"家居用品",icon:"el-icon-home"},{id:4,name:"美妆个护",icon:"el-icon-present"},{id:5,name:"食品饮料",icon:"el-icon-dish"},{id:6,name:"图书音像",icon:"el-icon-document"}];e("UPDATE_CATEGORIES",n),e("UPDATE_LOADING",!1),t(n)},500)})},login({commit:e,dispatch:t},{userInfo:n,token:o}){e("USER_LOGIN",{userInfo:n,token:o}),t("fetchCartCount")},logout({commit:e}){e("USER_LOGOUT")},addToCart({dispatch:e},t){return o["default"].prototype.post({sku_id:t.id,num:t.quantity||1},"/api/cart/add_sku").then(t=>{if(t)return o["default"].prototype.$message.success("购物车添加成功!"),e("fetchCartCount")}).catch(e=>{throw console.error("添加到购物车请求失败",e),e})},fetchCartCount({commit:e,state:t}){return t.user.token?o["default"].prototype.post({},"/api/cart/get_count").then(t=>(console.log("购物车数量接口返回",t),1==t.code&&e("UPDATE_CART_TOTAL_COUNT",t.data),t.data)).catch(e=>{throw console.error("获取购物车数量失败",e),e}):(e("UPDATE_CART_TOTAL_COUNT",0),Promise.resolve(0))},removeFromCart({dispatch:e},t){return o["default"].prototype.post({sku_id:t},"/api/cart/remove_sku").then(()=>e("fetchCartCount")).catch(e=>{throw console.error("删除购物车商品失败",e),e})},updateCartItemQuantity({dispatch:e},{productId:t,quantity:n}){return o["default"].prototype.post({sku_id:t,num:n},"/api/cart/add_sku").then(()=>e("fetchCartCount")).catch(e=>{throw console.error("更新购物车商品数量失败",e),e})},clearCart({dispatch:e}){return o["default"].prototype.post({},"/api/cart/clear").then(()=>e("fetchCartCount")).catch(e=>{throw console.error("清空购物车失败",e),e})}},getters:{getOrderData:e=>e.orderData,getCategories:e=>e.categories,getCart:e=>e.cart,getCartTotalCount:e=>e.cart.totalCount,isUserLogin:e=>e.user.isLogin,getUserInfo:e=>e.user.info,getLoadingStatus:e=>e.loading,getSearchText:e=>e.searchText}})},6477:function(e,t,n){n(4114);var o=n(6674),a=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"app"}},["Register"!==e.$route.name?t("HeaderNav"):e._e(),"Login"!==e.$route.name?t("main",{staticClass:"main-container"},[t("router-view")],1):e._e(),"Login"==e.$route.name?t("main",{staticClass:"main-containers"},[t("router-view")],1):e._e(),"Register"!==e.$route.name?t("Sidebar"):e._e(),"Register"!==e.$route.name?t("Footer"):e._e()],1)},r=[],i=function(){var e=this,t=e._self._c;return t("header",{staticClass:"header-nav"},[t("div",{staticClass:"top-notice"},[t("div",{staticClass:"container"},[t("p",[e._v(" 欢迎来到时味苏州平台! "),e._e()],1),t("div",{staticClass:"top-links"},[e.isLogin?t("router-link",{staticClass:"user-link",attrs:{to:"/User"}},[t("img",{directives:[{name:"lazy",rawName:"v-lazy",value:e.userInfo.avatar,expression:"userInfo.avatar"}],staticClass:"avatar",attrs:{alt:"用户头像"}}),e._v(" "+e._s(e.userInfo.username)+" ")]):t("router-link",{attrs:{to:"/Login"}},[e._v("登录")]),e._e(),e._e(),t("router-link",{attrs:{to:"/User"}},[e._v("采购人中心")]),t("router-link",{staticClass:"cart-link",attrs:{to:"/User/ShoppingCart"}},[e._v(" 购物车"),e.cartTotalCount>0?t("span",[e._v("("+e._s(e.cartTotalCount)+"件)")]):e._e()]),e.isLogin?t("router-link",{attrs:{to:"/User/OrderList"}},[e._v("我的订单")]):e._e(),e.isLogin?t("div",{staticClass:"logout-btn",on:{click:e.handleLogout}},[e._v(" 退出 ")]):e._e()],1)])]),t("div",{staticClass:"main-nav"},[t("div",{staticClass:"container"},[t("div",{staticClass:"logo"},[t("router-link",{attrs:{to:"/"}},[t("img",{staticClass:"logo-img",attrs:{src:"https://static.ticket.sz-trip.com/shiweisuzhou/pc/logo.png",alt:"logo"},on:{click:function(t){e.searchText=""}}})])],1),t("div",{staticClass:"search-box"},[t("el-input",{staticClass:"search-input",attrs:{placeholder:"请输入搜索内容"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleSearch.apply(null,arguments)}},model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}},[t("el-button",{attrs:{slot:"append",icon:"el-icon-search"},on:{click:e.handleSearch},slot:"append"})],1),e.hotList.length>0?t("div",{staticClass:"hot-tags"},[t("span",[e._v("热门搜索:")]),e._l(e.hotList,function(n,o){return t("div",{key:o,staticClass:"hot-tag",on:{click:function(t){e.searchText=n.name,e.handleSearch()}}},[e._v(" "+e._s(n.name)+" ")])})],2):e._e()],1),t("div",{staticClass:"phone-entry"},[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("img",{staticStyle:{"margin-right":"5px"},attrs:{src:"https://static.ticket.sz-trip.com/shiweisuzhou/pc/login/phone.png",alt:"联系电话"}}),t("span",[e._v("0512-80822586")]),(e.cartTotalCount,e._e())])])])]),e.categories.length>0?t("div",{staticClass:"category-nav"},[t("div",{staticClass:"container"},[e._e()])]):e._e()])},s=[],c=n(3518),l={name:"HeaderNav",data(){return{searchText:"",hotList:[]}},computed:{...(0,c.L8)(["getCategories","getCartTotalCount","isUserLogin","getUserInfo"]),categories(){return this.getCategories||[]},cartTotalCount(){return this.getCartTotalCount||0},isLogin(){return this.isUserLogin},userInfo(){return this.getUserInfo||{}}},created(){this.fetchCategories(),this.post({offset:0,limit:5},"/api/search/hot").then(e=>{this.hotList=e.data})},methods:{...(0,c.i0)(["fetchCategories","logout"]),handleSearch(){this.searchText.trim()&&(this.$store.commit("setSearchText",this.searchText),"/ProductList"===this.$route.path||this.$router.push({path:"/ProductList",query:{keyword:this.searchText,type:"search"}}))},handleLogout(){this.$confirm("确定要退出登录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{this.logout().then(()=>{this.$message.success("退出登录成功"),localStorage.setItem("redirectPath",this.$route.path),this.$router.push("/Login")}).catch(e=>{this.$message.error("退出失败:"+(e.message||"未知错误"))})}).catch(()=>{})}}},u=l,d=n(845),p=(0,d.A)(u,i,s,!1,null,"00f3c839",null),h=p.exports,m=function(){var e=this,t=e._self._c;return t("div",{staticClass:"footer-container"},[t("div",{staticClass:"footer-top"},[e._l(e.nonQrcodeColumns,function(n,o){return t("div",{key:n.id,staticClass:"footer-column"},[t("h3",[e._v(e._s(n.title))]),t("ul",e._l(n.list,function(n,a){return t("li",{key:a,style:{cursor:o<4?"pointer":""},on:{click:function(t){o<4&&e.gotoDetail(n)}}},[e._v(" "+e._s(n.title)+" ")])}),0)])}),t("div",{staticClass:"qrcode-group"},e._l(e.qrcodeColumn.list,function(n,o){return t("div",{key:o,staticClass:"qrcode-item"},[t("img",{staticStyle:{width:"100px",height:"100px"},attrs:{src:e.util.showImg(n.image)}}),t("p",[e._v(e._s(n.title))])])}),0)],2),e._m(0)])},f=[function(){var e=this,t=e._self._c;return t("div",{staticClass:"footer-bottom"},[t("p",[e._v("版权所有 苏州市特色农产品发展有限公司 | 苏ICP备2023023300号-1")]),t("p",[e._v("本网站由 江苏大运远见文化科技发展有限公司 运营维护")])])}],g=(n(8111),n(2489),n(116),n(7588),{name:"Footer",data(){return{list:[{id:1,title:"关于我们",list:[]},{id:2,title:"新手上路",list:[]},{id:5,title:"交易流程",list:[]},{id:3,title:"常见问题",list:[]},{id:6,title:"联系方式",list:[]},{id:4,title:"二维码推荐",list:[]}]}},computed:{nonQrcodeColumns(){return this.list.filter(e=>"二维码推荐"!==e.title)},qrcodeColumn(){return this.list.find(e=>"二维码推荐"===e.title)||{list:[]}}},mounted(){this.list.forEach(e=>{this.get({type_id:e.id},"/api/navigation/getNavigationByTypeList").then(t=>{e.list=t.data})})},methods:{gotoDetail(e){e.link_url?window.location.href=e.link_url:this.$router.push(`/NoticeDetail?type=footer&id=${e.id}`)}}}),v=g,b=(0,d.A)(v,m,f,!1,null,"3080ae3e",null),C=b.exports,y=function(){var e=this,t=e._self._c;return t("div",{staticClass:"sidebar-container"},[t("div",{staticClass:"sidebar-item",on:{click:e.handleCartClick}},[t("el-badge",{staticClass:"item-badge",attrs:{value:e.$store.getters.getCartTotalCount}},[t("i",{staticClass:"el-icon-shopping-cart-full"})]),t("div",{staticClass:"item-text"},[e._v("购物车")])],1),t("div",{staticClass:"sidebar-item",on:{click:e.handleServiceClick}},[t("i",{staticClass:"el-icon-headset"}),t("div",{staticClass:"item-text"},[e._v("在线客服")])]),t("div",{staticClass:"sidebar-item back-to-top",class:{active:e.isShowBackTop},on:{click:e.handleBackToTop}},[t("i",{staticClass:"el-icon-caret-top"}),t("div",{staticClass:"item-text"},[e._v("回到顶部")])])])},_=[],k=n(5129),T={name:"Sidebar",data(){return{cartCount:0,isShowBackTop:!1,scrollTimer:null}},computed:{...(0,c.L8)(["getCartTotalCount"])},mounted(){window.addEventListener("scroll",this.handleScroll),this.$store.dispatch("fetchCartCount")},beforeDestroy(){window.removeEventListener("scroll",this.handleScroll),this.scrollTimer&&clearTimeout(this.scrollTimer)},methods:{handleCartClick(){this.$router.push("/User/ShoppingCart")},handleServiceClick(){const e=k.A.state.user?.info?.token||"";window.location.href="https://api.sutenong.com/kefu?token="+e},handleBackToTop(){window.scrollTo({top:0,behavior:"smooth"})},handleScroll(){this.scrollTimer&&clearTimeout(this.scrollTimer),this.scrollTimer=setTimeout(()=>{this.isShowBackTop=window.pageYOffset>300},200)}}},w=T,A=(0,d.A)(w,y,_,!1,null,"6df28cc6",null),L=A.exports,x=function(){var e=this,t=e._self._c;return e.showBackToTop?t("div",{staticClass:"back-to-top",on:{click:e.scrollToTop}},[t("el-icon",{attrs:{name:"el-icon-arrow-up"}})],1):e._e()},O=[],S={name:"BackToTop",data(){return{showBackToTop:!1}},mounted(){window.addEventListener("scroll",this.handleScroll)},beforeDestroy(){window.removeEventListener("scroll",this.handleScroll)},methods:{handleScroll(){this.showBackToTop=window.pageYOffset>500},scrollToTop(){const e=window.setInterval(()=>{const t=window.pageYOffset;t>0?window.scrollTo(0,t-Math.max(20,t/10)):window.clearInterval(e)},16)}}},U=S,P=(0,d.A)(U,x,O,!1,null,"7ea6dee0",null),E=P.exports,I={name:"App",components:{HeaderNav:h,Footer:C,BackToTop:E,Sidebar:L},computed:{...(0,c.L8)(["getLoadingStatus"]),loading(){return this.getLoadingStatus}}},B=I,D=(0,d.A)(B,a,r,!1,null,null,null),$=D.exports,R=n(6178);o["default"].use(R.Ay);const N=R.Ay.prototype.push;R.Ay.prototype.push=function(e){return N.call(this,e).catch(e=>{if("NavigationDuplicated"!==e.name)throw e})};const z=new R.Ay({mode:"history",base:"/",routes:[{path:"/",name:"Index",meta:{title:"首页 - 精品商城",keepAlive:!1},component:()=>n.e(934).then(n.bind(n,2934))},{path:"/Login",name:"Login",meta:{title:"登录 - 精品商城",keepAlive:!1},component:()=>n.e(992).then(n.bind(n,3992))},{path:"/Register",name:"Register",meta:{title:"注册 - 精品商城",keepAlive:!1},component:()=>n.e(632).then(n.bind(n,2632))},{path:"/Home",name:"Home",meta:{title:"首页 - 精品商城",keepAlive:!1},component:()=>n.e(339).then(n.bind(n,9339))},{path:"/Detail/:id",name:"Detail",meta:{title:"首页 - 精品商城",keepAlive:!1},component:()=>n.e(707).then(n.bind(n,3707))},{path:"/ProductList",name:"ProductList",meta:{title:"商品列表",keepAlive:!1},component:()=>n.e(896).then(n.bind(n,3896))},{path:"/ProductReview",name:"ProductReview",meta:{title:"商品评价",keepAlive:!1},component:()=>n.e(905).then(n.bind(n,2905))},{path:"/NoticeList",name:"NoticeList",meta:{title:"公告列表",keepAlive:!1},component:()=>n.e(705).then(n.bind(n,6705))},{path:"/NoticeDetail",name:"NoticeDetail",meta:{title:"公告详情",keepAlive:!1},component:()=>n.e(133).then(n.bind(n,7133))},{path:"/User",name:"User",component:()=>n.e(809).then(n.bind(n,809)),redirect:"/User/UserCenter",children:[{path:"UserCenter",name:"UserCenter",component:()=>n.e(168).then(n.bind(n,4168))},{path:"OrderList",name:"OrderList",meta:{title:"我的订单 - 精品商城",keepAlive:!1},component:()=>n.e(140).then(n.bind(n,9759))},{path:"UserInfo",name:"UserInfo",meta:{title:"个人信息 - 精品商城",keepAlive:!1},component:()=>n.e(667).then(n.bind(n,5667))},{path:"ViewHistory",name:"ViewHistory",meta:{title:"我的足迹 - 精品商城",keepAlive:!1},component:()=>n.e(933).then(n.bind(n,1933))},{path:"UserAddress",name:"UserAddress",meta:{title:"我的收货地址 - 精品商城",keepAlive:!1},component:()=>n.e(597).then(n.bind(n,597))},{path:"UserInvoice",name:"UserInvoice",meta:{title:"发票抬头 - 精品商城",keepAlive:!1},component:()=>n.e(788).then(n.bind(n,9788))},{path:"UserInvoiceList",name:"UserInvoiceList",meta:{title:"我的发票 - 精品商城",keepAlive:!1},component:()=>n.e(576).then(n.bind(n,5576))},{path:"ShoppingCart",name:"ShoppingCart",meta:{title:"购物车 - 精品商城",keepAlive:!1},component:()=>n.e(145).then(n.bind(n,4145))},{path:"CommentManage",name:"CommentManage",meta:{title:"评价管理 - 精品商城",keepAlive:!1},component:()=>n.e(754).then(n.bind(n,3754))},{path:"ContractList",name:"ContractList",meta:{title:"合同管理 - 精品商城",keepAlive:!1},component:()=>n.e(420).then(n.bind(n,7420))},{path:"MessageList",name:"MessageList",meta:{title:"消息中心 - 精品商城",keepAlive:!1},component:()=>n.e(47).then(n.bind(n,3047))},{path:"PurchaserAdd",name:"PurchaserAdd",meta:{title:"添加采购单位信息 - 精品商城",keepAlive:!1},component:()=>n.e(878).then(n.bind(n,6878))}]},{path:"/Order",name:"Order",meta:{title:"下单",keepAlive:!1},component:()=>n.e(828).then(n.bind(n,8828))},{path:"/OrderDetail",name:"OrderDetail",meta:{title:"订单详情 - 精品商城",keepAlive:!1},component:()=>n.e(528).then(n.bind(n,2528))},{path:"/OrderPay",name:"OrderPay",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(241).then(n.bind(n,4241))},{path:"/OrderPayB2B",name:"OrderPayB2B",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(395).then(n.bind(n,8776))},{path:"/OrderPayCode",name:"OrderPayCode",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(154).then(n.bind(n,9154))},{path:"/OrderPaySuccess",name:"OrderPaySuccess",meta:{title:"订单支付 - 精品商城",keepAlive:!1},component:()=>n.e(359).then(n.bind(n,5359))}],scrollBehavior(e,t,n){return{x:0,y:0}}});z.beforeEach((e,t,n)=>{if(e.meta.title&&(document.title=e.meta.title),e.meta.requireAuth){const t=k.A.state.user?.info?.token||"";t?n():n({path:"/Login",query:{redirect:e.fullPath}})}else n()});var j=z,q=n(9143),G=n.n(q),M=n(5847),V=n(4373);const F=V.A.create({timeout:6e3});F.interceptors.request.use(e=>{const{customBaseURL:t}=e.params||e.data||{};t?(e.baseURL=t,e.params?delete e.params.customBaseURL:e.data&&delete e.data.customBaseURL):e.baseURL="https://api.sutenong.com";const n=k.A.state.user?.info?.token||"";return e.headers["token"]=n||"",e.headers["Content-Type"]="application/json;charset=UTF-8","get"===e.method?.toLowerCase()?e.params={platform_type:2,...e.params}:e.data={platform_type:2,...e.data},!1!==e.loading&&(e.loadingInstance=q.Loading.service({lock:!0,text:"加载中...",background:"rgba(0, 0, 0, 0.7)"})),e},e=>Promise.reject(e)),F.interceptors.response.use(e=>{if(e.config.loadingInstance&&e.config.loadingInstance.close(),200!==e.status&&1!==e.status){const t=`请求失败,状态码:${e.status}`;return q.MessageBox.alert(t,"错误提示",{confirmButtonText:"确定",type:"error"}),Promise.reject(new Error(t))}{const t=e.data;if(1===t.code||200===t.code)return t;{const e=t.msg||`业务处理失败,错误码:${t.code}`;q.MessageBox.alert(e,"错误提示",{confirmButtonText:"确定",type:"error"}).then(()=>{if(401===t.code){const e=j.currentRoute.fullPath;"/Login"!==e&&localStorage.setItem("redirectPath",e),j.push("/Login")}}).catch(()=>{})}}},e=>{if(e.config&&e.config.loadingInstance&&e.config.loadingInstance.close(),e.response&&e.response.status)switch(e.response.status){case 401:q.MessageBox.confirm("请登录后操作","提示",{confirmButtonText:"去登录",cancelButtonText:"取消",type:"warning"}).then(()=>{j.push("/Login")}).catch(()=>{});break;case 404:(0,q.Message)({message:"网络繁忙,请刷新再试",type:"error",duration:2e3});break;default:(0,q.Message)({message:"网络繁忙,请刷新再试",type:"error",duration:2e3});break}return Promise.reject(e)}),o["default"].prototype.get=(e,t,n=!1)=>new Promise((o,a)=>{F.get(t,{params:e,loading:n}).then(e=>{o(e)}).catch(e=>{a(e)})}),o["default"].prototype.post=(e,t,n=!1)=>new Promise((o,a)=>{F.post(t,e,{loading:n}).then(e=>{o(e)}).catch(e=>{a(e)})});var H={install(e){e.prototype.util={formateRichText(e){if(!e)return"";var t=new RegExp("'),t=new RegExp("section","g"),e=e.replace(t,"div"),t=new RegExp("↵","g"),e=e.replace(t,"
"),e=e.replace(/
{t.onload=()=>{e(t.result)}})},copyId(t){const n=document.createElement("input");n.value=t,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),e.prototype.$message({message:"复制成功",type:"success"})}}}};o["default"].use(H),o["default"].config.productionTip=!1,o["default"].use(G());let Z="production";console.log(Z),o["default"].prototype.VUE_APP_GLOBAL_TAGS={pc_all:675,side_all:701,all_prod:676,pc_index_recommend:683,pc_index_hot:684,pc_index_new:685},"development"===Z&&(o["default"].prototype.VUE_APP_GLOBAL_TAGS={pc_all:662,all_prod:663,pc_index_recommend:670,pc_index_hot:671,pc_index_new:672}),o["default"].use(M.A,{preLoad:1.3,error:n(3153),loading:n(3153),attempt:3,listenEvents:["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],adapter:{loaded({bindType:e,el:t,naturalHeight:n,naturalWidth:o,$parent:a,src:r,loading:i,error:s,Init:c}){console.log("图片加载完成:",r)},error({bindType:e,el:t,error:n,$parent:o,src:a,loading:r}){console.log("图片加载失败:",a)}}}),o["default"].prototype.gotoPath=function(e,t={}){const n=this.$router.currentRoute.fullPath;if(e!==n)try{"string"===typeof e?this.$router.push({path:e,query:t.query||{}}):"object"===typeof e&&this.$router.push(e),"function"===typeof t.success&&t.success()}catch(o){console.error("路由跳转失败:",o),"function"===typeof t.fail&&t.fail(o)}},new o["default"]({el:"#app",router:j,store:k.A,components:{App:$},template:""})}},t={};function n(o){var a=t[o];if(void 0!==a)return a.exports;var r=t[o]={id:o,loaded:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.m=e,function(){n.amdO={}}(),function(){var e=[];n.O=function(t,o,a,r){if(!o){var i=1/0;for(u=0;u=r)&&Object.keys(n.O).every(function(e){return n.O[e](o[c])})?o.splice(c--,1):(s=!1,r0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[o,a,r]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce(function(t,o){return n.f[o](e,t),t},[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{47:"91e22ff7",133:"635d95e6",140:"2a9e3041",145:"bdf9dbc6",154:"8a9d2cca",168:"791742aa",241:"17bc4b66",339:"793917b1",359:"9bec58e0",395:"bf4b57c0",420:"2ae90b4c",528:"f5163631",576:"59915dd8",597:"bc6f8420",632:"bc245760",667:"6a70b405",705:"c96616d8",707:"b7263128",754:"eb8a67d3",788:"c3e035d9",809:"6bde92a7",828:"6987a2ad",878:"ed5a6807",896:"87e420a5",905:"e365cd50",933:"a1573a86",934:"c3cb9093",992:"12386cc8"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{47:"4c0b65d7",133:"f060a013",140:"703f0337",145:"e6d20e0d",154:"edd4b6a0",168:"8b344007",241:"51eebda5",339:"9419445b",359:"a7db186a",395:"42e712d8",420:"37d35775",528:"701f8f15",576:"b751536e",597:"268eb302",632:"2661f71c",667:"3189fded",705:"91c548ed",707:"ec7235c5",754:"fb749462",809:"5ae3b03a",828:"9b5bd9e0",878:"81403639",896:"4400289a",905:"b5e6f704",933:"5507be5a",934:"80745de8",992:"5f484165"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="shiweisuzhou:";n.l=function(o,a,r,i){if(e[o])e[o].push(a);else{var s,c;if(void 0!==r)for(var l=document.getElementsByTagName("script"),u=0;u