Compare commits
No commits in common. '39fc2cc8cc440331e03c98754bfdc3ed1edfd4a4' and '1f7f498dbbbb69e12376ff9b9ef01478c3af8a3b' have entirely different histories.
39fc2cc8cc
...
1f7f498dbb
@ -1,70 +0,0 @@
|
|||||||
import {
|
|
||||||
request
|
|
||||||
} from "@/utils/request";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
orderList(data) {
|
|
||||||
return request({
|
|
||||||
url: "/shop/orderPickUp/orderList",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: "mall",
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
orderSend(data) {
|
|
||||||
return request({
|
|
||||||
url: "/shop/orderPickUp/orderSend",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: "mall",
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
GetExpressList(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/orderPickUp/GetExpressList",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: "mall",
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
printOrder(data) {
|
|
||||||
return request({
|
|
||||||
url: "/shop/orderPickUp/printOrder",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: "mall",
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
updateNotes(data) {
|
|
||||||
return request({
|
|
||||||
url: "/shop/orderPickUp/updateNotes",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: "mall",
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// 核销记录
|
|
||||||
checkLog(data) {
|
|
||||||
return request({
|
|
||||||
url: "/shop/shop/checkLog",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: "mall",
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
confirmCancel(data) {
|
|
||||||
return request({
|
|
||||||
url: "/shop/orderPickUp/confirmCancel",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: "mall",
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
};
|
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
import {
|
||||||
|
request
|
||||||
|
} from "@/utils/request";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
|
||||||
|
userList(data) {
|
||||||
|
return request({
|
||||||
|
url: "/shop/user/userList",
|
||||||
|
method: "GET",
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
userItem(data) {
|
||||||
|
return request({
|
||||||
|
url: "/shop/user/userItem",
|
||||||
|
method: "GET",
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
getLog(data) {
|
||||||
|
return request({
|
||||||
|
url: "/shop/user/getLog",
|
||||||
|
method: "GET",
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
changeInformation(data) {
|
||||||
|
return request({
|
||||||
|
url: "/shop/user/changeInformation",
|
||||||
|
method: "GET",
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
UpdateLevel(data) {
|
||||||
|
return request({
|
||||||
|
url: "/shop/user/UpdateLevel",
|
||||||
|
method: "GET",
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
@ -1,41 +0,0 @@
|
|||||||
import {
|
|
||||||
request
|
|
||||||
} from "@/utils/request";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
List(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/Coupon/List",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
GetItem(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/Coupon/GetItem",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
Create(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/Coupon/Create",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
UserGetList(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/Coupon/UserGetList",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
};
|
|
||||||
@ -1,91 +0,0 @@
|
|||||||
import {
|
|
||||||
request
|
|
||||||
} from "@/utils/request";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
|
|
||||||
SalesDiscounts: {
|
|
||||||
|
|
||||||
List(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesDiscounts/List",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
GetItem(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesDiscounts/GetItem",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
Create(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesDiscounts/Create",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
SalesFullDiscounts: {
|
|
||||||
|
|
||||||
List(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesFullDiscounts/List",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
GetItem(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesFullDiscounts/GetItem",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
Create(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesFullDiscounts/Create",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
SalesFullSetRedution: {
|
|
||||||
|
|
||||||
List(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesFullSetRedution/List",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
GetItem(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesFullSetRedution/GetItem",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
Create(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/SalesFullSetRedution/Create",
|
|
||||||
method: "POST",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
@ -1,52 +0,0 @@
|
|||||||
import {
|
|
||||||
request
|
|
||||||
} from "@/utils/request";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
List(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/recharge/List",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
save(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/recharge/save",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
recharge_list(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/recharge/recharge_list",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
rechargeSet: {
|
|
||||||
list(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/rechargeSet/list",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
save(data) {
|
|
||||||
return request({
|
|
||||||
url: "/admin/rechargeSet/save",
|
|
||||||
method: "GET",
|
|
||||||
data,
|
|
||||||
type: 'store'
|
|
||||||
});
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
@ -1,277 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view>
|
|
||||||
<kevyloading v-if="loading" type="bsm-loader" color="#618af8" transparent></kevyloading>
|
|
||||||
|
|
||||||
<wd-form ref="form" :model="formData" :rules="formRules">
|
|
||||||
<!-- 基础信息 -->
|
|
||||||
<wd-cell-group title="基本信息" border>
|
|
||||||
<wd-input label="券名称" v-model="formData.name" />
|
|
||||||
<wd-input label="优惠券金额" v-model="formData.price" />
|
|
||||||
<wd-input label="满减金额" v-model="formData.full_price" />
|
|
||||||
<!-- 其他基本信息字段可以根据需要添加 -->
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
<wd-cell-group title="领取类型">
|
|
||||||
<div class="bg-white rounded p-2">
|
|
||||||
<wd-radio-group v-model="formData.send_type" shape="button" @change="change">
|
|
||||||
<wd-radio :value="0">领取后过期</wd-radio>
|
|
||||||
<wd-radio :value="1">定时过期</wd-radio>
|
|
||||||
</wd-radio-group>
|
|
||||||
</div>
|
|
||||||
<wd-input v-if="formData.send_type == 0" label="过期时间" v-model="formData.day" />
|
|
||||||
|
|
||||||
<div v-if="formData.send_type == 1" label="过期时间" style="display: flex;flex-direction: column;">
|
|
||||||
<wd-datetime-picker v-model="formData.start_time" label="开始时间" />
|
|
||||||
<wd-datetime-picker v-model="formData.end_time" label="结束时间" />
|
|
||||||
</div>
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
<!-- 是否启用 -->
|
|
||||||
<wd-cell-group title="领取中心显示" border>
|
|
||||||
<view class="p-4">
|
|
||||||
<wd-switch v-model="formData.is_show" :active-value="1" :inactive-value="0"></wd-switch>
|
|
||||||
</view>
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
<!-- 是否启用 -->
|
|
||||||
<wd-cell-group title="优惠券类型" border>
|
|
||||||
<view class="p-4">
|
|
||||||
<div class="mb-4">
|
|
||||||
<wd-radio-group v-model="formData.coupon_type" shape="button">
|
|
||||||
<wd-radio :value="1">商品</wd-radio>
|
|
||||||
<wd-radio :value="2">分类</wd-radio>
|
|
||||||
<wd-radio :value="3">当面付</wd-radio>
|
|
||||||
</wd-radio-group>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<view v-if="formData.coupon_type == 1">
|
|
||||||
<wd-form-item label="选择商品">
|
|
||||||
<yGoods v-model="formData.coupon_deatil" :size="1"></yGoods>
|
|
||||||
</wd-form-item>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view v-if="formData.coupon_type == 2">
|
|
||||||
<wd-select-picker type="checkbox" label="选择分类" v-model="formData.cats"
|
|
||||||
:columns="classifyList"></wd-select-picker>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
<wd-cell-group title="优惠券数量" border>
|
|
||||||
<view class="p-4">
|
|
||||||
<wd-input-number v-model="formData.stock" min="0" />
|
|
||||||
</view>
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
<wd-cell-group title="领取限制" border>
|
|
||||||
<view class="p-4">
|
|
||||||
<div class="mb-4">
|
|
||||||
<wd-radio-group v-model="formData.limit_type" shape="button">
|
|
||||||
<wd-radio :value="1">不限</wd-radio>
|
|
||||||
<wd-radio :value="2">每天一次</wd-radio>
|
|
||||||
<wd-radio :value="3">每人一次</wd-radio>
|
|
||||||
</wd-radio-group>
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
<!-- 提交按钮 -->
|
|
||||||
<view class="mt-2 px-12 py-3 bg-slate-50">
|
|
||||||
<wd-button type="primary" size="large" @click="handleSubmit" block>
|
|
||||||
保存
|
|
||||||
</wd-button>
|
|
||||||
</view>
|
|
||||||
</wd-form>
|
|
||||||
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import yUpload from "@/components/yUpload/index.vue";
|
|
||||||
import uniDataPicker from "@/components/uni-data-picker/components/uni-data-picker/uni-data-picker.vue";
|
|
||||||
import kevyloading from "@/components/kevy-loading/kevy-loading";
|
|
||||||
import utils from '@/utils/utils.js'
|
|
||||||
import coupon from '@/api/store/coupon.js';
|
|
||||||
import yGoods from "@/components/yGoods/index.vue";
|
|
||||||
import goods from '@/api/store/goods.js'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从本地存储中获取用户信息
|
|
||||||
*/
|
|
||||||
const user_info = uni.getStorageSync("user_info");
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
yUpload, uniDataPicker, kevyloading, yGoods
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
utils,
|
|
||||||
user_info,
|
|
||||||
// 表单数据
|
|
||||||
formData: {
|
|
||||||
"name": "", // 设置为空字符串或默认名称
|
|
||||||
"price": "", // 设置为默认价格
|
|
||||||
"full_price": "", // 设置为默认满额价格
|
|
||||||
"send_type": "", // 设置为默认发货类型
|
|
||||||
"day": "", // 设置为默认天数
|
|
||||||
"start_time": null,
|
|
||||||
"end_time": null,
|
|
||||||
"is_show": 1, // 设置为默认显示状态
|
|
||||||
"coupon_type": 1, // 设置为默认优惠券类型
|
|
||||||
"limit_type": 1, // 设置为默认限制类型
|
|
||||||
"stock": 0, // 设置为默认库存值
|
|
||||||
"coupon_deatil": [],
|
|
||||||
"cats": []
|
|
||||||
},
|
|
||||||
// 表单验证规则
|
|
||||||
formRules: {
|
|
||||||
// 在这里添加其他字段的验证规则
|
|
||||||
},
|
|
||||||
// 地区选择器的数据
|
|
||||||
addrList: [
|
|
||||||
// 在这里添加省市区的数据
|
|
||||||
],
|
|
||||||
classifyList: [],
|
|
||||||
loading: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
async onLoad(e) {
|
|
||||||
// this.getDistrict();
|
|
||||||
|
|
||||||
if (e.id) {
|
|
||||||
await this.getClassify()
|
|
||||||
this.GetItem(e.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
// this.formData = JSON.parse(e.edit)
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async getClassify() {
|
|
||||||
goods.classify.list().then(res => {
|
|
||||||
this.classifyList = res.data.map(item => {
|
|
||||||
return {
|
|
||||||
label: item.name,
|
|
||||||
value: item.id,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取门店设置
|
|
||||||
*/
|
|
||||||
async GetItem(id) {
|
|
||||||
this.loading = true;
|
|
||||||
const res = await coupon.GetItem({ id });
|
|
||||||
|
|
||||||
if (res.data.id) {
|
|
||||||
this.formData = JSON.parse(JSON.stringify(res.data));
|
|
||||||
|
|
||||||
this.formData.start_time = this.formData.start_time ? new Date(this.formData.start_time * 1000) : new Date()
|
|
||||||
this.formData.end_time = new Date(this.formData.end_time * 1000)
|
|
||||||
this.formData.cats = this.formData.cats || []
|
|
||||||
|
|
||||||
this.formData.coupon_deatil = []
|
|
||||||
if (this.formData.coupon_type == 1) {
|
|
||||||
this.formData.coupon_deatil = res.data.coupon_deatil
|
|
||||||
}
|
|
||||||
if (this.formData.coupon_type == 2) {
|
|
||||||
this.formData.cats = res.data.coupon_deatil?.map(item => item.id) || []
|
|
||||||
setTimeout(() => {
|
|
||||||
this.formData.cats = res.data.coupon_deatil?.map(item => item.id) || []
|
|
||||||
}, 321);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
this.loading = false;
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理省市区选择变化
|
|
||||||
* @param {Object} value - 选择的值
|
|
||||||
*/
|
|
||||||
areaChange(value) {
|
|
||||||
// 处理省市区选择变化的逻辑
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理省市区选择
|
|
||||||
* @param {Object} detail - 选择器详细信息
|
|
||||||
*/
|
|
||||||
select({ detail }) {
|
|
||||||
if (detail.value.length) {
|
|
||||||
const [province_id, city_id, district_id] = detail.value.map(
|
|
||||||
(el) => el.value
|
|
||||||
);
|
|
||||||
|
|
||||||
this.formData.province_id = province_id;
|
|
||||||
this.formData.city_id = city_id;
|
|
||||||
this.formData.district_id = district_id;
|
|
||||||
this.formData.district = [province_id, city_id, district_id];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理表单提交
|
|
||||||
*/
|
|
||||||
async handleSubmit() {
|
|
||||||
console.log(this.formData);
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
let mix_id_list = []
|
|
||||||
|
|
||||||
if (this.formData.coupon_type == 1) {
|
|
||||||
mix_id_list = this.formData.coupon_deatil?.map(item => [item.id]) || []
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.formData.coupon_type == 2) {
|
|
||||||
mix_id_list = this.formData.cats?.map(item => [item]) || []
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 处理表单提交的逻辑
|
|
||||||
const res = await coupon.Create({
|
|
||||||
...this.formData,
|
|
||||||
start_time: this.formData.send_type == 1 ? utils.dateFormat(this.formData.start_time) : utils.dateFormat(new Date()),
|
|
||||||
end_time: this.formData.send_type == 1 ? utils.dateFormat(this.formData.end_time) : utils.dateFormat(new Date()),
|
|
||||||
mix_id_list: mix_id_list
|
|
||||||
});
|
|
||||||
|
|
||||||
if (res.code == 0) {
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '保存成功!',
|
|
||||||
icon: 'success'
|
|
||||||
});
|
|
||||||
}, 100);
|
|
||||||
uni.navigateBack()
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请检查表单!',
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* 在这里添加样式,根据需要自定义表单样式 */
|
|
||||||
</style>
|
|
||||||
@ -1,187 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="content">
|
|
||||||
<kevyloading v-if="loading" type="bsm-loader" color="#618af8" transparent></kevyloading>
|
|
||||||
|
|
||||||
|
|
||||||
<view class="px-2 my-2">
|
|
||||||
<div class="relative flex flex-col rounded-md bg-white p-4 shadow-sm">
|
|
||||||
|
|
||||||
<div class="mb-2 pointer-events-auto relative inline-flex bg-white font-medium ">
|
|
||||||
<div class="flex items-baseline text-xs px-2">
|
|
||||||
<span class="mr-2 warn-state warn-status-processing bg-emerald-400"></span>
|
|
||||||
基础功能
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<view class="grid grid-cols-3 gap-3">
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/cat/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
商品分类
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/goods/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
商品管理
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<view class="px-2 my-2">
|
|
||||||
<div class="relative flex flex-col rounded-md bg-white p-4 shadow-sm">
|
|
||||||
|
|
||||||
<div class="mb-2 pointer-events-auto relative inline-flex bg-white font-medium ">
|
|
||||||
<div class="flex items-baseline text-xs px-2">
|
|
||||||
<span class="mr-2 warn-state warn-status-processing bg-yellow-600"></span>
|
|
||||||
订单管理
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<view class="grid grid-cols-3 gap-3">
|
|
||||||
<div @click="utils.toUrl('/store/order/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
普通订单
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/afterSale/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
售后订单
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/inpersonPay/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
当面付订单
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="px-2 my-2">
|
|
||||||
<div class="relative flex flex-col rounded-md bg-white p-4 shadow-sm">
|
|
||||||
|
|
||||||
<div class="mb-2 pointer-events-auto relative inline-flex bg-white font-medium ">
|
|
||||||
<div class="flex items-baseline text-xs px-2">
|
|
||||||
<span class="mr-2 warn-state warn-status-processing bg-stone-800"></span>
|
|
||||||
折扣管理
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<view class="grid grid-cols-2 gap-3">
|
|
||||||
<div @click="utils.toUrl('/store/discount/discount/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
限时折扣
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/discount/full_discount/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
梯度折扣
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/discount/full_set_redution/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
满额立减
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- <div class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
套餐优惠
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
<view class="px-2 my-2">
|
|
||||||
<div class="relative flex flex-col rounded-md bg-white p-4 shadow-sm">
|
|
||||||
|
|
||||||
<div class="mb-2 pointer-events-auto relative inline-flex bg-white font-medium ">
|
|
||||||
<div class="flex items-baseline text-xs px-2">
|
|
||||||
<span class="mr-2 warn-state warn-status-processing bg-violet-700"></span>
|
|
||||||
更多功能
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<view class="grid grid-cols-2 gap-3">
|
|
||||||
<div @click="utils.toUrl('/store/coupon/index')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
优惠券
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/check/list')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
核销记录
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/user/list')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
会员管理
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div @click="utils.toUrl('/store/user/memberList')"
|
|
||||||
class="item border-2 border-solid border-gray-100 rounded bg-slate-50 p-2 flex justify-between"
|
|
||||||
style="font-size: 0.75rem;">
|
|
||||||
会员等级
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
|
|
||||||
<view class="bg-transparent h-[80px]"></view>
|
|
||||||
|
|
||||||
<view class="fixed left-2 right-2 bottom-4 z-50">
|
|
||||||
<myTabbar tab="function"></myTabbar>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref } from 'vue';
|
|
||||||
import utils from '@/utils/utils.js';
|
|
||||||
import index from '@/api/store/index.js';
|
|
||||||
import myTabbar from "../components/myTabbar/index.vue";
|
|
||||||
import bar from "../components/bar/bar.vue";
|
|
||||||
import kevyloading from "@/components/kevy-loading/kevy-loading";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {Ref<boolean>}
|
|
||||||
* 控制页面加载状态的 Ref
|
|
||||||
*/
|
|
||||||
const loading = ref(false);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 从本地存储中获取用户信息
|
|
||||||
*/
|
|
||||||
const store_info = uni.getStorageSync("store_info");
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.content {}
|
|
||||||
</style>
|
|
||||||
@ -1,121 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view>
|
|
||||||
<kevyloading v-if="loading" type="bsm-loader" color="#618af8" transparent></kevyloading>
|
|
||||||
|
|
||||||
<wd-form ref="form" :model="formData" :rules="formRules">
|
|
||||||
|
|
||||||
<!-- 基础信息 -->
|
|
||||||
<wd-cell-group title="充值方案" border>
|
|
||||||
<wd-input label="充值名称" v-model="formData.name" />
|
|
||||||
<wd-cell-group title="支付金额" border>
|
|
||||||
<view class="p-4">
|
|
||||||
<wd-input-number v-model="formData.money" min="0" />
|
|
||||||
</view>
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
<wd-cell-group title="赠送金额" border>
|
|
||||||
<view class="p-4">
|
|
||||||
<wd-input-number v-model="formData.gift_money" min="0" />
|
|
||||||
</view>
|
|
||||||
</wd-cell-group>
|
|
||||||
</wd-cell-group>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 提交按钮 -->
|
|
||||||
<view class="mt-2 px-12 py-3 bg-slate-50">
|
|
||||||
<wd-button type="primary" size="large" @click="handleSubmit" block>
|
|
||||||
保存
|
|
||||||
</wd-button>
|
|
||||||
</view>
|
|
||||||
</wd-form>
|
|
||||||
|
|
||||||
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import kevyloading from "@/components/kevy-loading/kevy-loading";
|
|
||||||
import utils from '@/utils/utils.js'
|
|
||||||
import rechargeApi from '@/api/store/recharge.js'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
kevyloading
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
utils,
|
|
||||||
// 表单数据
|
|
||||||
formData: {
|
|
||||||
"name": "", //
|
|
||||||
"money": "", //
|
|
||||||
"gift_money": "", //
|
|
||||||
},
|
|
||||||
// 表单验证规则
|
|
||||||
formRules: {
|
|
||||||
// 在这里添加其他字段的验证规则
|
|
||||||
},
|
|
||||||
// 地区选择器的数据
|
|
||||||
addrList: [
|
|
||||||
// 在这里添加省市区的数据
|
|
||||||
],
|
|
||||||
classifyList: [],
|
|
||||||
loading: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
async onLoad(e) {
|
|
||||||
// this.getDistrict();
|
|
||||||
|
|
||||||
if (e.edit) {
|
|
||||||
this.formData = JSON.parse(e.edit)
|
|
||||||
}
|
|
||||||
|
|
||||||
// this.formData = JSON.parse(e.edit)
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
/**
|
|
||||||
* 处理表单提交
|
|
||||||
*/
|
|
||||||
async handleSubmit() {
|
|
||||||
console.log(this.formData);
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 处理表单提交的逻辑
|
|
||||||
const res = await rechargeApi.save({
|
|
||||||
...this.formData,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (res.code == 0) {
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '保存成功!',
|
|
||||||
icon: 'success'
|
|
||||||
});
|
|
||||||
}, 100);
|
|
||||||
uni.navigateBack()
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: res.msg,
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.showToast({
|
|
||||||
title: '请检查表单!',
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* 在这里添加样式,根据需要自定义表单样式 */
|
|
||||||
</style>
|
|
||||||
@ -1,121 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="content flex items-center justify-center">
|
|
||||||
|
|
||||||
<div class="logo flex flex-col animate-twinkle">
|
|
||||||
|
|
||||||
<view class="rounded-3xl overflow-hidden">
|
|
||||||
<wd-img :width="100" :height="100" :src="shop.logo_url" />
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<text class="flex p-2 text-center justify-center">
|
|
||||||
{{ shop.name }}
|
|
||||||
</text>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<wd-toast />
|
|
||||||
<wd-message-box></wd-message-box>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref } from 'vue';
|
|
||||||
import utils from '@/utils/utils.js';
|
|
||||||
import system from '@/api/modules/system.js';
|
|
||||||
import myTabbar from "../components/myTabbar/index.vue";
|
|
||||||
import kevyloading from "@/components/kevy-loading/kevy-loading";
|
|
||||||
import { useMessage } from '@/uni_modules/wot-design-uni';
|
|
||||||
import { useToast } from '@/uni_modules/wot-design-uni'
|
|
||||||
import { useApi } from "@/hooks/useApi.js"
|
|
||||||
|
|
||||||
const toast = useToast()
|
|
||||||
const message1 = useMessage();
|
|
||||||
|
|
||||||
import {
|
|
||||||
onShow, onLoad
|
|
||||||
} from "@dcloudio/uni-app";
|
|
||||||
|
|
||||||
const shop = ref({})
|
|
||||||
|
|
||||||
onLoad((opt) => {
|
|
||||||
const tableLogin = async (id) => {
|
|
||||||
try {
|
|
||||||
const res = await system.loginShop({
|
|
||||||
shop_id: id
|
|
||||||
});
|
|
||||||
|
|
||||||
if (res.code === 0) {
|
|
||||||
uni.setStorageSync("mall_token", res.data.access_token);
|
|
||||||
uni.setStorageSync("mall_info", res.data.user_info);
|
|
||||||
// uni.showToast({
|
|
||||||
// icon: "none",
|
|
||||||
// title: "登录成功",
|
|
||||||
// });
|
|
||||||
utils.toUrl("/mall/index/index", 'redirectTo')
|
|
||||||
} {
|
|
||||||
uni.showToast({
|
|
||||||
title: menu.message,
|
|
||||||
icon: "none"
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
shop.value = JSON.parse(opt.shop)
|
|
||||||
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
tableLogin(shop.value.id)
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
// 初始化调用获取一行数据
|
|
||||||
onShow(() => {
|
|
||||||
// getShopList();
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.shopBox,
|
|
||||||
.title {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: flex-start;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.shopBox {
|
|
||||||
justify-content: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title-tip {
|
|
||||||
color: rgba(0, 0, 0, 0.25);
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes twinkling {
|
|
||||||
0% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.animate-twinkle {
|
|
||||||
animation: twinkling 1s infinite;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
Loading…
Reference in New Issue