Browse Source

bug

feature
是小王呀\24601 1 year ago
parent
commit
e38a011041
  1. 31
      src/views/modules/volunteer/VolManage/activeRecord.vue
  2. 4
      src/views/modules/volunteer/VolManage/index.vue
  3. 28
      src/views/modules/volunteer/activityArchive/Points.vue
  4. 257
      src/views/modules/volunteer/activityArchive/add.vue
  5. 19
      src/views/modules/volunteer/activityArchive/index.vue
  6. 1049
      src/views/modules/volunteer/activityArchive/select.vue
  7. 3
      src/views/modules/volunteer/pointsRedemption/Select.vue
  8. 104
      src/views/modules/volunteer/pointsRedemption/add.vue
  9. 44
      src/views/modules/volunteer/pointsRedemption/record.vue
  10. 180
      src/views/modules/volunteer/pointsRedemption/update.vue

31
src/views/modules/volunteer/VolManage/activeRecord.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="g-main "> <div class="g-main ">
<div class="flex flex-mean m-bottom10" > <div class="">
<div class="flex flex-center1 flex-center2 "> <!-- <div class="flex flex-center1 flex-center2 ">
<div>活动查询</div> <div>活动查询</div>
<el-input placeholder="请输入内容" v-model="SearchForm.content" style="width: 200px" clearable> <el-input placeholder="请输入内容" v-model="SearchForm.content" style="width: 200px" clearable>
</el-input> </el-input>
@ -12,20 +12,33 @@
<el-option v-for="item in optionsStatus" :key="item.value" :label="item.label" :value="item.value" > <el-option v-for="item in optionsStatus" :key="item.value" :label="item.label" :value="item.value" >
</el-option> </el-option>
</el-select> </el-select>
</div> </div> -->
<div> <el-form :inline="true" :model="SearchForm" class="demo-form-inline" style="">
<el-button type="primary" @click="handleSearch">查询</el-button> <el-form-item label="活动查询">
</div> <el-input placeholder="请输入内容" v-model="SearchForm.content" style="width: 150px" clearable>
</el-input>
</el-form-item>
<el-form-item label="状态" label-width="80px">
<el-select v-model="SearchForm.Stutas" placeholder="请选择" clearable>
<el-option v-for="item in optionsStatus" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-button type="primary" @click="handleSearch" style="margin-left: 50px;">查询</el-button>
</el-form>
</div> </div>
<div class="m-bot50"> <div class="m-bot50">
<el-table class="table" :data="tableData" border style="width: 700px"> <el-table class="table" :data="tableData" border style="width: 700px">
<el-table-column label="序号" width="80" header-align="center" align="center" type="index"></el-table-column> <el-table-column label="序号" width="80" header-align="center" align="center" type="index"></el-table-column>
<el-table-column prop="agencyName" header-align="center" align="center" label="主办方"> <el-table-column prop="agencyName" header-align="center" align="center" label="主办方">
</el-table-column> </el-table-column>
<el-table-column prop="address" header-align="center" align="center" label="活动地点"> <el-table-column prop="address" header-align="center" align="center" label="活动地点">
</el-table-column> </el-table-column>
<el-table-column prop="title" header-align="center" align="center" label="活动标题"> <el-table-column prop="title" header-align="center" align="center" label="活动标题">
</el-table-column> </el-table-column>
@ -98,7 +111,7 @@ export default {
pageSize:this.pageSize, pageSize:this.pageSize,
pageNo:this.pageNo, pageNo:this.pageNo,
userId:this.fmData.userId, userId:this.fmData.userId,
content:this.SearchForm.content, searchContent:this.SearchForm.content,
signFlag:this.SearchForm.Stutas signFlag:this.SearchForm.Stutas
} }

4
src/views/modules/volunteer/VolManage/index.vue

@ -6,8 +6,8 @@
<el-form-item label="姓名"> <el-form-item label="姓名">
<el-input v-model.trim="formData.name" size="small" class="item_width_1" clearable placeholder="请输入"> <el-input v-model.trim="formData.name" size="small" class="item_width_1" clearable placeholder="请输入">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号"> <el-form-item label="">
<el-input v-model.trim="formData.mobile" size="small" class="item_width_1" clearable <el-input v-model.trim="formData.mobile" size="small" class="item_width_1" clearable
placeholder="请输入"></el-input> placeholder="请输入"></el-input>
</el-form-item> </el-form-item>

