This commit is contained in:
@jyuhsin
2025-03-25 11:23:50 +08:00
parent 5f71d519dd
commit 7084976d72
7 changed files with 149 additions and 227 deletions
@@ -158,27 +158,24 @@ layout("/layouts/platform.html"){
<el-row :gutter="20">
<el-col :span="6">
<el-form-item prop="sexLimit" label="性别限制">
<el-radio-group v-model="formData.sexLimit" size="medium">
<el-radio-button label="0">不限制</el-radio-button>
<el-radio-button label="1">男</el-radio-button>
<el-radio-button label="2">女</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item prop="state" label="开启状态">
<el-radio-group v-model="formData.state" size="medium">
<el-radio-button :label="true">开启</el-radio-button>
<el-radio-button :label="false">禁用</el-radio-button>
</el-radio-group>
<el-switch v-model="formData.state" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="3">
<el-form-item prop="state" label="是否多次预约">
<el-radio-group v-model="formData.multiple" size="medium">
<el-radio-button :label="true">允许</el-radio-button>
<el-radio-button :label="false">不允许</el-radio-button>
</el-radio-group>
<el-switch v-model="formData.multiple" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
</el-form-item>
</el-col>
<!--<el-col :span="4">
<el-form-item prop="state" label="限定工作日预约">
<el-switch v-model="formData.workday" active-color="#13ce66" inactive-color="#ff4949">
</el-switch>
</el-form-item>
</el-col>-->
<el-col :span="12">
<el-form-item prop="typeId" label="场地类型">
<el-select v-model="formData.typeId" style="width: 100%" filterable
@@ -191,15 +188,7 @@ layout("/layouts/platform.html"){
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="sexLimit" label="性别限制">
<el-radio-group v-model="formData.sexLimit" size="medium">
<el-radio-button label="0">不限制</el-radio-button>
<el-radio-button label="1">男</el-radio-button>
<el-radio-button label="2">女</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="openWeekTime" label="预约时间">
<el-select v-model="formData.openWeekTime" style="width: 100%" filterable
@@ -214,6 +203,18 @@ layout("/layouts/platform.html"){
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="notApplyTimeList" label="禁用时间">
<el-date-picker
style="width: 100%"
v-model="formData.notApplyTimeList"
type="dates"
value-format="yyyy-MM-dd"
clearable
placeholder="请选择禁用时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<vi-title2 title="添加场次">
@@ -5,52 +5,41 @@ layout("/layouts/platform.html"){
.text {
font-size: 14px;
}
.e-item {
margin-bottom: 10px;
}
.el-divider--horizontal {
margin: 5px 0;
}
.v-tab .el-card__header {
padding: 10px 15px;
font-weight: bold;
}
.reserve_btn {
font-size: 16px;
float: right;
padding: 3px 0
}
.is-selected {
color: #1989FA;
}
.div-Calendar {
box-sizing: border-box;
height: 100%;
}
.el-carousel__button {
background-color: #c0c4cc;
}
.el-carousel__container {
height: 260px;
}
.el-button--mini.is-circle {
padding: 5px;
font-size: 1px;
}
.slider {
position: relative;
}
.cover {
position: absolute;
height: 6px;
@@ -58,7 +47,6 @@ layout("/layouts/platform.html"){
margin: 16px 0;
z-index: 999;
}
.cover2 {
position: absolute;
height: 6px;
@@ -66,43 +54,39 @@ layout("/layouts/platform.html"){
margin: 16px 0;
z-index: 1000;
}
.el-slider__marks-text {
margin-top: 10px !important;
}
.el-slider__stop {
z-index: 1001;
}
.el-slider__bar {
z-index: 1000;
}
.el-slider__marks-text {
min-width: 40px !important;
}
.el-slider__button-wrapper {
display: none !important;
}
.textDia h2 {
text-align: center;
}
.textDia h4 {
line-height: 26px;
}
.textDia .el-dialog__header {
display: none;
}
.textDia .el-dialog__body {
padding: 10px 20px;
}
.el-calendar-day:has(.not-allow-day) {
background-color: #F5F5F5;
}
.div-Calendar p {
margin: 0;
}
</style>
<div id="app" v-cloak>
<guava ref="guava">
@@ -280,21 +264,16 @@ layout("/layouts/platform.html"){
删除
</el-dropdown-item>
<!--# } #-->
<el-dropdown-item
v-if="scope.row.reserve_person_id === '${@shiro.getPrincipalProperty('id')}'"
:command="{type:'cancel',data:scope.row}">
撤销预约
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@@ -334,25 +313,24 @@ layout("/layouts/platform.html"){
</el-row>
<el-calendar v-model="reserve_time">
<template slot="dateCell" slot-scope="{date, data}">
<div class="div-Calendar" @click="pushDay(data)">
<div :class="getDayClass(data)" @click="pushDay(data)">
<p :style="dayArray.includes(data.day) ? 'color: #246fb4' : ''">
{{ data.day.split('-').slice(1).join('-') }} {{ dayArray.includes(data.day) ? '√' : ''}}
{{ data.day.split('-').slice(1).join('-') }} {{ dayArray.includes(data.day) ? '✔️' : ''}}
</p>
<div v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('xghng')||@shiro.hasRole('A06')}"
v-for="item in reserveViewData">
<div v-if="data.day.toString()==item.reserve_day"
:style="{backgroundColor:([0].includes(item.stateaudittype)?'#FAECD9':item.reserve_state==30?'#E0F4D9':'#FEE2E2')}">
<el-row :gutter="20" style="line-height: 30px;margin-bottom: 10px;">
<el-col :span="4">
<el-button v-if="[0].includes(item.stateaudittype)" type="warning"
size="mini" circle>待
</el-button>
<el-button v-if="item.stateaudittype==3" type="success" size="mini" circle>通
</el-button>
<el-button v-if="item.stateaudittype==1" type="danger" size="mini" circle>拒
</el-button>
<el-row style="line-height: 20px">
<el-col :span="4" style="font-size: 10px">
<span v-if="[0].includes(item.stateaudittype)">待审</span>
<span v-if="item.stateaudittype==3">通过</span>
<span v-if="item.stateaudittype==1">拒绝</span>
</el-col>
<el-col :span="20" style="font-size: 10px"><b>{{item.reserve_person}}</b>:{{item.start_time}}-{{item.end_time}}
<el-col :span="20" style="font-size: 10px">
<span>
<b>{{item.reserve_person}}</b>:{{item.start_time}}-{{item.end_time}}
</span>
</el-col>
</el-row>
</div>
@@ -584,7 +562,7 @@ layout("/layouts/platform.html"){
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'reserve-info': httpVueLoader('/components/activity/site/ReserveInfo.vue'),
'reserve-info': httpVueLoader('/components/activity/site/ReserveInfo.vue?v=1.0.0'),
},
methods: {
diaOpen() {
@@ -757,12 +735,28 @@ layout("/layouts/platform.html"){
this.openReserve(data)
}
},
getDayClass(data) {
const d = new Date(data.day).getDay()
let classStr = 'div-Calendar'
if(this.infoViewData.openweektime) {
const openWeedTime = JSON.parse(this.infoViewData.openweektime)
if(!openWeedTime.includes(d)) {
classStr += ' not-allow-day';
}
}
if(this.infoViewData.notapplytimelist) {
const notApplyTimeList = JSON.parse(this.infoViewData.notapplytimelist)
if(notApplyTimeList.includes(data.day)) {
classStr += ' not-allow-day';
}
}
if(moment(data.day).unix() < moment().unix()) {
classStr += ' not-allow-day';
}
return classStr
},
pushDay(data) {
const d = new Date(data.day).getDay()
/*if (this.textData.workday === true && (d === 0 || d === 6 || this.holidays.includes(data.day))) {
this.$notify.warning({title: '警告', message: '抱歉,该场地只能预约工作日'});
return
}*/
if(this.infoViewData.openweektime) {
const openWeedTime = JSON.parse(this.infoViewData.openweektime)
if(!openWeedTime.includes(d)) {
@@ -770,6 +764,13 @@ layout("/layouts/platform.html"){
return
}
}
if(this.infoViewData.notapplytimelist) {
const notApplyTimeList = JSON.parse(this.infoViewData.notapplytimelist)
if(notApplyTimeList.includes(data.day)) {
this.$message.warning(data.day + "不能预约")
return
}
}
if (data.day < moment(new Date()).format('YYYY-MM-DD')) {
this.$message.warning('你选择的日期已过')
return
@@ -782,7 +783,6 @@ layout("/layouts/platform.html"){
}
},
async openAdd() {
//查询用户点击的这一天已经被预约的时间段
/*if(this.textData.multiple === false) {
const da = await this.findReserveInfoByClickDay(this.textData.id, data.day)