后端修改了预约时间

This commit is contained in:
chen-xin-zhi 2024-12-03 12:29:33 +08:00
parent 06aa3853f3
commit 6e902244c9
3 changed files with 2162 additions and 685 deletions

2499
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -60,6 +60,7 @@
<script setup lang="ts">
import { onMounted, ref , defineEmits } from 'vue'
import { Plus } from '@element-plus/icons-vue';
const dayList = ref([0, 1, 2, 3]) //
const timeList = ref([ //timeList[index][row]访
[
@ -99,6 +100,7 @@ const timeList = ref([ //时间段数组可以直接通过timeList[index][
}
]
])
//
const minOptions = ref(
Array.from({length:4},()=>(
@ -124,8 +126,26 @@ const appointmentDateAddRequestList = ref(
}
)),
)
var arr = new Array(4)
const init = () => {
for (var i = 0; i < 4; i ++ ) {
arr[i] = new Array(6)
}
for (var i = 0; i < 4; i ++ ) {
for (var j = 0; j < 6; j ++ ) {
arr[i][j] = {
timeSlot: '',
numberRange: '',
isAvailable: ''
}
}
}
}
const emit = defineEmits(['time-Info']) //
onMounted(()=>{
init()
for(let i=0; i<4; i++) { //开始时初始化人数的数组
for(let j=0; j<6; j++) {
for(let k=0;k<50;k++) {
@ -153,12 +173,83 @@ const subList = (index: number, row: number) => {
const minNumFun = (number : any,index : number,row : number)=> {
maxOptions.value[index][row].splice(0,number-5)
}
import { transfer } from '../../utils/dealStringArray';
//
const onSubmit =()=> {
let tempArr = transfer(timeList.value, arr)
console.log(tempArr)
//
emit('time-Info',timeList)
emit('time-Info',tempArr)
}
// const isNotValid = (val:any) => {
// const timeRegex = /^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])-(?:[0-1]?[0-9]|2[0-3]):([0-5]?[0-9])$/;
// const rangeRegex = /^\(\d+,\d+\)$/
// return timeRegex.test(val.timeSlot) && rangeRegex.test(val.numberRange)
// }
// const isValidPlus = (val:any) => {
// const timeRegex = /^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])-(?:[0-1]?[0-9]|2[0-3]):([0-5]?[0-9])$/;
// const rangeRegex = /^\(\d+,\d+\)$/
// if(val.timeSlot === '' && val.numberRange === '') return false
// if(timeRegex.test(val.timeSlot) && rangeRegex.test(val.numberRange)) return false
// return true
// }
// const transfer = (val:any) => {
// for (var i = 0; i < val.length; i ++ ) {
// for (var j = 0; j < val[i].length; j ++ ) {
// arr[i][j].timeSlot = val[i][j].startTime + "-" + val[i][j].endTime
// arr[i][j].numberRange = "(" + val[i][j].minNumValue + "," + val[i][j].maxNunValue + ")"
// arr[i][j].isAvailable = val[i][j].isAvailable
// }
// }
// // console.log(arr)
// for (var i = 0; i < 4; i ++ ) {
// for (var j = 0; j < 6; j ++ ) {
// if(isValidPlus(arr[i][j])) {
// ElMessage({
// type: 'error',
// message: ''
// })
// return ;
// }
// }
// }
// let newArr:any = new Array(4)
// for (var i = 0; i < 4; i ++ ) {
// newArr[i] = {
// timeSlot:'',
// numberRange: '',
// isAvailable: true
// }
// }
// let timeSlotArr:any = []
// let numberRangeArr:any = []
// for (var i = 0; i < val.length; i ++ ) {
// for (var j = 0; j < val[i].length; j ++ ) {
// if(isNotValid(arr[i][j])) {
// timeSlotArr.push(arr[i][j].timeSlot)
// numberRangeArr.push(arr[i][j].numberRange)
// }
// }
// newArr[i].timeSlot = timeSlotArr.join(';')
// newArr[i].numberRange = numberRangeArr.join(';')
// timeSlotArr = []
// numberRangeArr = []
// }
// console.log(newArr)
// return newArr
// }
const resetForm=()=>{
console.log(3333)
for(let i=0;i<4;i++) {
timeList.value[i] = [{
startTime: '',

View File

@ -0,0 +1,67 @@
import { ElMessage } from 'element-plus';
const isNotValid = (val) => {
const timeRegex = /^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])-(?:[0-1]?[0-9]|2[0-3]):([0-5]?[0-9])$/;
const rangeRegex = /^\(\d+,\d+\)$/
return timeRegex.test(val.timeSlot) && rangeRegex.test(val.numberRange)
}
const isValidPlus = (val) => {
const timeRegex = /^([0-1]?[0-9]|2[0-3]):([0-5]?[0-9])-(?:[0-1]?[0-9]|2[0-3]):([0-5]?[0-9])$/;
const rangeRegex = /^\(\d+,\d+\)$/
if(val.timeSlot === '' && val.numberRange === '') return false
if(timeRegex.test(val.timeSlot) && rangeRegex.test(val.numberRange)) return false
return true
}
export const transfer = (val, arr) => {
for (var i = 0; i < val.length; i ++ ) {
for (var j = 0; j < val[i].length; j ++ ) {
arr[i][j].timeSlot = val[i][j].startTime + "-" + val[i][j].endTime
arr[i][j].numberRange = "(" + val[i][j].minNumValue + "," + val[i][j].maxNunValue + ")"
arr[i][j].isAvailable = val[i][j].isAvailable
}
}
// console.log(arr)
for (var i = 0; i < 4; i ++ ) {
for (var j = 0; j < 6; j ++ ) {
if(isValidPlus(arr[i][j])) {
ElMessage({
type: 'error',
message: '请检查表单数据是否完整填写'
})
return ;
}
}
}
let newArr = new Array(4)
for (var i = 0; i < 4; i ++ ) {
newArr[i] = {
timeSlot:'',
numberRange: '',
isAvailable: true
}
}
let timeSlotArr = []
let numberRangeArr = []
for (var i = 0; i < val.length; i ++ ) {
for (var j = 0; j < val[i].length; j ++ ) {
if(isNotValid(arr[i][j])) {
timeSlotArr.push(arr[i][j].timeSlot)
numberRangeArr.push(arr[i][j].numberRange)
}
}
newArr[i].timeSlot = timeSlotArr.join(';')
newArr[i].numberRange = numberRangeArr.join(';')
timeSlotArr = []
numberRangeArr = []
}
ElMessage({
type: 'success',
message: '时间段保存成功'
})
// console.log(newArr)
return newArr
}