fix: 优化积分商品添加页面和对账单详情页面的功能 (master)

- 移除积分商品添加页面的冗余标题
- 将兑换时间选择器替换为活动时间范围选择器
- 简化验证规则,使用rangeTime替代单独的开始和结束时间
- 调整批量删除按钮和其他按钮的样式格式
- 在对账单详情页面添加删除消息提示框功能
This commit is contained in:
Chopper711 2025-02-21 16:09:14 +08:00
parent a85ec69549
commit 376a3223dc
2 changed files with 23 additions and 89 deletions

View File

@ -3,7 +3,6 @@
<Card>
<Form ref="form" :model="form" :rules="formRule">
<div class="base-info-item">
<h4>添加积分商品</h4>
<div class="form-item-view">
<FormItem astyle="width: 100%">
<div style="display: flex; margin-bottom: 10px">
@ -13,7 +12,8 @@
ghost
style="margin-left: 10px"
@click="delSelectGoods"
>批量删除</Button
>批量删除
</Button
>
</div>
<Table
@ -50,7 +50,8 @@
v-for="item in categoryList"
:value="item.id"
:key="item.id"
>{{ item.name }}</Option
>{{ item.name }}
</Option
>
</Select>
</template>
@ -71,33 +72,16 @@
</Table>
</FormItem>
<FormItem label="兑换时间" prop="time">
<DatePicker
type="datetime"
v-model="form.startTime"
format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择"
:options="options"
clearable
style="width: 200px"
>
</DatePicker>
-
<DatePicker
type="datetime"
v-model="form.endTime"
format="yyyy-MM-dd HH:mm:ss"
:options="options"
placeholder="请选择"
clearable
style="width: 200px"
>
<FormItem label="活动时间" prop="rangeTime">
<DatePicker type="datetimerange" v-model="form.rangeTime" format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择" :options="options" style="width: 260px">
</DatePicker>
</FormItem>
<div>
<Button type="text" @click="closeCurrentPage">返回</Button>
<Button type="primary" :loading="submitLoading" @click="handleSubmit"
>提交</Button
>提交
</Button
>
</div>
</div>
@ -112,28 +96,16 @@
import {addPointsGoods, getPointsGoodsCategoryList} from "@/api/promotion";
import {regular} from "@/utils";
import skuSelect from "@/components/lili-dialog";
export default {
name: "addPoinsGoods",
components: {
skuSelect,
},
data() {
const isLtEndDate = (rule, value, callback) => {
if (new Date(value).getTime() > new Date(this.form.endTime).getTime()) {
callback(new Error());
} else {
callback();
}
};
const isGtStartDate = (rule, value, callback) => {
if (new Date(value).getTime() < new Date(this.form.startTime).getTime()) {
callback(new Error());
} else {
callback();
}
};
return {
form: {
rangeTime: ["",""],
promotionGoodsList: [], //
},
showTable: true,
@ -142,50 +114,7 @@ export default {
submitLoading: false, //
selectedGoods: [], // 便
formRule: {
startTime: [
{
required: true,
type: "date",
message: "请选择开始时间",
},
{
trigger: "change",
message: "开始时间要小于结束时间",
validator: isLtEndDate,
},
],
endTime: [
{
required: true,
type: "date",
message: "请选择结束时间",
},
{
trigger: "change",
message: "结束时间要大于开始时间",
validator: isGtStartDate,
},
],
discount: [
{ required: true, message: "请输入折扣" },
{
pattern: regular.discount,
message: "请输入0-10的数字,可有一位小数",
},
],
sellerCommission: [
{ required: true, message: "请输入店铺承担比例" },
{ pattern: regular.rate, message: "请输入0-100的正整数" },
],
publishNum: [
{ required: true, message: "请输入发放数量" },
{ pattern: regular.Integer, message: "请输入正整数" },
],
couponLimitNum: [
{ required: true, message: "请输入领取限制" },
{ pattern: regular.Integer, message: "请输入正整数" },
],
description: [{ required: true, message: "请输入范围描述" }],
rangeTime: [{required: true, message: "请选择活动时间"}],
},
columns: [
{
@ -293,13 +222,15 @@ export default {
},
/** 保存积分商品 */
handleSubmit() {
this.form.startTime=this.form.rangeTime[0]
this.form.endTime=this.form.rangeTime[1]
this.$refs.form.validate((valid) => {
if (valid) {
let params = this.promotionGoodsList;
const start = this.$options.filters.unixToDate(this.form.startTime / 1000);
const end = this.$options.filters.unixToDate(this.form.endTime / 1000);
if (!params || params.length == 0) {
if (!params || params.length === 0) {
this.$Modal.warning({title: "提示", content: "请选择指定商品"});
return;
}
@ -373,7 +304,7 @@ export default {
let list = [];
item.forEach((e) => {
const obj = {
settlementPrice: e.settlementPrice || 0,
settlementPrice: e.settlementPrice || e.price,
pointsGoodsCategoryId: e.pointsGoodsCategoryId || 0,
pointsGoodsCategoryName: e.pointsGoodsCategoryName || "",
activeStock: e.activeStock || 1,
@ -407,11 +338,13 @@ h4 {
line-height: 40px;
text-align: left;
}
.describe {
font-size: 12px;
margin-left: 10px;
color: #999;
}
.wrapper {
min-height: 800px;
}

View File

@ -508,6 +508,7 @@ export default {
loading: true,
onOk: () => {
API_Shop.pay(this.id).then((res) => {
this.$Modal.remove();
if (res.success) {
this.$Message.success(res.message);
this.init();