老产品前端代码
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.
 
 
 
 

354 lines
9.1 KiB

<template>
<div class="dialog-h-content scroll-h">
<div class="div_table">
<el-button size="small"
class="diy-button--add"
@click="handleReject">审核拒绝</el-button>
<el-button size="small"
class="diy-button--add"
@click="handleAudit('passed')">审核通过</el-button>
<el-table class="table"
:data="tableData"
border
@selection-change="selectionChange"
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column type="selection"
:selectable="checkSelect"
width="55">
</el-table-column>
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50">
</el-table-column>
<el-table-column prop="realName"
header-align="center"
align="center"
label="姓名"
:show-overflow-tooltip="true"
width="150">
</el-table-column>
<el-table-column prop="mobile"
header-align="center"
align="center"
label="手机"
min-width="120">
</el-table-column>
<el-table-column prop="idNum"
header-align="center"
align="center"
label="身份证"
min-width="180">
</el-table-column>
<el-table-column prop="nickName"
header-align="center"
align="center"
label="昵称"
:show-overflow-tooltip="true"
width="120">
</el-table-column>
<el-table-column prop="signUpActNum"
header-align="center"
align="center"
label="报名活动个数"
width="120">
</el-table-column>
<el-table-column prop="signInActNum"
header-align="center"
align="center"
label="实际参加活动个数"
width="140">
</el-table-column>
<el-table-column prop="obtainPointsActNum"
header-align="center"
align="center"
label="获得积分活动个数"
width="140">
</el-table-column>
<el-table-column prop="signUpTime"
header-align="center"
align="center"
label="报名时间"
width="180">
</el-table-column>
<el-table-column prop="statusShow"
header-align="center"
align="center"
label="状态"
width="120">
</el-table-column>
</el-table>
</div>
<!-- 拒绝理由 -->
<el-dialog :visible.sync="cancleShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:append-to-body="true"
:title="'拒绝理由'"
width="550px"
top="5vh"
class="dialog-h"
@closed="cancleDiaClose">
<div style="padding:30px">
<el-input class="item_width_5"
type="textarea"
maxlength="100"
show-word-limit
:rows="4"
placeholder="请输入拒绝理由"
v-model="cancelReason"></el-input>
<div style="display:flex; justify-content: center;margin-top:20px">
<el-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="cancleDiaClose">取消</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="handleAudit('refused')">确定</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // 引入Loading服务
import { requestPost } from '@/js/dai/request'
let loading // 加载动画
export default {
data () {
return {
tableLoading: false,
actId: '',
tableData: [],
actUserRelationIdList: [],
auditList: [],
cancelReason: '',
cancleShow: false,//拒绝审核
}
},
components: {},
mounted () {
},
methods: {
async initTable (actId) {
this.actId = actId
await this.loadTable()
},
checkSelect (row, index) {
//待审核:auditing;已通过:passed;已拒绝:refused;已取消:canceled
let isChecked = false;
if (row.status === 'auditing') { // 判断里面是否存在某个参数
isChecked = true
} else {
isChecked = false
}
return isChecked
},
selectionChange (selection) {
this.actUserRelationIdList = []
this.actUserRelationIdList = selection
},
//加载form
async loadTable () {
this.tableLoading = true
const url = '/heart/work/actuser/userlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/work/actuser/userlist'
let params = {
actId: this.actId
}
const { data, code, msg } = await requestPost(url, params)
this.tableLoading = false
if (code === 0) {
if (data.list && data.list.length > 0) {
data.list.forEach(item => {
//待审核:auditing;已通过:passed;已拒绝:refused;已取消:canceled
if (item.status === 'auditing') {
item.statusShow = '待审核'
} else if (item.status === 'passed') {
item.statusShow = '已通过'
} else if (item.status === 'refused') {
item.statusShow = '已拒绝'
} else if (item.status === 'canceled') {
item.statusShow = '已取消'
} else {
item.statusShow = ''
}
});
this.tableData = [...data.list]
} else {
this.tableData = []
}
} else {
this.$message.error(msg)
}
},
handleReject () {
if (this.actUserRelationIdList.length === 0) {
this.$message({
type: "info",
message: "请选择人员"
});
return false
}
this.cancleShow = true
},
async handleAudit (type) {
if (this.actUserRelationIdList.length === 0) {
this.$message({
type: "info",
message: "请选择人员"
});
return false
}
if (type === 'refused' && !this.cancelReason) {
this.$message({
type: "info",
message: "请填写拒绝理由"
});
return false
}
this.auditList = []
this.actUserRelationIdList.forEach(item => {
let obj = {
type: type,
actUserRelationId: item.actUserRelationId,
rejectReason: this.cancelReason
}
this.auditList.push(obj)
});
const url = "/heart/work/actuser/audit-user"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/work/actuser/audit-user"
let params = [...this.auditList]
console.log(params)
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message({
type: "success",
message: "操作成功"
});
this.cancelReason = ''
this.cancleShow = false
this.loadTable()
} else {
this.$message.error(msg)
}
},
cancleDiaClose () {
this.cancelReason = ''
this.cancleShow = false//审核拒绝
},
handleCancle () {
this.$emit('dialogCancle')
},
// 开启加载动画
startLoading () {
loading = Loading.service({
lock: true, // 是否锁定
text: '正在加载……', // 加载中需要显示的文字
background: 'rgba(0,0,0,.7)' // 背景颜色
})
},
// 结束加载动画
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return (this.clientHeight - 360)
},
...mapGetters(['clientHeight'])
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
.item_width_1 {
width: 250px;
}
.item_width_2 {
width: 100px;
}
.div_table {
margin-top: 10px;
.table {
margin-top: 10px;
}
}
.div_btn {
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
</style>