<template>
<section>
<el-table
v-loading="loading"
:data="tableData"
size="mini"
style="width: 100%"
stripe
:row-key="getRowKeys"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
highlight-current-row
>
<el-table-column
type="selection"
:selectable="checkboxInit" // 是否可以勾选
:reserve-selection="true" // 分页数据勾选多行
width="55"
align="center"
></el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center">
<template slot-scope="scope">
<span class="fc_name" @click="goDetail(scope.row.id)">{{ scope.row.billNo }}</span>
</template>
</el-table-column>
<el-table-column prop="name" label="群组名称" align="center"></el-table-column>
<el-table-column prop="groupSource" label="群组来源" align="center">
<template slot-scope="scope">
<span>{{ groupSourceObj[scope.row.groupSource] }}</span>
</template>
</el-table-column>
<el-table-column prop="groupNum" label="群组规模" align="center"></el-table-column>
<el-table-column
prop="validityDate"
label="到期时间"
:formatter="validityFormatter"
align="center"
></el-table-column>
<el-table-column prop="createTime" label="创建时间" :formatter="createFormatter" align="center"></el-table-column>
<el-table-column prop="modifyTime" label="更新时间" :formatter="modifyFormatter" align="center"></el-table-column>
<el-table-column prop="status" label="状态" align="center">
<template slot-scope="scope">
<span>{{ statusObj[scope.row.status] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="200px">
<template slot-scope="scope">
<div v-if="scope.row.pid ===0">
<el-button type="text" @click="editFn(scope.row.id)">编辑</el-button>
<el-popconfirm
v-if="scope.row.status===0"
title="你确定要审核吗?"
icon="el-icon-info"
icon-color="red"
class="audit_button"
@onConfirm="auditFun(scope)"
>
<el-button slot="reference" type="text">审核</el-button>
</el-popconfirm>
<!-- 1启用; 2停用' -->
<el-popconfirm
v-if="scope.row.status===2"
title="你确定要启用吗?"
icon="el-icon-info"
icon-color="red"
class="audit_button"
@onConfirm="ableFun(scope)"
>
<el-button slot="reference" type="text">启用</el-button>
</el-popconfirm>
<el-popconfirm
v-if="scope.row.status===1"
title="你确定要停用吗?"
icon="el-icon-info"
icon-color="red"
class="audit_button"
@onConfirm="disableFun(scope)"
>
<el-button slot="reference" type="text">停用</el-button>
</el-popconfirm>
<el-popconfirm
title="你确定要删除吗?"
icon="el-icon-info"
icon-color="red"
class="delete_button"
@onConfirm="deleteFun(scope)"
>
<el-button slot="reference" type="text">删除</el-button>
</el-popconfirm>
<el-button type="text">分析</el-button>
<el-button type="text">复制</el-button>
</div>
</template>
</el-table-column>
</el-table>
</section>
</template>
<script>
import { dateFormatter } from '@/utils'
import {
auditUserGroup,
enableUserGroup,
disableUserGroup,
deleteUserGroup
} from '@/api/tenant'
export default {
name: 'List',
// 组件通讯
props: {
tableData: {
default: () => []
},
editPage: {
default: () => {}
},
loading: {
default: false
}
},
data() {
return {
statusObj: {
0: '待审核',
1: '已启用',
2: '未启用'
},
groupSourceObj: {
0: '交叉筛选',
1: '受众上传',
2: '受众交并',
3: '标签筛选',
4: '行为筛选',
5: '模型筛选'
}
}
},
methods: {
checkboxInit(row) {
if (row.pid !== 0 || row.groupSource === 2) {
return 0 // 不可勾选
} else {
return 1
}
},
validityFormatter(row, column) {
if (!row.validityDate) {
return ''
}
return dateFormatter(row.validityDate, 1)
},
createFormatter(row, column) {
if (!row.createTime) {
return ''
}
return dateFormatter(row.createTime, 1)
},
modifyFormatter(row, column) {
if (!row.modifyTime) {
return ''
}
return dateFormatter(row.modifyTime)
},
// 审核
async auditFun(scope) {
const res = await auditUserGroup(scope.row.id)
if (res.code === 0) {
this.$message.success('审核成功')
this.$emit('update')
this.dialogVisible = false
}
},
// 启用
async ableFun(scope) {
const res = await enableUserGroup({ id: scope.row.id })
if (res.code === 0) {
this.$message.success('启用成功')
this.$emit('update')
this.dialogVisible = false
}
},
// 停用
async disableFun(scope) {
const res = await disableUserGroup({ id: scope.row.id })
if (res.code === 0) {
this.$message.success('停用成功')
this.$emit('update')
this.dialogVisible = false
}
},
// 删除
async deleteFun(scope) {
const res = await deleteUserGroup(scope.row.id)
if (res.code === 0) {
this.$message.success('删除成功')
this.$emit('update')
this.dialogVisible = false
}
},
getRowKeys(row) {
return row.id
},
editFn(id) {
this.$router.push({
path: `${id}/edit`,
query: {
page: this.editPage.pageNum,
size: this.editPage.pageSize
}
})
},
/**
* 跳转到标签详情页面
*/
goDetail(id) {
this.$router.push({
path: `${id}/detail`,
query: {
page: this.editPage.pageNum,
size: this.editPage.pageSize
}
})
}
}
}
</script>
<style lang='scss' scoped>
.audit_button {
margin: 0 0px 0 10px;
}
.delete_button {
margin: 0 10px 0;
}
</style>