From 4ee1cfa3a97d15074edfbabe92cd29ee563c5a9d Mon Sep 17 00:00:00 2001 From: yuanteng <1876787513@qq.com> Date: Sun, 16 Mar 2025 23:22:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=8C=E6=96=87=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E5=88=A0=E9=99=A4=E4=BA=86=E4=B8=80=E5=A4=A7=E5=A0=86?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 8 + package-lock.json | 278 +++++++++++++---- package.json | 4 +- src/App.vue | 4 +- src/api/myAxios.ts | 1 + src/layout/components/Header.vue | 2 +- src/layout/components/richTextUtil.vue | 38 ++- src/router/routes.ts | 147 ++++++--- src/utils/entityProduct/picUpload.ts | 17 +- src/views/Commodity/AddProduct.vue | 96 ++++-- src/views/Commodity/EntityProductDetail.vue | 282 ++++++++++++++++++ src/views/Commodity/MerchandiseCenter.vue | 154 ++-------- src/views/Commodity/TypeManagement.vue | 2 +- src/views/CostumeAppointments/AddCostumes.vue | 189 +++++------- .../CostumeAppointments/AppointmentOrder.vue | 4 +- .../CostumeAppointments/ClothingGrade.vue | 8 +- .../CostumeAppointments/ManagementCenter.vue | 13 +- .../CostumeAppointments/OutfitDetail.vue | 257 ++++++++++++++++ src/views/Coupons/AddCoupons.vue | 6 - src/views/Coupons/CouponCenter.vue | 22 +- src/views/Login.vue | 1 + src/views/Orders/OrderList.vue | 3 - src/views/Orders/PendingServiceOrderList.vue | 13 +- .../OtherManagement/CourseCarouseCenter.vue | 214 +++++++++++++ .../OtherManagement/EntityCarouseCenter.vue | 214 +++++++++++++ .../OtherManagement/FestivalManagement.vue | 215 +++++++++++++ src/views/ServiceType/AddServiceProduct.vue | 160 ++++------ src/views/ServiceType/ProductCenter.vue | 15 +- .../ServiceType/ServiceProductDetail.vue | 189 ++++++++++++ src/views/User/PersonalCenter.vue | 2 +- src/views/User/Upload.vue | 2 +- src/views/User/UserManagement.vue | 2 +- src/views/test.vue | 146 +++++++-- 33 files changed, 2121 insertions(+), 587 deletions(-) create mode 100644 src/views/Commodity/EntityProductDetail.vue create mode 100644 src/views/CostumeAppointments/OutfitDetail.vue create mode 100644 src/views/OtherManagement/CourseCarouseCenter.vue create mode 100644 src/views/OtherManagement/EntityCarouseCenter.vue create mode 100644 src/views/OtherManagement/FestivalManagement.vue create mode 100644 src/views/ServiceType/ServiceProductDetail.vue diff --git a/index.html b/index.html index 5b2f707..43d346d 100644 --- a/index.html +++ b/index.html @@ -11,3 +11,11 @@ + + diff --git a/package-lock.json b/package-lock.json index ba0d550..6d9c1fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -913,6 +913,7 @@ "version": "3.5.12", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.12.tgz", "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", + "dev": true, "requires": { "@babel/parser": "^7.25.3", "@vue/shared": "3.5.12", @@ -925,34 +926,98 @@ "version": "3.5.12", "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", + "dev": true, "requires": { "@vue/compiler-core": "3.5.12", "@vue/shared": "3.5.12" } }, "@vue/compiler-sfc": { - "version": "3.5.12", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", - "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", + "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", "requires": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.12", - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12", + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-ssr": "3.2.31", + "@vue/reactivity-transform": "3.2.31", + "@vue/shared": "3.2.31", "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.47", - "source-map-js": "^1.2.0" + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "requires": { + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } } }, "@vue/compiler-ssr": { - "version": "3.5.12", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", - "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", + "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", "requires": { - "@vue/compiler-dom": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-dom": "3.2.31", + "@vue/shared": "3.2.31" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "requires": { + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + } } }, "@vue/compiler-vue2": { @@ -987,46 +1052,112 @@ } }, "@vue/reactivity": { - "version": "3.5.12", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.12.tgz", - "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==", + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.31.tgz", + "integrity": "sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==", "requires": { - "@vue/shared": "3.5.12" + "@vue/shared": "3.2.31" + }, + "dependencies": { + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + } + } + }, + "@vue/reactivity-transform": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", + "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } } }, "@vue/runtime-core": { - "version": "3.5.12", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.12.tgz", - "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==", + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.31.tgz", + "integrity": "sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==", "requires": { - "@vue/reactivity": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/reactivity": "3.2.31", + "@vue/shared": "3.2.31" + }, + "dependencies": { + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + } } }, "@vue/runtime-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz", - "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==", + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz", + "integrity": "sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g==", "requires": { - "@vue/reactivity": "3.5.12", - "@vue/runtime-core": "3.5.12", - "@vue/shared": "3.5.12", - "csstype": "^3.1.3" + "@vue/runtime-core": "3.2.31", + "@vue/shared": "3.2.31", + "csstype": "^2.6.8" + }, + "dependencies": { + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + } } }, "@vue/server-renderer": { - "version": "3.5.12", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.12.tgz", - "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==", + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.31.tgz", + "integrity": "sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==", "requires": { - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-ssr": "3.2.31", + "@vue/shared": "3.2.31" + }, + "dependencies": { + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + } } }, "@vue/shared": { "version": "3.5.12", "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.12.tgz", - "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==" + "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", + "dev": true }, "@vue/tsconfig": { "version": "0.5.1", @@ -1359,9 +1490,9 @@ } }, "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "d": { "version": "1.0.2", @@ -1460,7 +1591,8 @@ "entities": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true }, "errno": { "version": "0.1.8", @@ -2309,12 +2441,12 @@ "optional": true }, "pinia": { - "version": "2.2.4", - "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.2.4.tgz", - "integrity": "sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==", + "version": "2.0.35", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.35.tgz", + "integrity": "sha512-P1IKKQWhxGXiiZ3atOaNI75bYlFUbRxtJdhPLX059Z7+b9Z04rnTZdSY8Aph1LA+/4QEMAYHsTQ638Wfe+6K5g==", "requires": { - "@vue/devtools-api": "^6.6.3", - "vue-demi": "^0.14.10" + "@vue/devtools-api": "^6.5.0", + "vue-demi": "*" } }, "pinia-plugin-persistedstate": { @@ -2548,15 +2680,18 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "ssr-window": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", @@ -2760,15 +2895,42 @@ "dev": true }, "vue": { - "version": "3.5.12", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.12.tgz", - "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==", + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.31.tgz", + "integrity": "sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==", "requires": { - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-sfc": "3.5.12", - "@vue/runtime-dom": "3.5.12", - "@vue/server-renderer": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-sfc": "3.2.31", + "@vue/runtime-dom": "3.2.31", + "@vue/server-renderer": "3.2.31", + "@vue/shared": "3.2.31" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "requires": { + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==" + } } }, "vue-demi": { diff --git a/package.json b/package.json index 36d6631..4c22f00 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,10 @@ "dayjs": "^1.11.13", "element-plus": "^2.9.0", "mitt": "^3.0.1", - "pinia": "^2.2.4", + "pinia": "^2.0.35", "pinia-plugin-persistedstate": "^4.1.2", "querystring": "^0.2.1", - "vue": "^3.4.21", + "vue": "^3.2.31", "vue-router": "^4.3.3" }, "devDependencies": { diff --git a/src/App.vue b/src/App.vue index be62b8c..e52996b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -40,8 +40,8 @@ html{ body{ padding: 0; margin: 0; - overflow: hidden; + overflow: auto; width: 100%; - height: 100%; + min-width: 1200px; } diff --git a/src/api/myAxios.ts b/src/api/myAxios.ts index 0a72ae1..8ad9826 100644 --- a/src/api/myAxios.ts +++ b/src/api/myAxios.ts @@ -8,6 +8,7 @@ const myAxios = axios.create({ // baseURL: 'http://123.249.108.160:8888/api' //测试服务器 // baseURL: 'http://154.8.193.216:9092/api', //隋雨霏服务器 // baseURL: 'http://154.8.193.216:9093/api' //隋雨霏服务器测试环境 + // baseURL: 'https://www.carboner.cn:8888/api' }); // 添加请求拦截器 axios.interceptors.request.use(function (config) { diff --git a/src/layout/components/Header.vue b/src/layout/components/Header.vue index 76066be..880f984 100644 --- a/src/layout/components/Header.vue +++ b/src/layout/components/Header.vue @@ -25,7 +25,7 @@ diff --git a/src/layout/components/richTextUtil.vue b/src/layout/components/richTextUtil.vue index e454586..2ab6a40 100644 --- a/src/layout/components/richTextUtil.vue +++ b/src/layout/components/richTextUtil.vue @@ -2,28 +2,31 @@
-
diff --git a/src/router/routes.ts b/src/router/routes.ts index 099fec8..56ccc75 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -72,6 +72,16 @@ export const constantRoute = [ icon: 'Files', hidden: false } + }, + { + path: '/EntityProductDetail/:id/:flag', + name: '商品详情', + component: () => import("@/views/Commodity/EntityProductDetail.vue"), + meta: { + title: '商品详情', + icon: 'Files', + hidden: true + } } ] }, @@ -105,6 +115,15 @@ export const constantRoute = [ icon: 'DataBoard', hidden: false } + }, + { + path: '/ServiceProductDetail/:id/:flag', + name: '课程详情', + component: () => import("@/views/ServiceType/ServiceProductDetail.vue"), + meta: { + title: '课程详情', + hidden: true + } } ] }, @@ -151,39 +170,6 @@ export const constantRoute = [ } ] }, - // 优惠卷信息 - { - path: '/coupon', - redirect: '/AddCoupons', - component: () => import("@/layout/Manage.vue"), - meta: { - title: '优惠卷管理', - icon: 'Discount', - hidden: false - }, - children: [ - { - path: '/AddCoupons', - name: '添加优惠券', - component: () => import("@/views/Coupons/AddCoupons.vue"), - meta: { - title: '添加优惠券', - icon: 'Edit', - hidden: false - } - }, - { - path: '/CouponCenter', - name: '优惠券中心', - component: () => import("@/views/Coupons/CouponCenter.vue"), - meta: { - title: '优惠券中心', - icon: 'DataAnalysis', - hidden: false - } - } - ] - }, // 写真预约 { path: '/outfitManage', @@ -243,6 +229,48 @@ export const constantRoute = [ title: '写真订单详情', hidden: true } + }, + { + path: '/OutfitDetail/:id/:flag', + name: '服装详情', + component: () => import("@/views/CostumeAppointments/OutfitDetail.vue"), + meta: { + title: '服装详情', + hidden: true + } + } + ] + }, + // 优惠卷信息 + { + path: '/coupon', + redirect: '/AddCoupons', + component: () => import("@/layout/Manage.vue"), + meta: { + title: '优惠卷管理', + icon: 'Discount', + hidden: false + }, + children: [ + { + path: '/AddCoupons', + name: '添加优惠券', + component: () => import("@/views/Coupons/AddCoupons.vue"), + meta: { + title: '添加优惠券', + icon: 'Edit', + hidden: false + } + }, + { + path: '/CouponCenter', + name: '优惠券中心', + component: () => import("@/views/Coupons/CouponCenter.vue"), + meta: { + title: '优惠券中心', + icon: 'DataAnalysis', + hidden: false + } } ] }, @@ -300,17 +328,50 @@ export const constantRoute = [ icon: 'User', hidden: false } + } + ] + }, + //节日管理+商城轮播图管理+课程首页轮播图管理 + { + path: '/OtherManage', + redirect: '/EntityCarouseCenter', + component: () => import("@/layout/Manage.vue"), + meta: { + title: '其他管理', + icon: '', + hidden: false + }, + children: [ + { + path: '/EntityCarouseCenter', + name: '商城轮播图管理', + component: () => import("@/views/OtherManagement/EntityCarouseCenter.vue"), + meta: { + title: '商城轮播图管理', + icon: '', + hidden: false + } }, - // { - // path: '/Upload', - // name: '文件上传', - // component: () => import("@/views/User/Upload.vue"), - // meta: { - // title: '文件上传', - // icon: 'Upload', - // hidden: false - // } - // }, + { + path: '/CourseCarouseCenter', + name: '课程轮播图管理', + component: () => import("@/views/OtherManagement/CourseCarouseCenter.vue"), + meta: { + title: '课程轮播图管理', + icon: '', + hidden: false + } + }, + { + path: '/FestivalManage', + name: '节日管理', + component: () => import("@/views/OtherManagement/FestivalManagement.vue"), + meta: { + title: '节日管理', + icon: '', + hidden: false + } + } ] }, { diff --git a/src/utils/entityProduct/picUpload.ts b/src/utils/entityProduct/picUpload.ts index 7ce94fc..9c8d43f 100644 --- a/src/utils/entityProduct/picUpload.ts +++ b/src/utils/entityProduct/picUpload.ts @@ -14,19 +14,21 @@ export const form : any = ref({ //添加实体类商品的表单 festivalName: '', //节日名称 type: '',//类别 label: '',//商品标签 - introDetail: '',//详情描述 + // introDetail: '',//详情描述 goodImg: '', //商品图片url - detailImg: '', //图文详情url - inventory: '' //库存 + // detailImg: '', //图文详情url + inventory: '', //库存 + richText: '' }) export const editForm: any = ref({}) //编辑后的实体类商品表格 + //图片上传请求 此请求只要选择了图片,就会默认上传 export const handleChange = async (file: any, flag: number ) => { fileSimple.value = file let formData = new FormData() //这一步很重要 创建一个FormData对象 formData.append("file", fileSimple.value.raw) //fileSimple.value.raw 才是文件主体 将其以文件的格式插入formData const res = await myAxios({ //编写请求,与以前的请求不同,这一次要指定好头部类型和文件类型 - url: '/file/upload/server/not_login', + url: '/file/uploadFile', method: 'post', headers: { 'content-Type': 'multipart/form-data' @@ -37,21 +39,20 @@ export const handleChange = async (file: any, flag: number ) => { file: formData.get("file") } }) + // console.log('图片上传的结果--->',res.data) if (res.data.code === 1) { if ( flag === 2 ) { productImgArr.value.splice(0, productImgArr.value.length) //一并删除数组中存放的图片Url地址 - productImgMap.set(fileSimple.value.uid, res.data.data) + productImgMap.set(fileSimple.value.uid,res.data.data) productImgMap.forEach(loopMap) //将图片url插入到数组中 form.value.goodImg = formatString() } else if(flag === 0 && ImgArr != null) { dealImgArr(ImgArr.value) //先处理 - productImgMap.set(fileSimple.value.uid, res.data.data) + productImgMap.set(fileSimple.value.uid,res.data.data) productImgMap.forEach(loopMap) //将图片url插入到数组中 pushImgArr(productImgArr.value) editForm.value.goodImg = formatString() productImgMap.clear() //清除所有的键,防止bug - } else { - form.value.detailImg = res.data.data } } } diff --git a/src/views/Commodity/AddProduct.vue b/src/views/Commodity/AddProduct.vue index 0bd0a63..71eb3a8 100644 --- a/src/views/Commodity/AddProduct.vue +++ b/src/views/Commodity/AddProduct.vue @@ -1,7 +1,12 @@ \ No newline at end of file diff --git a/src/views/Commodity/MerchandiseCenter.vue b/src/views/Commodity/MerchandiseCenter.vue index 815177e..a4bb4db 100644 --- a/src/views/Commodity/MerchandiseCenter.vue +++ b/src/views/Commodity/MerchandiseCenter.vue @@ -95,105 +95,16 @@ :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :total="total"/> - - - - - - - - - - - - - - - - - - -

