jiangchengfeiyi-Web/src/views/CostumeAppointments/ClothingGrade.vue
2024-12-10 19:27:49 +08:00

223 lines
6.2 KiB
Vue

<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" maxlength="30" placeholder="30字以内"/>
</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>