diff --git a/java-mall-app-shop-admin/api/order.js b/java-mall-app-shop-admin/api/order.js
index 02e426b..3a3603f 100644
--- a/java-mall-app-shop-admin/api/order.js
+++ b/java-mall-app-shop-admin/api/order.js
@@ -72,7 +72,7 @@ export function GetSalesReturnOrderDetails(params) {
}
/**
- * 退货订单不通过
+ * 退货订单拒绝退款
* @author Seven
* @data 2025-3-28
* @param {
@@ -93,7 +93,7 @@ export function GetSalesReturnOrderNoPass(params) {
}
/**
- * 退货订单不通过
+ * 退货订单同意退款
* @author Seven
* @data 2025-3-28
* @param {
@@ -124,6 +124,26 @@ export function GetInitiativeOrderRefund(params) {
});
}
+/**
+ * 催单
+ * @author Seven
+ * @data 2025-3-28
+ * @param {
+ * order_id : "DD-20241206-13"
+ * }
+ * @returns { }
+ * @see https://mall.gpxscs.cn/api/admin/shop/shop-order-info/picking/completed
+ */
+
+export function GetExpediteSFOrder(params) {
+ return http({
+ url: "/shop/sf-express/reminder-order",
+ method: "post",
+ params,
+ baseURL: config.apiMobile,
+ });
+}
+
/**
* 拣货完成
* @author Seven
diff --git a/java-mall-app-shop-admin/components/tui-tabs.vue b/java-mall-app-shop-admin/components/tui-tabs.vue
index 11a4821..55c1af2 100644
--- a/java-mall-app-shop-admin/components/tui-tabs.vue
+++ b/java-mall-app-shop-admin/components/tui-tabs.vue
@@ -1,346 +1,382 @@
-
-
-
- {{ item[field] }}
-
- {{ item.isDot ? '' : item[badgeField] }}
-
-
-
-
-
+
+
+
+ {{ item[field] }}
+
+ {{ item.isDot ? "" : item[badgeField] }}
+
+
+
+
+
\ No newline at end of file
+.tui-badge__dot {
+ position: absolute;
+ height: 16rpx;
+ width: 16rpx;
+ border-radius: 50%;
+ right: -10rpx;
+ top: -10rpx;
+ z-index: 4;
+}
+
diff --git a/java-mall-app-shop-admin/pages/order/components/OrderItem.vue b/java-mall-app-shop-admin/pages/order/components/OrderItem.vue
index 318c582..7a5b73e 100644
--- a/java-mall-app-shop-admin/pages/order/components/OrderItem.vue
+++ b/java-mall-app-shop-admin/pages/order/components/OrderItem.vue
@@ -1,261 +1,757 @@
-
-
+
+
-
- 谭金宇
- 催快递
+
+ {{ orderItem.sf_order_info.operator_name }}
+ 催快递
- 立即送达/07-29 20:21前送达
+
+ 立即送达/{{
+ $u.timeFormat(orderItem.arrival_time, "mm-dd hh:MM")
+ }}前送达
+
+
- 广西壮族自治区贵港市桂平市中山南路中山医院斜对面烧鹅大厦 8楼801
+ {{
+ orderItem.buyer_info.da_province +
+ orderItem.buyer_info.da_city +
+ orderItem.buyer_info.da_county +
+ orderItem.buyer_info.da_address
+ }}
-
-
+
+
+
+
+ 拣货中:
+ {{ getRemainingTime(orderItem.arrival_time) }}
+
+ 拣货完成
+
-
+
-
-
-
- 共10件商品
+
+
+
+
+
+ 共{{ orderItem.order_items.length }}件商品
+
-
-
-
+
+
+
- 新鲜明虾 500g~550/份
+ {{ group.item_name }}
- 数量X1
- ¥29.5/件
+ 数量X{{ group.order_item_quantity }}
+ ¥{{ group.order_item_amount }}
小计
¥
- 29.5
-
-
-
-
-
- 新鲜明虾 500g~550/份
-
- 数量X1
- ¥29.5/件
-
-
-
- 小计
- ¥
- 29.5
-
-
-
-
-
- 新鲜明虾 500g~550/份
-
- 数量X1
- ¥29.5/件
-
-
-
- 小计
- ¥
- 29.5
-
-
-
-
-
- 新鲜明虾 500g~550/份
-
- 数量X1
- ¥29.5/件
-
-
-
- 小计
- ¥
- 29.5
-
-
-
-
-
- 新鲜明虾 500g~550/份
-
- 数量X1
- ¥29.5/件
-
-
-
- 小计
- ¥
- 29.5
-
-
-
-
-
- 新鲜明虾 500g~550/份
-
- 数量X1
- ¥29.5/件
-
-
-
- 小计
- ¥
- 29.5
-
-
-
-
-
- 新鲜明虾 500g~550/份
-
- 数量X1
- ¥29.5/件
-
-
-
- 小计
- ¥
- 29.5
-
-
-
-
-
- 新鲜明虾 500g~550/份
-
- 数量X1
- ¥29.5/件
-
-
-
- 小计
- ¥
- 29.5
+ {{ orderItem.order_product_amount }}
-
+
-
- ¥295
+
+
+ ¥
+ {{ sumBigInts }}
+
-
- - ¥5
+
+ - ¥{{ orderItem.order_shipping_fee }}
-
- - ¥0.5
+
+ - ¥{{ orderItem.platform_fee }}
-
- - ¥0.05
+
+ - ¥{{ orderItem.total_discount_amount }}
-
- ¥295
+
+
+ ¥
+ {{ orderItem.order_income_amount }}
+
-
+
-
+
- 3139803842281复制
+ {{ orderItem.order_id }}
+
+ 复制
+
+
-
- 2025/07/29 15:21
+
+ {{ orderItem.order_time }}
-
- 2025/07/29 15:21
+
+ {{ orderItem.payment_time }}
+
-
- 同城
-
-
-
+
- 3139803842281复制
+
+ {{ orderItem.sf_order_info.sf_order_id }}
+
+
+ 复制
+
+
-
-
- 取消订单
- 退款
+
+
+ 取消订单
+
+
+ 部分退款
+
+
+
+
+
+
@@ -265,7 +761,8 @@ export default {
.order_item {
padding: 24rpx;
- border-radius: 10rpx;
+ margin-bottom: 24rpx;
+ border-radius: 12rpx;
background: #fff;
font-size: 24rpx;
color: #222;
@@ -299,6 +796,12 @@ export default {
opacity: 0.2;
}
+ .icon {
+ position: absolute;
+ right: 20rpx;
+ top: 32%;
+ }
+
.item {
display: flex;
align-items: center;
@@ -346,6 +849,28 @@ export default {
text-align: center;
font-size: 28rpx;
font-weight: bold;
+ color: rgba(0, 182, 142, 1);
+ }
+
+ .status-2,
+ .status-22,
+ .status-31,
+ .status-91 {
+ color: red;
+ }
+ }
+ }
+
+ .expresser-2 {
+ color: #000;
+
+ .header {
+ display: flex;
+ align-items: center;
+
+ .symbol {
+ margin-right: 4rpx;
+ font-size: 24rpx;
}
}
}
@@ -383,6 +908,8 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
+ margin-bottom: 20rpx;
+
.btn_map {
width: 36rpx;
height: 36rpx;
@@ -394,6 +921,11 @@ export default {
.box {
padding-left: 40rpx;
}
+
+ .info {
+ text-align: left;
+ color: rgba(34, 34, 34, 0.75);
+ }
}
.footer {
@@ -433,12 +965,17 @@ export default {
display: flex;
align-items: center;
}
+ .img_box {
+ width: 96rpx;
+ height: 96rpx;
+ border-radius: 10rpx;
+ margin-right: 12rpx;
+ overflow: hidden;
+ }
.img {
width: 96rpx;
height: 96rpx;
- margin-right: 12rpx;
- border-radius: 10rpx;
- background: #666;
+ // background: #666;
}
}
.footer {
@@ -515,9 +1052,9 @@ export default {
align-items: center;
margin-bottom: 24rpx;
- .body{
- display: flex;
- align-items: center;
+ .body {
+ display: flex;
+ align-items: center;
}
.red {
@@ -537,7 +1074,7 @@ export default {
}
.order_num {
display: flex;
- align-items: center;
+ align-items: center;
&::after {
display: block;
content: " ";
@@ -581,5 +1118,183 @@ export default {
}
}
}
+
+ .part-order-refund-popup {
+ ::v-deep.u-popup__content {
+ border-top-left-radius: 16rpx;
+ border-top-right-radius: 16rpx;
+ }
+
+ ::v-deep.u-fade-enter-to {
+ z-index: 10079 !important;
+ }
+
+ .part-order-refund-popup-content {
+ .part-order-refund-popup-title {
+ font-size: 32rpx;
+ padding: 40rpx;
+ text-align: center;
+ font-weight: bold;
+ }
+
+ .affirm-popup-form {
+ padding: 20rpx 60rpx;
+ }
+
+ .radio-list {
+ .commodity-info-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 28rpx;
+
+ .commodity-info-box {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .commodity-info-img {
+ margin-right: 20rpx;
+ width: 120rpx;
+ height: 120rpx;
+ }
+ }
+ }
+ }
+ }
+
+ .popup-btn-list {
+ display: flex;
+ margin: 50rpx;
+
+ .btn-item {
+ width: 46%;
+ height: 64rpx;
+ border-color: #909193;
+
+ &::after {
+ border: none;
+ }
+ }
+
+ .btn-item-2 {
+ background: $base-color;
+ color: #fff;
+ border: none;
+ }
+ }
+ }
+
+ .SfFlow-popup {
+ ::v-deep.u-popup__content {
+ border-radius: 16rpx;
+ }
+
+ ::v-deep.u-fade-enter-to {
+ z-index: 10076 !important;
+ }
+
+ .SfFlow-popup-content {
+ width: 600rpx;
+
+ .SfFlow-popup-title {
+ padding: 30rpx 0 20rpx;
+ text-align: center;
+ font-size: 28rpx;
+ font-weight: bold;
+ }
+
+ .SfFlow-content {
+ margin: 40rpx;
+ }
+ }
+ }
+
+ .affirm-popup {
+ ::v-deep.u-popup__content {
+ border-radius: 16rpx;
+ }
+
+ ::v-deep.u-fade-enter-to {
+ z-index: 10076 !important;
+ }
+
+ .affirm-popup-content {
+ width: 600rpx;
+
+ .affirm-popup-title {
+ padding: 60rpx 0 20rpx;
+ text-align: center;
+ font-size: 28rpx;
+ font-weight: bold;
+ }
+
+ .affirm-popup-tips {
+ padding: 0 32rpx;
+ font-size: 28rpx;
+ text-align: center;
+ }
+
+ .u-form {
+ padding: 0 60rpx;
+ }
+
+ .popup-btn-list {
+ display: flex;
+ margin: 50rpx;
+
+ .btn-item {
+ width: 46%;
+ height: 64rpx;
+ border-color: #909193;
+
+ &::after {
+ border: none;
+ }
+ }
+
+ .btn-item-2 {
+ background: $base-color;
+ color: #fff;
+ border: none;
+ }
+ }
+ }
+ }
+
+ .order_picking_box {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 16rpx 0;
+ margin: 0 8rpx;
+ border-bottom: 1px solid #f7f7f7;
+
+ .order_picking_text {
+ font-size: 26rpx;
+ color: #7f7f7f;
+ font-weight: 500;
+ flex: 1;
+
+ text {
+ color: red;
+ }
+ }
+
+ .picking_btn {
+ width: 34%;
+ height: 60rpx;
+ font-size: 24rpx;
+
+ color: #666666;
+ border-color: #666666;
+ }
+ }
+
+ ::v-deep.u-toast {
+ .u-transition {
+ z-index: 12000;
+ }
+ }
}
diff --git a/java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue b/java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue
new file mode 100644
index 0000000..6318c9c
--- /dev/null
+++ b/java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue
@@ -0,0 +1,1128 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ currOrderItem.da_province +
+ currOrderItem.da_city +
+ currOrderItem.da_county +
+ currOrderItem.da_address
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 共{{ currOrderItem.items.length }}件商品
+
+
+
+
+
+
+
+
+
+
+ {{ group.product_name }}
+
+ 数量X{{ group.return_item_num }}
+ ¥{{ group.return_item_subtotal }}
+
+
+
+
+
+
+
+
+
+
+ ¥
+ {{ sumBigInts }}
+
+
+
+
+
+
+ ¥
+ {{ currOrderItem.return_refund_amount }}
+
+
+
+
+
+
+
+
+ {{ currOrderItem.order_id }}
+
+ 复制
+
+
+
+
+
+ {{ currOrderItem.return_add_time }}
+
+
+
+ {{ currOrderItem.da_time }}
+
+
+
+
+ 同城
+
+
+
+
+
+
+
+ {{ currOrderItem.return_id }}
+
+
+ 复制
+
+
+
+
+
+
+
+
+
+ 拒绝退款
+
+
+ 同意退款
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java-mall-app-shop-admin/pages/order/order.vue b/java-mall-app-shop-admin/pages/order/order.vue
index 25dd3db..da051f4 100644
--- a/java-mall-app-shop-admin/pages/order/order.vue
+++ b/java-mall-app-shop-admin/pages/order/order.vue
@@ -6,18 +6,33 @@
class="shop-logo-img"
:style="{ backgroundImage: `url(${logoUrl})` }"
>
- {{ shopNmae }}
+
+
+
+
+ 筛选
+
-
-
-
-
-
-
- {{ item.label }}
-
-
+
+ -->
+
-
+
-
-
-
- #
-
- {{ item.orderNum }}
-
-
-
- {{ sfFormatStatus(item.order_state_id) }}
-
-
-
-
- 预计送达{{ formatTime(item.arrival_time) }}前
-
- 订单号:{{ item.order_id }}
-
-
-
-
-
- {{ item.buyer_info.da_name }} 手机尾号{{
- item.buyer_info.da_mobile.slice(-4)
- }}
-
-
- 收货地址:{{
- item.buyer_info.da_province +
- item.buyer_info.da_city +
- item.buyer_info.da_county +
- item.buyer_info.da_address
- }}
-
- 距离:{{ item.distance / 1000 }}km
-
-
-
- 拣货中
-
- {{ getRemainingTime(item.arrival_time) }}
-
-
-
- 拣货完成
-
-
-
-
- {{ sfFormatStatus(item.order_state_id) }}
-
- {{ item.order_pickup_num_str }}
-
-
-
-
-
- {{ item.order_items.length || 0 }}
-
- 件商品
-
-
-
-
- {{ group.item_name || 0 }}
-
- 条码
-
- {{ group.item_barcode || 0 }}
-
-
-
- 规格
-
- {{ group.specification || 0 }}
-
-
-
-
-
- X
-
- {{ group.order_item_quantity || 0 }}
-
-
-
-
- ¥{{ group.order_item_amount || 0 }}
-
-
-
-
-
-
- 小计
-
- ¥{{ item.order_product_amount }}
-
-
-
-
- 商家活动支付
-
-
-
-
-
- ¥{{ item.order_discount_amount }}
-
-
-
-
- 平台服务费
-
-
-
-
- ¥{{ item.platform_fee }}
-
-
-
- 配送费用
-
-
-
-
-
- ¥{{ item.order_shipping_fee }}
-
-
-
-
-
-
-
-
- 取消订单
-
-
-
- 部分退款
-
-
-
- {{ item.showRefundOrderInfo ? "收起订单" : "展开订单" }}
-
-
-
+
+ 暂无交易记录!
@@ -354,13 +158,6 @@
-
-
- 暂无交易记录!
-
-
+
-
-
-
- #
-
- {{ item.order_pickup_num }}
-
-
-
- {{ sfFormatStatus(item.order_state_id) }}
-
-
-
-
- 预计送达{{ formatTime(item.arrival_time) }}前
-
- 订单号:{{ item.order_id }}
-
-
-
-
-
-
- {{ item.buyer_info.da_name }} 手机尾号{{
- item.buyer_info.da_mobile.slice(-4)
- }}
-
-
-
-
- 收货地址:{{
- item.buyer_info.da_province +
- item.buyer_info.da_city +
- item.buyer_info.da_county +
- item.buyer_info.da_address
- }}
-
- 距离:{{ item.distance / 1000 }}km
-
-
-
-
- {{ item.order_pickup_num_str }}
-
-
-
-
-
- {{ item.order_items.length || 0 }}
-
- 件商品
-
-
-
-
- {{ group.item_name || 0 }}
-
- 条码
-
- {{ group.item_barcode || 0 }}
-
-
-
- 规格
-
- {{ item.specification || 0 }}
-
-
-
-
- X
-
- {{ item.order_item_quantity || 0 }}
-
-
-
- ¥{{ item.order_item_amount || 0 }}
-
-
-
-
-
-
- 小计
-
- ¥{{ item.order_product_amount }}
-
-
-
-
- 商家活动支付
-
-
-
-
-
- ¥{{ item.order_discount_amount }}
-
-
-
-
- 平台服务费
-
-
-
-
- ¥{{ item.platform_fee }}
-
-
-
- 配送费用
-
-
-
-
-
- ¥{{ item.order_shipping_fee }}
-
-
-
-
- 预计收入
-
- ¥24.95
-
-
-
- 顾客实际支付 ¥30.50
-
-
-
-
-
-
-
- {{ item.showRefundOrderInfo ? "收起订单" : "展开订单" }}
-
-
-
+
+ 暂无交易记录!
-
+
@@ -604,13 +217,6 @@
-
-
- 暂无交易记录!
-
-
+
-
-
-
- #
-
- {{ item.orderNum }}
-
-
- 退货单号:{{ item.return_id }}
-
-
-
-
- {{ sfFormatStatus(item.order_state_id) }}
-
-
-
-
-
-
-
-
- {{ item.detailsInfo.da_name }}先生 手机尾号{{
- item.detailsInfo.da_mobile.slice(-4)
- }}
-
-
-
- 收货地址:{{ item.detailsInfo.da_address }}
-
-
-
-
- 退货凭据
-
-
-
-
-
-
-
- {{ item.detailsInfo.items[0].return_item_num }}
-
- 件商品
-
-
-
-
- {{ group.product_name }}
-
-
-
-
- X
-
- {{ group.return_item_num }}
-
-
-
- ¥{{ group.return_item_subtotal }}
-
-
-
-
-
-
-
-
-
- 实际退款总额
-
- {{ item.return_refund_amount }}
-
- 元
-
-
-
-
-
-
-
-
- 拒绝退款
-
-
- 同意退款
-
-
-
- {{ item.return_state_name }}
-
-
- {{ item.return_add_time }}
-
- {{ item.showRefundOrderInfo ? "收起订单" : "展开订单" }}
-
-
-
-
+
+ 暂无交易记录!
-
-
- 暂无交易记录!
-
-
-
+
-
-
-
-
-
+
@@ -1208,6 +347,7 @@ import tuiRadioGroup from "@/components/tui-radio-group/tui-radio-group.vue";
import tuiSelect from "@/components/tui-select/tui-select.vue";
import OrderItem from "./components/OrderItem.vue";
+import retrunOrderItem from "./components/retrunOrderItem.vue";
export default {
components: {
tuiTabs,
@@ -1219,7 +359,8 @@ export default {
tuiRadio,
tuiRadioGroup,
tuiSelect,
- OrderItem,
+ OrderItem,
+ retrunOrderItem,
},
data() {
return {
@@ -1452,6 +593,8 @@ export default {
commodityCheckBoxList: [],
refreshInterval: null, // 全局定时器
showOrderPickingPopup: false,
+ isRefreshing: false,
+ showScreenPopup: false,
};
},
computed: {
@@ -1483,32 +626,9 @@ export default {
},
onPullDownRefresh() {
this.pageNum = 1;
- this.pageSize = 10;
this.keyword = "";
this.getOrderList();
},
- mounted() {
- // 每1秒刷新一次数据(触发界面更新)
- this.refreshInterval = setInterval(() => {
- this.$forceUpdate(); // 强制更新视图
- }, 1000);
- },
-
- beforeDestroy() {
- // 组件销毁时清除定时器
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- }
- },
- // onReachBottom() {
- // clearTimeout(this.time);
- // this.loadingDownOnlinData = true;
- // this.time = setTimeout(() => {
- // this.pageNum = this.pageNum + 1;
- // this.getOrderList();
- // }, 500);
- // },
-
methods: {
async getOrderList() {
let accountDashboard = uni.getStorageSync("accountDashboard");
@@ -1579,6 +699,7 @@ export default {
if (res.data.order_page_list.records.length <= 0) {
this.showOrderLoading = false;
this.isNoOnlineOrder = true;
+ this.isRefreshing = false;
return;
}
@@ -1587,6 +708,21 @@ export default {
if (item) {
item.orderNum = index + 1;
item.showRefundOrderInfo = false;
+ item.sf_order_info = {
+ sf_order_id: "",
+ operator_name: "",
+ operator_phone: "",
+ rider_lng: "",
+ rider_lat: "",
+ order_status: "",
+ status_desc: "",
+ cancel_code: "",
+ cancel_reason: "",
+ push_time: "",
+ h5_url: "",
+ feed: [],
+ ...item.sf_order_info,
+ };
}
return item;
});
@@ -1594,8 +730,26 @@ export default {
this.showOrderLoading = false;
this.loadingDownOnlinData = false;
+ this.isRefreshing = false;
// uni.stopPullDownRefresh();
},
+ handleRefresh() {
+ this.isRefreshing = true;
+
+ this.pageNum = 1;
+ this.isNoOnlineOrder = false;
+ this.loadingDownOnlinData = false;
+ this.isDownNoOrderData = false;
+
+ this.isNoSalesReturnOrderData = false;
+ this.loadingDownSalesReturnData = false;
+ this.isDownNoSalesReturnData = false;
+ if (this.currentTab2 == 2) {
+ this.getSalesReturnOrderList();
+ } else {
+ this.getOrderList();
+ }
+ },
getRemainingTime(arrivalTime) {
if (!arrivalTime) return "时间未设定";
@@ -1613,14 +767,8 @@ export default {
},
handelSalesReturnSearch(item) {
if (item.value == this.salesReturnBtnSearchAcitve) return;
- this.pageNum = 1;
- this.pageSize = 10;
- this.salesReturnBtnSearchAcitve = item.value;
- this.loadingDownSalesReturnData = false;
- this.isNoSalesReturnOrderData = false;
- this.isDownNoSalesReturnData = false;
- this.getSalesReturnOrderList(item.value);
+ this.salesReturnBtnSearchAcitve = item.value;
},
async getSalesReturnOrderList(returnStateId = 3105) {
if (this.loadingDownSalesReturnData) {
@@ -1629,9 +777,12 @@ export default {
this.showOrderLoading = true;
}
+ console.log(this.keyword);
+
let params = {
pageNum: this.pageNum,
pageSize: this.pageSize,
+ order_id: this.keyword,
return_state_id: returnStateId,
};
@@ -1657,6 +808,7 @@ export default {
if (res.data.items <= 0) {
this.showOrderLoading = false;
this.isNoSalesReturnOrderData = true;
+ this.isRefreshing = false;
return;
}
@@ -1673,6 +825,7 @@ export default {
}
this.showOrderLoading = false;
this.loadingDownSalesReturnData = false;
+ this.isRefreshing = false;
},
async getSalesReturnOrderDetails(item, index) {
let params = {
@@ -1692,22 +845,16 @@ export default {
}
},
- showRefundOrderInfo(item, index) {
+ handerShowRefundOrderInfo(showRefundOrderInfo, index) {
if (this.currentTab2 == 2) {
- if (!item.showRefundOrderInfo) {
- this.getSalesReturnOrderDetails(item, index);
- }
-
this.$set(this.salesReturnOrderList, index, {
- ...item,
- showRefundOrderInfo: !item.showRefundOrderInfo,
+ ...this.salesReturnOrderList[index],
+ showRefundOrderInfo: showRefundOrderInfo,
});
- }
-
- if (this.currentTab2 != 2) {
+ } else {
this.$set(this.orderInfo.order_page_list.records, index, {
- ...item,
- showRefundOrderInfo: !item.showRefundOrderInfo,
+ ...this.orderInfo.order_page_list.records[index],
+ showRefundOrderInfo: showRefundOrderInfo,
});
}
},
@@ -1743,51 +890,7 @@ export default {
handerCloseReturnOrderPopup() {
this.showReturnOrderPopup = false;
},
- makePhone(phone) {
- // #ifdef H5
- uni.showToast({
- title: "H5环境不支持",
- icon: "none",
- });
- // #endif
- // #ifdef APP-PLUS
- uni.makePhoneCall({
- phoneNumber: phone,
- success: function () {
- console.log("拨打电话成功");
- },
- fail: function () {
- console.log("拨打电话失败");
- },
- });
- // #endif
- },
- sfFormatStatus(id) {
- let label = "";
- this.sfStatus.forEach((item) => {
- if (item.id == id) {
- label = item.label;
- }
- });
-
- return label;
- },
- handlerShowImg(imgList) {
- this.showImg = true;
- const _imgList = imgList.map((item) => {
- return {
- src: item,
- desc: "",
- };
- });
-
- this.showImgList = _imgList;
- console.log(this.showImgList);
- },
- hideImg() {
- this.showImg = false;
- },
formatTime(time) {
let date = new Date(time);
let hours = String(date.getHours()).padStart(2, "0");
@@ -1797,7 +900,6 @@ export default {
handleTab(e) {
this.currentTab = e.index;
this.pageNum = 1;
- this.pageSize = 10;
this.keyword = "";
this.isNoOnlineOrder = false;
this.getOrderList();
@@ -1806,7 +908,6 @@ export default {
this.currentTab2 = e.index;
this.pageNum = 1;
- this.pageSize = 10;
this.keyword = "";
this.isNoOnlineOrder = false;
this.loadingDownOnlinData = false;
@@ -1824,10 +925,14 @@ export default {
},
searchOrder() {
this.pageNum = 1;
- this.pageSize = 10;
+ this.keyword = "";
setTimeout(() => {
- this.getOrderList();
+ if (this.currentTab2 == 2) {
+ this.getSalesReturnOrderList();
+ } else {
+ this.getOrderList();
+ }
}, 600);
},
scrolltolower() {
@@ -1851,45 +956,9 @@ export default {
handleShowDropDown() {
this.showDropdown = !this.showDropdown;
},
- handelOpenReturnOrderPopup(item, type) {
- this.showReturnOrderPopup = true;
- this.returnOrderType = type;
- this.currReturnId = item.return_id;
- },
- handelRaddio(e) {
- this.radioOrderType = e.detail.value;
- },
- async handerRetrunOrder() {
- if (this.returnOrderType == "noPass") {
- let params = {
- return_id: this.currReturnId,
- return_store_message: this.retrunOrderMsg,
- };
-
- let res = await GetSalesReturnOrderNoPass(params);
- if (res && res.status == 200) {
- this.currReturnId = "";
- this.retrunOrderMsg = "";
- this.getSalesReturnOrderList();
- }
- } else {
- let params = {
- return_flag: this.radioOrderType,
- return_id: this.currReturnId,
- return_store_message: this.retrunOrderMsg,
- };
-
- if (this.radioOrderType == 1) {
- params.receiving_address = 2;
- }
-
- let res = await GetSalesReturnOrderPass(params);
- if (res && res.status == 200) {
- this.currReturnId = "";
- this.retrunOrderMsg = "";
- this.getSalesReturnOrderList();
- }
- }
+ handerCancelOrder() {
+ this.pageNum = 1;
+ this.getOrderList();
},
handerShowCancelOrder(item) {
this.currOrderItem = JSON.parse(JSON.stringify(item));
@@ -1908,62 +977,17 @@ export default {
this.showPartOrderRefundPopup = true;
this.isCancelOrder = false;
},
- getInitiativeOrderRefund() {
- var params = {
- order_id: this.currOrderItem.order_id,
- reason: this.form.reason,
- };
-
- if (!this.isCancelOrder) {
- if (this.commodityCheckBoxList.length <= 0) {
- this.$refs.uToast.show({
- message: "请先选择你要退的商品",
- type: "error",
- duration: 1000,
- zIndex: 12000,
- position: "top",
- });
- return;
- }
- const matchedItems = this.currOrderItem.order_items.filter((item) =>
- this.commodityCheckBoxList.includes(item.item_id)
- );
-
- params.order_return_vo = {
- order_id: this.currOrderItem.order_id,
- return_items: matchedItems.map((item) => {
- return {
- order_item_id: item.item_id,
- return_item_num: item.order_item_quantity,
- return_refund_amount:
- item.order_item_quantity * item.item_unit_price,
- };
- }),
- };
- }
-
- this.$refs.uForm.validate().then(async (valid) => {
- let res = await GetInitiativeOrderRefund(params);
- if (res && res.status == 200) {
- this.showCancelOrderPopup = false;
- this.showPartOrderRefundPopup = false;
- if (!this.isCancelOrder) {
- uni.$u.toast("部分订单退款成功");
- } else {
- uni.$u.toast("取消订单成功");
- }
- this.form.reason = "";
- this.pageNum = 1;
- this.commodityCheckBoxList = [];
- this.getOrderList();
- }
- this.showCancelOrderPopup = false;
- this.showPartOrderRefundPopup = false;
- });
+ handerRefreshSalesReturnOrderList() {
+ this.getSalesReturnOrderList();
},
- handerShowOrderPickingPopup(item) {
- this.currOrderItem = item;
- this.showOrderPickingPopup = true;
+
+ handerRetrunOrderScreen() {
+ this.pageNum = 1;
+ this.loadingDownSalesReturnData = false;
+ this.isNoSalesReturnOrderData = false;
+ this.isDownNoSalesReturnData = false;
+ this.getSalesReturnOrderList(this.salesReturnBtnSearchAcitve);
+ this.showScreenPopup = false;
},
async getOrderPicking(item) {
let params = {
@@ -1978,6 +1002,33 @@ export default {
}
this.showOrderPickingPopup = false;
},
+ toServices() {
+ let item = {
+ user_friend_id: 36,
+ user_id: 10001,
+ friend_id: 10001,
+ friend_note: "",
+ user_friend_addtime: "2025-05-09 10:03:33",
+ friend_state: 2,
+ friend_invite: 2,
+ username: "系统客服",
+ avatar:
+ "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/media/media/plantform/20250307/c4cab676e06a49b282c2cbbe481f0fa1.png",
+ sign: "",
+ level_name: "v1",
+ user_nickname: "系统客服",
+ user_avatar:
+ "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/media/media/plantform/20250307/c4cab676e06a49b282c2cbbe481f0fa1.png",
+ user_sign: "",
+ user_level_name: "v1",
+ rid: 2,
+ id: 776395489,
+ };
+
+ uni.navigateTo({
+ url: `/pages/IM/IMmsgContent?item=${JSON.stringify(item)}`,
+ });
+ },
},
};
@@ -1986,22 +1037,33 @@ export default {
@import "@/styles/variables.scss";
.index-container {
// overflow: hidden;
- background: #eeeff3;
+ background: #f9f9f9;
min-height: 100vh;
.shop-info {
display: flex;
align-items: center;
- padding: 40rpx;
- padding-top: 20rpx;
- background: #fff;
+ padding: 28rpx 32rpx;
.shop-logo-img {
- width: 90rpx;
- height: 90rpx;
+ width: 64rpx;
+ height: 64rpx;
background-image: url("../../static/logo.jpg");
background-size: 100% 100%;
border-radius: 50%;
}
+
+ .search {
+ margin: 0 44rpx !important;
+
+ ::v-deep.u-search__content {
+ height: 38px !important;
+ }
+
+ ::v-deep.u-search__content__input {
+ font-size: 12px;
+ }
+ }
+
.shop-name {
margin-left: 20rpx;
font-weight: bold;
@@ -2015,8 +1077,9 @@ export default {
}
.tab-content {
- padding-bottom: 20rpx;
- background: #fff;
+ padding: 0 20rpx;
+ padding-bottom: 16rpx;
+ border-bottom: 1px solid #eeeeee;
// ::v-deep .tui-tabs-title {
// font-size: 36rpx !important;
// }
@@ -2026,17 +1089,29 @@ export default {
}
.tab2-content {
- background: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin: 30rpx 0;
+
::v-deep .tui-tabs-slider {
background: #ffecf2 !important;
- border: 2rpx solid #fe411b;
+ // border: 2rpx solid #fe411b;
bottom: 48% !important;
}
+
+ ::v-deep.tabs-2 {
+ left: -10px;
+ }
+
::v-deep .tui-tabs-item {
- line-height: 60rpx;
+ margin: 0 10rpx;
+ height: 32px !important;
+ line-height: 32px !important;
+ background: #fff;
.tui-tabs-title {
- color: #333 !important;
+ color: rgba(34, 34, 34, 1) !important;
}
&.tui__tab_current {
.tui-tabs-title {
@@ -2044,6 +1119,16 @@ export default {
}
}
}
+
+ .screen-content {
+ display: flex;
+ flex-flow: column;
+ align-items: center;
+ font-size: 24rpx;
+ text-align: center;
+ margin-right: 32rpx;
+ color: $base-color;
+ }
}
.sales-return-img-title {
@@ -2093,19 +1178,24 @@ export default {
.active {
// background: $base-color;
- color: #fe411b;
+ color: $base-color;
+
+ &::after {
+ border: 1px solid $base-color;
+ }
}
}
.order-info-content {
+ margin: 28rpx 24rpx;
border-radius: 8rpx;
.uni-swiper-list {
- height: calc(100vh - 320px);
+ height: calc(100vh - 250px);
}
.uni-swiper-return-list {
- height: calc(100vh - 350px);
+ height: calc(100vh - 250px);
}
.order-msg-tips {
@@ -2425,9 +1515,43 @@ export default {
font-size: 28rpx;
}
+ .screen-popup {
+ .screen-popup-content {
+ width: 100%;
+
+ .screen-popup-title {
+ margin: 36rpx;
+ text-align: center;
+ font-weight: bold;
+ font-size: 36rpx;
+ }
+
+ .popup-btn-list {
+ display: flex;
+ margin: 50rpx;
+
+ .btn-item {
+ width: 46%;
+ height: 80rpx;
+ border-color: #909193;
+
+ &::after {
+ border: none;
+ }
+ }
+
+ .btn-item-2 {
+ background: $base-color;
+ color: #fff;
+ border: none;
+ }
+ }
+ }
+ }
+
.no-data {
.no-data-bg {
- margin: auto;
+ margin: 23% auto;
margin-bottom: 0;
width: 480rpx;
height: 480rpx;
@@ -2506,58 +1630,6 @@ export default {
}
}
- .affirm-popup {
- ::v-deep.u-popup__content {
- border-radius: 16rpx;
- }
-
- ::v-deep.u-fade-enter-to {
- z-index: 10076 !important;
- }
-
- .affirm-popup-content {
- width: 600rpx;
-
- .affirm-popup-title {
- padding: 60rpx 0 20rpx;
- text-align: center;
- font-size: 28rpx;
- font-weight: bold;
- }
-
- .affirm-popup-tips {
- padding: 0 32rpx;
- font-size: 28rpx;
- text-align: center;
- }
-
- .u-form {
- padding: 0 60rpx;
- }
-
- .popup-btn-list {
- display: flex;
- margin: 50rpx;
-
- .btn-item {
- width: 46%;
- height: 64rpx;
- border-color: #909193;
-
- &::after {
- border: none;
- }
- }
-
- .btn-item-2 {
- background: $base-color;
- color: #fff;
- border: none;
- }
- }
- }
- }
-
.tui-animation {
display: inline-block;
transform: rotate(0deg);
@@ -2575,72 +1647,5 @@ export default {
.retrun-state-name {
color: $base-color;
}
-
- .return-order-popup {
- .return-order-popup-content {
- width: 600rpx;
- min-height: 600rpx;
-
- .title {
- margin: 36rpx;
- text-align: center;
- font-weight: bold;
- font-size: 36rpx;
- }
-
- .radio-content {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin: 60rpx 40rpx 40rpx;
-
- .radio-type-name {
- font-weight: 500;
- }
-
- .radio-list {
- flex: 1;
- .radio-group {
- display: flex;
- align-items: center;
- justify-content: space-around;
- line-height: 40rpx;
-
- .radio-name {
- margin-left: 8rpx;
- }
- }
- }
- }
-
- .popup-textarea {
- margin: 28rpx;
- .textarea {
- border: 1px solid #eeeff3;
- }
- }
-
- .popup-btn-list {
- display: flex;
- margin: 50rpx;
-
- .btn-item {
- width: 46%;
- height: 80rpx;
- border-color: #909193;
-
- &::after {
- border: none;
- }
- }
-
- .btn-item-2 {
- background: $base-color;
- color: #fff;
- border: none;
- }
- }
- }
- }
}
diff --git a/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue b/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue
index 7caf3d3..2cdc5b9 100644
--- a/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue
+++ b/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue
@@ -234,7 +234,7 @@
>
- 共{{ specificationInfoList.length }}个规格
+ 共{{ specificationInfoList.length || 1 }}个规格
@@ -748,6 +748,9 @@ export default {
return item; // 如果没有匹配项,返回原 item
});
+ if (this.specificationInfoList.length == 0) {
+ debugger;
+ }
console.log(this.specificationInfoList);
} catch (e) {
console.error("解析productSpec失败:", e);
diff --git a/java-mall-app-shop-admin/pages/warehouse/manage/batchSearch.vue b/java-mall-app-shop-admin/pages/warehouse/manage/batchSearch.vue
index aadc1a8..753ebf4 100644
--- a/java-mall-app-shop-admin/pages/warehouse/manage/batchSearch.vue
+++ b/java-mall-app-shop-admin/pages/warehouse/manage/batchSearch.vue
@@ -359,7 +359,6 @@ export default {
} else {
this.loadingCommodityData = true;
}
-
if (this.isRefreshing) {
this.pageNum = 1;
this.isNoCommodityData = false;
diff --git a/java-mall-app-shop-admin/pages/warehouse/manage/productList.vue b/java-mall-app-shop-admin/pages/warehouse/manage/productList.vue
index 063e18a..f0d1e21 100644
--- a/java-mall-app-shop-admin/pages/warehouse/manage/productList.vue
+++ b/java-mall-app-shop-admin/pages/warehouse/manage/productList.vue
@@ -521,7 +521,7 @@ export default {
item_quantity: item.itemQuantity,
item_quantity_2: "",
item_unit_price: item.product_unit_price,
- item_quantity_2: "",
+ item_unit_price_2: "",
},
];
}
@@ -740,7 +740,7 @@ export default {
item_id: item.item_id,
product_id: item.product_id,
item_quantity: item.item_quantity_2 || item.item_quantity,
- item_unit_price: item.item_quantity_2 || item.item_unit_price,
+ item_unit_price: item.item_unit_price_2 || item.item_unit_price,
};
});
diff --git a/java-mall-app-shop-admin/pages/warehouse/manage/productListSearch.vue b/java-mall-app-shop-admin/pages/warehouse/manage/productListSearch.vue
index 72de1ea..29c5e8b 100644
--- a/java-mall-app-shop-admin/pages/warehouse/manage/productListSearch.vue
+++ b/java-mall-app-shop-admin/pages/warehouse/manage/productListSearch.vue
@@ -342,6 +342,7 @@ export default {
productItem: {},
isAdd: true,
selectCommodisItems: [],
+ inputSearch: "",
};
},
computed: {},
@@ -409,60 +410,71 @@ export default {
// 1. 解析产品规格模板
let productSpec = JSON.parse(JSON.stringify(item.product_spec));
-
- productSpec = JSON.parse(productSpec);
- if (!Array.isArray(productSpec)) {
- productSpec = [productSpec]; // 确保是数组格式
- }
-
- const specItemMap = [];
-
- productSpec.forEach((specGroup) => {
- if (specGroup.item && Array.isArray(specGroup.item)) {
- specGroup.item.forEach((item) => {
- specItemMap.push(item.id);
- });
+ if (productSpec.length > 0) {
+ productSpec = JSON.parse(productSpec);
+ if (!Array.isArray(productSpec)) {
+ productSpec = [productSpec]; // 确保是数组格式
}
- });
- this.currSpecificationList = this.selectCommodisItems
- .map((item) => {
- try {
- // 解析规格数据(兼容字符串和对象)
- const itemSpec =
- typeof item.item_spec === "string"
- ? JSON.parse(item.item_spec)
- : item.item_spec;
+ const specItemMap = [];
- if (Array.isArray(itemSpec) && itemSpec.length > 0) {
- const firstSpec = itemSpec[0];
+ productSpec.forEach((specGroup) => {
+ if (specGroup.item && Array.isArray(specGroup.item)) {
+ specGroup.item.forEach((item) => {
+ specItemMap.push(item.id);
+ });
+ }
+ });
- // 匹配规格逻辑
- if (firstSpec.item && firstSpec.item.id) {
- const matchedSpec = specItemMap.find(
- (id) => id == firstSpec.item.id
- );
+ this.currSpecificationList = this.selectCommodisItems
+ .map((item) => {
+ try {
+ // 解析规格数据(兼容字符串和对象)
+ const itemSpec =
+ typeof item.item_spec === "string"
+ ? JSON.parse(item.item_spec)
+ : item.item_spec;
- if (matchedSpec) {
- return {
- ...item,
- spec_item_id: matchedSpec,
- item_is_default: Boolean(item.item_is_default),
- // 保留原始数据(调试用)
- };
+ if (Array.isArray(itemSpec) && itemSpec.length > 0) {
+ const firstSpec = itemSpec[0];
+
+ // 匹配规格逻辑
+ if (firstSpec.item && firstSpec.item.id) {
+ const matchedSpec = specItemMap.find(
+ (id) => id == firstSpec.item.id
+ );
+
+ if (matchedSpec) {
+ return {
+ ...item,
+ spec_item_id: matchedSpec,
+ item_is_default: Boolean(item.item_is_default),
+ // 保留原始数据(调试用)
+ };
+ }
}
}
+ } catch (e) {
+ console.error(`处理商品 ${item.item_id} 时出错:`, e);
}
- } catch (e) {
- console.error(`处理商品 ${item.item_id} 时出错:`, e);
- }
- })
- .filter((item) => item != undefined);
- console.log(this.currSpecificationList);
+ })
+ .filter((item) => item != undefined);
+ } else {
+ this.currSpecificationList = [
+ {
+ ...item,
+ item_quantity: item.itemQuantity,
+ item_quantity_2: "",
+ item_unit_price: item.product_unit_price,
+ item_unit_price_2: "",
+ },
+ ];
+ }
this.showBottomPopup = true;
+ console.log(this.currSpecificationList);
}
},
- async getProductList(inputSearch) {
+ async getProductList() {
if (this.loadingDownCommodityData) {
this.loadingCommodityData = false;
} else {
@@ -484,9 +496,9 @@ export default {
openCount: true,
};
- if (inputSearch) {
+ if (this.inputSearch) {
this.pageNum = 1;
- params.product_name = inputSearch;
+ params.product_name = this.inputSearch;
}
let res = await GetProductList(params);
@@ -660,30 +672,26 @@ export default {
});
},
async updateCommodityPriceAndQuantity(item) {
- let params = {};
-
+ let params = this.currSpecificationList.map((item) => {
+ return {
+ item_id: item.item_id,
+ product_id: item.product_id,
+ item_quantity: item.item_quantity_2 || item.item_quantity,
+ item_unit_price: item.item_unit_price_2 || item.item_unit_price,
+ };
+ });
+ debugger;
let res = await UpdateCommodityPriceAndQuantity(params);
if (res && res.status) {
+ this.showBottomPopup = false;
+
this.$refs.uToast.show({
message: "修改成功",
type: "succeed",
duration: 1000,
});
- // 静默更新数组
- let listParams = {
- kind_id: "1201,1202,1203",
- pageNum: 9999,
- pageSize: this.pageSize,
- product_state_id: this.currProductStateId,
- category_id: this.currCategoryId,
- openCount: true,
- };
-
- let result = await GetProductList(listParams);
- if (result && result.status == 200) {
- this.commodityList = res.data.items;
- }
+ await this.getProductList();
}
this.showBottomPopup = false;
},
diff --git a/java-mall-app-shop-admin/static/font/iconfont.css b/java-mall-app-shop-admin/static/font/iconfont.css
index 9334887..04f70fd 100644
--- a/java-mall-app-shop-admin/static/font/iconfont.css
+++ b/java-mall-app-shop-admin/static/font/iconfont.css
@@ -21,6 +21,10 @@
-moz-osx-font-smoothing: grayscale;
}
+.custom-icon-a-Frame3:before {
+ content: "\e60c";
+}
+
.custom-icon-jianhao_fangxing:before {
content: "\e728";
}
diff --git a/java-mall-app-shop-admin/static/font/iconfont.ttf b/java-mall-app-shop-admin/static/font/iconfont.ttf
index 64e537e..d1f5ec0 100644
Binary files a/java-mall-app-shop-admin/static/font/iconfont.ttf and b/java-mall-app-shop-admin/static/font/iconfont.ttf differ
diff --git a/java-mall-app-shop-admin/static/font/iconfont.woff b/java-mall-app-shop-admin/static/font/iconfont.woff
index 3f215d6..0b54de2 100644
Binary files a/java-mall-app-shop-admin/static/font/iconfont.woff and b/java-mall-app-shop-admin/static/font/iconfont.woff differ
diff --git a/java-mall-app-shop-admin/static/font/iconfont.woff2 b/java-mall-app-shop-admin/static/font/iconfont.woff2
index 1677501..cc2c0b0 100644
Binary files a/java-mall-app-shop-admin/static/font/iconfont.woff2 and b/java-mall-app-shop-admin/static/font/iconfont.woff2 differ
diff --git a/java-mall-app-shop-admin/utils/http.js b/java-mall-app-shop-admin/utils/http.js
index e2cf3dd..6f72125 100644
--- a/java-mall-app-shop-admin/utils/http.js
+++ b/java-mall-app-shop-admin/utils/http.js
@@ -52,8 +52,6 @@ service.interceptors.response.use(
// });
}
- console.log(res);
-
if (res && res.code == 30) {
uni.$u.toast(`token已经过期需要重新登录`);