239 lines
5.3 KiB
Vue
239 lines
5.3 KiB
Vue
<template>
|
||
<view class="box min-page">
|
||
<view class="top">
|
||
<my-button type="primary" height="72" @click="toAdd"
|
||
>添加满减活动</my-button
|
||
>
|
||
</view>
|
||
<view class="list u-font-28">
|
||
<view class="u-m-t-32 item" v-for="item in list" :key="item.id">
|
||
<view class="u-flex u-row-between">
|
||
<view class="color-999 u-font-24">
|
||
<text> ID:{{ item.id }} </text>
|
||
<text class="u-m-l-24"> 优先级:{{ item.sort }} </text>
|
||
</view>
|
||
<view class="tag" :class="[returnTagClass(item)]">{{ returnStatus(item) }}</view>
|
||
</view>
|
||
<view class="coor-333 font-bold u-m-t-16"
|
||
>活动日期:{{ returnActivityDate(item) }}</view
|
||
>
|
||
<view class="u-font-24 color-666 u-m-t-16 u-flex u-row-between">
|
||
<text class="no-wrap"> {{ returnActivityWeek(item) }}</text>
|
||
<text class="no-wrap"> {{ returnCanUseTime(item) }}</text>
|
||
</view>
|
||
<view class="u-m-t-26">
|
||
<u-line></u-line>
|
||
</view>
|
||
<view class="color-333 u-m-t-24">
|
||
<view>活动内容:</view>
|
||
<view>{{ returnActivityContent(item) }}</view>
|
||
</view>
|
||
<view class="u-flex u-row-right u-m-t-26" style="gap: 16rpx">
|
||
<button class="my-btn edit-btn" @click="toEdit(item)">编辑</button>
|
||
<button
|
||
class="my-btn delete-btn"
|
||
@click="deleteDiscountActivity(item)"
|
||
>
|
||
删除
|
||
</button>
|
||
</view>
|
||
</view>
|
||
<view class="u-p-30">
|
||
<up-loadmore :status="isEnd ? 'nomore' : 'loading'"></up-loadmore>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
<script setup>
|
||
import {
|
||
onLoad,
|
||
onReady,
|
||
onShow,
|
||
onPageScroll,
|
||
onReachBottom,
|
||
onBackPress,
|
||
} from "@dcloudio/uni-app";
|
||
import { ref, onMounted } from "vue";
|
||
import * as discountActivityApi from "@/http/api/market/discountActivity.js";
|
||
import dayjs from "dayjs";
|
||
|
||
const list = ref([]);
|
||
const pageNum = ref(1);
|
||
const isEnd = ref(false);
|
||
|
||
async function getList() {
|
||
const res = await discountActivityApi.getList({
|
||
pageNum: pageNum.value,
|
||
pageSize: 10,
|
||
});
|
||
if (res) {
|
||
if (pageNum.value == 1) {
|
||
list.value = res.records || [];
|
||
} else {
|
||
list.value = [...list.value, ...(res.records || [])];
|
||
}
|
||
isEnd.value = pageNum.value >= res.totalPage * 1 ? true : false;
|
||
console.log(isEnd.value);
|
||
}
|
||
}
|
||
|
||
function returnActivityDate(item) {
|
||
return `${item.validStartTime.split(" ")[0]} 至 ${
|
||
item.validEndTime.split(" ")[0]
|
||
}`;
|
||
}
|
||
function returnActivityWeek(item) {
|
||
if (!item.useDays.length) {
|
||
return "每天都不可用";
|
||
}
|
||
return "每" + item.useDays.replaceAll(",", "、");
|
||
}
|
||
function returnCanUseTime(item) {
|
||
if (item.useTimeType != "all") {
|
||
return `${item.useStartTime} 至 ${item.useEndTime}`;
|
||
} else {
|
||
return "全天可用";
|
||
}
|
||
}
|
||
|
||
function returnActivityContent(item) {
|
||
return item.thresholds
|
||
.map((cur) => {
|
||
return `满${cur.fullAmount}减${cur.discountAmount}`;
|
||
}, "")
|
||
.join("、");
|
||
}
|
||
function toAdd() {
|
||
clearDiscountActivity();
|
||
uni.navigateTo({
|
||
url: "/pageMarket/discountActivity/add",
|
||
});
|
||
}
|
||
function clearDiscountActivity() {
|
||
uni.removeStorageSync("discountActivity");
|
||
}
|
||
function toEdit(item) {
|
||
uni.setStorageSync("discountActivity", { ...item });
|
||
uni.navigateTo({
|
||
url: "/pageMarket/discountActivity/add?id=" + item.id,
|
||
});
|
||
}
|
||
|
||
function deleteDiscountActivity(item) {
|
||
uni.showModal({
|
||
title: "确认删除",
|
||
content: `是否确认删除?`,
|
||
success: async (res) => {
|
||
console.log(res);
|
||
if (res.confirm) {
|
||
const res = await discountActivityApi.del(item.id);
|
||
uni.showToast({
|
||
title: "删除成功",
|
||
icon: "none",
|
||
duration: 2000,
|
||
success: function () {
|
||
getList();
|
||
},
|
||
});
|
||
}
|
||
},
|
||
});
|
||
}
|
||
|
||
|
||
function returnStatus(item) {
|
||
if (item.status == 1) {
|
||
//未开始
|
||
return "未开始";
|
||
}
|
||
if (item.status == 2) {
|
||
//进行中
|
||
return "进行中";
|
||
}
|
||
if (item.status == 3) {
|
||
//已结束
|
||
return "已结束";
|
||
}
|
||
}
|
||
function returnTagClass(item) {
|
||
if (item.status == 1) {
|
||
//未开始
|
||
return "tag-priority";
|
||
}
|
||
if (item.status == 2) {
|
||
//进行中
|
||
return "tag-green";
|
||
}
|
||
if (item.status == 3) {
|
||
//已结束
|
||
return "tag-end";
|
||
}
|
||
}
|
||
onReachBottom(() => {
|
||
if (!isEnd.value) {
|
||
pageNum.value++;
|
||
getList();
|
||
}
|
||
});
|
||
onShow(() => {
|
||
pageNum.value = 1;
|
||
getList();
|
||
});
|
||
</script>
|
||
<style lang="scss" scoped>
|
||
.box {
|
||
padding: 0 30rpx;
|
||
background: #f7f7f7;
|
||
}
|
||
.top {
|
||
margin-top: 18rpx;
|
||
}
|
||
.list {
|
||
.item {
|
||
padding: 32rpx 24rpx;
|
||
border-radius: 14rpx;
|
||
background-color: #fff;
|
||
overflow: hidden;
|
||
}
|
||
}
|
||
.tag {
|
||
border-radius: 12rpx;
|
||
padding: 8rpx 22rpx;
|
||
font-size: 28rpx;
|
||
&.success {
|
||
background-color: #edfff0;
|
||
color: #5bbc6d;
|
||
}
|
||
&.tag-priority {
|
||
background-color: #fff2e6;
|
||
color: #ff9900;
|
||
}
|
||
&.tag-gray {
|
||
background-color: #f7f7f7;
|
||
color: #999;
|
||
}
|
||
&.tag-green {
|
||
background-color: #edfff0;
|
||
color: #5bbc6d;
|
||
}
|
||
&.tag-end {
|
||
background-color: #f7f7f7;
|
||
color: #999;
|
||
}
|
||
}
|
||
.my-btn {
|
||
font-size: 28rpx;
|
||
line-height: 36rpx;
|
||
padding: 8rpx 32rpx;
|
||
border-radius: 12rpx;
|
||
margin: 0;
|
||
}
|
||
.edit-btn {
|
||
background: #e6f0ff;
|
||
color: $my-main-color;
|
||
}
|
||
.delete-btn {
|
||
background: #ffe7e6;
|
||
color: #ff1c1c;
|
||
}
|
||
</style> |