This commit is contained in:
sa_10_0 2024-12-02 09:49:09 +08:00
parent 63ad408e0c
commit dc47628c71
9 changed files with 888 additions and 16 deletions

View File

@ -100,6 +100,28 @@
<span slot="title">实体商品订单列表</span>
</el-menu-item>
</el-sub-menu>
<el-sub-menu index="6">
<template #title>
<el-icon><HomeFilled/></el-icon>
<span>写真预约管理</span>
</template>
<el-menu-item index="/ClothingGrade">
<el-icon><Menu /></el-icon>
<span slot="title">服装等级管理</span>
</el-menu-item>
<el-menu-item index="/CostumeDetails">
<el-icon><Menu /></el-icon>
<span slot="title">服装详情</span>
</el-menu-item>
<el-menu-item index="/AddCostumes">
<el-icon><Menu /></el-icon>
<span slot="title">添加服装</span>
</el-menu-item>
<el-menu-item index="/AppointmentOrder">
<el-icon><Menu /></el-icon>
<span slot="title">预约订单</span>
</el-menu-item>
</el-sub-menu>
</el-menu>

View File

@ -63,12 +63,32 @@ export const routes = [
{
path: '/AddServiceProduct',
name: '添加服务类商品',
componet: ()=> import("../views/ServiceType/AddServiceProduct.vue")
component: ()=> import("../views/ServiceType/AddServiceProduct.vue")
},
{
path: '/ProductCenter',
name: '服务类商品管理中心',
componet: ()=> import("../views/ServiceType/ProductCenter.vue")
component: ()=> import("../views/ServiceType/ProductCenter.vue")
},
{
path: '/ClothingGrade',
name: '服装等级管理',
component: ()=> import("../views/CostumeAppointments/ClothingGrade.vue")
},
{
path: '/CostumeDetails',
name: '服装详情管理',
component: ()=> import("../views/CostumeAppointments/CostumeDetails.vue")
},
{
path: '/AppointmentOrder',
name: '写真预约订单管理',
component: ()=> import("../views/CostumeAppointments/AppointmentOrder.vue")
},
{
path: '/AddCostumes',
name: '添加服装',
component: ()=> import("../views/CostumeAppointments/AddCostumes.vue")
}
]
},

View File

