|
|
@ -40,6 +40,19 @@ |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label="所属类别:" |
|
|
|
prop="categoryCode"> |
|
|
|
<el-select v-model="dataForm.categoryCode" |
|
|
|
placeholder="所属类别" style="width: 100%"> |
|
|
|
<el-option v-for="item in options" |
|
|
|
:key="item.code" |
|
|
|
:label="item.name" |
|
|
|
:value="item.code"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label="报名要求:" |
|
|
|
prop="requirement"> |
|
|
@ -53,13 +66,23 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label="报名截止时间:" |
|
|
|
prop="signupEndTime"> |
|
|
|
<el-date-picker v-model="dataForm.signupEndTime" |
|
|
|
<el-form-item label="报名时间:" |
|
|
|
prop="signUpStartTime"> |
|
|
|
<el-date-picker v-model="dataForm.signUpStartTime" |
|
|
|
type="datetime" |
|
|
|
value-format="yyyy-MM-dd HH:mm" |
|
|
|
format="yyyy-MM-dd HH:mm" |
|
|
|
:picker-options="isSignupEndTime" |
|
|
|
placeholder="选择日期时间"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="至" |
|
|
|
label-width="40px" |
|
|
|
prop="signUpEndTime"> |
|
|
|
<el-date-picker v-model="dataForm.signUpEndTime" |
|
|
|
type="datetime" |
|
|
|
value-format="yyyy-MM-dd HH:mm" |
|
|
|
format="yyyy-MM-dd HH:mm" |
|
|
|
:picker-options="issignUpEndTime" |
|
|
|
placeholder="选择日期时间"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
@ -88,7 +111,6 @@ |
|
|
|
type="datetime" |
|
|
|
value-format="yyyy-MM-dd HH:mm" |
|
|
|
format="yyyy-MM-dd HH:mm" |
|
|
|
@change="dateChangeTime" |
|
|
|
placeholder="选择日期时间"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
@ -165,19 +187,47 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label-width="500px"> |
|
|
|
<el-button type="primary" |
|
|
|
:disabled="isAble" |
|
|
|
@click="dataFormSubmitHandle()">{{$t("confirm")}}</el-button> |
|
|
|
<el-button @click="backToActList">返回</el-button> |
|
|
|
<el-form-item label="活动发布状态" prop="actQuotaFlag"> |
|
|
|
<el-radio-group v-model="dataForm.actQuotaFlag"> |
|
|
|
<el-radio :label="'1'">上架</el-radio> |
|
|
|
<el-radio :label="'0'">下架</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label="已报名人数" prop="signupNum"> |
|
|
|
<el-input v-model="dataForm.signupNum" placeholder="已报名人数"></el-input> |
|
|
|
<el-form-item label="活动发布时间:" |
|
|
|
prop="publishTime"> |
|
|
|
<el-date-picker v-model="dataForm.publishTime" |
|
|
|
type="datetime" |
|
|
|
value-format="yyyy-MM-dd HH:mm" |
|
|
|
format="yyyy-MM-dd HH:mm" |
|
|
|
placeholder="选择日期时间"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label="已报名人数" prop="signUpNum"> |
|
|
|
<el-input v-model="dataForm.signUpNum" disabled placeholder="已报名人数"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label="活动下架原因" prop="cancelReason"> |
|
|
|
<el-input v-model="dataForm.cancelReason" placeholder="活动下架原因"></el-input> |
|
|
|
<el-input v-model="dataForm.cancelReason" |
|
|
|
placeholder="活动下架原因,1000字以内" |
|
|
|
type="textarea" |
|
|
|
style="width:500px" |
|
|
|
maxlength="1000" |
|
|
|
:rows="4" |
|
|
|
clearable> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label-width="500px"> |
|
|
|
<el-button type="primary" |
|
|
|
:disabled="isAble" |
|
|
|
@click="dataFormSubmitHandle()">{{$t("confirm")}}</el-button> |
|
|
|
<el-button @click="backToActList">返回</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
@ -202,19 +252,14 @@ |
|
|
|
id: '', |
|
|
|
title: '', |
|
|
|
headPic: '', |
|
|
|
signupStartTime: '', |
|
|
|
signupEndTime: '', |
|
|
|
signUpStartTime: '', |
|
|
|
signUpEndTime: '', |
|
|
|
actQuotaFlag: '1', |
|
|
|
actStartTime: '', |
|
|
|
actEndTime: '', |
|
|
|
actAddress: '', |
|
|
|
actLongitude: '', |
|
|
|
actLatitude: '', |
|
|
|
signinStartTime: '', |
|
|
|
signinEndTime: '', |
|
|
|
signinAddress: '', |
|
|
|
signinLongitude: '', |
|
|
|
signinLatitude: '', |
|
|
|
clockRadius: 200, |
|
|
|
actQuota: '', |
|
|
|
contacts: '', |
|
|
@ -229,9 +274,15 @@ |
|
|
|
reward: '', |
|
|
|
isBanner: '1', |
|
|
|
actUserDefaultState: '1', |
|
|
|
bannerUrl: '' |
|
|
|
bannerUrl: '', |
|
|
|
cancelReason: '', |
|
|
|
signUpNum: 0, |
|
|
|
sectionCode: '', |
|
|
|
categoryCode: '', |
|
|
|
categoryName: '' |
|
|
|
}, |
|
|
|
isSignupEndTime: { |
|
|
|
options: [], |
|
|
|
issignUpEndTime: { |
|
|
|
disabledDate (time) { |
|
|
|
return time < Date.now() - 8.64e7 // 8.64e7=1000*60*60*24一天 |
|
|
|
} |
|
|
@ -267,14 +318,6 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
pickerBeginSignInDateAfter: { |
|
|
|
disabledDate: (time) => { |
|
|
|
let EndDateVal = this.dataForm.signinEndTime |
|
|
|
if (EndDateVal) { |
|
|
|
return time.getTime() < new Date(EndDateVal).getTime() |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
pickerBeginDateAfter: { |
|
|
|
disabledDate: (time) => { |
|
|
|
let EndDateVal = this.dataForm.actEndTime |
|
|
@ -286,15 +329,6 @@ |
|
|
|
} |
|
|
|
}, |
|
|
|
created () { |
|
|
|
this.$http |
|
|
|
.get(`/sys/user/deptOptions/getByLoginUser`) |
|
|
|
.then(({ data: res }) => { |
|
|
|
if (res.code !== 0) { |
|
|
|
return this.$message.error(res.msg) |
|
|
|
} |
|
|
|
this.options = res.data.options |
|
|
|
}) |
|
|
|
.catch(() => { }) |
|
|
|
this.visible = true |
|
|
|
this.$nextTick(() => { |
|
|
|
// 富文本 |
|
|
@ -308,6 +342,9 @@ |
|
|
|
// 富文本end |
|
|
|
}) |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.getOptions() |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
dataRule () { |
|
|
|
return { |
|
|
@ -317,16 +354,10 @@ |
|
|
|
headPic: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signupStartTime: [ |
|
|
|
signUpStartTime: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signupEndTime: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signinStartTime: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signinEndTime: [ |
|
|
|
signUpEndTime: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
actStartTime: [ |
|
|
@ -344,22 +375,13 @@ |
|
|
|
actLatitude: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signinAddress: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signinLongitude: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signinLatitude: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
clockRadius: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
actQuota: [ |
|
|
|
actQuotaFlag: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
signupNum: [ |
|
|
|
actQuota: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
clockNum: [ |
|
|
@ -395,6 +417,9 @@ |
|
|
|
deptId: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
categoryCode: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
|
punishmentPoints: [ |
|
|
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|
|
|
], |
|
|
@ -423,8 +448,15 @@ |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
dateChangeTime () { |
|
|
|
this.dataForm.signinStartTime = this.dataForm.actStartTime |
|
|
|
getOptions () { |
|
|
|
this.$http |
|
|
|
.get(`/property/sectioncategory/list`, { params: { sectionCode: 'community_forum' } }).then(({ data: res }) => { |
|
|
|
if (res.code !== 0) { |
|
|
|
return this.$message.error(res.msg) |
|
|
|
} |
|
|
|
this.options = res.data |
|
|
|
}) |
|
|
|
.catch(() => { }) |
|
|
|
}, |
|
|
|
changeHandler (value) { |
|
|
|
if (value === 1) { |
|
|
@ -452,13 +484,6 @@ |
|
|
|
this.dataForm.actAddress = position.address |
|
|
|
this.dataForm.actLatitude = position.latitude |
|
|
|
this.dataForm.actLongitude = position.longitude |
|
|
|
this.dataForm.signinAddress = position.address |
|
|
|
this.dataForm.signinLatitude = position.latitude |
|
|
|
this.dataForm.signinLongitude = position.longitude |
|
|
|
} else { |
|
|
|
this.dataForm.signinAddress = position.address |
|
|
|
this.dataForm.signinLatitude = position.latitude |
|
|
|
this.dataForm.signinLongitude = position.longitude |
|
|
|
} |
|
|
|
}, |
|
|
|
// 富文本编辑器 |
|
|
@ -515,18 +540,15 @@ |
|
|
|
}, |
|
|
|
// 表单提交 |
|
|
|
dataFormSubmitHandle: debounce(function () { |
|
|
|
if (new Date() >= new Date(this.dataForm.signupEndTime)) { |
|
|
|
if (new Date() >= new Date(this.dataForm.signUpEndTime)) { |
|
|
|
return this.$message.error('报名截止时间必须大于当前时间') |
|
|
|
} |
|
|
|
if (this.dataForm.actStartTime >= this.dataForm.actEndTime) { |
|
|
|
return this.$message.error('活动结束时间必须大于活动开始时间') |
|
|
|
} |
|
|
|
if (this.dataForm.actStartTime <= this.dataForm.signupEndTime) { |
|
|
|
if (this.dataForm.actStartTime <= this.dataForm.signUpEndTime) { |
|
|
|
return this.$message.error('活动开始时间必须大于报名截止时间') |
|
|
|
} |
|
|
|
if (this.dataForm.actEndTime > this.dataForm.signinEndTime) { |
|
|
|
return this.$message.error('打卡结束时间必须大于或等于活动结束时间') |
|
|
|
} |
|
|
|
if ((this.dataForm.actContent).length > 10000) { |
|
|
|
return this.$message.error('您输入的的内容已超过字数') |
|
|
|
} |
|
|
@ -537,19 +559,15 @@ |
|
|
|
if (!valid) { |
|
|
|
return false |
|
|
|
} |
|
|
|
var signUpEndTime = new Date(Date.parse(this.dataForm.signupEndTime)) |
|
|
|
var signUpEndTime = new Date(Date.parse(this.dataForm.signUpEndTime)) |
|
|
|
var actStarTime = new Date(Date.parse(this.dataForm.actStartTime)) |
|
|
|
var actEndTime = new Date(Date.parse(this.dataForm.actEndTime)) |
|
|
|
var signinEndTime = new Date(Date.parse(this.dataForm.signinEndTime)) |
|
|
|
if (signUpEndTime > actStarTime) { |
|
|
|
return this.$message.error('活动开始时间必须大于报名截止时间.') |
|
|
|
} |
|
|
|
if (actEndTime < actStarTime) { |
|
|
|
return this.$message.error('活动结束时间必须大于活动开始时间.') |
|
|
|
} |
|
|
|
if (signinEndTime < actEndTime) { |
|
|
|
return this.$message.error('签到结束时间必须大于活动结束时间.') |
|
|
|
} |
|
|
|
this.isAble = true |
|
|
|
this.$http[!this.dataForm.id ? 'post' : 'put']('/property/activityinfo/', this.dataForm).then(({ data: res }) => { |
|
|
|
this.isAble = false |
|
|
|