完成添加全局重复下单按钮开关,服务项目增加服务图标上传
This commit is contained in:
@@ -26,6 +26,11 @@ export const menuListItem = [
|
||||
url: "/activity",
|
||||
icon: "Menu",
|
||||
},
|
||||
{
|
||||
title: "重复下单开关",
|
||||
url: "/switchOrder",
|
||||
icon: "Menu",
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -64,6 +64,15 @@ const routerList = [
|
||||
requiresAuth: true, //有一些页面是否登录才能进去
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/switchOrder",
|
||||
name: "switchOrder",
|
||||
component: () => import("../views/system/switchOrder.vue"),
|
||||
meta: {
|
||||
name: "重复下单开关",
|
||||
requiresAuth: true, //有一些页面是否登录才能进去
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/edit",
|
||||
name: "edit",
|
||||
|
||||
@@ -40,6 +40,20 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="服务图标">
|
||||
<el-upload
|
||||
v-model:file-list="fileIcon"
|
||||
list-type="picture-card"
|
||||
:before-upload="beforeUpload"
|
||||
:http-request="addUploadIconFile"
|
||||
:limit="1"
|
||||
:on-exceed="handleIconExceed"
|
||||
:on-remove="handleIconRemove"
|
||||
>
|
||||
<el-icon><Plus /></el-icon>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="轮播图">
|
||||
<el-upload
|
||||
v-model:file-list="fileBannerList"
|
||||
@@ -106,6 +120,14 @@
|
||||
/>
|
||||
</template>
|
||||
|
||||
<template v-slot:default="scope" v-if="item.props === 'icon'">
|
||||
<el-image
|
||||
style="width: 300px; height: 200px"
|
||||
:src="scope.row.icon"
|
||||
|
||||
/>
|
||||
</template>
|
||||
|
||||
<template v-slot:default="scope" v-if="item.props === 'carouselImage'">
|
||||
|
||||
<view v-for="itemImg in scope.row.carouselImage">
|
||||
@@ -200,11 +222,13 @@ const formData = ref({
|
||||
price: '',
|
||||
carouselImage: [],
|
||||
details: '',
|
||||
icon: '',
|
||||
isList: false
|
||||
})
|
||||
|
||||
const fileBannerList = ref([]); // 轮播图
|
||||
const fileDetail = ref([]); // 详情图
|
||||
const fileIcon = ref([]); // 服务图标
|
||||
|
||||
// 页面初始化
|
||||
const initData = () => {
|
||||
@@ -262,6 +286,13 @@ const handleDetailExceed= (files, uploadFiles) => {
|
||||
)
|
||||
}
|
||||
|
||||
// 服务图标上传限制
|
||||
const handleIconExceed = (files, uploadFiles) => {
|
||||
ElMessage.warning(
|
||||
`服务图标最多可上传1张`
|
||||
)
|
||||
}
|
||||
|
||||
// 轮播图移除
|
||||
const handleBannerRemove = (file) => {
|
||||
|
||||
@@ -276,6 +307,11 @@ const handleDetailRemove = (file, fileList) => {
|
||||
formData.value.details = '';
|
||||
}
|
||||
|
||||
// 服务图表移除
|
||||
const handleIconRemove = (file, fileList) => {
|
||||
formData.value.icon = '';
|
||||
}
|
||||
|
||||
// 轮播上传请求
|
||||
const addUploadCarouselImageFile = (params) => {
|
||||
const formData = new FormData();
|
||||
@@ -310,6 +346,23 @@ const addUploadDetailFile = (params) => {
|
||||
});
|
||||
}
|
||||
|
||||
// 服务图标上传
|
||||
const addUploadIconFile = (params) => {
|
||||
const formData = new FormData();
|
||||
formData.append('files', params.file);
|
||||
|
||||
addFile(formData)
|
||||
.then((response) => {
|
||||
handleIconSuccess(response, params.file, params.fileList);
|
||||
})
|
||||
.catch((error) => {
|
||||
if(error)
|
||||
{
|
||||
handleError(error, params.file, params.fileList);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 处理轮播上传成功的回调
|
||||
const handleCarouselImageSuccess = (response, file) => {
|
||||
|
||||
@@ -328,6 +381,12 @@ const handleDetailSuccess = (response) => {
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
// 处理服务图标上传成功的回调
|
||||
const handleIconSuccess = (response) => {
|
||||
formData.value.icon = response.data[0];
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
// 处理上传失败的回调
|
||||
const handleError = (error, file, fileList) => {
|
||||
loading.value = false;
|
||||
|
||||
@@ -16,6 +16,12 @@ export const options = [
|
||||
props: 'isList',
|
||||
width: '150',
|
||||
align: 'left'
|
||||
},
|
||||
{
|
||||
label: '服务图标',
|
||||
props: 'icon',
|
||||
width: 'auto',
|
||||
align: 'left'
|
||||
},
|
||||
{
|
||||
label: '轮播图',
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="天">
|
||||
<el-form-item label="日">
|
||||
<el-date-picker
|
||||
v-model="formSearch.day"
|
||||
:disabled="!formSearch.month"
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<el-card class="mt10" v-loading="loading">
|
||||
<span>
|
||||
重复下单开关
|
||||
</span>
|
||||
<el-divider />
|
||||
<el-switch
|
||||
size="large"
|
||||
v-model="formData.content"
|
||||
inline-prompt
|
||||
active-text="开启"
|
||||
inactive-text="关闭"
|
||||
@click="upStatus(formData.content)"
|
||||
/>
|
||||
</el-card>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
import {nextTick, onMounted, reactive, ref} from 'vue'
|
||||
|
||||
import {ElMessage} from "element-plus";
|
||||
import {getConfigList, updateSystem} from "../../api/modules/system";
|
||||
|
||||
const loading = ref(true)
|
||||
|
||||
const formData = ref({
|
||||
id:4,
|
||||
content: true,
|
||||
});
|
||||
|
||||
// 初始化数据
|
||||
const initData = () => {
|
||||
|
||||
getConfigList().then((res) => {
|
||||
|
||||
loading.value = false;
|
||||
if(res.data[3].content !== '[]' && res.data[3].content !== null && res.data[3].content !== "")
|
||||
{
|
||||
formData.value.content = JSON.parse(res.data[3].content);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 更新状态
|
||||
const upStatus = (param) => {
|
||||
|
||||
loading.value = true;
|
||||
formData.value.content = param;
|
||||
|
||||
let params = {
|
||||
id: 4,
|
||||
content: JSON.stringify(param)
|
||||
};
|
||||
|
||||
// 更新系统配置
|
||||
updateSystem(params).then((res) => {
|
||||
|
||||
loading.value = false;
|
||||
|
||||
initData();
|
||||
|
||||
ElMessage({
|
||||
message: '修改成功',
|
||||
type: 'success',
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
initData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user