From 037fd0caa0a9b368560a051bdb8dd340e0c060a8 Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Mon, 28 Sep 2026 14:24:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor(goods):=20=E9=87=8D=E6=9E=84=E5=95=86?= =?UTF-8?q?=E5=93=81=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97=E7=9A=84API?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=92=8C=E9=A1=B5=E9=9D=A2=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除manager端的预约改期日志相关API接口 - 移除seller端的预约改期相关API接口 - 更新seller端API请求方法,将putRequest替换为putRequestWithNoForm - 修改服务人员更新接口,使用POST方式并传入ID参数 - 重构seller端商品搜索表单,增加SKU名称、SKU货号、店铺分类等搜索条件 - 新增商品创建时间范围选择器和库存状态筛选功能 - 优化商品表格列结构,调整销售模式与商品类型显示逻辑 - 添加商品复制功能按钮 - 重构manager端商品详情页面,实现新的详情展示布局 - 新增商品审核弹窗和时段可约数量抽屉组件 - 优化商品详情页的商品参数展示逻辑 - 添加预约商品相关的特殊处理逻辑 --- README.md | 1 + buyer/src/pages/home/orderCenter/MyOrder.vue | 103 +- manager/src/api/appointment.js | 3 - .../views/goods/goods-info/goodsDetail.vue | 1195 ++++++++++++++--- manager/src/views/order/order/orderDetail.vue | 2 +- seller/src/api/appointment.js | 19 +- seller/src/api/index.js | 5 + seller/src/api/order.js | 12 + seller/src/config/index.js | 6 + seller/src/libs/routerJson.js | 10 + seller/src/router/router.js | 12 +- seller/src/views/Main.vue | 3 + .../components/ServiceAreaFence.vue | 878 ++++++++++++ .../src/views/appointment/inStoreSettings.vue | 15 +- .../src/views/appointment/onSiteSettings.vue | 35 +- .../views/appointment/rescheduleLogList.vue | 95 -- .../views/appointment/serviceStaffList.vue | 149 +- seller/src/views/goods/goods-seller/goods.vue | 339 ++++- .../views/main-components/store-qrcode.vue | 203 +++ seller/src/views/main.scss | 20 +- seller/src/views/order/order/orderDetail.vue | 327 +++-- seller/src/views/order/order/orderList.vue | 362 ++++- .../views/order/order/orderVerification.vue | 233 ++++ seller/vue.config.js | 4 + 24 files changed, 3438 insertions(+), 593 deletions(-) create mode 100644 seller/src/views/appointment/components/ServiceAreaFence.vue delete mode 100644 seller/src/views/appointment/rescheduleLogList.vue create mode 100644 seller/src/views/main-components/store-qrcode.vue create mode 100644 seller/src/views/order/order/orderVerification.vue diff --git a/README.md b/README.md index ecdcdc5ba..5c278ce0f 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,7 @@ LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开 - ✅ 卡密商品 - ✅ 二级分销 - ✅ 定时任务管理 +- ✅ 服务商品 - 🔜 主题色管理 - 🔜 店铺结算汇总 - 🔜 支付方式汇总 diff --git a/buyer/src/pages/home/orderCenter/MyOrder.vue b/buyer/src/pages/home/orderCenter/MyOrder.vue index 96e456baa..d9b441ed5 100644 --- a/buyer/src/pages/home/orderCenter/MyOrder.vue +++ b/buyer/src/pages/home/orderCenter/MyOrder.vue @@ -30,13 +30,16 @@ >
-
{{ filterOrderStatus(order.orderStatus) }}
-
+
{{ order.isAfterSale ? filterAfterSaleStatus(order.serviceStatus) : filterOrderStatus(order.orderStatus) }}
+
+ 售后单号:{{ order.serviceSn }}      {{ order.createTime }} +
+
订单号:{{ order.sn }}      {{order.createTime}}
- + {{ $filters.unitPrice(order.flowPrice, "¥") }}
@@ -66,7 +69,10 @@
{{ order.storeName }}
-
+
+ 售后详情 +
+
订单详情 取消订单 @@ -99,13 +105,16 @@ >
-
{{ filterOrderStatus(order.orderStatus) }}
-
+
{{ order.isAfterSale ? filterAfterSaleStatus(order.serviceStatus) : filterOrderStatus(order.orderStatus) }}
+
+ 售后单号:{{ order.serviceSn }}      {{ order.createTime }} +
+
订单号:{{ order.sn }}      {{order.createTime}}
- + {{ $filters.unitPrice(order.flowPrice, "¥") }}
@@ -135,7 +144,10 @@
{{ order.storeName }}
-
+
+ 售后详情 +
+
订单详情 取消订单 @@ -178,8 +190,8 @@ - + + diff --git a/manager/src/views/order/order/orderDetail.vue b/manager/src/views/order/order/orderDetail.vue index f7f9e9e4c..afce0f1c2 100644 --- a/manager/src/views/order/order/orderDetail.vue +++ b/manager/src/views/order/order/orderDetail.vue @@ -722,7 +722,7 @@ export default { if (type.indexOf("FULL_DISCOUNT") != -1) resultText += "满减 "; if (type.indexOf("POINTS_GOODS") != -1) resultText += "积分商品 "; } - return resultText === "" ? "暂无未参与任何促销" : resultText; + return resultText === "" ? "未参与" : resultText; }, gotoHomes () { return false diff --git a/seller/src/api/appointment.js b/seller/src/api/appointment.js index c5e37e84d..0e40777d9 100644 --- a/seller/src/api/appointment.js +++ b/seller/src/api/appointment.js @@ -9,9 +9,10 @@ import { putRequest, deleteRequest, postRequestWithNoForm, + putRequestWithNoForm, } from "@/libs/axios"; -/** 店铺预约通用配置(改期审核等) */ +/** 店铺预约通用配置 */ export const getAppointmentSettings = () => getRequest("/appointment/settings"); export const saveAppointmentSettings = (params) => putRequest("/appointment/settings", params); @@ -19,12 +20,12 @@ export const saveAppointmentSettings = (params) => /** 到店服务设置 */ export const getInStoreSettings = () => getRequest("/appointment/settings/in-store"); export const saveInStoreSettings = (params) => - putRequest("/appointment/settings/in-store", params); + putRequestWithNoForm("/appointment/settings/in-store", params); /** 上门服务设置 */ export const getOnSiteSettings = () => getRequest("/appointment/settings/on-site"); export const saveOnSiteSettings = (params) => - putRequest("/appointment/settings/on-site", params); + putRequestWithNoForm("/appointment/settings/on-site", params); /** 服务人员 §14 */ export const getServiceStaffPage = (params) => @@ -32,7 +33,7 @@ export const getServiceStaffPage = (params) => export const createServiceStaff = (params) => postRequestWithNoForm("/appointment/service-staff", params); export const updateServiceStaff = (id, params) => - putRequest(`/appointment/service-staff/${id}`, params); + postRequestWithNoForm("/appointment/service-staff", { ...params, id }); export const updateServiceStaffStatus = (id, status) => putRequest(`/appointment/service-staff/${id}/status`, { status }); export const deleteServiceStaff = (id) => @@ -69,13 +70,3 @@ export const getServiceCalendarDay = (params) => /** 预约单列表 §24 */ export const getAppointmentBookPage = (params) => getRequest("/appointment/books", params); - -/** 改期日志 */ -export const getRescheduleLogPage = (params) => - getRequest("/appointment/reschedule-logs", params); -export const approveReschedule = (logId) => - postRequest(`/appointment/reschedule/${logId}/approve`); -export const rejectReschedule = (logId, params) => - postRequestWithNoForm(`/appointment/reschedule/${logId}/reject`, params); -export const merchantRescheduleBook = (bookId, params) => - postRequestWithNoForm(`/appointment/books/${bookId}/reschedule`, params); diff --git a/seller/src/api/index.js b/seller/src/api/index.js index 57076ef74..dd7c62275 100644 --- a/seller/src/api/index.js +++ b/seller/src/api/index.js @@ -55,6 +55,11 @@ export const userInfo = params => { export const userMsg = params => { return getRequest('/settings/storeSettings', params) } + +/** 当前店铺首页小程序葵花码 */ +export const getStoreMpQrcode = () => { + return getRequest("/settings/storeSettings/mp-qrcode"); +}; //验证短信验证码 export const validateCode = params => { return postRequestWithNoToken("/passport/login/resetByMobile", params); diff --git a/seller/src/api/order.js b/seller/src/api/order.js index 9293bf674..22178306d 100644 --- a/seller/src/api/order.js +++ b/seller/src/api/order.js @@ -126,6 +126,18 @@ export const orderTake = (sn, verificationCode) => { return putRequest(`/order/order/take/${sn}/${verificationCode}`); }; +export const previewVerification = (code) => { + return getRequest(`/order/order/verification/preview`, { code }); +}; + +export const confirmVerification = (code) => { + return postRequestWithNoForm(`/order/order/verification/confirm`, { code }); +}; + +export const getVerificationRecords = (params) => { + return getRequest(`/order/order/verification/records`, params); +}; + // 售后服务单 export const afterSaleOrderPage = params => { return getRequest(`/order/afterSale/page`, params); diff --git a/seller/src/config/index.js b/seller/src/config/index.js index 07bfb3a2c..4420979c6 100644 --- a/seller/src/config/index.js +++ b/seller/src/config/index.js @@ -15,6 +15,12 @@ module.exports = { //FIXME 请检查当前高德key创建的日期,如果2021年12月02日之前申请的 无需填写安全密钥 aMapSecurityJsCode: "2bd0fbf621881f4c77be74f0e76495f3", // 高德web端js申请的安全密钥 aMapKey: "7f11113750315d8543daaf5c3ba353ca", //高德web端js申请的api key + /** + * 腾讯位置服务 JavaScript API GL,用于上门服务电子围栏 + * https://lbs.qq.com/webApi/javascriptGL/glGuide/glOverview + * 与后端 lili.lbs.key 同一把 Key,控制台需开通 JavaScript API GL + */ + tMapKey: "ACCBZ-MINKJ-CZ2FN-DJFLN-GKORV-B3BIL", website: "https://www.pickmall.cn", //官网地址 aMapSwitch:false, //是否开启高德定位 enableCDN: true, //生产环境 是否启用cdn加载 vue等js diff --git a/seller/src/libs/routerJson.js b/seller/src/libs/routerJson.js index c7cd02e60..dc4322dd7 100644 --- a/seller/src/libs/routerJson.js +++ b/seller/src/libs/routerJson.js @@ -92,6 +92,16 @@ export const result = [{ path: "virtualOrderList", component: "order/order/virtualOrderList", children: null + }, + { + name: "orderVerification", + level: 2, + type: 0, + keepAlive: true, + title: "订单核销", + path: "orderVerification", + component: "order/order/orderVerification", + children: null } ] }, diff --git a/seller/src/router/router.js b/seller/src/router/router.js index c1ca45bfc..1de3618b8 100644 --- a/seller/src/router/router.js +++ b/seller/src/router/router.js @@ -114,12 +114,6 @@ export const otherRouter = { name: "appointment-system-form-designer", component: () => import("@/views/appointment/systemFormDesigner.vue") }, - { - path: "appointment/reschedule-logs", - title: "改期记录", - name: "appointment-reschedule-logs", - component: () => import("@/views/appointment/rescheduleLogList.vue") - }, { path: "add-coupon", title: "店铺优惠券", @@ -162,6 +156,12 @@ export const otherRouter = { name: "order-detail", component: () => import("@/views/order/order/orderDetail.vue") }, + { + path: "orderVerification", + title: "订单核销", + name: "orderVerification", + component: () => import("@/views/order/order/orderVerification.vue") + }, { path: "/floorList/main", title: "移动装修", diff --git a/seller/src/views/Main.vue b/seller/src/views/Main.vue index a3636657c..83575b3ce 100644 --- a/seller/src/views/Main.vue +++ b/seller/src/views/Main.vue @@ -20,6 +20,7 @@ align="middle" class="user-dropdown-innercon" > +