Merge remote-tracking branch 'origin/gyj' into gyj

# Conflicts:
#	src/api/request.js
This commit is contained in:
2025-06-11 09:47:19 +08:00
7 changed files with 161 additions and 2 deletions
+5
View File
@@ -26,6 +26,11 @@ export const menuListItem = [
url: "/activity",
icon: "Menu",
},
{
title: "重复下单开关",
url: "/switchOrder",
icon: "Menu",
},
]
},
{
+9
View File
@@ -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",
+1 -1
View File
@@ -8,7 +8,7 @@ export default {
state: {
UserInfo: {},
token: sessionStorage.getItem("token") || "",
isCollapse: true,
isCollapse: false,
themeConfig: {
primary: "#4060c7",
tabColor: "#FFFFFF",
+60
View File
@@ -22,6 +22,7 @@
<el-form-item label="服务名称" prop="formData.goodsName">
<el-input
v-model="formData.goodsName"
maxlength="6"
placeholder="请输入服务名称"
></el-input>
</el-form-item>
@@ -40,6 +41,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 +121,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 +223,13 @@ const formData = ref({
price: '',
carouselImage: [],
details: '',
icon: '',
isList: false
})
const fileBannerList = ref([]); // 轮播图
const fileDetail = ref([]); // 详情图
const fileIcon = ref([]); // 服务图标
// 页面初始化
const initData = () => {
@@ -262,6 +287,13 @@ const handleDetailExceed= (files, uploadFiles) => {
)
}
// 服务图标上传限制
const handleIconExceed = (files, uploadFiles) => {
ElMessage.warning(
`服务图标最多可上传1张`
)
}
// 轮播图移除
const handleBannerRemove = (file) => {
@@ -276,6 +308,11 @@ const handleDetailRemove = (file, fileList) => {
formData.value.details = '';
}
// 服务图表移除
const handleIconRemove = (file, fileList) => {
formData.value.icon = '';
}
// 轮播上传请求
const addUploadCarouselImageFile = (params) => {
const formData = new FormData();
@@ -310,6 +347,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 +382,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;
+6
View File
@@ -16,6 +16,12 @@ export const options = [
props: 'isList',
width: '150',
align: 'left'
},
{
label: '服务图标',
props: 'icon',
width: 'auto',
align: 'left'
},
{
label: '轮播图',
+3 -1
View File
@@ -27,6 +27,7 @@
<el-option label="服务中" value="1" />
<el-option label="待付款" value="2" />
<el-option label="已完成" value="3" />
<el-option label="已取消" value="4" />
</el-select>
</el-form-item>
@@ -66,7 +67,7 @@
/>
</el-form-item>
<el-form-item label="">
<el-form-item label="">
<el-date-picker
v-model="formSearch.day"
:disabled="!formSearch.month"
@@ -146,6 +147,7 @@
<el-tag type="warning" v-if="scope.row.status === 1">服务中</el-tag>
<el-tag type="danger" v-if="scope.row.status === 2">待付款 </el-tag>
<el-tag type="success" v-if="scope.row.status === 3">已完成</el-tag>
<el-tag type="info" style="color: #d54f50" v-if="scope.row.status === 4">已取消</el-tag>
</template>
</el-table-column>
+77
View File
@@ -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>