28
src/views/modules/volunteer/activityArchive/Points.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="g-main" style="padding: 30px;"> <div class="g-main" style="padding: 30px;">
<div class="f-flex" style="justify-content: space-around; margin-bottom: 20px;"> <div class="f-flex" style="justify-content: space-around; margin-bottom: 20px;">
<div class="f-flex" style="align-items: center;"> <!-- <div class="f-flex" style="align-items: center;">
<div>是否发放积分</div> <div>是否发放积分</div>
<el-select v-model="formData.whether" placeholder="请选择" clearable > <el-select v-model="formData.whether" placeholder="请选择" clearable >
<el-option v-for="item in formData.options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in formData.options" :key="item.value" :label="item.label" :value="item.value">
@ -21,7 +21,27 @@
</div> </div>
<div> <div>
<el-button type="primary" @click="handleSearch">查询</el-button> <el-button type="primary" @click="handleSearch">查询</el-button>
</div> </div> -->
<el-form :inline="true" :model="searchData" class="demo-form-inline" style="" >
<el-form-item label="姓名">
<el-input placeholder="请输入内容" v-model="searchData.redeemerName" style="width: 150px" clearable>
</el-input>
</el-form-item>
<el-form-item label="手机号" label-width="80px">
<el-input placeholder="请输入内容" v-model="searchData.redeemerMobile" style="width: 150px" clearable>
</el-input>
</el-form-item>
<el-form-item label="兑换时间选择" label-width="120px">
<el-date-picker v-model="searchData.redeemTimeFrom" type="datetime" placeholder="开始时间"
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="searchData.redeemTimeTo" type="datetime"
placeholder="结束时间" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" style="width: 150px">
</el-date-picker>
</el-form-item>
<div style="display: flex; justify-content: flex-end; margin:10px 0 20px 0;">
<el-button type="primary" @click="handleSeach" style="margin: 20rpx;">查询</el-button>
</div>
</el-form>
</div> </div>
<div> <div>
<el-table :data="tableData" border> <el-table :data="tableData" border>
@ -118,8 +138,8 @@ export default {
name:this.formData.name, name:this.formData.name,
pageSize:this.pageSize, pageSize:this.pageSize,
mobile:this.formData.mobile, mobile:this.formData.mobile,
// activityId:this.list.id, activityId:this.list.id,
activityId:"1826111922849996802", // activityId:"1826111922849996802",
} }
requestGet(url, params).then((res) => { requestGet(url, params).then((res) => {
if (res.code == 0) { if (res.code == 0) {

257
src/views/modules/volunteer/activityArchive/add.vue

@ -2,63 +2,63 @@
<div> <div>
<div class="dialog-h-content scroll-h" <div class="dialog-h-content scroll-h"
style="display: flex; flex-direction: row; justify-content:space-between; padding: 20px;"> style="display: flex; flex-direction: row; justify-content:space-between; padding: 20px;">
<div style="width: 49%; "> <div style="width: 48%; ">
<el-form ref="ref_form" :inline="true" :model="formData" class="form"> <el-form ref="ref_form" :inline="true" :model="formData" class="form" label-width="90px" :rules="rules" >
<el-form-item label="主办方" prop="agencyId"> <el-form-item label="主办方" prop="agencyId" required>
<el-cascader class="list_item_width_1" ref="myCascader" clearable size="small" <el-cascader class="list_item_width_1" ref="myCascader" clearable style="width: 300px;"
v-model.trim="formData.agencyId" :options="orgOptions" :props="orgOptionProps" v-model.trim="formData.agencyId" :options="orgOptions" :props="orgOptionProps"
@change="handleChangeAgency"></el-cascader> @change="handleChangeAgency"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="活动标题" prop="title"> <el-form-item label="活动标题" prop="title" required>
<el-input type="textarea" placeholder="请输入活动标题,不超过50子" v-model="formData.title" maxlength="50" <el-input type="textarea" style="width: 300px;" placeholder="请输入活动标题,不超过50子" v-model="formData.title" maxlength="50"
show-word-limit> show-word-limit>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="活动详情" prop="content" style="display: block"> <el-form-item label="活动详情" prop="content" style="display: block" required>
<div class="item_width_1"> <div style="width: 300px;">
<Tinymce class="tinymce_view " v-model.trim="formData.content" :height="250" placeholder="请输入活动内容" /> <Tinymce class="tinymce_view " v-model.trim="formData.content" :height="150" placeholder="请输入活动内容" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="照片" prop="activityImgs"> <el-form-item label="照片" prop="activityImgs" required>
<div> <div >
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUrl" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUrl"
:show-file-list="true" :data="{ customerId: customerId }" :file-list="formData.activityImgs" :show-file-list="true" :data="{ customerId: customerId }" :file-list="formData.activityImgs"
:on-preview="handleImgPreview" :on-success="handleImgSuccess" :on-remove="handleImgRemove" :on-preview="handleImgPreview" :on-success="handleImgSuccess" :on-remove="handleImgRemove"
:on-exceed="handleImgExceed" :before-upload="beforeImgUpload" list-type="picture-card" :limit="1"> :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> </div>
</el-form-item> </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" <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="" </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-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="活动名额" prop="points"> <el-form-item label="活动名额" prop="points" required>
<div style="display: flex; flex-direction: column;"> <div style="display: flex; flex-direction: column;">
<el-input-number :disabled="formData.notQuota === '0'" v-model.trim="formData.quota" :max="10" <el-input-number :disabled="formData.notQuota === '0'" v-model.trim="formData.quota"
label="描述文字"></el-input-number> label="描述文字" type="number"></el-input-number>
<el-radio style="margin-top: 20px;" v-model="formData.notQuota" label="0">不限名额</el-radio> <el-radio style="margin-top: 20px;" v-model="formData.notQuota" label="0">不限名额</el-radio>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="活动类型" prop="type" required> <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 v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label=" 联系人" prop="contacts"> <el-form-item label=" 联系人" prop="linkman" required >
<el-input v-model="formData.linkman" placeholder="请输入"></el-input> <el-input v-model="formData.linkman" placeholder="请输入" style="width: 300px;"></el-input>
</el-form-item> </el-form-item>
<el-form-item label=" 联系电话" prop="phone"> <el-form-item label=" 联系电话" prop="linkMobile" required>
<el-input v-model="formData.linkMobile" placeholder="请输入"></el-input> <el-input v-model="formData.linkMobile" placeholder="请输入"style="width: 300px;"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div style="width: 49%;"> <div style="width: 48%;">
<el-form ref="ref_form" :inline="true" :model="formData" class="form"> <el-form ref="ref_form" :inline="true" :model="formData" class="form" label-width="115px">
<div> <div>
<el-form-item label="活动积分" prop="integral"> <el-form-item label="活动积分" prop="integral">
<el-input-number v-model="formData.points" :min="1" :max="10" <el-input-number v-model="formData.points" :min="1" :max="10"
@ -73,21 +73,20 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="报名条件" prop="conditions" style="display: block"> <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" <el-input type="textarea" placeholder="请输入活动标题,不超过50子" v-model="formData.conditions" maxlength="200"
show-word-limit> show-word-limit style="width: 300px;">
</el-input> </el-input>
</div>
</el-form-item> </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" <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>
<el-date-picker v-model.trim="formData.signOutTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" <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-date-picker>
</el-form-item> </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="选择日期时间" <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"> value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
@ -98,26 +97,24 @@
@change="handleSwitchChange"></el-switch> @change="handleSwitchChange"></el-switch>
</el-form-item> </el-form-item>
</div> </div>
<!-- <el-form-item label="赞助单位" prop="sponsor"> <el-form-item label="赞助单位" prop="sponsor" style="margin-bottom:20px" label-width="110px">
<div style="display: flex; align-items: center"> <el-input v-model="tableDate.name" placeholder="请输入" style="width: 300px;"></el-input>
</el-form-item>
<el-input v-model="input" placeholder="请输入"></el-input> <el-form-item label="联系电话" prop="sponsor" >
<i class="el-icon-circle-plus" style="width: 50px;"></i> <el-input v-model="tableDate.phone" placeholder="请输入" style="width: 300px;"></el-input>
</div> </el-form-item>
</el-form-item> <!-- <i class="el-icon-circle-plus" @click="addDomain" style="font-size: 20px;"></i> -->
<el-form-item label=" 联系电话" prop="number">
<el-input v-model="input" placeholder="请输入"></el-input> <el-form-item label="活动地点" prop="searchValue" >
</el-form-item> --> <div style="width: 300px">
<el-form-item label="活动地点" prop="address" style="display: block"> <el-select v-model.trim="searchValue" filterable style="width: 300px" remote
<div style="width: 500px">
<el-select v-model.trim="searchValue" filterable style="width: 400px" remote
:reserve-keyword="true" placeholder="请输入关键词" :remote-method="remoteMethod" :reserve-keyword="true" placeholder="请输入关键词" :remote-method="remoteMethod"
:loading="loading"> :loading="loading">
<el-option v-for="(item, index) in searchOptions" @click.native="handleClickKey(index)" style="width: 400px;" <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"> :key="item.value || index" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
<div id="app_activity" class="div_map"></div> <div id="app_activity" class="div_map"></div>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -187,14 +184,6 @@ export default {
type:"", type:"",
online:0, online:0,
sponsors:[ sponsors:[
{
"name":"赞助1",
"phone":"13111111111"
},
{
"name":"赞助2",
"phone":"13122222222"
}
] ]
}, },
@ -212,7 +201,32 @@ export default {
], ],
fileList: [], fileList: [],
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile', 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: { watch: {
@ -227,7 +241,7 @@ export default {
} }
}, },
components: { fileList,Tinymce,UploadImage}, components: { fileList,Tinymce,UploadImage},
async mounted () { mounted () {
// this.startLoading() // this.startLoading()
// await this.loadInfo() // await this.loadInfo()
// this.endLoading() // this.endLoading()
@ -235,7 +249,106 @@ export default {
}, },
methods: { 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) { handleClickKey(index) {
let selPosition = this.resultList[index] let selPosition = this.resultList[index]
let lonlat = selPosition.lonlat.split(" ") let lonlat = selPosition.lonlat.split(" ")
@ -396,20 +509,7 @@ export default {
console.log(val); console.log(val);
this.formData.agencyId = 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() { removedImg() {
this.formData.imgs = '' this.formData.imgs = ''
@ -456,8 +556,9 @@ export default {
}) })
}, },
handleCancle () { handleCancle () {
console.log( "kdsljk");
this.$emit('diaDetailClose')
this.$emit('AddClose')
}, },
// //
@ -488,17 +589,15 @@ export default {
type: String, type: String,
required: '' required: ''
}, },
list:{
type: Object,
default: () => {}
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.div_map{ .div_map{
width: 400px; width: 300px;
margin-top: 10px;
} }
.div_btn1{ .div_btn1{
display: flex; display: flex;

19
src/views/modules/volunteer/activityArchive/index.vue

@ -4,7 +4,7 @@
<el-form :inline="true" ref="ref_searchform" :label-width="'100px'"> <el-form :inline="true" ref="ref_searchform" :label-width="'100px'">
<div> <div>
<el-form-item label="活动标题"> <el-form-item label="活动标题">
<el-input v-model.trim="formData.content" size="small" class="item_width_1" clearable placeholder="请输入"> <el-input v-model.trim="formData.content" class="item_width_1" clearable placeholder="请输入">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="活动时间"> <el-form-item label="活动时间">
@ -88,8 +88,8 @@
</el-pagination> </el-pagination>
</div> </div>
<el-dialog :visible.sync="add" :close-on-click-modal="false" :close-on-press-escape="false" title="新增" <el-dialog :visible.sync="add" :close-on-click-modal="false" :close-on-press-escape="false" title="新增"
width="1000px" top="10vh" class="dialog-h" @closed="diaClose"> width="1000px" top="10vh" class="dialog-h" @closed="AddClose">
<add v-if="add" :list="fmData" /> <add v-if="add" :list="fmData" @AddClose="AddClose" />
</el-dialog> </el-dialog>
<el-dialog :visible.sync="showselect" :close-on-click-modal="false" :close-on-press-escape="false" title="修改" <el-dialog :visible.sync="showselect" :close-on-click-modal="false" :close-on-press-escape="false" title="修改"
width="1000px" top="10vh" class="dialog-h" @closed="diaClose"> width="1000px" top="10vh" class="dialog-h" @closed="diaClose">
@ -173,7 +173,12 @@
this.getTableData(); this.getTableData();
}, },
methods: { methods: {
//
// AddClose(){
// this.Record=false
// this.integral=false
// this.getTableData()
// },
//线 //线
handleupOnline(row){ handleupOnline(row){
console.log(row,"row"); console.log(row,"row");
@ -298,6 +303,12 @@
diaClose(){ diaClose(){
this.formShow=false this.formShow=false
}, },
AddClose(){
console.log("sdkjksd");
this.add=false
this.getTableData()
},
resetSearch(){ resetSearch(){
this.formData=[] this.formData=[]
}, },

1049
src/views/modules/volunteer/activityArchive/select.vue

File diff suppressed because it is too large

3
src/views/modules/volunteer/pointsRedemption/Select.vue

@ -14,7 +14,8 @@
{{ tableData.points}} {{ tableData.points}}
</el-form-item> </el-form-item>
<el-form-item label="有效期至"> <el-form-item label="有效期至">
{{ tableData.expireTime}} {{ tableData.expireTime }}
</el-form-item> </el-form-item>
<el-form-item label="兑换地点"> <el-form-item label="兑换地点">
{{ tableData.redeemerOrgName}} {{ tableData.redeemerOrgName}}

104
src/views/modules/volunteer/pointsRedemption/add.vue

@ -1,6 +1,6 @@
<template> <template>
<div class="g-main"> <div class="g-main">
<el-form :inline="true" :label-position="labelPosition" :model="tableData" <el-form :inline="true" :label-position="labelPosition" :model="formData" :rules="rules"
style="height: 500px; overflow: scroll;"> style="height: 500px; overflow: scroll;">
<el-form-item label="分类" required label-width="150px"> <el-form-item label="分类" required label-width="150px">
<el-select class="item_width_1" v-model="formData.classKey" placeholder="请选择"> <el-select class="item_width_1" v-model="formData.classKey" placeholder="请选择">
@ -34,42 +34,45 @@
<el-input class="item_width_2" v-model="formData.points" placeholder="请输入"></el-input> <el-input class="item_width_2" v-model="formData.points" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="有效期至" label-width="150px"> <el-form-item label="有效期至" label-width="150px">
<el-date-picker style="width: 250px;" v-model="formData.expireTime" type="datetime" placeholder="请选择日期" format="yyyy-MM-dd HH:mm:ss" <el-date-picker style="width: 250px;" v-model="formData.expireTime" type="datetime" placeholder="请选择日期"
value-format="yyyy-MM-dd HH:mm:ss"> format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="规则说明" label-width="150px"> <el-form-item label="规则说明" label-width="150px">
<Tinymce style="width: 560px;" class="tinymce_view" v-model="formData.description" :height="250" <Tinymce style="width: 560px;" class="tinymce_view" v-model="formData.description" :height="250"
placeholder="请输入活动内容" /> placeholder="请输入活动内容" />
</el-form-item> </el-form-item>
<el-form-item label="库存" label-width="150px"> <el-form-item label="库存" label-width="150px" >
<el-radio v-model="radio" label="1">不限数目</el-radio> <div style="width:195px;;">
<div class="flex flex-x"> <el-radio v-model="radio" label="1" style="margin-right:20px">不限数目</el-radio>
<el-radio v-model="radio" label="2">自定义</el-radio> <div class="flex flex-x flex-center2" >
<el-input v-if="radio=='2'" v-model="formData.stockQty" placeholder="请输入数量"></el-input> <el-radio v-model="radio" label="2" style="margin-right: 10px;">自定义</el-radio>
<el-input v-if="radio == '2'" type="number" v-model="formData.stockQty" placeholder="请输入数量"></el-input>
</div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="发布范围" label-width="150px"> <el-form-item label="发布范围" label-width="150px" required>
<el-cascader class="list_item_width_1" ref="myCascader" clearable size="small" <el-cascader class="list_item_width_1" ref="myCascader" clearable size="small" style="width:210px ;"
v-model.trim="formData.redeemerOrgId" :options="orgOptions" :props="orgOptionProps" v-model.trim="formData.redeemerOrgId" :options="orgOptions" :props="orgOptionProps"
@change="handleChangeAgency"></el-cascader> @change="handleChangeAgency"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="赞助单位" label-width="150px"> <el-form-item label="赞助单位" label-width="150px" >
<el-input v-model="formData.sponsorName" placeholder="请输入"></el-input> <el-input v-model="formData.sponsorName" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" label-width="150px"> <el-form-item label="联系电话" label-width="150px"prop="sponsorMobile" >
<el-input style="width: 210px;" v-model="formData.sponsorMobile" placeholder="请输入"></el-input> <el-input style="width: 210px;" v-model="formData.sponsorMobile" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="上架" label-width="150px" inline="false"> <el-form-item label="上架" label-width="150px" inline="false">
<el-switch style="width: 500px;" v-model="formData.shelveStatus" active-color="#13ce66" <el-switch style="width: 500px;" v-model="formData.shelveStatus" active-color="#13ce66" inactive-color=""
inactive-color="#ff4949" active-value="1" inactive-value="0"> active-value="1" inactive-value="0">
</el-switch> </el-switch>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="flex flex-center1 flex-center2"> <div class="flex flex-center1 flex-center2">
<el-button type="primary" @click="submitForm()">提交</el-button> <el-button type="primary" @click="submitForm()">提交</el-button>
<el-button @click="handlecancel">取消</el-button> <el-button @click="handlecancel">取消</el-button>
</div> </div>
</div> </div>
@ -111,42 +114,23 @@ export default {
], ],
radio:'1', radio:'1',
orgOptions:[] orgOptions:[],
rules: {
sponsorMobile: [
{ required: true, message: '联系电话不能为空', trigger: 'blur' },
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码', trigger: 'blur' }
]
}
}; };
}, },
props:{
list:{
type: Object,
default: () => {}
}
},
created() { created() {
this.getclasses() this.getclasses()
this.getOrgTreeList() this.getOrgTreeList()
}, },
methods: { methods: {
//
async updateForm(){
console.log(this.formData,"formData");
const url = "/voluntary/pointsAward/admin/update";
let params = {
...this.formData
}
console.log(params,"formData");
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
console.log("列表请求成功!!!!!!!!!!!!!!");
this.TypeList=data
this.total = data.total || 0;
this.tableData = data.list
console.log(this.tableData,"this.tableData");
this.formData={}
this.$emit('closeDialog')
} else {
this.$message.error(msg || "列表请求失败");
}
},
// //
getOrgTreeList() { getOrgTreeList() {
this.$http this.$http
@ -180,11 +164,6 @@ export default {
if (code === 0) { if (code === 0) {
console.log("列表请求成功!!!!!!!!!!!!!!"); console.log("列表请求成功!!!!!!!!!!!!!!");
this.TypeList=data this.TypeList=data
this.total = data.total || 0;
this.tableData = data.list
console.log(this.tableData,"this.tableData");
} else { } else {
this.$message.error(msg || "列表请求失败"); this.$message.error(msg || "列表请求失败");
} }
@ -197,24 +176,33 @@ export default {
}, },
// //
async submitForm(){ async submitForm(){
console.log(this.formData,"formData"); if (this.formData.classKey == '') {
this.$message.error('请选择分类');
return;
}
if (this.formData.awardName == '') {
this.$message.error('请输入标题');
return;
}
if (this.formData.points == '') {
this.$message.error('请输入积分');
return;
}
if (this.formData.redeemerOrgId == '') {
this.$message.error('请选择发布乏味');
return;
}
const url = "/voluntary/pointsAward/admin/add"; const url = "/voluntary/pointsAward/admin/add";
let params = { let params = {
...this.formData ...this.formData
} }
console.log(params,"formData");
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (code === 0) { if (code === 0) {
console.log("列表请求成功!!!!!!!!!!!!!!");
this.TypeList=data
this.total = data.total || 0;
this.tableData = data.list
console.log(this.tableData,"this.tableData");
this.formData={}
this.$emit('closeDialog') this.$emit('closeDialog')
} else { } else {
this.$message.error(msg || "列表请求失败"); this.$message.error(msg || "提交失败");
} }
} }

44
src/views/modules/volunteer/pointsRedemption/record.vue

@ -1,7 +1,30 @@
<template> <template>
<div class="g-main" style="padding: 30px;"> <div class="g-main" style="padding: 30px;">
<div class="flex flex-wrap flex-end"> <div class="">
<div class="flex flex-center1 flex-center2 m-bottom10 " style=""> <el-form :inline="true" :model="searchData" class="demo-form-inline" style="" >
<el-form-item label="姓名">
<el-input placeholder="请输入内容" v-model="searchData.redeemerName" style="width: 150px" clearable>
</el-input>
</el-form-item>
<el-form-item label="手机号" label-width="80px">
<el-input placeholder="请输入内容" v-model="searchData.redeemerMobile" style="width: 150px" clearable>
</el-input>
</el-form-item>
<el-form-item label="兑换时间选择" label-width="120px">
<el-date-picker v-model="searchData.redeemTimeFrom" type="datetime" placeholder="开始时间"
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="searchData.redeemTimeTo" type="datetime"
placeholder="结束时间" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" style="width: 150px">
</el-date-picker>
</el-form-item>
<div style="display: flex; justify-content: flex-end; margin:10px 0 20px 0;">
<el-button type="primary" @click="handleSeach" style="margin: 20rpx;">查询</el-button>
</div>
</el-form>
<!-- <div class="flex flex-center1 flex-center2 m-bottom10 " style="">
<div>姓名</div> <div>姓名</div>
<el-input placeholder="请输入内容" v-model="searchData.redeemerName" style="width: 200px" clearable> <el-input placeholder="请输入内容" v-model="searchData.redeemerName" style="width: 200px" clearable>
</el-input> </el-input>
@ -10,27 +33,27 @@
<div>手机号</div> <div>手机号</div>
<el-input placeholder="请输入内容" v-model="searchData.redeemerMobile" style="width: 200px" clearable> <el-input placeholder="请输入内容" v-model="searchData.redeemerMobile" style="width: 200px" clearable>
</el-input> </el-input>
</div> </div> -->
<div class="flex flex-center1 flex-center2 m-bottom10" style=""> <!-- <div class="flex flex-center1 flex-center2 m-bottom10" style="">
<div>状态</div> <div>状态</div>
<el-select v-model="searchData.StatusName" placeholder="请选择"> <el-select v-model="searchData.StatusName" placeholder="请选择">
<el-option v-for="item in Status" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in Status" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</div> </div> -->
<div class="flex flex-center1 flex-center2 m-bottom10" style=""> <!-- <div class="flex flex-center1 flex-center2 m-bottom10" style="">
<div>兑换时间选择</div> <div>兑换时间选择</div>
<el-date-picker v-model="searchData.redeemTimeFrom" type="datetime" placeholder="开始时间" <el-date-picker v-model="searchData.redeemTimeFrom" 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">
</el-date-picker> <el-date-picker v-model="searchData.redeemTimeTo" type="datetime" placeholder="" </el-date-picker> <el-date-picker v-model="searchData.redeemTimeTo" 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">
</el-date-picker> </el-date-picker>
</div> </div> -->
<!--
<div> <div>
<el-button type="primary" class="m-bottom10" @click="handleSeach">查询</el-button> <el-button type="primary" class="m-bottom10" @click="handleSeach">查询</el-button>
</div> </div> -->
</div> </div>
<div> <div>
<el-table :data="tableData" border> <el-table :data="tableData" border>
@ -134,13 +157,10 @@ export default {
redeemTimeTo:this.searchData.redeemTimeTo, redeemTimeTo:this.searchData.redeemTimeTo,
pageSize:this.pageSize, pageSize:this.pageSize,
pageNo:this.pageNo pageNo:this.pageNo
} }
console.log(params,"params"); console.log(params,"params");
console.log(this.awardId,"awardId" console.log(this.awardId,"awardId"
) )
const { data, code, msg } = await requestGet(url, params) const { data, code, msg } = await requestGet(url, params)
if (code === 0) { if (code === 0) {
console.log("列表请求成功!!!!!!!!!!!!!!"); console.log("列表请求成功!!!!!!!!!!!!!!");

180
src/views/modules/volunteer/pointsRedemption/update.vue

@ -1,79 +1,82 @@
<template> <template>
<div class="g-main"> <div class="g-main">
<el-form :inline="true" :label-position="labelPosition" :model="tableData" <el-form :inline="true" :label-position="labelPosition" :model="formData" :rules="rules"
style="height: 500px; overflow: scroll;"> style="height: 500px; overflow: scroll;">
<el-form-item label="分类" required label-width="150px"> <el-form-item label="分类" required label-width="150px">
<el-select class="item_width_1" v-model="formData.classKey" placeholder="请选择"> <el-select class="item_width_1" v-model="formData.classKey" placeholder="请选择">
<el-option v-for="item in TypeList" :key="item.classKey" :label="item.className" :value="item.classKey"> <el-option v-for="item in TypeList" :key="item.classKey" :label="item.className" :value="item.classKey">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="标题" label-width="150px" required> <el-form-item label="标题" label-width="150px" required>
<el-input class="item_width_1" v-model="formData.awardName" placeholder="请输入内容"></el-input> <el-input class="item_width_1" v-model="formData.awardName" placeholder="请输入内容"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="formData.classKey=='mjq' ||formData.classKey=='cxdjq'" required label="金额" <el-form-item v-if="formData.classKey=='mjq' ||formData.classKey=='cxdjq'" required label="金额"
label-width="150px"> label-width="150px">
<div class="item_width_2" style="display: flex;"> <div class="item_width_2" style="display: flex;">
<div></div> <div></div>
<el-input v-model="formData.worthAmount" placeholder="请输入金额"></el-input> <el-input v-model="formData.worthAmount" placeholder="请输入金额"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :inline="true" required v-if="formData.classKey=='zkq'" label="折扣" label-width="150px"> <el-form-item :inline="true" required v-if="formData.classKey=='zkq'" label="折扣" label-width="150px">
<div class="item_width_2" style="display: flex;"> <div class="item_width_2" style="display: flex;">
<el-input v-model="formData.worthAmount" placeholder="请输入折扣"></el-input> <el-input v-model="formData.worthAmount" placeholder="请输入折扣"></el-input>
<div> </div> <div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item required v-if="formData.classKey=='hwjh'" label="原价" label-width="150px"> <el-form-item required v-if="formData.classKey=='hwjh'" label="原价" label-width="150px">
<div style="display: flex;"> <div style="display: flex;">
<div></div> <div></div>
<el-input v-model="formData.worthAmount" placeholder="请输入内容"></el-input> <el-input v-model="formData.worthAmount" placeholder="请输入内容"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item required label="兑换积分" label-width="150px"> <el-form-item required label="兑换积分" label-width="150px">
<el-input class="item_width_2" v-model="formData.points" placeholder="请输入"></el-input> <el-input class="item_width_2" v-model="formData.points" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="有效期至" label-width="150px"> <el-form-item label="有效期至" label-width="150px">
<el-date-picker style="width: 250px;" v-model="formData.expireTime" type="datetime" placeholder="请选择日期" format="yyyy-MM-dd HH:mm:ss" <el-date-picker style="width: 250px;" v-model="formData.expireTime" type="datetime" placeholder="请选择日期"
value-format="yyyy-MM-dd HH:mm:ss"> format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="规则说明" label-width="150px"> <el-form-item label="规则说明" label-width="150px">
<Tinymce style="width: 560px;" class="tinymce_view" v-model="formData.description" :height="250" <Tinymce style="width: 560px;" class="tinymce_view" v-model="formData.description" :height="250"
placeholder="请输入活动内容" /> placeholder="请输入活动内容" />
</el-form-item> </el-form-item>
<el-form-item label="库存" label-width="150px"> <el-form-item label="库存" label-width="150px">
<el-radio v-model="radio" label="1">不限数目</el-radio> <div style="width:195px;;">
<div class="flex flex-x"> <el-radio v-model="radio" label="1" style="margin-right:20px">不限数目</el-radio>
<el-radio v-model="radio" label="2">自定义</el-radio> <div class="flex flex-x flex-center2" >
<el-input v-if="radio=='2'" v-model="formData.stockQty" placeholder="请输入数量"></el-input> <el-radio v-model="radio" label="2" style="margin-right: 10px;">自定义</el-radio>
</div> <el-input v-if="radio == '2'" type="number" v-model="formData.stockQty" placeholder="请输入数量"></el-input>
</div>
</el-form-item> </div>
<el-form-item label="发布范围" label-width="150px">
<el-cascader class="list_item_width_1" ref="myCascader" clearable size="small"
v-model.trim="formData.redeemerOrgId" :options="orgOptions" :props="orgOptionProps" </el-form-item>
@change="handleChangeAgency"></el-cascader> <el-form-item label="发布范围" label-width="150px" required>
</el-form-item> <el-cascader class="list_item_width_1" ref="myCascader" clearable size="small" style="width:210px ;"
v-model.trim="formData.redeemerOrgId" :options="orgOptions" :props="orgOptionProps"
<el-form-item label="赞助单位" label-width="150px"> @change="handleChangeAgency"></el-cascader>
<el-input v-model="formData.sponsorName" placeholder="请输入"></el-input> </el-form-item>
</el-form-item>
<el-form-item label="联系电话" label-width="150px"> <el-form-item label="赞助单位" label-width="150px" >
<el-input style="width: 210px;" v-model="formData.sponsorMobile" placeholder="请输入"></el-input> <el-input v-model="formData.sponsorName" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="上架" label-width="150px" inline="false"> <el-form-item label="联系电话" label-width="150px"prop="sponsorMobile" >
<el-switch style="width: 500px;" v-model="formData.shelveStatus" active-color="#13ce66" <el-input style="width: 210px;" v-model="formData.sponsorMobile" placeholder="请输入"></el-input>
inactive-color="#ff4949" active-value="1" inactive-value="0"> </el-form-item>
</el-switch> <el-form-item label="上架" label-width="150px" inline="false">
</el-form-item> <el-switch style="width: 500px;" v-model="formData.shelveStatus" active-color="#13ce66" inactive-color=""
</el-form> active-value="1" inactive-value="0">
<div class="flex flex-center1 flex-center2"> </el-switch>
<el-button type="primary" @click="updateForm()">提交</el-button> </el-form-item>
<el-button @click="handlecancel">取消</el-button> </el-form>
</div> <div class="flex flex-center1 flex-center2">
</div> <el-button type="primary" @click="submitForm()">提交</el-button>
</template> <el-button @click="handlecancel">取消</el-button>
</div>
</div>
</template>
<script> <script>
import { requestPost,requestGet } from "@/js/dai/request"; import { requestPost,requestGet } from "@/js/dai/request";
import Tinymce from '@c/tinymce2/index.vue' import Tinymce from '@c/tinymce2/index.vue'
@ -111,7 +114,13 @@
], ],
radio:'1', radio:'1',
orgOptions:[] orgOptions:[],
rules: {
sponsorMobile: [
{ required: true, message: '联系电话不能为空', trigger: 'blur' },
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码', trigger: 'blur' }
]
}
}; };
}, },
props:{ props:{
@ -230,9 +239,26 @@
}, },
// //
async submitForm(){ async submitForm(){
if (this.formData.classKey == '') {
this.$message.error('请选择分类');
return;
}
if (this.formData.awardName == '') {
this.$message.error('请输入标题');
return;
}
if (this.formData.points == '') {
this.$message.error('请输入积分');
return;
}
if (this.formData.redeemerOrgId == '') {
this.$message.error('请选择发布乏味');
return;
}
console.log(this.formData,"formData"); console.log(this.formData,"formData");
const url = "/voluntary/pointsAward/admin/add"; const url = "/voluntary/pointsAward/admin/update";
let params = { let params = {
id:this.list.id,
...this.formData ...this.formData
} }
console.log(params,"formData"); console.log(params,"formData");

Loading…
Cancel
Save