You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
volunteer-pc/src/views/volunteer/conversionRecord/index.vue

436 lines
11 KiB

<!--
* @Descripttion:
* @version:
* @Author: JC9527
* @Date: 2023-09-18 10:08:30
* @LastEditors: JC9527
* @LastEditTime: 2023-09-22 14:18:25
-->
<template>
<div class="plan-management">
<div class="plan-topBox">
<my-input
@changeInput="changeInput"
placeholder="请输入活动内容"
@changeValue="changeValue"
></my-input>
</div>
<div class="plan-bottomBox">
<div class="tables">
<el-table
:data="tableData"
:border="false"
:height="505"
v-loading="loading"
tooltip-effect="light"
:row-class-name="tableRowClassName"
:cell-style="cellStyle"
>
<el-table-column
label="序号"
type="index"
header-align="center"
width="70"
>
</el-table-column>
<el-table-column prop="content" label="参与活动" width="280">
<template slot-scope="scope">
<div class="activity">
<div>{{ scope.row.content.split(" ")[0] }}</div>
<div>{{ scope.row.content.split(" ")[1] }}</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="person"
label="参与人员"
show-overflow-tooltip
width="180"
>
</el-table-column>
<el-table-column prop="duration" label="状态"> </el-table-column>
<el-table-column prop="time" label="兑换时间"> </el-table-column>
<el-table-column label="操作" width="250">
<template slot-scope="scope">
<div class="tabs-btns">
<div class="look" @click="look(scope.row)">
<img src="@/assets/images/look.png" alt="" />
<span>查看</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="pagination">
<my-pagination
:total="total"
@pagesChange="pagesChange"
></my-pagination>
</div>
</div>
<my-dialog ref="conversion">
<div class="conversionInfo">
<div class="basicInfo">
<div class="title">
<img src="@/assets/images/huodong.png" alt="" />
<span>活动详情</span>
</div>
<div class="info">
<div class="lists">
<div class="list-left">
<div>活动名称:</div>
<div>交通指挥</div>
</div>
<div class="list-right">
<div>活动参与日期:</div>
<div>2023年7月9日</div>
</div>
</div>
<div class="lists">
<div class="list-left">
<div>活动地址:</div>
<div>苏州</div>
</div>
<div class="list-right">
<div>服务时长:</div>
<div>10h</div>
</div>
</div>
<div class="lists">
<div class="list-left">
<div>证书状态:</div>
<div>已发放</div>
</div>
</div>
</div>
</div>
<div class="logisticsInfo">
<div class="title">
<img src="@/assets/images/huodong.png" alt="" />
<span>物流信息</span>
</div>
<div class="info">
<div class="lists">
<div class="list-left">
<div>快递公司:</div>
<div>XXXXXXXXX</div>
</div>
<div class="list-right">
<div>快递单号:</div>
<div>XXXXXXXXXXX</div>
</div>
</div>
</div>
</div>
<div class="btns">
<div class="btn" @click="close"></div>
</div>
</div>
</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, 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",
},
],
input: {
name: "",
},
pages: {
pageSize: 10,
pageNum: 1,
},
total: 0,
loading: false,
isClick: false,
};
},
methods: {
// 页码,当前页切换事件
pagesChange(pages) {
// console.log(pages)
this.getList(pages);
},
// 输入框的值
changeInput(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;
}
},
// tabs不同行给不同class
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) {
return "success-row";
}
return "";
},
// 单元格的 style 的回调方法
cellStyle({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
return `text-align:center`;
} else {
return "";
}
},
getList() {},
// 查看详情
look(item) {
this.$refs.conversion.open();
},
// 关闭
close() {
this.$refs.conversion.Close();
},
},
async created() {},
};
</script>
<style lang="scss" scoped>
.plan-management {
padding: 0 20px 10px 20px;
background-color: #fff;
height: 100%;
width: 100%;
border-radius: 10px 10px 0 0;
box-shadow: 0px 0px 15px 0px rgba(229, 212, 212, 0.58);
.plan-topBox {
padding: 30px 0 0 0;
}
.plan-bottomBox {
margin-top: 20px;
.tables {
::v-deep .el-table {
.success-row {
background-color: rgba(250, 247, 247, 0.5);
}
.activity {
div {
text-align: left;
line-height: 20px;
&:nth-child(1) {
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
color: #4d4949;
}
&:nth-child(2) {
width: 180px;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
color: #999191;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
td {
height: 42px;
box-sizing: border-box;
// text-align: center;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
color: #525966;
padding: 2px 0;
}
th {
height: 45px;
background-color: #f7f5f5;
font-size: 15px;
font-family: "Alibaba PuHuiTi";
font-weight: bold;
color: #4d4949;
.el-checkbox {
display: none;
}
}
}
::v-deep .el-table::before {
height: 0;
}
.tabs-btns {
display: flex;
align-items: center;
// justify-content: center;
.look {
display: flex;
// align-items: center;
margin-right: 30px;
cursor: pointer;
img {
width: 20px;
margin-right: 5px;
}
span {
font-size: 15px;
font-family: Alibaba PuHuiTi;
font-weight: 400;
color: #045ffd;
}
}
}
}
.pagination {
// margin-top: 10px;
}
}
}
::v-deep .conversionInfo {
.basicInfo,
.logisticsInfo {
.title {
display: flex;
align-items: center;
img {
width: 14px;
margin-right: 10px;
}
span {
font-size: 16px;
font-family: "Alibaba PuHuiTi";
font-weight: bold;
color: #4c4949;
}
}
.info {
margin-top: 20px;
display: grid;
grid-column: 1fr;
grid-row-gap: 20px;
.lists {
display: flex;
align-items: center;
justify-content: space-between;
.list-left,
.list-right {
flex: 1;
display: flex;
align-items: center;
div {
&:nth-child(1) {
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
color: #4c4949;
}
&:nth-child(2) {
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
color: #807a7a;
}
}
}
}
}
}
.logisticsInfo {
margin-top: 30px;
}
.btns {
margin-top: 30px;
display: flex;
justify-content: flex-end;
div {
width: 80px;
height: 36px;
border: 1px solid #f8414d;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-family: "Alibaba PuHuiTi";
font-weight: 400;
color: #f8414d;
cursor: pointer;
}
}
}
</style>