-
-
- - - - - - - - - -
-
- - - - - - - - - -
- -
- 商品图标 -
- - - - - -
- - - -
- -
\ No newline at end of file diff --git a/src/views/Coupons/AddCoupons.vue b/src/views/Coupons/AddCoupons.vue index c2d9a81..8c9b1dc 100644 --- a/src/views/Coupons/AddCoupons.vue +++ b/src/views/Coupons/AddCoupons.vue @@ -40,12 +40,10 @@ diff --git a/src/views/Coupons/CouponCenter.vue b/src/views/Coupons/CouponCenter.vue index abf5ce3..33d8329 100644 --- a/src/views/Coupons/CouponCenter.vue +++ b/src/views/Coupons/CouponCenter.vue @@ -120,10 +120,8 @@ const DialogVisible = ref(false) const idList = ref([]) const total = ref(0) const tableData : any= ref([]) -const Couponsname = ref('') const title = ref('') const editForm : any = ref({}) -const fileSimple = ref() const disabled = ref(true) const searchParams: any = ref({ //分页 current: 1, @@ -209,25 +207,7 @@ const getCouponsList = async ()=> { }) } } -const handleChange = async (file: any, flag: number) => { - fileSimple.value = file - let formData = new FormData() //这一步很重要 创建一个FormData对象 - formData.append("file", fileSimple.value.raw) //fileSimple.value.raw 才是文件主体 将其以文件的格式插入formData - const res = await myAxios({ //编写请求,与以前的请求不同,这一次要指定好头部类型和文件类型 - url: '/file/upload/server/not_login', - method: 'post', - headers: { - 'content-Type': 'multipart/form-data' - }, - data: { - biz: "test", - file: formData.get("file") // 取出formData对象中的file - } - }) - if (res.data.code === 1) { - editForm.value.image = res.data.data - } -} + const deleteCoupons = async (index: number) => { console.log(typeof index) const res = await myAxios.post('/coupon/delete', { id: index }) diff --git a/src/views/Login.vue b/src/views/Login.vue index c40ac1f..2086e6f 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -31,6 +31,7 @@ " @click="Login">登录 + 粤ICP备2024274839号 diff --git a/src/views/Orders/OrderList.vue b/src/views/Orders/OrderList.vue index 1699940..356d6d3 100644 --- a/src/views/Orders/OrderList.vue +++ b/src/views/Orders/OrderList.vue @@ -145,9 +145,6 @@ - - -