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

204 lines
7.1 KiB
Vue

<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-config-provider style="padding: 10px 0" :locale="zhCn">
<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" />
</el-config-provider>
<!-- 弹窗-->
<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,inject } from 'vue'
import myAxios from "@/api/myAxios";
import zhCn from 'element-plus/es/locale/lang/zh-cn';
import {ElMessage, genFileId, type UploadProps, type UploadRawFile} from "element-plus";
const orders = ref([{}])
const name = ref('')
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 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 reload : any = inject("reload")
const reset = ()=>{
reload()
}
//分页
const searchParams: any = ref({
current: 1,
pageSize: 5,
sortField: "id",
sortOrder: "descend"
})
const handleSizeChange = (newSize: any) => {
searchParams.value.pageSize = newSize
getList()
}
const handleCurrentChange = (Current: any) => {
searchParams.value.current = Current
getList()
}
</script>
<style scoped>
</style>