许宏杰 1 year ago
commit 8a7edc036e

@ -0,0 +1,16 @@
/*
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-21 10:39:35
* @LastEditors: JC9527
* @LastEditTime: 2023-09-22 10:23:55
*/
import huodongtuijian from "./volunteer/jifenduihuan/huodongtuijian";
import jifenhuoqu from "./volunteer/jifenduihuan/jifenhuoqu";
export default {
huodongtuijian,
jifenhuoqu
}

@ -0,0 +1,34 @@
/*
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-21 10:36:32
* @LastEditors: JC9527
* @LastEditTime: 2023-09-22 11:25:39
*/
import request from "@/utils/request";
export default {
list(params){
return request({
url:'/zhiyuanzhe/activity/list',
method:"get",
params,
})
},
// 查看详情
activity(id){
return request({
url:'/zhiyuanzhe/activity/' + id,
method:"get",
})
},
// 参与活动
zyzreport(data) {
return request({
url:'/zhiyuanzhe/zyzreport',
method:"post",
data
})
}
}

@ -0,0 +1,19 @@
/*
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-21 09:46:16
* @LastEditors: JC9527
* @LastEditTime: 2023-09-22 10:23:24
*/
import request from "@/utils/request";
export default {
selectall(params){
return request({
url:'/zhiyuanzhe/points/selectall',
method:"get",
params,
})
}
}

@ -7,6 +7,8 @@ import './assets/styles/element-variables.scss'
import "@/utils/rem.js"; //计算rem基准
import API from "@/api/index.js";
import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App'
@ -54,6 +56,7 @@ Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
Vue.prototype.$api = API
// 全局组件挂载
Vue.component('DictTag', DictTag)

