2 Commits

  1. 142
      src/views/audit/bean/beanAudit.vue
  2. 181
      src/views/audit/gold/rechargeAudit.vue
  3. 47
      src/views/audit/gold/refundAudit.vue
  4. 2
      src/views/consume/bean/articleVideo.vue
  5. 2
      src/views/recharge/bean/addBeanRecharge.vue

142
src/views/audit/bean/beanAudit.vue

@ -1,35 +1,47 @@
<template>
<el-card style="margin-bottom: 0.5vh;width:82vw">
<div style="margin-bottom: 1vh">
<el-text size="large">精网号</el-text>
<el-input v-model="searchForm.jwcode" placeholder="请输入精网号" style="width: 12vw;margin-right:1vw" clearable />
<el-text size="large">所属地区</el-text>
<el-cascader v-model="selectedMarkets" :options="marketOptions" placeholder="请选择所属地区" clearable
style="width: 12vw" @change="handleMarketChange" />
</div>
<el-card class="card1" style="margin-bottom: 0.5vh;">
<el-col style="margin-bottom: 1vh">
<div class="select">
<div class="selectRow">
<el-text class="text" size="large">精网号</el-text>
<el-input v-model="searchForm.jwcode" placeholder="请输入精网号" style="width: 12vw;margin-right:1vw" clearable />
</div>
<div class="selectRow">
<el-text class="text" size="large">所属地区</el-text>
<el-cascader v-model="selectedMarkets" :options="marketOptions" placeholder="请选择所属地区" clearable
style="width: 12vw" @change="handleMarketChange" />
</div>
</div>
</el-col>
<el-col>
<el-text size="large" style="width: 80px" v-show="checkTab === 'pending'">提交时间</el-text>
<el-text size="large" style="width: 80px" v-show="checkTab === 'reject' || checkTab === 'pass'">审核时间</el-text>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="" start-placeholder="开始时间"
end-placeholder="结束时间" style="width: 25vw;margin-right:1vw" @change="handleDatePickerChange"
:default-time="defaultTime" />
<el-button @click="getToday()" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>
<el-button @click="getYesterday()" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"></el-button>
<el-button @click="get7Days()" :type="activeTimeRange === '7days' ? 'primary' : ''">近7天</el-button>
<el-button type="success" @click="resetSearch">重置</el-button>
<el-button type="primary" @click="handleSearch">查询</el-button>
<div class="select">
<div class="selectRow" style="width: 36vw;">
<el-text class="text" size="large" v-show="checkTab === 'pending'">提交时间</el-text>
<el-text size="large" style="width: 25vw;margin-right:1vw"
v-show="checkTab === 'reject' || checkTab === 'pass'">审核时间</el-text>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="" start-placeholder="开始时间"
end-placeholder="结束时间" style="width: 25vw;margin-right:1vw" @change="handleDatePickerChange"
:default-time="defaultTime" />
<el-button @click="getToday()" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>
<el-button @click="getYesterday()" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"></el-button>
<el-button @click="get7Days()" :type="activeTimeRange === '7days' ? 'primary' : ''">近7天</el-button>
</div>
<div class="selectRow" style="justify-content: flex-start;">
<el-button type="success" @click="resetSearch">重置</el-button>
<el-button type="primary" @click="handleSearch">查询</el-button>
</div>
</div>
</el-col>
</el-card>
<el-card >
<el-card class="card2">
<el-tabs v-model="checkTab" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="pending" v-if="hasbeanWait&&hasbeanWaitShow"></el-tab-pane>
<el-tab-pane label="待审核" name="pending" v-if="hasbeanWait && hasbeanWaitShow"></el-tab-pane>
<el-tab-pane label="已通过" name="pass" v-if="hasbeanThrough"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject" v-if="hasbeanReject"></el-tab-pane>
</el-tabs>
<div>
<div class="goldStatistics">
总条数{{ format3(stats.num) }}&nbsp;&nbsp;&nbsp;&nbsp;
总金豆数{{ format3(stats.beanNum) }}金豆&nbsp;&nbsp;&nbsp;&nbsp;
付费金豆{{ format3(stats.permanentBean) }}金豆&nbsp;&nbsp;&nbsp;&nbsp;
@ -61,7 +73,8 @@
{{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }}
</template>
</el-table-column>
<el-table-column v-if="checkTab === 'pending' &&(hasbeanWaitThough||hasbeanWaitReject)" fixed="right" prop="operation" label="操作" width="400px">
<el-table-column v-if="checkTab === 'pending' && (hasbeanWaitThough || hasbeanWaitReject)" fixed="right"
prop="operation" label="操作" width="400px">
<template #default="scope">
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
@ -77,7 +90,8 @@
</el-button>
</template>
</el-popconfirm>
<el-button v-if="hasbeanWaitReject" :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
<el-button v-if="hasbeanWaitReject" :disabled="clicked || cancelClicked" type="primary" text
@click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -142,7 +156,7 @@ const hasbeanWaitThough = ref(false) // 金豆审核通过(对应beanWaitThou
const hasbeanWaitReject = ref(false) // beanWaitReject:47
//
const initPermissions = async() => {
const initPermissions = async () => {
if (!menuTree.value || !menuTree.value.length) return;
hasbeanWait.value = hasMenuPermission(menuTree.value, permissionMapping.beanWait);
hasbeanThrough.value = hasMenuPermission(menuTree.value, permissionMapping.beanThrough);
@ -288,7 +302,7 @@ const getStats = async () => {
}
//
const handleApprove = async (row) => {
if (!hasbeanWaitThough) {
if (!hasbeanWaitThough) {
ElMessage.error('暂无权限')
return
}
@ -458,7 +472,7 @@ const throttledHandleApprove = _.throttle(handleApprove, 5000, {
trailing: false
})
const showRejectDialog = (row) => {
if (!hasbeanWaitReject) {
if (!hasbeanWaitReject) {
ElMessage.error('暂无权限')
return
}
@ -501,12 +515,12 @@ const trimJwCode = () => {
}
onMounted(async () => {
await initPermissions()
if(hasbeanWaitShow.value){
if (hasbeanWaitShow.value) {
searchForm.value.status = 0
}else if(hasbeanThrough.value){
} else if (hasbeanThrough.value) {
searchForm.value.status = 1
}else if(hasbeanReject){
searchForm.value.status = 2
} else if (hasbeanReject) {
searchForm.value.status = 2
}
getmarkets()
await get()
@ -515,4 +529,68 @@ onMounted(async () => {
})
</script>
<style scoped></style>
<style scoped lang="scss">
/* 搜索的卡片样式 */
.card1 {
background: #F3FAFE;
}
/* 表单的卡片样式 */
.card2 {
background: #E7F4FD;
}
/* 充值新币总数等等 */
.goldStatistics {
margin-left: 1vw;
margin-bottom: 1vh;
color: #000000;
font-family: "PingFang SC";
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: 20px;
}
/* 表头/表体 wrapper 与 table body 单元格 */
:deep(.el-table__header-wrapper),
:deep(.el-table__body-wrapper),
:deep(.el-table__cell),
/* 表格 */
:deep(.el-table__body td) {
background-color: #F3FAFE !important;
}
/* 表头 */
:deep(.el-table__header th) {
background-color: #F3FAFE !important;
}
/* 鼠标悬停 */
:deep(.el-table__row:hover > .el-table__cell) {
background-color: #E5EBFE !important;
}
.select {
display: flex;
.selectRow {
width: 17vw;
display: flex;
align-items: center;
justify-content: center;
padding: 0 0.5vw;
.text {
width: 5vw;
font-size: 15px;
}
.selectContent {
flex: 1;
}
}
}
</style>

181
src/views/audit/gold/rechargeAudit.vue

@ -1,5 +1,5 @@
<template>
<el-card class="card1" style="margin-bottom: 0.5vh;">
<el-card style="margin-bottom: 0.5vh;">
<el-col style="margin-bottom: 1vh">
<div class="select">
<div class="selectRow">
@ -47,12 +47,12 @@
</div>
</el-col>
</el-card>
<el-card class="card2">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="wait" v-if="hasrechargeWait && hasrechargeWaitShow"></el-tab-pane>
<el-card>
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="wait" v-if="hasrechargeWait&&hasrechargeWaitShow"></el-tab-pane>
<el-tab-pane label="已通过" name="pass" v-if="hasrechargeThrough"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject" v-if="hasrechargeReject"></el-tab-pane>
<div class="goldStatistics">
<div>
<!-- 总条数{{ format3(stats.totalNum) }}&nbsp;&nbsp;&nbsp;&nbsp;-->
充值新币{{ format3(stats.permanentGolds) }}新币&nbsp;&nbsp;&nbsp;&nbsp;
@ -119,8 +119,7 @@
{{ moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
<el-table-column v-if="activeName === 'wait' && (hasrechargeWaitThough || hasrechargeWaitReject) && hasrechargeWaitShow"
fixed="right" prop="operation" label="操作" width="150px">
<el-table-column v-if="activeName === 'wait'&&(hasrechargeWaitThough||hasrechargeWaitReject)&&hasrechargeWaitShow" fixed="right" prop="operation" label="操作" width="150px">
<template #default="scope">
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
@ -136,8 +135,7 @@
</el-button>
</template>
</el-popconfirm>
<el-button v-if="hasrechargeWaitReject" :disabled="clicked || cancelClicked" type="primary" text
@click="showRejectDialog(scope.row)">
<el-button v-if="hasrechargeWaitReject" :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -191,7 +189,7 @@ const hasrechargeWaitThough = ref(false) // 充值审核通过
const hasrechargeWaitReject = ref(false) //
//
const initPermissions = async () => {
const initPermissions = async() => {
if (!menuTree.value || !menuTree.value.length) return;
hasrechargeThrough.value = hasMenuPermission(menuTree.value, permissionMapping.rechargeThrough);
hasrechargeReject.value = hasMenuPermission(menuTree.value, permissionMapping.rechargeReject);
@ -356,7 +354,7 @@ const getRecharge = async function (val) {
}
const getStats = async () => {
if (!hasrechargeWaitShow) {
if (!hasrechargeWaitShow) {
return
}
try {
@ -482,21 +480,21 @@ const adminReject = async function () {
const handleClick = function (tab, event) {
activeName.value = tab.props.name
if (tab.props.name === 'wait') {
if (!hasrechargeWait) {
if(!hasrechargeWait){
ElMessage.error('暂无权限')
return
}
if (hasrechargeWaitShow) {
if(hasrechargeWaitShow){
adminWait()
}
} else if (tab.props.name === 'pass') {
if (!hasrechargeThrough) {
if(!hasrechargeThrough){
ElMessage.error('暂无权限')
return
}
adminPass()
} else if (tab.props.name === 'reject') {
if (!hasrechargeReject) {
if(!hasrechargeReject){
ElMessage.error('暂无权限')
return
}
@ -527,35 +525,35 @@ const handlePagination = (type, val) => {
const clicked = ref(false);
//
const handleApprove = async (row) => {
if (!hasrechargeWaitThough) {
ElMessage.error('暂无权限')
return
}
if(!hasrechargeWaitThough){
ElMessage.error('暂无权限')
return
}
clicked.value = true
try {
const params = {
orderCode: row.orderCode,
auditId: adminData.value.id,
action: 1,
rejectReason: ''
try {
const params = {
orderCode: row.orderCode,
auditId: adminData.value.id,
action: 1,
rejectReason: ''
}
await request({ url: '/audit/audit', data: params })
ElMessage.success('审核通过成功')
await getRecharge()
clicked.value = false
await getStats()
} catch (error) {
console.error('审核通过失败', error)
ElMessage.error('操作失败')
}
await request({ url: '/audit/audit', data: params })
ElMessage.success('审核通过成功')
await getRecharge()
clicked.value = false
await getStats()
} catch (error) {
console.error('审核通过失败', error)
ElMessage.error('操作失败')
}
}
const showRejectDialog = (row) => {
if (!hasrechargeWaitReject) {
ElMessage.error('暂无权限')
return
}
if(!hasrechargeWaitReject){
ElMessage.error('暂无权限')
return
}
currentRecord.value = row
rejectReason.value = ''
rejectDialogVisible.value = true
@ -564,34 +562,34 @@ const showRejectDialog = (row) => {
const cancelClicked = ref(false)
//
const handleReject = async () => {
if (!hasrechargeWaitReject) {
ElMessage.error('暂无权限')
return
}
if(!hasrechargeWaitReject){
ElMessage.error('暂无权限')
return
}
cancelClicked.value = true
if (!rejectReason.value.trim()) {
ElMessage.warning('请输入驳回理由')
return
}
try {
const params = {
orderCode: currentRecord.value.orderCode,
auditId: adminData.value.id,
action: 2,
rejectReason: rejectReason.value
if (!rejectReason.value.trim()) {
ElMessage.warning('请输入驳回理由')
return
}
try {
const params = {
orderCode: currentRecord.value.orderCode,
auditId: adminData.value.id,
action: 2,
rejectReason: rejectReason.value
}
await request({ url: '/audit/audit', data: params })
ElMessage.success('驳回操作成功')
rejectDialogVisible.value = false
await getRecharge()
cancelClicked.value = false
await getStats()
} catch (error) {
console.error('驳回操作失败', error)
ElMessage.error('操作失败')
}
await request({ url: '/audit/audit', data: params })
ElMessage.success('驳回操作成功')
rejectDialogVisible.value = false
await getRecharge()
cancelClicked.value = false
await getStats()
} catch (error) {
console.error('驳回操作失败', error)
ElMessage.error('操作失败')
}
}
//
const handleSortChange = (column) => {
@ -702,11 +700,11 @@ const formatTime = (val) => val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : ''
//
onMounted(async function () {
await initPermissions()
if (hasrechargeWaitShow.value) {
if(hasrechargeWaitShow.value){
rechargeAudit.value.auditStatus = '0'
} else if (hasrechargeThrough.value) {
}else if(hasrechargeThrough.value){
rechargeAudit.value.auditStatus = '1'
} else if (hasrechargeReject) {
}else if(hasrechargeReject){
rechargeAudit.value.auditStatus = '2'
}
await getActivity()
@ -718,7 +716,6 @@ onMounted(async function () {
</script>
<style scoped lang="scss">
//
.pagination {
display: flex;
margin-top: 0.5vh;
@ -728,56 +725,6 @@ onMounted(async function () {
display: flex;
}
//
.card1 {
background: #F3FAFE;
}
//
.card2 {
background: #E7F4FD;
}
//
.goldStatistics {
margin-left: 1vw;
margin-bottom: 1vh;
color: #000000;
font-family: "PingFang SC";
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: 20px;
}
/* 表头/表体 wrapper 与 table body 单元格 */
//
// :deep(.el-table__body),
// :deep(.el-table__header),
// :deep(.el-table__body tbody),
// :deep(.el-table__body tr),
// :deep(.el-table__row),
:deep(.el-table__header-wrapper),
:deep(.el-table__body-wrapper),
:deep(.el-table__cell),
/* 表格 */
:deep(.el-table__body td) {
background-color: #F3FAFE !important;
}
/* 表头 */
:deep(.el-table__header th) {
background-color: #F3FAFE !important;
}
/* 鼠标悬停 */
:deep(.el-table__row:hover > .el-table__cell) {
background-color: #E5EBFE !important;
}
.select {
display: flex;

47
src/views/audit/gold/refundAudit.vue

@ -1,5 +1,5 @@
<template>
<el-card style="margin-bottom: 0.5vh;">
<el-card class="card1" style="margin-bottom: 0.5vh;">
<el-col style="margin-bottom: 1vh">
<div class="select">
<div class="selectRow">
@ -49,14 +49,14 @@
</el-col>
</el-card>
<el-card >
<el-card class="card2">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="wait" v-if="hasrefundWait&&hasrefundWaitShow"></el-tab-pane>
<el-tab-pane label="已通过" name="pass" v-if="hasrefundThrough"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject" v-if="hasrefundReject"></el-tab-pane>
</el-tabs>
<div>
<div class="goldStatistics">
退款总金币数{{ format3((stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2))
}}金币&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(stats.permanentGolds.toFixed(2)) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
@ -639,6 +639,47 @@ onMounted(async () => {
display: flex;
}
//
.card1 {
background: #F3FAFE;
}
//
.card2 {
background: #E7F4FD;
}
//
.goldStatistics {
margin-left: 1vw;
margin-bottom: 1vh;
color: #000000;
font-family: "PingFang SC";
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: 20px;
}
//
:deep(.el-table__header-wrapper),
:deep(.el-table__body-wrapper),
:deep(.el-table__cell),
/* 表格 */
:deep(.el-table__body td) {
background-color: #F3FAFE !important;
}
/* 表头 */
:deep(.el-table__header th) {
background-color: #F3FAFE !important;
}
/* 鼠标悬停 */
:deep(.el-table__row:hover > .el-table__cell) {
background-color: #E5EBFE !important;
}
.select {
display: flex;

2
src/views/consume/bean/articleVideo.vue

@ -494,7 +494,7 @@ const getTagText = (state) => {
</div>
<div style="width: 12vw; display:flex; align-items:center; justify-content: center;">
<el-text>作者</el-text>
<el-input v-model="beanConsumeArticle.author"style="width:8vw; margin-left: 0.5vw;" placeholder="请输入作者" clearable />
<el-input v-model="beanConsumeArticle.author" style="width:8vw; margin-left: 0.5vw;" placeholder="请输入作者" clearable />
</div>
</div>
</el-col>

2
src/views/recharge/bean/addBeanRecharge.vue

@ -247,7 +247,7 @@ const handleAddForm = async () => {
</div>
</div>
</template>
<style scoped>
<style scoped lang="scss">
.userAndform {
width: 80vw;
height: 80vh;

Loading…
Cancel
Save