|
|
|
@ -2,63 +2,63 @@ |
|
|
|
<div> |
|
|
|
<div class="dialog-h-content scroll-h" |
|
|
|
style="display: flex; flex-direction: row; justify-content:space-between; padding: 20px;"> |
|
|
|
<div style="width: 49%; "> |
|
|
|
<el-form ref="ref_form" :inline="true" :model="formData" class="form"> |
|
|
|
<el-form-item label="主办方" prop="agencyId"> |
|
|
|
<el-cascader class="list_item_width_1" ref="myCascader" clearable size="small" |
|
|
|
<div style="width: 48%; "> |
|
|
|
<el-form ref="ref_form" :inline="true" :model="formData" class="form" label-width="90px" :rules="rules" > |
|
|
|
<el-form-item label="主办方" prop="agencyId" required> |
|
|
|
<el-cascader class="list_item_width_1" ref="myCascader" clearable style="width: 300px;" |
|
|
|
v-model.trim="formData.agencyId" :options="orgOptions" :props="orgOptionProps" |
|
|
|
@change="handleChangeAgency"></el-cascader> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="活动标题" prop="title"> |
|
|
|
<el-input type="textarea" placeholder="请输入活动标题,不超过50子" v-model="formData.title" maxlength="50" |
|
|
|
<el-form-item label="活动标题" prop="title" required> |
|
|
|
<el-input type="textarea" style="width: 300px;" placeholder="请输入活动标题,不超过50子" v-model="formData.title" maxlength="50" |
|
|
|
show-word-limit> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="活动详情" prop="content" style="display: block"> |
|
|
|
<div class="item_width_1"> |
|
|
|
<Tinymce class="tinymce_view " v-model.trim="formData.content" :height="250" placeholder="请输入活动内容" /> |
|
|
|
<el-form-item label="活动详情" prop="content" style="display: block" required> |
|
|
|
<div style="width: 300px;"> |
|
|
|
<Tinymce class="tinymce_view " v-model.trim="formData.content" :height="150" placeholder="请输入活动内容" /> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="照片" prop="activityImgs"> |
|
|
|
<div> |
|
|
|
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUrl" |
|
|
|
<el-form-item label="照片" prop="activityImgs" required> |
|
|
|
<div > |
|
|
|
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUrl" |
|
|
|
:show-file-list="true" :data="{ customerId: customerId }" :file-list="formData.activityImgs" |
|
|
|
:on-preview="handleImgPreview" :on-success="handleImgSuccess" :on-remove="handleImgRemove" |
|
|
|
:on-exceed="handleImgExceed" :before-upload="beforeImgUpload" list-type="picture-card" :limit="1"> |
|
|
|
<i class="el-icon-plus avatar-uploader-icon"></i> </el-upload> |
|
|
|
<i class="el-icon-plus avatar-uploader-icon" style="width: 50px;height: 50px;"></i> </el-upload> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="活动时间" prop="activeTime"> |
|
|
|
<el-form-item label="活动时间" prop="strTime" required > |
|
|
|
<el-date-picker v-model="formData.strTime" type="datetime" placeholder="开始时间" format="yyyy-MM-dd HH:mm:ss" |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"> |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" style="width: 150px;"> |
|
|
|
</el-date-picker>至 <el-date-picker v-model="formData.endTime" type="datetime" placeholder="结束时间" |
|
|
|
format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"> |
|
|
|
format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"style="width: 150px;"@change="actcontrolTime"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="活动名额" prop="points"> |
|
|
|
<el-form-item label="活动名额" prop="points" required> |
|
|
|
<div style="display: flex; flex-direction: column;"> |
|
|
|
<el-input-number :disabled="formData.notQuota === '0'" v-model.trim="formData.quota" :max="10" |
|
|
|
label="描述文字"></el-input-number> |
|
|
|
<el-input-number :disabled="formData.notQuota === '0'" v-model.trim="formData.quota" |
|
|
|
label="描述文字" type="number"></el-input-number> |
|
|
|
<el-radio style="margin-top: 20px;" v-model="formData.notQuota" label="0">不限名额</el-radio> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="活动类型" prop="type" required> |
|
|
|
<el-select v-model.trim="formData.type" placeholder="请选择" clearable> |
|
|
|
<el-select v-model.trim="formData.type" placeholder="请选择" clearable style="width: 300px;"> |
|
|
|
<el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label=" 联系人" prop="contacts"> |
|
|
|
<el-input v-model="formData.linkman" placeholder="请输入"></el-input> |
|
|
|
<el-form-item label=" 联系人" prop="linkman" required > |
|
|
|
<el-input v-model="formData.linkman" placeholder="请输入" style="width: 300px;"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label=" 联系电话" prop="phone"> |
|
|
|
<el-input v-model="formData.linkMobile" placeholder="请输入"></el-input> |
|
|
|
<el-form-item label=" 联系电话" prop="linkMobile" required> |
|
|
|
<el-input v-model="formData.linkMobile" placeholder="请输入"style="width: 300px;"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
<div style="width: 49%;"> |
|
|
|
<el-form ref="ref_form" :inline="true" :model="formData" class="form"> |
|
|
|
<div style="width: 48%;"> |
|
|
|
<el-form ref="ref_form" :inline="true" :model="formData" class="form" label-width="115px"> |
|
|
|
<div> |
|
|
|
<el-form-item label="活动积分" prop="integral"> |
|
|
|
<el-input-number v-model="formData.points" :min="1" :max="10" |
|
|
|
@ -73,21 +73,20 @@ |
|
|
|
</el-select> |
|
|
|
</el-form-item> --> |
|
|
|
<el-form-item label="报名条件" prop="conditions" style="display: block"> |
|
|
|
<div class="item_width_1"> |
|
|
|
<el-input type="textarea" placeholder="请输入活动标题,不超过50子" v-model="formData.conditions" maxlength="200" |
|
|
|
show-word-limit> |
|
|
|
show-word-limit style="width: 300px;"> |
|
|
|
</el-input> |
|
|
|
</div> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="签到时间" prop="Checktime"> |
|
|
|
<el-form-item label="签到时间" prop="signInTime" required> |
|
|
|
<el-date-picker v-model.trim="formData.signInTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
format="yyyy-MM-dd HH:mm:ss" placeholder="请选择签到时间" style="width:280px"> |
|
|
|
format="yyyy-MM-dd HH:mm:ss" placeholder="开始时间" style="width:150px"> |
|
|
|
</el-date-picker>至 |
|
|
|
<el-date-picker v-model.trim="formData.signOutTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
format="yyyy-MM-dd HH:mm:ss" placeholder="请选择签到时间" style="width:280px"> |
|
|
|
format="yyyy-MM-dd HH:mm:ss" placeholder="结束时间" style="width:150px" @change="controlTime "> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="报名截止时间" prop="deadline"> |
|
|
|
<el-form-item label="报名截止时间" prop="deadline" required> |
|
|
|
<el-date-picker v-model="formData.deadline" type="datetime" placeholder="选择日期时间" |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"> |
|
|
|
</el-date-picker> |
|
|
|
@ -98,26 +97,24 @@ |
|
|
|
@change="handleSwitchChange"></el-switch> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
<!-- <el-form-item label="赞助单位" prop="sponsor"> |
|
|
|
<div style="display: flex; align-items: center"> |
|
|
|
|
|
|
|
<el-input v-model="input" placeholder="请输入"></el-input> |
|
|
|
<i class="el-icon-circle-plus" style="width: 50px;"></i> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label=" 联系电话" prop="number"> |
|
|
|
<el-input v-model="input" placeholder="请输入"></el-input> |
|
|
|
</el-form-item> --> |
|
|
|
<el-form-item label="活动地点" prop="address" style="display: block"> |
|
|
|
<div style="width: 500px"> |
|
|
|
<el-select v-model.trim="searchValue" filterable style="width: 400px" remote |
|
|
|
<el-form-item label="赞助单位" prop="sponsor" style="margin-bottom:20px" label-width="110px"> |
|
|
|
<el-input v-model="tableDate.name" placeholder="请输入" style="width: 300px;"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="联系电话" prop="sponsor" > |
|
|
|
<el-input v-model="tableDate.phone" placeholder="请输入" style="width: 300px;"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<!-- <i class="el-icon-circle-plus" @click="addDomain" style="font-size: 20px;"></i> --> |
|
|
|
|
|
|
|
<el-form-item label="活动地点" prop="searchValue" > |
|
|
|
<div style="width: 300px"> |
|
|
|
<el-select v-model.trim="searchValue" filterable style="width: 300px" remote |
|
|
|
:reserve-keyword="true" placeholder="请输入关键词" :remote-method="remoteMethod" |
|
|
|
:loading="loading"> |
|
|
|
<el-option v-for="(item, index) in searchOptions" @click.native="handleClickKey(index)" style="width: 400px;" |
|
|
|
:key="item.value || index" :label="item.label" :value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<div id="app_activity" class="div_map"></div> |
|
|
|
<div id="app_activity" class="div_map"></div> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
@ -187,14 +184,6 @@ export default { |
|
|
|
type:"", |
|
|
|
online:0, |
|
|
|
sponsors:[ |
|
|
|
{ |
|
|
|
"name":"赞助1", |
|
|
|
"phone":"13111111111" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name":"赞助2", |
|
|
|
"phone":"13122222222" |
|
|
|
} |
|
|
|
] |
|
|
|
|
|
|
|
}, |
|
|
|
@ -212,7 +201,32 @@ export default { |
|
|
|
], |
|
|
|
fileList: [], |
|
|
|
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile', |
|
|
|
|
|
|
|
tableDate:{}, |
|
|
|
rules: { |
|
|
|
linkMobile: [ |
|
|
|
{ required: true, message: '联系电话不能为空', trigger: 'blur' }, |
|
|
|
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码', trigger: 'blur' } |
|
|
|
], |
|
|
|
title: [ |
|
|
|
{ required: true, message: '活动标题不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
content: [ |
|
|
|
{ required: true, message: '活动详情不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
|
|
|
|
type: [ |
|
|
|
{ required: true, message: '活动类型不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
linkman: [ |
|
|
|
{ required: true, message: '联系人不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
signInTime: [ |
|
|
|
{ required: true, message: '签到时间不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
deadline: [ |
|
|
|
{ required: true, message: '活动报名时间不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
@ -227,7 +241,7 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
components: { fileList,Tinymce,UploadImage}, |
|
|
|
async mounted () { |
|
|
|
mounted () { |
|
|
|
// this.startLoading() |
|
|
|
// await this.loadInfo() |
|
|
|
// this.endLoading() |
|
|
|
@ -235,7 +249,106 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
|
|
|
|
//控制活动时间 |
|
|
|
actcontrolTime(){ |
|
|
|
console.log("dislfj"); |
|
|
|
if(this.formData.strTime>this.formData.endTime){ |
|
|
|
this.$message.error('活动结束时间不能在活动开始时间之前'); |
|
|
|
this.formData.endTime='' |
|
|
|
return |
|
|
|
} |
|
|
|
}, |
|
|
|
//控制签到时间 |
|
|
|
controlTime(){ |
|
|
|
console.log("dislfj"); |
|
|
|
if(this.formData.signInTime>this.formData.signOutTime){ |
|
|
|
this.$message.error('签到开始时间不能在签到结束时间之后'); |
|
|
|
this.formData.signOutTime='' |
|
|
|
return |
|
|
|
} |
|
|
|
}, |
|
|
|
//提交 |
|
|
|
async handleComfirm() { |
|
|
|
console.log(this.tableDate); |
|
|
|
this.formData.sponsors.push(this.tableDate); |
|
|
|
console.log(this.formData,"this,formD"); |
|
|
|
if (this.formData.address == '') { |
|
|
|
this.$message.error('请输入活动地点'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.agencyId == '') { |
|
|
|
this.$message.error('请选择主办方'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.title == '') { |
|
|
|
this.$message.error('请输入活动标题'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.content == '') { |
|
|
|
this.$message.error('请输入活动详情'); |
|
|
|
return; |
|
|
|
} |
|
|
|
// if (this.formData.imgs == '') { |
|
|
|
// this.$message.error('请上传图片'); |
|
|
|
// return; |
|
|
|
// } |
|
|
|
if (this.formData.strTime == '') { |
|
|
|
this.$message.error('请填写活动开始时间'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.endTime == '') { |
|
|
|
this.$message.error('请填写活动结束时间'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.type=='') { |
|
|
|
this.$message.error('请填写活动和类型'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.linkman=='') { |
|
|
|
this.$message.error('请填写联系人'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.linkMobile=='') { |
|
|
|
this.$message.error('请填写联系电话'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.signInTime=='') { |
|
|
|
this.$message.error('请填写签到开始时间'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.signOutTime=='') { |
|
|
|
this.$message.error('请填写签到结束时间'); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (this.formData.deadline=='') { |
|
|
|
this.$message.error('请填写报名截止时间'); |
|
|
|
return; |
|
|
|
} |
|
|
|
let url="/voluntary/activityInfo/saveInfo"; |
|
|
|
let parms={ |
|
|
|
...this.formData |
|
|
|
} |
|
|
|
console.log(parms,"parms"); |
|
|
|
|
|
|
|
await requestPost(url,parms).then((res)=>{ |
|
|
|
console.log(res,"res"); |
|
|
|
if (res.code==0) { |
|
|
|
this.$message.success('添加成功'); |
|
|
|
this.$emit('AddClose') |
|
|
|
// this.$router.push({path:'/volunteer/activityArchive'}) |
|
|
|
}else{ |
|
|
|
this.$message.error(res.msg); |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
}, |
|
|
|
addDomain() { |
|
|
|
console.log(this.formData.sponsors,this.tableDate,); |
|
|
|
this.formData.sponsors.push(this.tableDate); |
|
|
|
console.log(this.formData.sponsors,this.tableDate,); |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
handleClickKey(index) { |
|
|
|
let selPosition = this.resultList[index] |
|
|
|
let lonlat = selPosition.lonlat.split(" ") |
|
|
|
@ -396,20 +509,7 @@ export default { |
|
|
|
console.log(val); |
|
|
|
this.formData.agencyId = val |
|
|
|
}, |
|
|
|
//提交 |
|
|
|
handleComfirm() { |
|
|
|
console.log(this.formData,"this,formD"); |
|
|
|
let url="/voluntary/activityInfo/ "; |
|
|
|
let parms={ |
|
|
|
...this.formData |
|
|
|
} |
|
|
|
console.log(parms,"parms"); |
|
|
|
|
|
|
|
requestPost(url,parms).then((res)=>{ |
|
|
|
console.log(res,"res"); |
|
|
|
|
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
//图片 |
|
|
|
removedImg() { |
|
|
|
this.formData.imgs = '' |
|
|
|
@ -456,8 +556,9 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleCancle () { |
|
|
|
|
|
|
|
this.$emit('diaDetailClose') |
|
|
|
console.log( "kdsljk"); |
|
|
|
|
|
|
|
this.$emit('AddClose') |
|
|
|
|
|
|
|
}, |
|
|
|
// 开启加载动画 |
|
|
|
@ -488,17 +589,15 @@ export default { |
|
|
|
type: String, |
|
|
|
required: '' |
|
|
|
}, |
|
|
|
list:{ |
|
|
|
type: Object, |
|
|
|
default: () => {} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
|
|
.div_map{ |
|
|
|
width: 400px; |
|
|
|
width: 300px; |
|
|
|
margin-top: 10px; |
|
|
|
} |
|
|
|
.div_btn1{ |
|
|
|
display: flex; |
|
|
|
|