@ -4,26 +4,21 @@
* @Author: JC9527
* @Date: 2023-09-20 14:14:24
* @LastEditors: JC9527
* @LastEditTime: 2023-09-20 14:40:07
* @LastEditTime: 2023-09-22 11:04:22
-->
<template>
<el-dialog
:visible.sync="dialogVisible"
:show-close="false"
:destroy-on-close="true"
:close-on-click-modal="false"
append-to-body
custom-class="dialog-boxed"
width="30%"
:width="width"
>
<div slot="title">
<div class="titleText">{{ title }}</div>
</div>
<div class="dialog-slot">
<div class="closeClick">
<div class="newplan">
<div class="line"></div>
<div class="span">新增计划</div>
</div>
<img src="@/assets/images/close.png" alt="" @click="Close" />
</div>
<slot></slot>
</div>
</el-dialog>
@ -35,6 +30,16 @@ export default {
dialogVisible: false,
}
},
props:{
width:{
type:String,
default:'35%'
},
title:{
type:String,
default:'查看详情'
}
},
methods:{
open() {
this.dialogVisible = true;
@ -46,7 +51,38 @@ export default {
}
</script>
<style lang="scss" scoped>
.titleText {
font-family: "Alibaba-PuHuiTi-Regular";
font-weight: bold;
color: #4c4949;
padding-left: 15px;
font-size: 16px;
position: relative;
&::before {
position: absolute;
top: 3.8px;
left: 0;
content: "";
width: 5px;
height: 15px;
background: #f8414d;
}
}
::v-deep .el-dialog__body {
padding: 0;
}
::v-deep .el-dialog__header {
padding: 10px;
padding-left: 15px;
background: #f7f5f5;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
::v-deep .el-dialog__headerbtn {
top: 12px;
}
.dialog-slot {
padding: 20px 30px;
.closeClick {
position: absolute;
top: 0;

@ -4,11 +4,11 @@
* @Author: JC9527
* @Date: 2023-09-20 11:28:27
* @LastEditors: JC9527
* @LastEditTime: 2023-09-20 14:03:23
* @LastEditTime: 2023-09-22 14:12:58
-->
<template>
<div class="my-inputs">
<el-input v-model="input" placeholder="请输入内容"></el-input>
<el-input v-model="input" :placeholder="placeholder" clearable @change="changeValue"></el-input>
<div class="btn" @click="inputValue"><i class="el-icon-search"></i></div>
</div>
</template>
@ -19,10 +19,19 @@ export default {
input:'',
}
},
props:{
placeholder:{
type:String,
default:'请输入内容'
}
},
methods:{
inputValue(){
this.$emit('changeInput',this.input)
},
changeValue(){
this.$emit('changeValue',this.input)
}
},
}
</script>
@ -31,7 +40,7 @@ export default {
display: flex;
::v-deep .el-input {
width: 515px;
height: 50px;
height: 40px;
.el-input__inner {
width: 100%;
height: 100%;
@ -45,7 +54,7 @@ export default {
align-items: center;
justify-content: center;
width: 52px;
height: 50px;
height: 40px;
border-radius: 0 4px 4px 0;
background-color: #F8414D;
cursor: pointer;

@ -4,7 +4,7 @@
* @Author: JC9527
* @Date: 2023-09-04 13:11:33
* @LastEditors: JC9527
* @LastEditTime: 2023-09-18 16:07:36
* @LastEditTime: 2023-09-21 10:52:27
-->
<template>
<div class="pagination">
@ -17,6 +17,7 @@
: pageSize * (pageNum - 1) + 1
}}-{{ numberMap() }}</span
> -->
<span class="custom">{{ total }}</span>
<el-pagination
background
:small="true"

@ -4,7 +4,7 @@
* @Author: JC9527
* @Date: 2023-09-18 10:08:30
* @LastEditors: JC9527
* @LastEditTime: 2023-09-20 13:35:08
* @LastEditTime: 2023-09-22 14:36:35
-->
<template>
<div class="plan-management">
@ -13,10 +13,10 @@
<el-tab-pane label="活动推荐" name="recommendView"></el-tab-pane>
<el-tab-pane label="活动邀请" name="inviteView"></el-tab-pane>
</el-tabs>
<my-input @changeInput="changeInput"></my-input>
<my-input @changeInput="changeInput" placeholder="请输入活动内容" @changeValue="changeValue"></my-input>
</div>
<div class="plan-bottomBox">
<component :is="defaultRouter" :value="input"></component>
<component :is="defaultRouter" :value="input" ref="myComponents"></component>
</div>
</div>
</template>
@ -30,13 +30,22 @@ export default {
return {
input: '',
activeName: 'recommendView',
defaultRouter:'recommendView'
defaultRouter:'recommendView',
isClick:false,
}
},
methods:{
//
changeInput(value){
this.input = value;
this.isClick = true;
},
//
changeValue(value){
if(this.isClick && value == ''){
this.$refs.myComponents.getList('1')
this.isClick = false;
}
},
handleClick() {
this.defaultRouter = this.activeName
@ -59,7 +68,7 @@ export default {
display: flex;
align-items: center;
justify-content: space-between;
padding: 40px 0 0 0;
padding: 20px 0 0 0;
::v-deep .el-tabs--top {
height: 40px;
}

@ -178,6 +178,7 @@ export default {
.activity {
div {
text-align: left;
line-height: 20px;
&:nth-child(1) {
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
@ -197,7 +198,7 @@ export default {
}
}
td {
height: 57px;
height: 42px;
box-sizing: border-box;
// text-align: center;
font-size: 14px;
@ -207,7 +208,7 @@ export default {
padding: 2px 0;
}
th {
height: 57px;
height: 45px;
background-color: #F7F5F5;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
@ -244,6 +245,6 @@ export default {
}
}
.pagination {
margin-top: 10px;
// margin-top: 10px;
}
</style>

@ -23,28 +23,36 @@
>
<template slot-scope="scope">
<div class="activity">
<div>{{ scope.row.content.split(' ')[0] }}</div>
<div>{{ scope.row.content.split(' ')[1] }}</div>
<div>{{ scope.row.name }}</div>
<div>{{ scope.row.content }}</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="person"
label="参与人员"
prop="publisher"
label="发布方"
show-overflow-tooltip
width="180"
>
</el-table-column>
<el-table-column
prop="duration"
label="状态"
label="服务时长"
>
</el-table-column>
<el-table-column
prop="time"
label="兑换时间"
prop="address"
label="参加地址"
>
</el-table-column>
<el-table-column
prop="activityTime"
label="参加时间"
>
<template slot-scope="scope">
<div>{{ scope.row.activityTime.split(' ')[0] }}</div>
</template>
</el-table-column>
<el-table-column
label="操作"
width="250"
@ -55,9 +63,9 @@
<img src="@/assets/images/look.png" alt="">
<span>查看</span>
</div>
<div class="look" @click="look(scope.row)">
<img src="@/assets/images/look.png" alt="">
<span>参与</span>
<div class="look" @click="participation(scope.row)" v-if="scope.row.involveStaus == 2">
<!-- <img src="@/assets/images/look.png" alt=""> -->
<span>报名</span>
</div>
</div>
</template>
@ -67,73 +75,83 @@
<div class="pagination">
<my-pagination :total="total" @pagesChange="pagesChange"></my-pagination>
</div>
<!-- <my-dialog ref="participation" title="参与">
<el-form ref="ruleForm" :model="form" label-width="100px" :rules="rules">
<el-form-item label="参与信息:" prop="info">
<el-input type="textarea" v-model="form.info" resize="none"></el-input>
</el-form-item>
<div class="form-btns">
<el-form-item>
<el-button type="primary" @click="onSubmit"></el-button>
<el-button @click="close"></el-button>
</el-form-item>
</div>
</el-form>
</my-dialog> -->
<my-dialog ref="chakan" title="查看活动详情" width="45%">
<div class="mainsEvents" v-loading="loadingTwo">
<div class="itemE">
<div>活动名称:</div>
<div>{{ dialogContent.name }}</div>
</div>
<div class="itemE">
<div>活动时间:</div>
<div>{{ dialogContent.activityTime.split(' ')[0] }}</div>
</div>
</div>
<div class="mainsEvents">
<div class="itemE">
<div>活动内容:</div>
<div>{{ dialogContent.content }}</div>
</div>
<div class="itemE">
<div>活动地址:</div>
<div>{{ dialogContent.address }}</div>
</div>
</div>
<div class="mainsEvents">
<div class="itemE">
<div>活动举办方:</div>
<div>{{ dialogContent.publisher }}</div>
</div>
<div class="itemE">
<div>活动标签:</div>
<div class="mainTag">
<div v-for="item in dialogContent.label">{{ item.name }}</div>
</div>
</div>
</div>
</my-dialog>
</div>
</template>
<script>
import myPagination from "@/views/components/myPagination/index.vue"
import myDialog from "@/views/components/dialog/index.vue"
import { mapState } from "vuex";
import { Loading } from "element-ui";
export default {
components:{myPagination},
components:{myPagination,myDialog},
data() {
return {
tableData: [
{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14'
},
],
tableData: [],
pages:{
pageSize:10,
pageNum:1
},
total:0,
loading:false,
input:{
name:""
},
loadingTwo:false,
dialogContent:{
name:'',
content:'',
publisher:'',
activityTime:'',
address:'',
label:[]
}
}
},
props:{
@ -146,10 +164,35 @@ export default {
value:{
handler(newInput,oldInput) {
//
this.input.name = newInput;
this.pages= {
pageNum: 1,
pageSize: 10,
};
this.getList()
},
immediate:true,
}
},
methods:{
//
async getList(params){
this.loading = true;
if(params == '1') {
this.pages= {
pageNum: 1,
pageSize: 10,
};
this.input.name = '';
}
let obj = { ...this.pages,...this.input }
let data = await this.$api.huodongtuijian.list(obj);
if(data.code == 200) {
this.loading = false;
this.tableData = data.rows;
this.total = data.total;
}
},
//
pagesChange(pages){
// console.log(pages)
@ -170,7 +213,72 @@ export default {
return '';
}
},
//
async look(row){
this.$refs.chakan.open();
this.loadingTwo = true;
let data = await this.$api.huodongtuijian.activity(row.id);
if(data.code == 200){
this.loadingTwo = false;
let {name,content,publisher,activityTime,address,ageRange,sexRange,politicalRange,educationRange,housingRange,industryRange,interestRange,professionalRange,schoolRange} = data.data;
let arr = [];
arr.push(ageRange,sexRange,politicalRange,educationRange,housingRange,industryRange,interestRange,professionalRange,schoolRange)
let arrtwo = []
arr.forEach((item)=>{
let obj = {}
if(item) {
obj['name'] = item
arrtwo.push(obj)
}
})
console.log(arrtwo)
this.dialogContent = {name,content,publisher,activityTime,address,label:arrtwo};
}
},
//
participation(row){
// this.$refs.participation.open();
this.$confirm('是否确定报名活动?', '确认信息', {
distinguishCancelAndClose: true,
confirmButtonText: '确定',
cancelButtonText: '取消'
})
.then(() => {
this.action(row)
})
.catch(action => {
console.log(action)
});
},
//
async action(row){
let downloadLoadingInstance = Loading.service({
text: "正在申请报名活动,请稍后",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
let obj = {
activityId: row.id
}
let data = await this.$api.huodongtuijian.zyzreport(obj)
// alert('submit!');
if(data.code == 200) {
downloadLoadingInstance.close();
this.$message({
message: "申请报名成功",
type: "success",
});
this.getList();
}
},
//
close(){
this.$refs.participation.Close();
}
},
mounted(){
this.getList();
}
}
</script>
<style lang="scss" scoped>
@ -182,6 +290,7 @@ export default {
.activity {
div {
text-align: left;
line-height: 20px;
&:nth-child(1) {
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
@ -201,7 +310,7 @@ export default {
}
}
td {
height: 57px;
height: 42px;
box-sizing: border-box;
// text-align: center;
font-size: 14px;
@ -211,7 +320,7 @@ export default {
padding: 2px 0;
}
th {
height: 57px;
height: 45px;
background-color: #F7F5F5;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
@ -248,6 +357,46 @@ export default {
}
}
.pagination {
margin-top: 10px;
// margin-top: 10px;
}
::v-deep .el-textarea__inner {
height: 80px !important;
}
::v-deep .mainsEvents {
// height: 35px;
display: flex;
align-items: center;
font-family: "Alibaba-PuHuiTi-Regular";
margin-bottom: 12px;
.itemE {
width: 50%;
display: flex;
& > div:nth-of-type(1) {
display: flex;
align-items: center;
color: #4c4949;
width: 26%;
}
& > div:nth-last-of-type(2) {
color: #807a7a;
}
.mainTag {
display: flex;
flex-wrap: wrap;
flex: 1;
font-family: "Alibaba-PuHuiTi-Regular";
& > div {
margin-right: 5px;
margin-top: 5px;
background-color: rgba(248, 65, 77, 0.06);
padding: 3px 5px;
color: #e16a70;
border-radius: 4px;
}
}
}
}
.form-btns {
text-align: right;
}
</style>

@ -4,12 +4,12 @@
* @Author: JC9527
* @Date: 2023-09-18 10:08:30
* @LastEditors: JC9527
* @LastEditTime: 2023-09-20 14:53:05
* @LastEditTime: 2023-09-22 14:18:25
-->
<template>
<div class="plan-management">
<div class="plan-topBox">
<my-input @changeInput="changeInput"></my-input>
<my-input @changeInput="changeInput" placeholder="请输入活动内容" @changeValue="changeValue"></my-input>
</div>
<div class="plan-bottomBox">
<div class="tables">
@ -198,13 +198,16 @@ export default {
time:'2023-08-14'
},
],
input: '',
input: {
name:''
},
pages:{
pageSize:10,
pageNum:1
},
total:0,
loading:false,
isClick:false,
}
},
methods:{
@ -215,7 +218,25 @@ export default {
},
//
changeInput(value){
this.input = value;
this.input.name = value;
this.isClick = true;
this.pages= {
pageNum: 1,
pageSize: 10,
};
this.getList();
},
//
changeValue(value){
if(this.isClick && value == ''){
this.input.name = '';
this.pages= {
pageNum: 1,
pageSize: 10,
};
this.getList();
this.isClick = false;
}
},
// tabsclass
tableRowClassName({ row, rowIndex }) {
@ -231,6 +252,9 @@ export default {
} else {
return '';
}
},
getList(){
},
//
look(item){
@ -255,10 +279,10 @@ export default {
border-radius: 10px 10px 0 0;
box-shadow: 0px 0px 15px 0px rgba(229,212,212,0.58);
.plan-topBox {
padding: 40px 0 0 0;
padding: 30px 0 0 0;
}
.plan-bottomBox {
margin-top: 30px;
margin-top: 20px;
.tables {
::v-deep .el-table {
.success-row {
@ -267,6 +291,7 @@ export default {
.activity {
div {
text-align: left;
line-height: 20px;
&:nth-child(1) {
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
@ -286,7 +311,7 @@ export default {
}
}
td {
height: 57px;
height: 42px;
box-sizing: border-box;
// text-align: center;
font-size: 14px;
@ -296,7 +321,7 @@ export default {
padding: 2px 0;
}
th {
height: 57px;
height: 45px;
background-color: #F7F5F5;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
@ -333,7 +358,7 @@ export default {
}
}
.pagination {
margin-top: 10px;
// margin-top: 10px;
}
}
}
@ -343,11 +368,11 @@ export default {
display: flex;
align-items: center;
img {
width: 16px;
width: 14px;
margin-right: 10px;
}
span {
font-size: 18px;
font-size: 16px;
font-family: 'Alibaba PuHuiTi';
font-weight: bold;
color: #4C4949;
@ -368,13 +393,13 @@ export default {
align-items: center;
div {
&:nth-child(1) {
font-size: 16px;
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
font-weight: 400;
color: #4C4949;
}
&:nth-child(2) {
font-size: 16px;
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
font-weight: 400;
color: #807A7A;
@ -399,7 +424,7 @@ export default {
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
font-weight: 400;
color: #F8414D;

@ -4,19 +4,19 @@
* @Author: JC9527
* @Date: 2023-09-18 10:08:30
* @LastEditors: JC9527
* @LastEditTime: 2023-09-20 14:01:56
* @LastEditTime: 2023-09-22 14:15:06
-->
<template>
<div class="mainBox">
<div class="convert-topBox">
<my-input @changeInput="changeInput"></my-input>
<my-input @changeInput="changeInput" placeholder="请输入证书名称" @changeValue="changeValue"></my-input>
</div>
<div class="convert-content">
<div class="convert-content" v-loading="loading">
<div class="integral-lists">
<div class="list" v-for="item in certificateList">
<div class="list-top" :class="item.type == 1 ? 'top-two' : item.type == 2 ? 'top-three' : '' "></div>
<div class="list-top" :style="{'background-image': 'url(' + basicUrl + item.cover + ')'}"></div>
<div class="list-bottom">
<span class="bottom-left">{{ item.type == 0 ? '高级' : item.type == 1 ? '中级' : '初级' }}</span>
<span class="bottom-left">{{ item.name }}</span>
<span class="bottom-right" @click="conversion(item)"></span>
</div>
</div>
@ -30,50 +30,71 @@
<script>
import myInput from "@/views/components/myInput/index.vue"
import myPagination from "@/views/components/myPagination/index.vue"
import { listCertificates } from "@/api/volunteer/gxhzs/gxhzsgl/index.js";
export default {
data() {
return {
total:0,
certificateList:[
{
type:2,
},{
type:1,
},{
type:0,
},{
type:2,
},{
type:1,
},{
type:0,
},{
type:2,
},{
type:1,
}
]
certificateList:[],
basicUrl:process.env.VUE_APP_BASE_API,
queryParams: {
pageNum: 1,
pageSize: 10,
},
loading:false,
value:{
name:''
},
isClick:false,
};
},
components: {
myInput,myPagination
},
mounted() {
this.getList()
},
methods: {
//
pagesChange(pages){
this.queryParams = pages;
this.getList()
},
//
changeInput(e){
this.isClick = true;
this.queryParams= {
pageNum: 1,
pageSize: 10,
};
this.value.name = e;
this.getList()
},
//
changeValue(value){
if(this.isClick && value == ''){
this.value.name = '';
this.pages= {
pageNum: 1,
pageSize: 10,
};
this.getList();
this.isClick = false;
}
},
//
conversion(item){
console.log(item)
},
getList(){
this.loading = true;
let obj = { ...this.queryParams,...this.value }
listCertificates(obj).then((response) => {
this.certificateList = response.rows;
this.total = response.total;
this.loading = false;
});
}
},
};
</script>
@ -86,7 +107,7 @@ export default {
padding: 0 20px 10px 20px;
box-shadow: 0px 0px 15px 0px rgba(229,212,212,0.58);
.convert-topBox {
padding: 40px 0 0 0;
padding: 20px 0 0 0;
}
.convert-content {
.integral-lists {
@ -94,34 +115,35 @@ export default {
// flex-wrap: wrap;
margin-top: 30px;
display: grid;
grid-template-columns: repeat(5, 300px);
grid-column-gap: 30px;
grid-row-gap: 30px;
grid-template-columns: repeat(5, 230px);
grid-column-gap: 25px;
grid-row-gap: 25px;
height: 491px;
.list {
width: 300px;
// height: 305px;
width: 230px;
height: 233.2px;
// background: linear-gradient(0deg, #EFE6D9, #DDC9AC);
box-shadow: 0px 3px 15px 0px rgba(184,184,184,0.22);
border-radius: 10px;
.list-top {
background: url('../../../assets/images/icon1.png') no-repeat center center;
// background: url('../../../assets/images/icon1.png') no-repeat center center;
background-size: 100% 100%;
height: 216px;
height: 188px;
width: 100%;
}
.top-two {
background: url('../../../assets/images/icon2.png') no-repeat center center;
background-size: 100% 100%;
}
.top-three {
background: url('../../../assets/images/icon3.png') no-repeat center center;
background-size: 100% 100%;
}
// .top-two {
// background: url('../../../assets/images/icon2.png') no-repeat center center;
// background-size: 100% 100%;
// }
// .top-three {
// background: url('../../../assets/images/icon3.png') no-repeat center center;
// background-size: 100% 100%;
// }
.list-bottom {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px 20px;
padding: 10px 20px;
.bottom-left {
font-size: 16px;
font-family: FZDaBiaoSong-B06S;
@ -142,7 +164,7 @@ export default {
}
}
.pagination {
margin-top: 45px;
margin-top: 10px;
}
}
}

@ -4,12 +4,12 @@
* @Author: JC9527
* @Date: 2023-09-18 10:08:30
* @LastEditors: JC9527
* @LastEditTime: 2023-09-20 13:57:07
* @LastEditTime: 2023-09-22 15:00:11
-->
<template>
<div class="plan-management">
<div class="plan-topBox">
<my-input @changeInput="changeInput"></my-input>
<my-input @changeInput="changeInput" placeholder="请输入活动内容" @changeValue="changeValue"></my-input>
</div>
<div class="plan-bottomBox">
<div class="tables">
@ -29,31 +29,34 @@
width="70">
</el-table-column>
<el-table-column
prop="content"
prop="name"
label="参与活动"
width="280"
>
<template slot-scope="scope">
<!-- <template slot-scope="scope">
<div class="activity">
<div>{{ scope.row.content.split(' ')[0] }}</div>
<div>{{ scope.row.content.split(' ')[1] }}</div>
</div>
</template>
</template> -->
</el-table-column>
<el-table-column
prop="person"
prop="uid"
label="参与人员"
show-overflow-tooltip
width="180"
>
</el-table-column>
<el-table-column
prop="duration"
prop="activityTime"
label="服务活动时长"
>
<template slot-scope="scope">
<div>{{ scope.row.activityTime.split(' ')[0] }}</div>
</template>
</el-table-column>
<el-table-column
prop="time"
prop="activityTime"
label="参与时间"
>
</el-table-column>
@ -67,7 +70,7 @@
<img src="@/assets/images/look.png" alt="">
<span>查看</span>
</div>
<div class="score">评估评分<span class="span" :class="scope.row.score < 60 ? 'pass':''">{{ scope.row.score }}</span></div>
<div class="score">评估评分<span class="span" :class="Number(scope.row.points) < 60 ? 'pass':''">{{ scope.row.points }}</span></div>
</div>
</template>
</el-table-column>
@ -77,85 +80,41 @@
<my-pagination :total="total" @pagesChange="pagesChange"></my-pagination>
</div>
</div>
<my-dialog ref="conversion" width="45%">
<el-descriptions class="margin-top" :column="2" border>
<el-descriptions-item label="活动名称">{{ descriptions.name }}</el-descriptions-item>
<el-descriptions-item label="活动时间">{{ descriptions.activityTime }}</el-descriptions-item>
<el-descriptions-item label="活动举办方">{{ descriptions.publisher }}</el-descriptions-item>
<el-descriptions-item label="积分">{{ descriptions.points }}</el-descriptions-item>
</el-descriptions>
</my-dialog>
</div>
</template>
<script>
import myPagination from "@/views/components/myPagination/index.vue"
import myInput from "@/views/components/myInput/index.vue"
import myDialog from "@/views/components/dialog/index.vue"
export default {
components:{myPagination,myInput},
components:{myPagination,myInput,myDialog},
data() {
return {
tableData: [
{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:58,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:48,
},{
content:'志愿活动协助指挥交通 我参加的志愿者活动,指挥交通',
person:'吴加好',
duration:'10',
time:'2023-08-14',
score:98,
},
],
input: '',
tableData: [],
input: {
name:''
},
pages:{
pageSize:10,
pageNum:1
},
total:0,
loading:false,
isClick:false,
descriptions:{
name:'',
activityTime:'',
publisher:'',
points:''
},
}
},
methods:{
@ -166,7 +125,25 @@ export default {
},
//
changeInput(value){
this.input = value;
this.input.name = value;
this.isClick = true;
this.pages= {
pageNum: 1,
pageSize: 10,
};
this.getList();
},
//
changeValue(value){
if(this.isClick && value == ''){
this.input.name = '';
this.pages= {
pageNum: 1,
pageSize: 10,
};
this.getList();
this.isClick = false;
}
},
// tabsclass
tableRowClassName({ row, rowIndex }) {
@ -183,9 +160,33 @@ export default {
return '';
}
},
//
async look(row){
this.$refs.conversion.open();
let data = await this.$api.jifenhuoqu.selectall({id:row.id});
let { name,activityTime,publisher,points } = data.data.list[0];
this.descriptions = {
name,
activityTime,
publisher,
points
};
console.log(data)
},
//
async getList(){
this.loading = true;
let obj = { ...this.pages,...this.input }
let data = await this.$api.jifenhuoqu.selectall(obj);
if(data.code == 200) {
this.loading = false;
this.tableData = data.data.list;
this.total = data.data.total;
}
},
},
async created() {
mounted(){
this.getList();
},
}
</script>
@ -198,10 +199,10 @@ export default {
border-radius: 10px 10px 0 0;
box-shadow: 0px 0px 15px 0px rgba(229,212,212,0.58);
.plan-topBox {
padding: 40px 0 0 0;
padding: 30px 0 0 0;
}
.plan-bottomBox {
margin-top: 30px;
margin-top: 20px;
.tables {
::v-deep .el-table {
.success-row {
@ -210,6 +211,7 @@ export default {
.activity {
div {
text-align: left;
line-height: 20px;
&:nth-child(1) {
font-size: 14px;
font-family: 'Alibaba PuHuiTi';
@ -229,7 +231,7 @@ export default {
}
}
td {
height: 57px;
height: 42px;
box-sizing: border-box;
// text-align: center;
font-size: 14px;
@ -239,7 +241,7 @@ export default {
padding: 2px 0;
}
th {
height: 57px;
height: 45px;
background-color: #F7F5F5;
font-size: 15px;
font-family: 'Alibaba PuHuiTi';
@ -284,7 +286,7 @@ export default {
}
}
.pagination {
margin-top: 10px;
// margin-top: 10px;
}
}
}

Loading…
Cancel
Save