|
@@ -24,7 +24,7 @@
|
|
|
<Input v-special-char v-model="createData.address" placeholder="请输入活动地点" />
|
|
|
</FormItem>
|
|
|
<FormItem label="时间" prop="stime">
|
|
|
- <DatePicker v-model="actAllTime[0]" :editable="false" @on-change="getCreateTime" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[0]" :editable="false" @on-change="(date, type) => setActTime(date, type, 0)" type="datetimerange" :options="beforeToday" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
<FormItem label="主办" class="unit-box">
|
|
|
<div v-for="(item, index) in createData.zb" :key="index">
|
|
@@ -128,7 +128,7 @@
|
|
|
<div>
|
|
|
<Form ref="contestData" :model="contestData.sign" :rules="contestRule" :label-width="80">
|
|
|
<FormItem label="报名时间" prop="stime">
|
|
|
- <DatePicker v-model="actAllTime[1]" :editable="false" :options="beforeAct" @on-change="getActTime" type="datetimerange" format="yyyy-MM-dd HH:mm" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[1]" :editable="false" :options="beforeAct" @on-change="(date, type) => setActTime(date, type, 1)" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
<FormItem label="报名人数">
|
|
|
<InputNumber :min="0" v-model="contestData.sign.limit" />
|
|
@@ -166,7 +166,7 @@
|
|
|
<div v-show="skWork">
|
|
|
<Form ref="contestUpload" :model="contestUpload" :rules="contestRuleUpload" :label-width="80">
|
|
|
<FormItem label="上传时间" prop="stime">
|
|
|
- <DatePicker v-model="actAllTime[2]" ref="workPicker" :editable="false" :options="beforeAct" @on-change="getWorkTime" type="datetimerange" format="yyyy-MM-dd HH:mm" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[2]" ref="workPicker" :editable="false" :options="beforeAct" @on-change="(date, type) => setActTime(date, type, 2)" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
<FormItem label="作品类型">
|
|
|
<RadioGroup v-model="contestUpload.type">
|
|
@@ -208,8 +208,8 @@
|
|
|
<div v-show="skReview">
|
|
|
<Form ref="contestReview" :model="contestReview" :rules="contestRuleReview" :label-width="80">
|
|
|
<FormItem label="评审时间" prop="stime">
|
|
|
- <DatePicker v-model="actAllTime[3]" ref="reviewPicker" :editable="false" :options="beforeAct" type="datetimerange" format="yyyy-MM-dd HH:mm"
|
|
|
- :placeholder="$t('train.create.timeHolder')" transfer style="width: 500px" @on-change="getReviewTime">
|
|
|
+ <DatePicker v-model="actAllTime[3]" ref="reviewPicker" :editable="false" :options="beforeAct" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ :placeholder="$t('train.create.timeHolder')" transfer style="width: 500px" @on-change="(date, type) => setActTime(date, type, 3)">
|
|
|
</DatePicker>
|
|
|
</FormItem>
|
|
|
<FormItem label="评审规则" prop="rule">
|
|
@@ -236,7 +236,7 @@
|
|
|
<div v-show="skPublic">
|
|
|
<Form ref="contestScore" :model="contestScore" :rules="contestRuleUpload" :label-width="80">
|
|
|
<FormItem label="公示时间" prop="stime">
|
|
|
- <DatePicker v-model="actAllTime[4]" ref="scorePicker" :editable="false" :options="beforeAct" @on-change="getPublicTime" type="datetimerange" format="yyyy-MM-dd HH:mm" :placeholder="$t('train.create.timeHolder')" transfer style="width: 500px"></DatePicker>
|
|
|
+ <DatePicker v-model="actAllTime[4]" ref="scorePicker" :editable="false" :options="beforeAct" @on-change="(date, type) => setActTime(date, type, 4)" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('train.create.timeHolder')" transfer style="width: 500px"></DatePicker>
|
|
|
</FormItem>
|
|
|
</Form>
|
|
|
</div>
|
|
@@ -934,14 +934,21 @@ export default {
|
|
|
this.$Message.success('创建成功!')
|
|
|
this.$router.go(-1)
|
|
|
} else {
|
|
|
- this.$api.blob.deletePrefix({
|
|
|
- "cntr": this.isArea ? this.areaId : this.$store.state.userInfo.schoolCode,
|
|
|
- "prefix": `activity/${this.createData.id}`
|
|
|
- }).then(res => {
|
|
|
- if(res.status) {
|
|
|
- console.log('删除成功');
|
|
|
- }
|
|
|
- })
|
|
|
+ if(res.code === 25 || res.code === 26 || res.code === 27) {
|
|
|
+ this.$Message.warning('填报信息未配置学段、学科,无法进行作品分配!')
|
|
|
+ } else {
|
|
|
+ this.$Message.warning('保存失败')
|
|
|
+ }
|
|
|
+ if(params.Activity.poster || params.Activity.attachment.length) {
|
|
|
+ this.$api.blob.deletePrefix({
|
|
|
+ "cntr": this.isArea ? this.areaId : this.$store.state.userInfo.schoolCode,
|
|
|
+ "prefix": `activity/${this.createData.id}`
|
|
|
+ }).then(res => {
|
|
|
+ if(res.status) {
|
|
|
+ console.log('删除成功');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
}).finally(() => {
|
|
|
this.isLoading = false
|
|
@@ -1075,6 +1082,10 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
+ if(!this.createData.modules.length) {
|
|
|
+ this.$Message.warning('请先选择一个模块')
|
|
|
+ break
|
|
|
+ }
|
|
|
if(needBreak) break
|
|
|
// 加入发布活动页面前需保存学校列表、填报信息
|
|
|
this.createData.invitedSchools = []
|
|
@@ -1169,75 +1180,100 @@ export default {
|
|
|
last() {
|
|
|
this.current -= 1
|
|
|
},
|
|
|
- // 获取大活动的进行时间
|
|
|
- getCreateTime(data) {
|
|
|
- this.actAllTime[0] = data.filter(item => {
|
|
|
+ setActTime(date, type, index) {
|
|
|
+ let actTime = date.filter(item => {
|
|
|
return item
|
|
|
})
|
|
|
- this.createData.stime = this.actAllTime[0].length > 1 ? (new Date(this.actAllTime[0][0])).getTime() : null
|
|
|
- this.createData.etime = this.actAllTime[0].length > 1 ? (new Date(this.actAllTime[0][1])).getTime() : null
|
|
|
- },
|
|
|
- // 优课评选的报名时间
|
|
|
- getActTime(data) {
|
|
|
- let actTime = data.filter(item => {
|
|
|
- return item
|
|
|
- })
|
|
|
- this.contestData.sign.stime = actTime.length > 1 ? (new Date(actTime[0])).getTime() : null
|
|
|
- this.contestData.sign.etime = actTime.length > 1 ? (new Date(actTime[1])).getTime() : null
|
|
|
- },
|
|
|
- // 优课评选的上传时间
|
|
|
- getWorkTime(data) {
|
|
|
- let workTime = data.filter(item => {
|
|
|
- return item
|
|
|
- })
|
|
|
- if(workTime.length > 1 && !this.contestData.sign.etime) {
|
|
|
- this.$refs.workPicker[0].handleClear()
|
|
|
- this.$Message.warning('请先设置报名时间')
|
|
|
- return
|
|
|
+ // 没有选择结束的时分秒,需将结束时间默认为 23:59:59
|
|
|
+ if(actTime.length > 1 && actTime[1].slice(-8) === '00:00:00' && type === 'date') {
|
|
|
+ actTime[1] = actTime[1].slice(0, -8) + '23:59:59'
|
|
|
}
|
|
|
- if(workTime.length > 1 && (new Date(workTime[1])).getTime() < this.contestData.sign.etime) {
|
|
|
- this.$refs.workPicker[0].handleClear()
|
|
|
- this.$Message.warning('上传结束时间不能早于报名时间')
|
|
|
- return
|
|
|
+ switch (index) {
|
|
|
+ case 0:
|
|
|
+ this.createData.stime = actTime.length > 1 ? (new Date(actTime[0])).getTime() : null
|
|
|
+ this.createData.etime = actTime.length > 1 ? (new Date(actTime[1])).getTime() : null
|
|
|
+ this.actAllTime.splice(0, 1, actTime)
|
|
|
+ this.spliceTime(['sign', 'upload', 'review', 'score'])
|
|
|
+ break
|
|
|
+ case 1:
|
|
|
+ this.contestData.sign.stime = actTime.length > 1 ? (new Date(actTime[0])).getTime() : null
|
|
|
+ this.contestData.sign.etime = actTime.length > 1 ? (new Date(actTime[1])).getTime() : null
|
|
|
+ this.actAllTime.splice(1, 1, actTime)
|
|
|
+ this.spliceTime(['upload', 'review', 'score'])
|
|
|
+ break
|
|
|
+ case 2:
|
|
|
+ if(actTime.length > 1 && !this.contestData.sign.etime) {
|
|
|
+ // this.$refs.workPicker[0].handleClear()
|
|
|
+ this.$Message.warning('请先设置报名时间')
|
|
|
+ this.spliceTime(['upload'])
|
|
|
+ } else if(actTime.length > 1 && (new Date(actTime[1])).getTime() < this.contestData.sign.etime) {
|
|
|
+ // this.$refs.workPicker[0].handleClear()
|
|
|
+ this.$Message.warning('上传结束时间不能早于报名时间')
|
|
|
+ this.spliceTime(['upload'])
|
|
|
+ } else if(actTime.length > 1) {
|
|
|
+ this.contestUpload.stime = actTime.length > 1 ? (new Date(actTime[0])).getTime() : null
|
|
|
+ this.contestUpload.etime = actTime.length > 1 ? (new Date(actTime[1])).getTime() : null
|
|
|
+ this.actAllTime.splice(2, 1, actTime)
|
|
|
+ }
|
|
|
+ this.spliceTime(['review', 'score'])
|
|
|
+ break
|
|
|
+ case 3:
|
|
|
+ if(actTime.length > 1 && (!this.contestData.sign.etime || !this.contestUpload.etime)) {
|
|
|
+ // this.$refs.reviewPicker[0].handleClear()
|
|
|
+ this.$Message.warning('请先设置报名时间、上传时间')
|
|
|
+ this.spliceTime(['review'])
|
|
|
+ } else if(actTime.length > 1 && ((new Date(actTime[0])).getTime() < this.contestData.sign.etime || (new Date(actTime[0])).getTime() < this.contestUpload.etime)) {
|
|
|
+ // this.$refs.reviewPicker[0].handleClear()
|
|
|
+ this.$Message.warning('评审必须在报名、上传结束后进行')
|
|
|
+ this.spliceTime(['review'])
|
|
|
+ } else if(actTime.length > 1) {
|
|
|
+ this.contestReview.stime = actTime.length > 1 ? (new Date(actTime[0])).getTime() : null
|
|
|
+ this.contestReview.etime = actTime.length > 1 ? (new Date(actTime[1])).getTime() : null
|
|
|
+ this.actAllTime.splice(3, 1, actTime)
|
|
|
+ }
|
|
|
+ this.spliceTime(['score'])
|
|
|
+ break
|
|
|
+ case 4:
|
|
|
+ if(actTime.length > 1 && !this.contestReview.etime) {
|
|
|
+ // this.$refs.scorePicker[0].handleClear()
|
|
|
+ this.$Message.warning('请先设置评审时间')
|
|
|
+ this.spliceTime(['score'])
|
|
|
+ } else if(actTime.length > 1 && (new Date(actTime[0])).getTime() < this.contestReview.etime) {
|
|
|
+ // this.$refs.scorePicker[0].handleClear()
|
|
|
+ this.$Message.warning('公示必须在评审结束后进行')
|
|
|
+ this.spliceTime(['score'])
|
|
|
+ } else if(actTime.length > 1) {
|
|
|
+ this.contestScore.stime = actTime.length > 1 ? (new Date(actTime[0])).getTime() : null
|
|
|
+ this.contestScore.etime = actTime.length > 1 ? (new Date(actTime[1])).getTime() : null
|
|
|
+ this.actAllTime.splice(4, 1, actTime)
|
|
|
+ }
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
}
|
|
|
- this.contestUpload.stime = workTime.length > 1 ? (new Date(workTime[0])).getTime() : null
|
|
|
- this.contestUpload.etime = workTime.length > 1 ? (new Date(workTime[1])).getTime() : null
|
|
|
},
|
|
|
- // 优课评选的评审时间
|
|
|
- getReviewTime(data) {
|
|
|
- let reviewTime = data.filter(item => {
|
|
|
- return item
|
|
|
- })
|
|
|
- if(reviewTime.length > 1 && (!this.contestData.sign.etime || !this.contestUpload.etime)) {
|
|
|
- this.$refs.reviewPicker[0].handleClear()
|
|
|
- this.$Message.warning('请先设置报名时间、上传时间')
|
|
|
- return
|
|
|
+ spliceTime(type) {
|
|
|
+ console.log(type);
|
|
|
+ if(type.includes('sign')) {
|
|
|
+ this.contestData.sign.stime = null
|
|
|
+ this.contestData.sign.etime = null
|
|
|
+ this.actAllTime.splice(1, 1, [])
|
|
|
}
|
|
|
- if(reviewTime.length > 1 && ((new Date(reviewTime[0])).getTime() < this.contestData.sign.etime || (new Date(reviewTime[0])).getTime() < this.contestUpload.etime)) {
|
|
|
- this.$refs.reviewPicker[0].handleClear()
|
|
|
- this.$Message.warning('评审必须在报名、上传结束后进行')
|
|
|
- return
|
|
|
+ if(type.includes('upload')) {
|
|
|
+ this.contestUpload.stime = null
|
|
|
+ this.contestUpload.etime = null
|
|
|
+ this.actAllTime.splice(2, 1, [])
|
|
|
}
|
|
|
- this.contestReview.stime = reviewTime.length > 1 ? (new Date(reviewTime[0])).getTime() : null
|
|
|
- this.contestReview.etime = reviewTime.length > 1 ? (new Date(reviewTime[1])).getTime() : null
|
|
|
- },
|
|
|
- // 优课评选的公示时间
|
|
|
- getPublicTime(data) {
|
|
|
- let publicTime = data.filter(item => {
|
|
|
- return item
|
|
|
- })
|
|
|
- if(publicTime.length > 1 && !this.contestReview.etime) {
|
|
|
- this.$refs.scorePicker[0].handleClear()
|
|
|
- this.$Message.warning('请先设置评审时间')
|
|
|
- return
|
|
|
+ if(type.includes('review')) {
|
|
|
+ this.contestReview.stime = null
|
|
|
+ this.contestReview.etime = null
|
|
|
+ this.actAllTime.splice(3, 1, [])
|
|
|
}
|
|
|
- if(publicTime.length > 1 && (new Date(publicTime[0])).getTime() < this.contestReview.etime) {
|
|
|
- this.$refs.scorePicker[0].handleClear()
|
|
|
- this.$Message.warning('公示必须在评审结束后进行')
|
|
|
- return
|
|
|
+ if(type.includes('score')) {
|
|
|
+ this.contestScore.stime = null
|
|
|
+ this.contestScore.etime = null
|
|
|
+ this.actAllTime.splice(4, 1, [])
|
|
|
}
|
|
|
- this.contestScore.stime = publicTime.length > 1 ? (new Date(publicTime[0])).getTime() : null
|
|
|
- this.contestScore.etime = publicTime.length > 1 ? (new Date(publicTime[1])).getTime() : null
|
|
|
},
|
|
|
// 文件展示
|
|
|
customUpload(file) {
|
|
@@ -1408,6 +1444,7 @@ export default {
|
|
|
this.ruleInfo = this._.cloneDeep(this.reviewList[index])
|
|
|
if(type === 'copy') {
|
|
|
this.ruleInfo.isAdd = true
|
|
|
+ this.ruleInfo.name = this.ruleInfo.name + '(复制)'
|
|
|
}
|
|
|
}
|
|
|
this.ruleDrawerAdd = type === 'edit' ? 1 : 2
|