|
|
@@ -25,7 +25,7 @@
|
|
|
</view>
|
|
|
|
|
|
<!-- 一级分类Tabs -->
|
|
|
- <u-tabs :list="statusTabs"
|
|
|
+ <u-tabs ref="tabs" :list="statusTabs"
|
|
|
:current="currentStatusTab"
|
|
|
font-size="30"
|
|
|
inactive-color="#666666"
|
|
|
@@ -75,6 +75,7 @@
|
|
|
<text class="price"><text class="unit">¥</text>{{ goods.price }}</text>
|
|
|
<text class="original-price">¥{{ goods.sellingPrice }}</text>
|
|
|
</view>
|
|
|
+ <view class="status" v-if="currentStatusTab == 2 && goods.reviewStatus !== 1">{{ getReviewStatus(goods.reviewStatus) }}</view>
|
|
|
</view>
|
|
|
<!-- 根据模式和状态显示不同操作 -->
|
|
|
<view class="goods-actions">
|
|
|
@@ -197,9 +198,9 @@ export default {
|
|
|
let params = {
|
|
|
// 商品状态: 0 未上架, 1 已上架
|
|
|
status: 0,
|
|
|
- // 审核状态: 0 审核中, 1 已审核
|
|
|
+ // 审核状态: 0 审核中, 1 已审核, 2 驳回
|
|
|
// reviewStatus: 0,
|
|
|
- queryName: this.queryName,
|
|
|
+ name: this.queryName,
|
|
|
}
|
|
|
// 售卖中
|
|
|
if (this.currentStatusTab == 0) {
|
|
|
@@ -222,7 +223,7 @@ export default {
|
|
|
params = {
|
|
|
...params,
|
|
|
status: 0,
|
|
|
- reviewStatus: 1,
|
|
|
+ // reviewStatus: 1,
|
|
|
}
|
|
|
}
|
|
|
return params;
|
|
|
@@ -239,6 +240,9 @@ export default {
|
|
|
methods: {
|
|
|
// 商品数据
|
|
|
getData() {
|
|
|
+ uni.showLoading({
|
|
|
+ title: '加载中'
|
|
|
+ });
|
|
|
let params = {
|
|
|
pageNo: 1,
|
|
|
pageSize: 100,
|
|
|
@@ -253,6 +257,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ uni.hideLoading();
|
|
|
});
|
|
|
},
|
|
|
// 餐品分类
|
|
|
@@ -261,11 +266,20 @@ export default {
|
|
|
if (res.data.code === 200) {}
|
|
|
});
|
|
|
},
|
|
|
+ getReviewStatus(status) {
|
|
|
+ // 审核状态: 0 审核中, 1 已审核, 2 驳回
|
|
|
+ const statusMap = {
|
|
|
+ 0: '审核中',
|
|
|
+ 1: '已通过',
|
|
|
+ 2: '未通过',
|
|
|
+ };
|
|
|
+ return statusMap[status] || '';
|
|
|
+ },
|
|
|
// 操作模式
|
|
|
toggleManageMode() {
|
|
|
this.isManaging = !this.isManaging;
|
|
|
- this.selectedGoods = []; // 切换模式时清空选择
|
|
|
- this.isAllSelected = false;
|
|
|
+ // 切换模式时清空选择
|
|
|
+ this.onClearSel();
|
|
|
if (!this.isManaging) {
|
|
|
this.filteredGoods.flatMap(category => category.items.forEach(item => {
|
|
|
item.checked = false;
|
|
|
@@ -278,12 +292,12 @@ export default {
|
|
|
// 主分类事件
|
|
|
onTabChange(e) {
|
|
|
this.currentStatusTab = e;
|
|
|
- this.selectedGoods = []; // 切换Tab时清空选择
|
|
|
- this.isAllSelected = false;
|
|
|
+ // 切换Tab时清空选择
|
|
|
+ this.onClearSel();
|
|
|
// 列表数据
|
|
|
this.getData();
|
|
|
// 切换 Tab 后,重置左侧分类高亮到第一个
|
|
|
- // this.currentCategoryTab = 0;
|
|
|
+ this.currentCategoryTab = 0;
|
|
|
// this.$nextTick(() => {
|
|
|
// // 确保在新数据渲染后,滚动到第一个分类
|
|
|
// this.scrollIntoViewId = this.filteredGoods[0]?.scrollId || '';
|
|
|
@@ -291,12 +305,14 @@ export default {
|
|
|
},
|
|
|
// 添加商品
|
|
|
addGoods() {
|
|
|
+ this.isManaging = false;
|
|
|
uni.navigateTo({
|
|
|
url: '/pages/groupMeal/goods/form-step1'
|
|
|
});
|
|
|
},
|
|
|
// 编辑商品
|
|
|
editGoods(goods) {
|
|
|
+ this.isManaging = false;
|
|
|
uni.navigateTo({
|
|
|
url: '/pages/groupMeal/goods/form-step1?id=' + goods.id
|
|
|
});
|
|
|
@@ -351,7 +367,10 @@ export default {
|
|
|
this.$http.delete('/groupmeal/gmMerchantPackage/deleteBatch', {}, {
|
|
|
params: { ids: this.selectedGoods.join() }
|
|
|
}).then(res => {
|
|
|
- if (res.data.code === 200) {}
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ this.onClearSel();
|
|
|
+ this.getData();
|
|
|
+ }
|
|
|
this.$tip.toast(res.data.message);
|
|
|
});
|
|
|
} else {
|
|
|
@@ -362,11 +381,19 @@ export default {
|
|
|
ids: this.selectedGoods,
|
|
|
status: this.currentStatusTab == 2 ? 1 : 0
|
|
|
}).then(res => {
|
|
|
- if (res.data.code === 200) {}
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ this.onClearSel();
|
|
|
+ this.getData();
|
|
|
+ }
|
|
|
this.$tip.toast(res.data.message);
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
+ // 完成某种操作后,清空数据
|
|
|
+ onClearSel() {
|
|
|
+ this.selectedGoods = [];
|
|
|
+ this.isAllSelected = false;
|
|
|
+ },
|
|
|
// 核心功能 1: 点击左侧二级分类,右侧商品列表滚动到对应位置
|
|
|
onCategoryTabChange(index) {
|
|
|
this.currentCategoryTab = index;
|
|
|
@@ -568,6 +595,16 @@ export default {
|
|
|
margin-left: 10rpx;
|
|
|
}
|
|
|
}
|
|
|
+ .status {
|
|
|
+ color: #fff;
|
|
|
+ font-size: 24rpx;
|
|
|
+ padding: 5rpx 10rpx;
|
|
|
+ border-radius: 12rpx 0 12rpx;
|
|
|
+ background: #449AFF;
|
|
|
+ position: absolute;
|
|
|
+ top: 20rpx;
|
|
|
+ left: 0;
|
|
|
+ }
|
|
|
}
|
|
|
.goods-actions {
|
|
|
position: absolute;
|