订单管理

This commit is contained in:
余同学 2024-12-15 17:35:41 +08:00
parent 6a55f965d7
commit 073c500424
19 changed files with 1239 additions and 171 deletions

View File

@ -98,4 +98,12 @@ export const marketing = {
data,
});
},
// 会员积分商品
PointsProductPage: (data) => {
return $http.request({
url: `/merchant-api/memberUnitPointsProduct/page`,
method: "get",
params: data,
});
},
};

View File

@ -204,4 +204,12 @@ export const mer_admin = {
params: data,
});
},
//订单管理
orderPage: (data) => {
return $http.request({
method: "get",
url: `/merchant-api/order/page`,
params: data,
});
},
};

View File

@ -43,7 +43,20 @@ export default {
parentId: 0,
parentName: null,
name: "商品管理",
url: "product/index",
url: "product/commodity/index",
perms: "",
type: 1,
elIcon: "el-icon-menu",
orderNum: 0,
open: null,
list: [],
},
{
menuId: getUUID(),
parentId: 0,
parentName: null,
name: "订单管理",
url: "product/order/index",
perms: "",
type: 1,
elIcon: "el-icon-menu",

View File

@ -12,38 +12,65 @@
>
<template slot="tableTop">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item v-if="storeList.length > 1" label="商铺">
<el-select v-model="formInline.shopId" placeholder="请选择">
<el-option
v-for="item in storeList"
:key="item.shopId"
:label="item.shopName"
:value="item.shopId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="商品ID">
<el-input
placeholder="请输入商品ID"
v-model="formInline.name"
v-model="formInline.productId"
></el-input>
</el-form-item>
<el-form-item label="商品名称">
<el-input
placeholder="请输入商品名称"
v-model="formInline.name"
v-model="formInline.productName"
></el-input>
</el-form-item>
<el-form-item label="商品状态">
<el-select
@change="getData"
v-model="formInline.marketId"
placeholder="请选择"
>
<el-form-item label="兑换状态">
<el-select v-model="formInline.redeemEnable" placeholder="请选择">
<el-option
v-for="item in marketList"
v-for="item in [
{ value: true, label: '启用' },
{ value: false, label: '禁用' },
]"
:key="item.marketId"
:label="item.marketName"
:value="item.marketId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="积分数量">
<el-input
placeholder="请输入手机号"
v-model="formInline.name"
></el-input>
</el-form-item>
<!-- <el-form-item label="积分数量">
<el-col :span="11">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="formInline.oneGoodsViewPoints"
:min="0"
label="请输入"
></el-input-number>
</el-col>
<el-col class="line" :span="2">-</el-col>
<el-col :span="11">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="formInline.oneGoodsViewPoints"
:min="0"
label="请输入"
></el-input-number>
</el-col>
</el-form-item> -->
<el-form-item>
<el-button type="primary" @click="$refs.oTable.reload()"
>查询</el-button
@ -98,7 +125,7 @@ export default {
this.formInline = {
unitType: JSON.parse(sessionStorage.getItem("userInfo")).unitType,
marketId: this.marketId,
shopId: "",
shopId: this.shopId,
};
this.$nextTick(() => {
this.$refs.oTable.reload();
@ -106,19 +133,17 @@ export default {
},
methods: {
getData() {
this.$api.mer_admin
.storeList({ marketId: this.formInline.marketId })
.then((res) => {
this.storeList = res.data.data;
// this.formInline.shopId = res.data.data[0].shopId;
this.$nextTick(() => {
this.$refs.oTable.reload();
});
this.$api.marketing.PointsProductPage(this.formInline).then((res) => {
this.storeList = res.data.data;
// this.formInline.shopId = res.data.data[0].shopId;
this.$nextTick(() => {
this.$refs.oTable.reload();
});
});
},
queryList(pageNo, pageSize) {
this.$api.marketing
.marketingUserPage({
.PointsProductPage({
pageNumber: pageNo,
pageSize: pageSize,
...this.formInline,
@ -143,7 +168,7 @@ export default {
{
title: "商品ID",
align: "center",
field: "name",
field: "productId",
},
{
title: "商品名称",

View File

@ -67,15 +67,31 @@
</el-table>
<!-- 配置积分 -->
<addOrUpdate @getList="getList" ref="addOrUpdate"></addOrUpdate>
<!-- 购买商品积分 -->
<productPoints ref="productPoints" @getList="getList"></productPoints>
<!-- 分享积分 -->
<sharePoints ref="sharePoints" @getList="getList"></sharePoints>
<!-- 评价 -->
<evaluate ref="evaluate" @getList="getList"></evaluate>
<!-- 浏览 -->
<browse ref="browse" @getList="getList"></browse>
</div>
</template>
<script>
import browse from "./popup/browse";
import evaluate from "./popup/evaluate.vue";
import sharePoints from "./popup/share-points.vue";
import productPoints from "./popup/product-points.vue";
import addOrUpdate from "./popup/add-or-update.vue";
import { mapState } from "vuex";
export default {
components: {
addOrUpdate,
productPoints,
sharePoints,
evaluate,
browse,
},
data() {
return {
@ -192,7 +208,18 @@ export default {
});
},
addConfig(e) {
this.$refs.addOrUpdate.toggle(e).add();
console.log(e);
if (e.taskName === "每日签到") {
this.$refs.addOrUpdate.toggle(e).add();
} else if (e.taskName === "购买商品") {
this.$refs.productPoints.toggle(e).add();
} else if (e.taskName === "分享商品") {
this.$refs.sharePoints.toggle(e).add();
} else if (e.taskName === "评价商品") {
this.$refs.evaluate.toggle(e).add();
} else if (e.taskName === "浏览商品") {
this.$refs.browse.toggle(e).add();
}
},
},
computed: {

View File

@ -15,114 +15,81 @@
:model="modalData"
ref="modalForm"
>
<div style="font-size: 18px; font-weight: 600">每日积分设置</div>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="连续签到1天" prop="memberPoints">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.memberPoints"
:min="0"
label="请输入"
></el-input-number> </el-form-item
></el-col>
<el-col :span="6">
<el-form-item label="连续签到2天" prop="memberPoints">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.memberPoints"
:min="0"
label="请输入"
></el-input-number> </el-form-item
></el-col>
<el-col :span="6">
<el-form-item label="连续签到3天" prop="memberPoints">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.memberPoints"
:min="0"
label="请输入"
></el-input-number> </el-form-item
></el-col>
<el-col :span="6">
<el-form-item label="连续签到4天" prop="memberPoints">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.memberPoints"
:min="0"
label="请输入"
></el-input-number> </el-form-item
></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="连续签到5天" prop="memberPoints">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.memberPoints"
:min="0"
label="请输入"
></el-input-number> </el-form-item
></el-col>
<el-col :span="6">
<el-form-item label="连续签到6天" prop="memberPoints">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.memberPoints"
:min="0"
label="请输入"
></el-input-number> </el-form-item
></el-col>
<el-col :span="6">
<el-form-item label="连续签到7天" prop="memberPoints">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.memberPoints"
:min="0"
label="请输入"
></el-input-number> </el-form-item
></el-col>
</el-row>
<div style="font-size: 18px; font-weight: 600; margin-bottom: 20px">
购买商品积分/成长配置
</div>
<el-form-item
:label="`当前用户成长值为${form.growthValue},修改为`"
prop="growthValue"
>
<el-form-item label="连续签到1天" prop="oneDay">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.growthValue"
v-model="modalData.oneDay"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item
style="margin-top: 20px"
label="请输入确定"
prop="determine"
>
<el-input
<el-form-item label="连续签到2天" prop="twoDay">
<el-input-number
style="width: 150px"
v-model="modalData.determine"
controls-position="right"
:precision="0"
v-model="modalData.twoDay"
:min="0"
label="请输入"
></el-input>
></el-input-number>
</el-form-item>
<el-form-item label="连续签到3天" prop="threeDay">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.threeDay"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item label="连续签到4天" prop="fourDay">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.fourDay"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item label="连续签到5天" prop="fiveDay">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.fiveDay"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item label="连续签到6天" prop="sixDay">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.sixDay"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item label="连续签到7天" prop="sevenDay">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.sevenDay"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
</el-form>
</template>
@ -142,39 +109,58 @@ export default {
title: "",
show: false,
width: "700px",
fullscreen: true,
},
modalData: {},
settingId: "",
form: {},
rules: {
memberPoints: [
oneDay: [
{
required: true,
message: "请输入积分",
trigger: "blur",
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
growthValue: [
twoDay: [
{
required: true,
message: "请输入成长值",
trigger: "blur",
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
determine: [
threeDay: [
{
required: true,
message: "请输入确定",
trigger: "blur",
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
fourDay: [
{
validator: (rule, value, callback) => {
if (value !== "确定") {
callback(new Error("请输入确定"));
} else {
callback();
}
},
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
fiveDay: [
{
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
sixDay: [
{
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
sevenDay: [
{
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
},
@ -203,7 +189,16 @@ export default {
}
return {
add: (row) => {
this.modalConfig.title = "积分设置";
this.modalData = {
oneDay: 0,
twoDay: 0,
threeDay: 0,
fourDay: 0,
fiveDay: 0,
sixDay: 0,
sevenDay: 0,
};
this.modalConfig.title = "每日积分设置";
this.isAdd = true;
},
update: () => {
@ -213,12 +208,9 @@ export default {
};
},
init(row) {
this.settingId = row.id;
console.log(row);
this.modalData = row;
this.form = {
memberPoints: row.memberPoints,
growthValue: row.growthValue,
};
// this.modalData = row;
},
},
computed: {
@ -238,30 +230,17 @@ export default {
type: "primary",
handle: () => {
console.log(this.modalData);
let data = {
id: this.settingId,
dailySignSettings: this.modalData,
};
this.$refs.modalForm.validate((valid) => {
console.log(valid);
if (valid) {
if (this.isAdd) {
this.$api.marketing
.changeMemberPoints({
id: this.modalData.id,
memberPoints: this.modalData.memberPoints,
})
.then((res) => {
this.$emit("queryList");
this.toggle();
});
}
} else {
this.$api.marketing
.changeGrowthValue({
id: this.modalData.id,
growthValue: this.modalData.growthValue,
})
.then((res) => {
this.$emit("queryList");
this.toggle();
});
this.$api.marketing.settingTaskDetail(data).then((res) => {
console.log(res);
this.toggle();
this.$emit("getList")
});
}
});
},

View File

@ -0,0 +1,172 @@
<template>
<div>
<obj-modal
ref="modal"
labelWidth="150px"
:modalCols="modalCols"
:modalConfig="modalConfig"
:modalData="modalData"
:modalHandles="modalHandles"
>
<template slot="dialog__after">
<el-form
label-width="150px"
:rules="rules"
:model="modalData"
ref="modalForm"
>
<el-form-item
label="每浏览1个商品达15秒可获积分/成长值:"
prop="oneGoodsViewPoints"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.oneGoodsViewPoints"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item
label="该任务每日最高可获积分/成长值:"
prop="dailyPointsLimit"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.dailyPointsLimit"
:min="0"
label="请输入"
></el-input-number>
<div>
<el-checkbox
v-model="modalData.enableDailyPointsLimit"
></el-checkbox>
<span style="margin-left: 10px">不勾选则无上限</span>
</div>
</el-form-item>
</el-form>
</template>
</obj-modal>
</div>
</template>
<script>
import { debounce, cloneDeep } from "lodash";
import { Divider } from "element-ui";
export default {
components: {},
data() {
return {
isAdd: true,
//
modalConfig: {
title: "",
show: false,
width: "700px",
},
modalData: {},
settingId: "",
form: {},
rules: {
oneGoodsViewPoints: [
{
required: true,
message: "请输入浏览商品积分",
trigger: ["blur", "change"],
},
],
dailyPointsLimit: [
{
required: true,
message: "该任务每日最高可获积分/成长值",
trigger: ["blur", "change"],
},
],
},
};
},
watch: {
"modalConfig.show"(newVal) {
if (!newVal) {
//
setTimeout(() => {
this.$refs.modalForm.resetFields();
});
}
},
},
methods: {
queryTableData(pageNo, pageSize) {},
toggle(e) {
if (this.modalConfig.show == false) {
this.modalConfig.show = true;
} else {
this.modalConfig.show = false;
}
if (e) {
this.init(cloneDeep(e));
}
return {
add: (row) => {
this.modalData = {
oneGoodsViewPoints: 0,
enableDailyPointsLimit: true,
dailyPointsLimit: 0,
};
this.modalConfig.title = "浏览商品积分/成长值配置";
this.isAdd = true;
},
update: () => {
this.modalConfig.title = "修改成长值";
this.isAdd = false;
},
};
},
init(row) {
this.settingId = row.id;
console.log(row);
// this.modalData = row;
},
},
computed: {
modalCols() {
return [];
},
modalHandles() {
return [
{
label: "取消",
handle: () => {
this.toggle();
},
},
{
label: "确认",
type: "primary",
handle: () => {
console.log(this.modalData);
let data = {
id: this.settingId,
viewGoodsSettings: this.modalData,
};
this.$refs.modalForm.validate((valid) => {
if (valid) {
this.$api.marketing.settingTaskDetail(data).then((res) => {
this.toggle();
this.$emit("getList");
});
}
});
},
},
];
},
},
asyncComputed: {},
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,192 @@
<template>
<div>
<obj-modal
ref="modal"
labelWidth="150px"
:modalCols="modalCols"
:modalConfig="modalConfig"
:modalData="modalData"
:modalHandles="modalHandles"
>
<template slot="dialog__after">
<el-form
label-width="150px"
:rules="rules"
:model="modalData"
ref="modalForm"
>
<el-form-item
label="文字评价1个商品可获积分/成长值"
prop="textCommentPoints"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.textCommentPoints"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item
label="视频图文评价1个商品可获积分/成长值"
prop="imageTextCommentPoints"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.imageTextCommentPoints"
:min="0"
label="请输入"
></el-input-number>
</el-form-item>
<el-form-item
label="该任务每日最高可获积分/成长值:"
prop="dailyPointsLimit"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.dailyPointsLimit"
:min="0"
label="请输入"
></el-input-number>
<div>
<el-checkbox
v-model="modalData.enableDailyPointsLimit"
></el-checkbox>
<span style="margin-left: 10px">不勾选则无上限</span>
</div>
</el-form-item>
</el-form>
</template>
</obj-modal>
</div>
</template>
<script>
import { debounce, cloneDeep } from "lodash";
import { Divider } from "element-ui";
export default {
components: {},
data() {
return {
isAdd: true,
//
modalConfig: {
title: "",
show: false,
width: "700px",
},
modalData: {},
settingId: "",
form: {},
rules: {
textCommentPoints: [
{
required: true,
message: "请输入文字评价积分",
trigger: ["blur", "change"],
},
],
imageTextCommentPoints: [
{
required: true,
message: "请输入视频图文评价积分",
trigger: ["blur", "change"],
},
],
dailyPointsLimit: [
{
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
},
};
},
watch: {
"modalConfig.show"(newVal) {
if (!newVal) {
//
setTimeout(() => {
this.$refs.modalForm.resetFields();
});
}
},
},
methods: {
queryTableData(pageNo, pageSize) {},
toggle(e) {
if (this.modalConfig.show == false) {
this.modalConfig.show = true;
} else {
this.modalConfig.show = false;
}
if (e) {
this.init(cloneDeep(e));
}
return {
add: (row) => {
this.modalData = {
textCommentPoints: 0,
imageTextCommentPoints: 0,
enableDailyPointsLimit: true,
dailyPointsLimit: 0,
};
this.modalConfig.title = "评价商品积分/成长值配置";
this.isAdd = true;
},
update: () => {
this.modalConfig.title = "修改成长值";
this.isAdd = false;
},
};
},
init(row) {
this.settingId = row.id;
console.log(row);
// this.modalData = row;
},
},
computed: {
modalCols() {
return [];
},
modalHandles() {
return [
{
label: "取消",
handle: () => {
this.toggle();
},
},
{
label: "确认",
type: "primary",
handle: () => {
console.log(this.modalData);
let data = {
id: this.settingId,
commentGoodsSettings: this.modalData,
};
this.$refs.modalForm.validate((valid) => {
if (valid) {
this.$api.marketing.settingTaskDetail(data).then((res) => {
this.toggle();
this.$emit("getList");
});
}
});
},
},
];
},
},
asyncComputed: {},
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,171 @@
<template>
<div>
<obj-modal
ref="modal"
labelWidth="150px"
:modalCols="modalCols"
:modalConfig="modalConfig"
:modalData="modalData"
:modalHandles="modalHandles"
>
<template slot="dialog__after">
<el-form
label-width="150px"
:rules="rules"
:model="modalData"
ref="modalForm"
>
<el-form-item label="购买商品实付" prop="pointsRatioAmount">
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.pointsRatioAmount"
:min="0"
label="请输入"
></el-input-number>
<span style="margin-left: 10px">可获得1积分/成长值</span>
<div>订单完成时根据实际实付款发放</div>
</el-form-item>
<el-form-item
label="该任务每日最高可获积分/成长值:"
prop="dailyPointsLimit"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.dailyPointsLimit"
:min="0"
label="请输入"
></el-input-number>
<div>
<el-checkbox
v-model="modalData.enableDailyPointsLimit"
></el-checkbox>
<span style="margin-left: 10px">不勾选则无上限</span>
</div>
</el-form-item>
</el-form>
</template>
</obj-modal>
</div>
</template>
<script>
import { debounce, cloneDeep } from "lodash";
import { Divider } from "element-ui";
export default {
components: {},
data() {
return {
isAdd: true,
//
modalConfig: {
title: "",
show: false,
width: "700px",
},
modalData: {},
settingId: "",
form: {},
rules: {
pointsRatioAmount: [
{
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
dailyPointsLimit: [
{
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
},
};
},
watch: {
"modalConfig.show"(newVal) {
if (!newVal) {
//
setTimeout(() => {
this.$refs.modalForm.resetFields();
});
}
},
},
methods: {
queryTableData(pageNo, pageSize) {},
toggle(e) {
if (this.modalConfig.show == false) {
this.modalConfig.show = true;
} else {
this.modalConfig.show = false;
}
if (e) {
this.init(cloneDeep(e));
}
return {
add: (row) => {
this.modalData = {
pointsRatioAmount: 0,
enableDailyPointsLimit: true,
dailyPointsLimit: 0,
};
this.modalConfig.title = "购买商品积分/成长值配置";
this.isAdd = true;
},
update: () => {
this.modalConfig.title = "修改成长值";
this.isAdd = false;
},
};
},
init(row) {
this.settingId = row.id;
console.log(row);
// this.modalData = row;
},
},
computed: {
modalCols() {
return [];
},
modalHandles() {
return [
{
label: "取消",
handle: () => {
this.toggle();
},
},
{
label: "确认",
type: "primary",
handle: () => {
console.log(this.modalData);
let data = {
id: this.settingId,
buyGoodsSettings: this.modalData,
};
this.$refs.modalForm.validate((valid) => {
if (valid) {
this.$api.marketing.settingTaskDetail(data).then((res) => {
this.toggle();
this.$emit("getList");
});
}
});
},
},
];
},
},
asyncComputed: {},
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,175 @@
<template>
<div>
<obj-modal
ref="modal"
labelWidth="150px"
:modalCols="modalCols"
:modalConfig="modalConfig"
:modalData="modalData"
:modalHandles="modalHandles"
>
<template slot="dialog__after">
<el-form
label-width="150px"
:rules="rules"
:model="modalData"
ref="modalForm"
>
<el-form-item
label="每分享1个商品1次可获得积分/成长值:"
prop="oneSharePoints"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.oneSharePoints"
:min="0"
label="请输入"
></el-input-number>
<div style="color: red">
此任务为评价商品1订单可能包含多商品
</div>
</el-form-item>
<el-form-item
label="该任务每日最高可获积分/成长值:"
prop="dailyPointsLimit"
>
<el-input-number
style="width: 150px"
controls-position="right"
:precision="0"
v-model="modalData.dailyPointsLimit"
:min="0"
label="请输入"
></el-input-number>
<div>
<el-checkbox
v-model="modalData.enableDailyPointsLimit"
></el-checkbox>
<span style="margin-left: 10px">不勾选则无上限</span>
</div>
</el-form-item>
</el-form>
</template>
</obj-modal>
</div>
</template>
<script>
import { debounce, cloneDeep } from "lodash";
import { Divider } from "element-ui";
export default {
components: {},
data() {
return {
isAdd: true,
//
modalConfig: {
title: "",
show: false,
width: "700px",
},
modalData: {},
settingId: "",
form: {},
rules: {
oneSharePoints: [
{
required: true,
message: "请输入分享签到积分",
trigger: ["blur", "change"],
},
],
dailyPointsLimit: [
{
required: true,
message: "请输入签到积分",
trigger: ["blur", "change"],
},
],
},
};
},
watch: {
"modalConfig.show"(newVal) {
if (!newVal) {
//
setTimeout(() => {
this.$refs.modalForm.resetFields();
});
}
},
},
methods: {
queryTableData(pageNo, pageSize) {},
toggle(e) {
if (this.modalConfig.show == false) {
this.modalConfig.show = true;
} else {
this.modalConfig.show = false;
}
if (e) {
this.init(cloneDeep(e));
}
return {
add: (row) => {
this.modalData = {
oneSharePoints: 0,
enableDailyPointsLimit: true,
dailyPointsLimit: 0,
};
this.modalConfig.title = "分享商品积分/成长值配置";
this.isAdd = true;
},
update: () => {
this.modalConfig.title = "修改成长值";
this.isAdd = false;
},
};
},
init(row) {
this.settingId = row.id;
console.log(row);
// this.modalData = row;
},
},
computed: {
modalCols() {
return [];
},
modalHandles() {
return [
{
label: "取消",
handle: () => {
this.toggle();
},
},
{
label: "确认",
type: "primary",
handle: () => {
console.log(this.modalData);
let data = {
id: this.settingId,
shareGoodsSettings: this.modalData,
};
this.$refs.modalForm.validate((valid) => {
if (valid) {
this.$api.marketing.settingTaskDetail(data).then((res) => {
this.toggle();
this.$emit("getList");
});
}
});
},
},
];
},
},
asyncComputed: {},
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,298 @@
<template>
<div>
<div style="height: calc(100vh - 200px)">
<obj-table-plus
ref="oTable"
style="height: 100%"
:tableCols="tableCols"
:tableProp="tableProp"
@query="queryList"
v-model="dataList"
:tableEvent="tableEvent"
>
<template slot="tableTop">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="订单号">
<el-input
v-model="formInline.name"
placeholder="订单号搜索"
></el-input>
</el-form-item>
<el-form-item label="商品名称">
<el-input
v-model="formInline.name"
placeholder="商品名称或id"
></el-input>
</el-form-item>
<el-form-item label="下单时间">
<el-date-picker
v-model="value1"
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="$refs.oTable.reload()"
>查询</el-button
>
<el-button type="primary" @click="Reset">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane
v-for="item in statusList"
:key="item.value"
:label="item.label"
:name="item.value"
></el-tab-pane>
</el-tabs> -->
<!-- <div class="mb-2">
<el-button type="primary" size="small" @click="addProduct"
>批量导出</el-button
>
</div> -->
</template>
</obj-table-plus>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
export default {
components: {},
data() {
return {
activeName: "5",
value1: "1",
advanceSellStatus: "",
dataList: [],
formInline: {
name: "",
marketId: "",
shopId: "",
},
tableProp: {
"auto-resize": true,
border: true,
height: "auto",
"row-id": "id",
"show-overflow": false,
},
statusList: [
{
label: "全部",
value: "5",
},
{
label: "代发货",
value: "0",
},
{
label: "带收货",
value: "1",
},
{
label: "待评价",
value: "2",
},
{
label: "已取消",
value: "3",
},
{
label: "交易关闭",
value: "3",
},
{
label: "已完成",
value: "3",
},
],
productFilterType: "SALE",
selectList: [],
};
},
created() {},
methods: {
// getData() {
// this.$api.mer_admin
// .storeList({ marketId: this.formInline.marketId })
// .then((res) => {
// this.storeList = res.data.data;
// this.formInline.shopId = res.data.data[0].shopId;
// this.$nextTick(() => {
// this.$refs.oTable.reload();
// });
// });
// },
addProduct() {
this.$refs.addOrUpdate.toggle().add();
},
deleteProduct() {
console.log(this.selectList);
let integers = this.selectList.map((item) => {
return item.id;
});
this.$confirm("此操作将删除该商品, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
console.log("111");
this.$api.mer_admin.BatchDeleteProducts(integers).then((res) => {
this.$refs.oTable.reload();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
queryList(pageNo, pageSize) {
this.$api.mer_admin
.orderPage({
pageNumber: pageNo,
pageSize: pageSize,
group: 0,
shopId: this.shopId,
// ...this.formInline,
})
.then((res) => {
console.log(res);
this.$refs.oTable.complete(
res.data.data.data,
Number(res.data.data.total)
);
})
.catch((err) => {
this.$refs.oTable.complete(false);
});
},
Reset() {
this.formInline = {
name: "",
marketId: JSON.parse(sessionStorage.getItem("userInfo")).markets[0]
.marketId,
};
this.$refs.oTable.reload();
},
handleClick(e) {
console.log(e.name);
if (e.name == "5") {
this.advanceSellStatus = "";
} else {
this.advanceSellStatus = e.name;
}
this.$refs.oTable.reload();
},
addEarlyWarning() {
this.$refs.earlyWarning.toggle().add();
},
},
computed: {
tableCols() {
return [
// { type: "checkbox", width: "60px", fixed: "left" },
{ type: "seq", width: "60px", align: "center", title: "序号" },
{
title: "商品订单号",
align: "center",
width: "120px",
field: "productOrderNo",
},
// {
// title: "",
// field: "productPhotoList",
// align: "center",
// width: "80px",
// type: "jsx",
// render: ({ row }) => {
// if (row.productPhotoList.length > 0) {
// return (
// <el-image
// preview-src-list={row.productPhotoList.map((item) => {
// return item.url;
// })}
// src={row.productPhotoList[0].url}
// ></el-image>
// );
// } else {
// return <span></span>;
// }
// },
// },
{
title: "规格/数量",
align: "center",
field: "startTime",
type: "jsx",
render: ({ row }) => {
return (
<span>
{row.startTime}{row.endTime}
</span>
);
},
},
{
title: "兑换积分",
align: "center",
field: "minSalePrice",
type: "jsx",
render: ({ row }) => {
return (
<span>
{row.balancePaymentStartTime}{row.balancePaymentEndTime}
</span>
);
},
},
{
title: "操作",
fixed: "right",
type: "jsx",
align: "center",
width: "100px",
render: ({ row }) => {
let changeInventory = () => {
this.$refs.addStock.toggle(row).update();
};
return (
<div>
<el-button size="mini" type="primary" onClick={changeInventory}>
查看
</el-button>
</div>
);
},
},
];
},
tableEvent() {
return {
"checkbox-all": ({ records, reserves }) => {
this.selectList = [...records, ...reserves];
},
"checkbox-change": ({ records, reserves }) => {
this.selectList = [...records, ...reserves];
},
};
},
...mapState("userData", [
"isMerchant",
"marketList",
"storeList",
"marketId",
"shopId",
]),
},
};
</script>
<style lang="scss" scoped></style>