|
@@ -9,13 +9,13 @@
|
|
|
</span>
|
|
|
</FormItem>
|
|
|
<FormItem label="报名时间" prop="signEtime">
|
|
|
- <DatePicker v-model="actAllTime[0]" :editable="false" @on-change="(data, type) => getCreateTime(data, type, 0)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[0]" :editable="false" @on-open-change="(type) => dateOpenChange(type, 0)" @on-change="(data, type) => getCreateTime(data, type, 0)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
</Form>
|
|
|
<template v-if="conModules.includes('upload')">
|
|
|
<Form :model="uploadInfo" :label-width="80" ref="uploadInfo" :rules="editDataRule">
|
|
|
<FormItem label="上传时间" prop="uploadEtime">
|
|
|
- <DatePicker v-model="actAllTime[1]" ref="workPicker" :editable="false" @on-change="(data, type) => getCreateTime(data, type, 1)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[1]" ref="workPicker" :editable="false" @on-open-change="(type) => dateOpenChange(type, 1)" @on-change="(data, type) => getCreateTime(data, type, 1)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
<FormItem label="文件类型" v-if="uploadInfo?.fileType" prop="fileType">
|
|
|
<div class="tab-check">
|
|
@@ -39,14 +39,14 @@
|
|
|
<template v-if="conModules.includes('review')">
|
|
|
<Form :model="reviewInfo" :label-width="80" ref="reviewInfo" :rules="editDataRule">
|
|
|
<FormItem label="评审时间" prop="reviewEtime">
|
|
|
- <DatePicker v-model="actAllTime[2]" ref="reviewPicker" :editable="false" @on-change="(data, type) => getCreateTime(data, type, 2)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[2]" ref="reviewPicker" :editable="false" @on-open-change="(type) => dateOpenChange(type, 2)" @on-change="(data, type) => getCreateTime(data, type, 2)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
</Form>
|
|
|
</template>
|
|
|
<template v-if="conModules.includes('score')">
|
|
|
<Form :model="scoreInfo" :label-width="80" ref="scoreInfo" :rules="editDataRule">
|
|
|
<FormItem label="公示时间" prop="scoreEtime">
|
|
|
- <DatePicker v-model="actAllTime[3]" ref="scorePicker" :editable="false" @on-change="(data, type) => getCreateTime(data, type, 3)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[3]" ref="scorePicker" :editable="false" @on-open-change="(type) => dateOpenChange(type, 3)" @on-change="(data, type) => getCreateTime(data, type, 3)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
</Form>
|
|
|
</template>
|
|
@@ -205,6 +205,42 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ dateOpenChange(dateType, type) {
|
|
|
+ // 日历关闭时判断是否时间重叠
|
|
|
+ if(!dateType && this.actAllTime[type].length) {
|
|
|
+ switch (type) {
|
|
|
+ case 1:
|
|
|
+ if(!this.signInfo.signEtime) {
|
|
|
+ this.$Message.warning('请先设置报名时间')
|
|
|
+ this.spliceTime(['upload'])
|
|
|
+ } else if((new Date(this.actAllTime[1][1])).getTime() < this.signInfo.signEtime) {
|
|
|
+ this.$Message.warning('上传结束时间不能早于报名时间')
|
|
|
+ this.spliceTime(['upload'])
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case 2:
|
|
|
+ if(!this.signInfo.signEtime || !this.uploadInfo.uploadEtime) {
|
|
|
+ this.$Message.warning('请先设置报名时间、上传时间')
|
|
|
+ this.spliceTime(['review'])
|
|
|
+ } else if((new Date(this.actAllTime[2][0])).getTime() < this.signInfo.signEtime || (new Date(this.actAllTime[2][0])).getTime() < this.uploadInfo.uploadEtime) {
|
|
|
+ this.$Message.warning('评审必须在报名、上传结束后进行')
|
|
|
+ this.spliceTime(['review'])
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case 3:
|
|
|
+ if(!this.reviewInfo.reviewEtime) {
|
|
|
+ this.$Message.warning('请先设置评审时间')
|
|
|
+ this.spliceTime(['score'])
|
|
|
+ } else if((new Date(this.actAllTime[3][0])).getTime() < this.reviewInfo.reviewEtime) {
|
|
|
+ this.$Message.warning('公示必须在评审结束后进行')
|
|
|
+ this.spliceTime(['score'])
|
|
|
+ }
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
getCreateTime(data, type, index) {
|
|
|
let times = data.filter(item => {
|
|
|
return item
|
|
@@ -213,33 +249,16 @@ export default {
|
|
|
if(times.length > 1 && times[1].slice(-8) === '00:00:00' && type === 'date') {
|
|
|
times[1] = times[1].slice(0, -8) + '23:59:59'
|
|
|
}
|
|
|
- console.log('1fergfewf5', times, type);
|
|
|
switch (index) {
|
|
|
case 0:
|
|
|
this.signInfo.signStime = times.length > 1 ? (new Date(times[0])).getTime() : null
|
|
|
this.signInfo.signEtime = times.length > 1 ? (new Date(times[1])).getTime() : null
|
|
|
this.actAllTime = [[], [], [], []]
|
|
|
this.actAllTime[0] = times
|
|
|
- this.uploadInfo.uploadStime = null
|
|
|
- this.uploadInfo.uploadEtime = null
|
|
|
- this.reviewInfo.reviewStime = null
|
|
|
- this.reviewInfo.reviewEtime = null
|
|
|
- this.scoreInfo.scoreStime = null
|
|
|
- this.scoreInfo.scoreEtime = null
|
|
|
+ this.spliceTime(['upload', 'review', 'score'])
|
|
|
break
|
|
|
case 1:
|
|
|
- if(times.length > 1 && !this.signInfo.signEtime) {
|
|
|
- // this.$refs.workPicker.handleClear()
|
|
|
- this.$Message.warning('请先设置报名时间')
|
|
|
- this.actAllTime.splice(1, 1, [])
|
|
|
- this.uploadInfo.uploadStime = null
|
|
|
- this.uploadInfo.uploadEtime = null
|
|
|
- } else if(times.length > 1 && (new Date(times[1])).getTime() < this.signInfo.signEtime) {
|
|
|
- this.$Message.warning('上传结束时间不能早于报名时间')
|
|
|
- this.actAllTime.splice(1, 1, [])
|
|
|
- this.uploadInfo.uploadStime = null
|
|
|
- this.uploadInfo.uploadEtime = null
|
|
|
- } else if(times.length > 1) {
|
|
|
+ if(times.length > 1) {
|
|
|
this.uploadInfo.uploadStime = times.length > 1 ? (new Date(times[0])).getTime() : null
|
|
|
this.uploadInfo.uploadEtime = times.length > 1 ? (new Date(times[1])).getTime() : null
|
|
|
this.actAllTime[1] = times
|
|
@@ -248,17 +267,7 @@ export default {
|
|
|
this.actAllTime.splice(3, 1, [])
|
|
|
break
|
|
|
case 2:
|
|
|
- if(times.length > 1 && (!this.signInfo.signEtime || !this.uploadInfo.uploadEtime)) {
|
|
|
- this.$Message.warning('请先设置报名时间、上传时间')
|
|
|
- this.actAllTime.splice(2, 1, [])
|
|
|
- this.reviewInfo.reviewStime = null
|
|
|
- this.reviewInfo.reviewEtime = null
|
|
|
- } else if(times.length > 1 && (new Date(times[0])).getTime() < this.signInfo.signEtime || (new Date(times[0])).getTime() < this.uploadInfo.uploadEtime) {
|
|
|
- this.$Message.warning('评审必须在报名、上传结束后进行')
|
|
|
- this.actAllTime.splice(2, 1, [])
|
|
|
- this.reviewInfo.reviewStime = null
|
|
|
- this.reviewInfo.reviewEtime = null
|
|
|
- } else if(times.length > 1) {
|
|
|
+ if(times.length > 1) {
|
|
|
this.reviewInfo.reviewStime = times.length > 1 ? (new Date(times[0])).getTime() : null
|
|
|
this.reviewInfo.reviewEtime = times.length > 1 ? (new Date(times[1])).getTime() : null
|
|
|
this.actAllTime[2] = times
|
|
@@ -266,17 +275,7 @@ export default {
|
|
|
this.actAllTime.splice(3, 1, [])
|
|
|
break
|
|
|
case 3:
|
|
|
- if(times.length > 1 && !this.reviewInfo.reviewEtime) {
|
|
|
- this.$Message.warning('请先设置评审时间')
|
|
|
- this.actAllTime.splice(3, 1, [])
|
|
|
- this.scoreInfo.scoreStime = null
|
|
|
- this.scoreInfo.scoreEtime = null
|
|
|
- } else if(times.length > 1 && (new Date(times[0])).getTime() < this.reviewInfo.reviewEtime) {
|
|
|
- this.$Message.warning('公示必须在评审结束后进行')
|
|
|
- this.actAllTime.splice(3, 1, [])
|
|
|
- this.scoreInfo.scoreStime = null
|
|
|
- this.scoreInfo.scoreEtime = null
|
|
|
- } else if(times.length > 1) {
|
|
|
+ if(times.length > 1) {
|
|
|
this.scoreInfo.scoreStime = times.length > 1 ? (new Date(times[0])).getTime() : null
|
|
|
this.scoreInfo.scoreEtime = times.length > 1 ? (new Date(times[1])).getTime() : null
|
|
|
this.actAllTime.splice(3, 1, times)
|
|
@@ -286,6 +285,28 @@ export default {
|
|
|
break
|
|
|
}
|
|
|
},
|
|
|
+ spliceTime(type) {
|
|
|
+ if(type.includes('sign')) {
|
|
|
+ this.signInfo.signStime = null
|
|
|
+ this.signInfo.signEtime = null
|
|
|
+ this.actAllTime.splice(0, 1, [])
|
|
|
+ }
|
|
|
+ if(type.includes('upload')) {
|
|
|
+ this.uploadInfo.uploadStime = null
|
|
|
+ this.uploadInfo.uploadEtime = null
|
|
|
+ this.actAllTime.splice(1, 1, [])
|
|
|
+ }
|
|
|
+ if(type.includes('review')) {
|
|
|
+ this.reviewInfo.reviewStime = null
|
|
|
+ this.reviewInfo.reviewEtime = null
|
|
|
+ this.actAllTime.splice(2, 1, [])
|
|
|
+ }
|
|
|
+ if(type.includes('score')) {
|
|
|
+ this.scoreInfo.scoreStime = null
|
|
|
+ this.scoreInfo.scoreEtime = null
|
|
|
+ this.actAllTime.splice(3, 1, [])
|
|
|
+ }
|
|
|
+ },
|
|
|
saveInfo() {
|
|
|
let saving = true
|
|
|
this.$refs['signInfo'].validate((valid) => {
|