@ -274,10 +274,6 @@ const deleteProduct = async (index: number) => {
getTypeList()
}
//--->
const handleSelectionChange = (row: any) => {
idList.value = row.map((item : any)=>item.id)
// console.log('id->',productId.value);
};
//
const ReviseOrView = (index: number, row: any , flag : number) => {
//flag disabled

View File

@ -0,0 +1,135 @@
<template>
<div>
<el-form ref="resetFormData" :model="form" label-width="auto" style="width: 750px" size="large">
<el-form-item label="添加服装图片">
<el-upload
ref="uploadProductImg"
action="#"
list-type="picture-card"
:auto-upload="false"
multiple="true"
:on-remove="handleRemove"
@change="(event: any) => handleChange(event, 0)"
:on-exceed="Exceed_ProductImg"
limit="1" >
<el-icon>
<Plus />
</el-icon>
</el-upload>
</el-form-item>
<el-form-item label="添加效果图">
<el-upload
ref="uploadProductDetail"
action="#"
list-type="picture-card"
:auto-upload="false"
multiple="true"
:on-change="(event: any) => handleChange(event, 1)"
:on-exceed="Exceed_ProductDetail"
limit="1"
:on-remove="handleRemove"
>
<el-icon>
<Plus />
</el-icon>
</el-upload>
</el-form-item>
<el-form-item label="服装名称" prop="name">
<el-input v-model="form.name" />
</el-form-item>
<el-form-item label="服装价格" prop="price">
<el-input v-model="form.price" />
</el-form-item>
<el-form-item label="服装类别" prop="intro">
<el-input v-model="form.clothesType" />
</el-form-item>
<el-form-item label="服装简介" prop="intro">
<el-input v-model="form.intro" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">提交</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script setup lang="ts">
import {Plus} from "@element-plus/icons-vue";
import {ElMessage, genFileId, type UploadProps, type UploadRawFile} from "element-plus";
import myAxios from "@/api/myAxios";
import {inject, ref} from "vue";
const fileSimple = ref()
const uploadProductImg : any = ref()
const uploadProductDetail : any = ref()
const form = ref({
name:'',
image:'',
effectImg:'',
intro:'',
price:'',
clothesType:''
})
const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
console.log(uploadFile, uploadFiles)
}
const handleChange = async (file: any, flag: number) => {
fileSimple.value = file
let formData = new FormData()
formData.append("file", fileSimple.value.raw)
const res = await myAxios({
url: '/file/upload/server/not_login',
method: 'post',
headers: {
'content-Type': 'multipart/form-data'
},
data: {
biz: "test",
file: formData.get("file")
}
})
if (res.data.code === 1) {
flag ? form.value.effectImg = res.data.data : form.value.image = res.data.data
}
}
const Exceed_ProductImg: UploadProps['onExceed'] = (files) => { //
uploadProductImg.value!.clearFiles()
const file = files[0] as UploadRawFile
file.uid = genFileId()
uploadProductImg.value!.handleStart(file)
}
const Exceed_ProductDetail: UploadProps['onExceed'] = (files) => { //
uploadProductDetail.value!.clearFiles()
const file = files[0] as UploadRawFile
file.uid = genFileId()
uploadProductDetail.value!.handleStart(file)
}
const reload : any = inject("reload")
const onSubmit = async () => {
const values = Object.values(form.value);
// 使some()
if (values.some(value => value === null || value === undefined || value === '')) {
ElMessage({
type:'warning',
message:'请检查表单数据是否完整填写'
})
return;
}
const res = await myAxios.post('/clothesInfo/add', { ...form.value })
if (res.data.code === 1) {
ElMessage({
type: 'success',
message: "提交成功"
})
reload() //
} else {
ElMessage.error("服务错误")
return;
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,185 @@
<template>
<div>
<el-input style="width: 200px; height: 30px; margin-right: 10px;" suffix-icon="Search" placeholder="订单状态"
v-model="name"></el-input>
<el-button class="ml-5" type="primary" @click="Search(name)" style="height: 25px;">搜索</el-button>
<el-button type="warning" @click="reset" style="height:25px">重置</el-button>
</div>
<!-- <div style="margin: 15px 0">-->
<!-- <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"-->
<!-- title="您确定批量删除这些数据吗?" @confirm="delBatch" width=180>-->
<!-- <template #reference>-->
<!-- <el-button style="height: 25px" class="ml-5" type="danger">批量删除 <el-icon style="margin-left: 5px;">-->
<!-- <Remove />-->
<!-- </el-icon></el-button>-->
<!-- </template>-->
<!-- </el-popconfirm>-->
<!-- </div>-->
<!-- 数据展示-->
<el-table :data="orders" border style="width: 100%;margin: 15px 0" :header-cell-style="{ 'text-align': 'center' }"
@selection-change="handleSelectionChange" :cell-style="{ 'text-align': 'center', 'font-size': '16px' }">
<!-- <el-table-column type="selection" width="55"></el-table-column>-->
<el-table-column prop="id" label="序号" width="50"></el-table-column>
<el-table-column prop="type" label="类别" ></el-table-column>
<el-table-column prop="clothesType" label="类型"></el-table-column>
<el-table-column prop="specificDate" label="日期"></el-table-column>
<el-table-column prop="timeSlot" label="时间"></el-table-column>
<el-table-column prop="createTime" label="下单时间"></el-table-column>
<el-table-column prop="orderStatus" label="订单状态"></el-table-column>
<el-table-column label="购买客户" width="50">
<el-table-column label="姓名" prop="contactsSnapshot.name" />
<el-table-column label="联系方式" prop="contactsSnapshot.phone" />
</el-table-column>
<el-table-column label="操作" width="200">
<template #default="scope">
<el-button type="success" @click="editShow(scope.$index, scope.row,0)">详情</el-button>
<el-button type="success" @click="editShow(scope.$index, scope.row,1)">修改</el-button>
<!-- <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"-->
<!-- title="是否确认删除" @confirm="Delete(scope.row.id)" width=180>-->
<!-- <template #reference>-->
<!-- <el-button style="height: 25px" class="ml-5" type="danger">删除</el-button>-->
<!-- </template>-->
<!-- </el-popconfirm>-->
</template>
</el-table-column>
</el-table>
<!-- 弹窗-->
<el-dialog v-model="dialogVisible" title="" width="500">
<el-form :model="order" label-width="auto" style="max-width: 600px" :disabled="disabled">
<el-form-item label="订单编号" >
<el-input v-model="order.id" disabled/>
</el-form-item>
<el-form-item label="类型">
<el-input v-model="order.clothesType" disabled/>
</el-form-item>
<el-form-item label="定金">
<el-input v-model="order.deposit" disabled/>
</el-form-item>
<el-form-item label="拍摄日期">
<el-input v-model="order.specificDate" disabled/>
</el-form-item>
<el-form-item label="拍摄时间段">
<el-input v-model="order.timeSlot" disabled/>
</el-form-item>
<el-form-item label="室内拍摄">
<el-input v-model="order.isIndoors" disabled/>
</el-form-item>
<el-form-item label="妆造">
<el-input v-model="order.isMakeup" disabled/>
</el-form-item>
<el-form-item label="摄影">
<el-input v-model="order.isPhotography" disabled/>
</el-form-item>
<el-form-item label="用户id">
<el-input v-model="order.userId" disabled/>
</el-form-item>
<el-form-item label="订单状态">
<el-input v-model="order.orderStatus"/>
</el-form-item>
<el-form-item label="创建时间">
<el-input v-model="order.createTime" disabled/>
</el-form-item>
</el-form>
<template #footer #default="{ row, $index }">
<div class="dialog-footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="addType">
确定
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { ref,onMounted } from 'vue'
import myAxios from "@/api/myAxios";
import {ElMessage, genFileId, type UploadProps, type UploadRawFile} from "element-plus";
const orders = ref([{}])
const name = ref('')
const searchParams: any = ref({ //
current: 1, //
pageSize: 5, //
sortField: "id", //ID
sortOrder: "descend" //
})
onMounted(()=>{
getList()
})
//
const total = ref(0)
const getList = async () => {
const res = await myAxios.post('/advanceOrder/list',{...searchParams.value})
if (res.data.code === 1) {
orders.value = res.data.data.records
total.value = res.data.data.total
}else {
ElMessage({
message:res.data.message
})
return
}
}
const handleSelectionChange = (val:any)=>{
console.log(val)
}
//
const dialogVisible = ref(false)
const disabled = ref(true)
const order = ref({
id:0,
type:'',
clothesType:'',
deposit:'',
specificDate:'',
timeSlot:'',
isIndoors:0,
isMakeup:0,
isPhotography:0,
userId:0,
orderStatus:'',
createTime:''
})
const title = ref('')
const editShow = (index: number, row: any,flag:number) => {
flag ? (title.value= "修改订单",disabled.value = false): (title.value= "订单详情·",disabled.value = true)
dialogVisible.value = true
order.value = row
}
const cancel = () => {
dialogVisible.value = false
}
const editForm : any = ref({})
const addType =async () => {
dialogVisible.value = false
const res = await myAxios.post('/advanceOrder/update',{
id:order.value.id,
orderStatus:order.value.orderStatus
})
if(res.data.code === 1 ) {
ElMessage({
type: 'success',
message:'更新成功'
})
}else{
ElMessage.error(res.data.message)
}
}
//
const Search = (data:any)=>{
searchParams.value.orderStatus = data
// searchParams.value.id = data
// searchParams.value.type = data
searchParams.value.current = 1
getList()
}
const reset = ()=>{
name.value = ''
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,223 @@
<template>
<div style="margin-bottom: 10px;">
<el-button type="success" @click="add">添加等级</el-button>
</div>
<el-table :data="orders" border stripe header-cell-class-name="headerBg"
:cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange"
:header-cell-style="{ 'text-align': 'center' }">
<el-table-column prop="id" label="序号" width="50"></el-table-column>
<el-table-column prop="image" label="图片">
<template #default="scope">
<div>
<img :src="scope.row.image" alt="" style="height: 50px;">
</div>
</template>
</el-table-column>
<el-table-column prop="clothesType" label="等级" ></el-table-column>
<el-table-column prop="minPrice" label="最低价" ></el-table-column>
<el-table-column prop="maxPrice" label="最高价" ></el-table-column>
<el-table-column prop="brief" label="简介" ></el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button type="success" @click="change(scope.$index, scope.row)">修改等级</el-button>
<el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"
title="是否确认删除" @confirm="Delete(scope.row.id)" width=180>
<template #reference>
<el-button style="height: 25px" class="ml-5" type="danger">删除等级</el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<el-dialog v-model="dialogVisible" title="服装等级" width="500">
<el-form :model="order" label-width="auto" style="max-width: 600px">
<el-form-item label="添加类别图片">
<el-upload
action="#"
list-type="picture-card"
:auto-upload="false"
multiple="true"
:on-remove="handleRemove"
@change="(event: any) => handleChange(event)"
limit="1" >
<el-icon>
<Plus />
</el-icon>
</el-upload>
</el-form-item>
<el-form-item label="名称">
<el-input v-model="order.clothesType"/>
</el-form-item>
<el-form-item label="最低价">
<el-input v-model="order.minPrice"/>
</el-form-item>
<el-form-item label="最高">
<el-input v-model="order.maxPrice"/>
</el-form-item>
<el-form-item label="简介">
<el-input v-model="order.brief"/>
</el-form-item>
</el-form>
<template #footer #default="{ row, $index }">
<div class="dialog-footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="addType">
提交
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { ref,onMounted } from 'vue'
import myAxios from "@/api/myAxios";
import {ElMessage, type UploadProps} from "element-plus";
onMounted(()=>{
getOrder()
})
const total = ref(0)
const orders = ref([{}])
const flag = ref(0)//
const dialogVisible = ref(false)//
const selectedItems = ref([])
const getOrder = async ()=>{
const res = await myAxios.post('/clothesGrade/list')
console.log(res)
if (res.data.code === 1) {
orders.value = res.data.data
total.value = parseInt(res.data.data.total)
}else {
ElMessage({
message:'获取数据失败',
})
return
}
}
//
const add = async () => {
dialogVisible.value = true
flag.value = 0
}
//
const cancel = () => {
dialogVisible.value = false
restOrder()
}
//
const change = async (index:number, row: any) => {
order.value = row
dialogVisible.value = true
flag.value = 1
}
//
const addType = async () => {
if(
order.value.clothesType == ''||
order.value.image ==''||
order.value.brief == ''||
order.value.minPrice == 0||
order.value.maxPrice == 0) {
ElMessage({
type:'warning',
message:'内容不能为空'
})
return
}
dialogVisible.value = false
if(flag.value === 0){
const res =await myAxios.post('/clothesGrade/add',{
clothesType:order.value.clothesType,
image:order.value.image,
minPrice:order.value.minPrice,
maxPrice:order.value.maxPrice,
brief:order.value.brief,
})
if(res.data.code === 1) {
restOrder()
}else {
ElMessage.error(res.data.message)
}
}
if(flag.value === 1){
const res = await myAxios.post('/clothesGrade/update',{
clothesType:order.value.clothesType,
image:order.value.image,
minPrice:order.value.minPrice,
maxPrice:order.value.maxPrice,
brief:order.value.brief,
id:order.value.id
})
if(res.data.code === 1) {
ElMessage({
type:'success',
message:'更新成功'
})
}else {
ElMessage.error(res.data.message)
}
}
getOrder()
}
//
const restOrder = ()=>{
order.value = {
image:'',
clothesType:'',
minPrice:0,
maxPrice:0,
brief:'',
id:0
}
}
const order=ref({
image:'',
clothesType:'',
minPrice:0,
maxPrice:0,
brief:'',
id:0
})
const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
console.log(uploadFile, uploadFiles)
}
const handleSelectionChange = (row: any) => {
selectedItems.value = JSON.parse(JSON.stringify(row))
}
//
const Delete= async (index: number) => {
const res = await myAxios.post('/clothesGrade/delete',{ id : index })
if(res.data.code === 1) {
ElMessage({
type: 'success',
message:"删除成功"
})
}
getOrder()
}
const fileSimple = ref()
const handleChange = async (file: any) => {
fileSimple.value = file
let formData = new FormData()
formData.append("file", fileSimple.value.raw)
const res = await myAxios({
url: '/file/upload/server/not_login',
method: 'post',
headers: {
'content-Type': 'multipart/form-data'
},
data: {
biz: "test",
file: formData.get("file")
}
})
if ( res.data.code === 1) {
order.value.image = res.data.data
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,276 @@
<template>
<div>
<el-input style="width: 200px; height: 30px; margin-right: 10px;" suffix-icon="Search" placeholder="服装名称"
v-model="name"></el-input>
<el-button class="ml-5" type="primary" @click="Search(name)" style="height: 25px;">搜索</el-button>
<el-button type="warning" @click="reset" style="height:25px">重置</el-button>
</div>
<!-- <div style="margin: 15px 0">-->
<!-- <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"-->
<!-- title="您确定批量删除这些数据吗?" @confirm="delBatch" width=180>-->
<!-- <template #reference>-->
<!-- <el-button style="height: 25px" class="ml-5" type="danger">批量删除 <el-icon style="margin-left: 5px;">-->
<!-- <Remove />-->
<!-- </el-icon></el-button>-->
<!-- </template>-->
<!-- </el-popconfirm>-->
<!-- </div>-->
<!-- 数据展示-->
<el-table :data="orders" border style="width: 100%;margin: 15px 0" :header-cell-style="{ 'text-align': 'center' }"
@selection-change="handleSelectionChange" :cell-style="{ 'text-align': 'center', 'font-size': '16px' }">
<!-- <el-table-column type="selection" width="55"></el-table-column>-->
<el-table-column prop="id" label="序号" width="50"></el-table-column>
<el-table-column prop="name" label="服装名称" ></el-table-column>
<el-table-column prop="clothesType" label="类型"></el-table-column>
<el-table-column prop="price" label="价格"></el-table-column>
<el-table-column prop="image" label="类别图片" width="200">
<template #default="scope"><img :src="scope.row.image" alt="" style="height: 50px;"></template>
</el-table-column>
<el-table-column prop="image" label="效果图片" width="200">
<template #default="scope"><img :src="scope.row.effectImg" alt="" style="height: 50px;"></template>
</el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button type="success" @click="editShow(scope.$index, scope.row,0)">详情</el-button>
<el-button type="success" @click="editShow(scope.$index, scope.row,1)">修改</el-button>
<el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"
title="是否确认删除" @confirm="Delete(scope.row.id)" width=180>
<template #reference>
<el-button style="height: 25px" class="ml-5" type="danger">删除</el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<!-- 分页-->
<div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" />
</div>
<!-- 弹窗-->
<el-dialog v-model="dialogVisible" title="" width="500">
<el-form :model="order" label-width="auto" style="max-width: 600px" :disabled="disabled">
<el-form-item label="服装图片">
<div v-if="order.image">
<img :src="order.image" class="thumbnail" style="width: 100px; height: 100px;" />
</div>
<el-upload
ref="uploadProductImg"
action="#"
list-type="picture-card"
:auto-upload="false"
multiple="true"
:on-remove="handleRemove"
:on-exceed="Exceed_ProductImg"
limit="1" >
<el-icon>
<Plus/>
</el-icon>
</el-upload>
</el-form-item>
<el-form-item label="商品图文">
<div v-if="order.effectImg">
<img :src="order.effectImg" alt="商品图标" class="thumbnail" style="width: 100px; height: 100px;" />
</div>
<el-upload
ref="uploadProductDetail"
action="#"
list-type="picture-card"
:auto-upload="false"
multiple="true"
:on-remove="handleRemove"
:on-exceed="Exceed_ProductDetail"
limit="1" >
<el-icon>
<Plus/>
</el-icon>
</el-upload>
</el-form-item>
<el-form-item label="名称">
<el-input v-model="order.name"/>
</el-form-item>
<el-form-item label="类型">
<el-input v-model="order.clothesType"/>
</el-form-item>
<el-form-item label="价格">
<el-input v-model="order.price"/>
</el-form-item>
<el-form-item label="简介">
<el-input v-model="order.intro"/>
</el-form-item>
</el-form>
<template #footer #default="{ row, $index }">
<div class="dialog-footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="addType">
确定
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import {ref, onMounted} from 'vue'
import myAxios from "@/api/myAxios";
import {ElMessage, genFileId, type UploadProps, type UploadRawFile} from "element-plus";
onMounted(()=>{
getList()
})
const orders = ref([{}])
const total = ref(0)
const getList = async ()=>{
const res = await myAxios.post('/clothesInfo/list/page',{...searchParams.value})
console.log(res)
if (res.data.code === 1) {
orders.value = res.data.data.records;
total.value = parseInt(res.data.data.total)
}else {
ElMessage({
message:'获取数据失败',
})
return
}
}
const name = ref('')//
const dialogVisible = ref(false)
const order=ref({
id:0,
name:'',
price:'',
effectImg:'',
image:'',
intro:'',
clothesType:''
})
const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
console.log(uploadFile, uploadFiles)
}
const cancel = () => {
dialogVisible.value = false
}
const title = ref('')
const disabled = ref(true)
const editShow = (index: number, row: any,flag:number) => {
flag ? (title.value= "修改服装",disabled.value = false): (title.value= "服装详情·",disabled.value = true)
dialogVisible.value = true
order.value = row
}
//
const Delete=async (index : number)=>{
const res = await myAxios.post('/clothesInfo/delete',{ id : index })
console.log(res)
if (res.data.code === 1) {
ElMessage({
type: 'success',
message:'删除成功'
})
}else {
ElMessage({
message:'删除失败'
})
}
getList()
}
const searchParams: any = ref({ //
current: 1, //
pageSize: 5, //
sortField: "id", //ID
sortOrder: "descend" //
})
const handleSizeChange = (newSize: any) => {
searchParams.value.pageSize = newSize
getList()
}
const handleCurrentChange = (Current: any) => {
searchParams.value.current = Current
getList()
}
//
const Search = (data:String)=>{
searchParams.value.name = data
searchParams.value.current = 1
getList()
}
// const reload : any = inject("reload")
const reset =()=>{
name.value=''
}
const handleSelectionChange = (val:any)=>{
console.log(val)
}
const fileSimple = ref()
const handleChange = async (file: any) => {
fileSimple.value = file
let formData = new FormData()
formData.append("file", fileSimple.value.raw)
const res = await myAxios({
url: '/file/upload/server/not_login',
method: 'post',
headers: {
'content-Type': 'multipart/form-data'
},
data: {
biz: "test",
file: formData.get("file")
}
})
if ( res.data.code === 1) {
order.value.image = res.data.data
}
}
//
const idList = ref([])
const delBatch = async ()=>{
console.log(idList.value);
const res = await myAxios.post('/clothesInfo/delete',{
id: idList.value
})
if(res.data.code === 1) {
ElMessage({
type: 'success',
message: '批量删除成功'
})
getList()
} else {
ElMessage.error('删除失败')
}
}
const editForm : any = ref({})
//
const addType =async ()=>{
dialogVisible.value = false
const res = await myAxios('/clothesInfo/update',{...editForm.value})
if(res.data.code === 1) {
ElMessage({
type: 'success',
message:'更新成功'
})
}else{
ElMessage.error(res.data.message)
}
}
const uploadProductImg : any = ref()
const uploadProductDetail : any = ref()
const Exceed_ProductDetail: UploadProps['onExceed'] = (files) => { //
uploadProductDetail.value!.clearFiles()
const file = files[0] as UploadRawFile
file.uid = genFileId()
uploadProductDetail.value!.handleStart(file)
}
const Exceed_ProductImg: UploadProps['onExceed'] = (files , flag) => { //
uploadProductImg.value!.clearFiles()
const file = files[0] as UploadRawFile
file.uid = genFileId()
uploadProductImg.value!.handleStart(file)
}
</script>
<style scoped>
</style>

View File

@ -94,7 +94,7 @@ const AddCoupon = async () => {
});
return;
}
const res = await myAxios.post('/coupon/add', {...form.value });
const res = await myAxios.post('/coupon/add ', {...form.value });
if (res.data.code === 1) {
ElMessage({
type: 'success',

View File

@ -81,7 +81,7 @@
list-type="picture-card"
:auto-upload="false"
multiple="true"
:on-remove="handleRemove"
:on-remove=" handleRemove"
@change="(event: any) => handleChange(event, 0)"
limit="1" >
<el-icon>
@ -135,10 +135,8 @@ onMounted(() => {
getCouponsList()
})
const handleSelectionChange = (row: any) => {
// id.value = JSON.parse(JSON.stringify(row));
}
const DialogVisible = ref(false)
const idList = ref([])
const total = ref(0)
const tableData : any= ref([])
const Couponsname = ref('')
@ -166,16 +164,33 @@ const handleCurrentChange = (Current: any) => {
searchParams.value.current = Current
getCouponsList()
}
const delBatch =()=>{
//
const handleSelectionChange = (row: any) => {
idList.value = row.map((item : any)=>item.id)
}
//
const delBatch = async ()=>{
const res = await myAxios.post('/coupon/delete', {
id:idList.value
})
if (res.data.code === 1) {
ElMessage({
type:'success',
message:"批量删除成功"
})
getCouponsList()
}else {
ElMessage.error('删除失败')
}
}
//
const reset = () => {
Couponsname.value = '';
}
//
const load =()=>{
const load =(data:String)=>{
searchParams.value.name = data
searchParams.value.content = 1
getCouponsList()
}
const saveEdit = async () => { //
const res = await myAxios.post('/coupon/update',{...editForm.value})
@ -215,7 +230,7 @@ const getCouponsList = async ()=> {
}
}
const handleChange = async (file: any, flag: number) => {
fileSimple.value = file
fileSimple.value = filen
let formData = new FormData() // FormData
formData.append("file", fileSimple.value.raw) //fileSimple.value.raw formData
const res = await myAxios({ //