Browse Source

金币金豆审核防止重复点击

youhua/chongzhi
ZhangYong 2 months ago
parent
commit
922acddc24
  1. 4
      .env.development
  2. 34
      src/views/audit/bean/beanAudit.vue
  3. 40
      src/views/audit/gold/rechargeAudit.vue
  4. 43
      src/views/audit/gold/refundAudit.vue
  5. 1
      src/views/consume/bean/addBeanConsume.vue
  6. 1
      src/views/recharge/bean/addBeanRecharge.vue

4
.env.development

@ -1,4 +1,4 @@
# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
# 测试环境
# VITE_API_BASE='http://54.255.212.181:10704/'
# 正式环境
@ -11,6 +11,6 @@ VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload
# zhangyong
# VITE_API_BASE='http://192.168.3.83:8081/'
# 本地
VITE_API_BASE='http://localhost:8081/'
# VITE_API_BASE='http://localhost:8081/'
# sunjiabei
# VITE_API_BASE='http://192.168.0.113:8081/'

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

@ -59,15 +59,20 @@
<el-table-column v-if="checkTab === 'pending'" fixed="right" prop="operation" label="操作" width="400px">
<template #default="scope">
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="throttledHandleApprove(scope.row)">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
<template #reference>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2" type="primary" text>
<el-button :disabled="clicked || cancelClicked" type="primary" text>
通过
</el-button>
</template>
<template #actions="{ confirm }">
<el-button size="small">取消</el-button>
<el-button type="primary" size="small" :disabled="clicked" @click="confirm">
确认
</el-button>
</template>
</el-popconfirm>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2" type="primary" text
@click="showRejectDialog(scope.row)">
<el-button :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -247,8 +252,10 @@ const getStats = async () => {
ElMessage.error('无此权限')
}
}
//
const clicked = ref(false);
//
const handleApprove = async (row) => {
clicked.value = true
if (findMenuById(menuTree.value, permissionMapping.Golden_Bean_Recharge_Approval)) {
try {
const params = {
@ -257,18 +264,23 @@ const handleApprove = async (row) => {
}
await API({ url: '/beanAudit/status1', data: params })
ElMessage.success('审核通过成功')
get()
getStats()
await get()
clicked.value = false
await getStats()
} catch (error) {
console.error('审核通过失败', error)
ElMessage.error('操作失败')
}
} else {
ElMessage.error('无此权限')
clicked.value = false
}
}
//
//
const cancelClicked = ref(false)
//
const handleReject = async () => {
cancelClicked.value = true
if (findMenuById(menuTree.value, permissionMapping.Golden_Bean_Recharge_Approval)) {
if (!reason.value.trim()) {
ElMessage.warning('请输入驳回理由')
@ -283,14 +295,16 @@ const handleReject = async () => {
await API({ url: '/beanAudit/status2', data: params })
ElMessage.success('驳回成功')
rejectVisible.value = false
get()
getStats()
await get()
cancelClicked.value = false
await getStats()
} catch (error) {
console.error('驳回失败', error)
ElMessage.error('操作失败')
}
} else {
ElMessage.error('无此权限')
cancelClicked.value = false
}
}
const getToday = function () {

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

@ -2,24 +2,20 @@
<el-card style="margin-bottom: 0.5vh;margin-top: 0.5vh">
<el-col style="margin-bottom: 0.5vh">
<el-text size="large">精网号</el-text>
<el-input v-model="rechargeAudit.jwcode" placeholder="请输入精网号" style="width: 12vw;margin-right:1vw"
clearable/>
<el-input v-model="rechargeAudit.jwcode" placeholder="请输入精网号" style="width: 12vw;margin-right:1vw" clearable />
<el-text size="large">活动名称</el-text>
<el-select v-model="rechargeAudit.activity" placeholder="请选择活动名称" style="width: 12vw;margin-right:1vw"
clearable>
<el-select v-model="rechargeAudit.activity" placeholder="请选择活动名称" style="width: 12vw;margin-right:1vw" clearable>
<el-option v-for="item in activity" :key="item" :label="item" :value="item" />
</el-select>
<el-text size="large">支付方式</el-text>
<el-select v-model="rechargeAudit.payModel" placeholder="请选择支付方式" style="width: 12vw;margin-right:1vw"
clearable>
<el-select v-model="rechargeAudit.payModel" placeholder="请选择支付方式" style="width: 12vw;margin-right:1vw" clearable>
<el-option v-for="item in payModel" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-text size="large">所属地区</el-text>
<el-cascader v-model="selectedMarketPath" :options="market" placeholder="请选择所属地区" clearable
style="width:12vw"
<el-cascader v-model="selectedMarketPath" :options="market" placeholder="请选择所属地区" clearable style="width:12vw"
@change="handleMarketChange" />
</el-col>
<el-col>
@ -29,8 +25,7 @@
</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" class="time-controls" style="margin-right:1vw;width:25vw"
@change="handleDatePickerChange"
:default-time="defaultTime" :disabled-date="disabledDate"/>
@change="handleDatePickerChange" :default-time="defaultTime" :disabled-date="disabledDate" />
<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>
@ -115,13 +110,18 @@
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
<template #reference>
<el-button :disabled="scope.row.auditStatus === 1 || scope.row.auditStatus === 2" type="primary" text>
<el-button :disabled="clicked || cancelClicked" type="primary" text>
通过
</el-button>
</template>
<template #actions="{ confirm }">
<el-button size="small">取消</el-button>
<el-button type="primary" size="small" :disabled="clicked" @click="confirm">
确认
</el-button>
</template>
</el-popconfirm>
<el-button :disabled="scope.row.auditStatus === 1 || scope.row.auditStatus === 2" type="primary" text
@click="showRejectDialog(scope.row)">
<el-button :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -130,8 +130,7 @@
</el-table>
<div class="pagination">
<el-pagination :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePagination('size', $event)"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePagination('size', $event)"
@current-change="handlePagination('page', $event)"></el-pagination>
</div>
</el-card>
@ -146,7 +145,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="rejectDialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleReject">确定</el-button>
<el-button :disabled="cancelClicked" type="primary" @click="handleReject">确定</el-button>
</span>
</template>
</el-dialog>
@ -433,8 +432,10 @@ const handlePagination = (type, val) => {
getRecharge()
getStats()
}
const clicked = ref(false);
//
const handleApprove = async (row) => {
clicked.value = true
if (findMenuById(menuTree.value, permissionMapping.Recharge_Approval)) {
try {
const params = {
@ -446,12 +447,14 @@ const handleApprove = async (row) => {
await request({ url: '/audit/audit', data: params })
ElMessage.success('审核通过成功')
await getRecharge()
clicked.value = false
await getStats()
} catch (error) {
console.error('审核通过失败', error)
ElMessage.error('操作失败')
}
} else {
clicked.value = false
ElMessage.error('无权限')
}
@ -465,8 +468,11 @@ const showRejectDialog = (row) => {
ElMessage.error('无权限')
}
}
//
const cancelClicked = ref(false)
//
const handleReject = async () => {
cancelClicked.value = true
if (findMenuById(menuTree.value, permissionMapping.Recharge_Approval)) {
if (!rejectReason.value.trim()) {
@ -485,6 +491,7 @@ const handleReject = async () => {
ElMessage.success('驳回操作成功')
rejectDialogVisible.value = false
await getRecharge()
cancelClicked.value = false
await getStats()
} catch (error) {
console.error('驳回操作失败', error)
@ -492,6 +499,7 @@ const handleReject = async () => {
}
} else {
ElMessage.error('无权限')
cancelClicked.value = false
}
}
//

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

@ -5,8 +5,7 @@
<el-input v-model="searchForm.jwcode" placeholder="请输入精网号" style="width: 12vw;margin-right:1vw" clearable />
<el-text size="large">商品名</el-text>
<el-select v-model="searchForm.goodsName" placeholder="请输入商品名" style="width: 12vw;margin-right:1vw"
clearable>
<el-select v-model="searchForm.goodsName" placeholder="请输入商品名" style="width: 12vw;margin-right:1vw" clearable>
<el-option v-for="item in refundGoodsOptions" :key="item" :label="item" :value="item"></el-option>
</el-select>
@ -17,8 +16,7 @@
</el-select>
<el-text size="large">所属地区</el-text>
<el-cascader v-model="selectedMarketPath" :options="market" placeholder="请选择所属地区" clearable
style="width:12vw"
<el-cascader v-model="selectedMarketPath" :options="market" placeholder="请选择所属地区" clearable style="width:12vw"
@change="handleMarketChange" />
</el-col>
<el-col>
@ -26,9 +24,8 @@
{{ activeName === 'wait' ? '提交时间:' : '审核时间:' }}
</el-text>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="" start-placeholder="开始时间"
class="time-controls"
end-placeholder="结束时间" style="margin-right:1vw;width:25vw" @change="handleDatePickerChange"
:default-time="defaultTime" :disabled-date="disabledDate"/>
class="time-controls" end-placeholder="结束时间" style="margin-right:1vw;width:25vw"
@change="handleDatePickerChange" :default-time="defaultTime" :disabled-date="disabledDate" />
<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>
@ -111,13 +108,18 @@
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
<template #reference>
<el-button :disabled="scope.row.auditStatus === 1 || scope.row.auditStatus === 2" type="primary" text>
<el-button :disabled="clicked || cancelClicked" type="primary" text>
通过
</el-button>
</template>
<template #actions="{ confirm }">
<el-button size="small">取消</el-button>
<el-button type="primary" size="small" :disabled="clicked" @click="confirm">
确认
</el-button>
</template>
</el-popconfirm>
<el-button :disabled="scope.row.auditStatus === 1 || scope.row.auditStatus === 2" type="primary" text
@click="showRejectDialog(scope.row)">
<el-button :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -125,8 +127,7 @@
</el-table-column>
</el-table>
<el-pagination class="pagination" v-model:current-page="pagination.pageNum" v-model:page-size="pagination.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="pagination.total"
@size-change="handlePageSizeChange"
layout="total, sizes, prev, pager, next, jumper" :total="pagination.total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</el-card>
@ -300,8 +301,10 @@ const get = async function (val) {
console.error('获取数据失败', error)
}
}
const clicked = ref(false);
//
const handleApprove = async (row) => {
clicked.value = true
if (findMenuById(menuTree.value, permissionMapping.Refund_Approval)) {
try {
@ -313,19 +316,23 @@ const handleApprove = async (row) => {
}
await API({ url: '/audit/audit', data: params })
ElMessage.success('审核通过成功')
get()
getStats()
await get()
clicked.value = false
await getStats()
} catch (error) {
console.error('审核通过失败', error)
ElMessage.error('操作失败')
}
} else {
ElMessage.warning('没有权限')
clicked.value = false
}
}
//
const cancelClicked = ref(false)
//
const handleReject = async () => {
cancelClicked.value = true
if (findMenuById(menuTree.value, permissionMapping.Refund_Approval)) {
if (!rejectReason.value.trim()) {
@ -342,8 +349,9 @@ const handleReject = async () => {
await API({ url: '/audit/audit', data: params })
ElMessage.success('驳回成功')
rejectDialogVisible.value = false
get()
getStats()
await get()
cancelClicked.value = false
await getStats()
console.log('看看驳回参数', params)
} catch (error) {
console.error('驳回失败', error)
@ -351,6 +359,7 @@ const handleReject = async () => {
}
} else {
ElMessage.warning('没有权限')
cancelClicked.value = false
}
}

1
src/views/consume/bean/addBeanConsume.vue

@ -203,6 +203,7 @@ const handleConsumeForm = async () => {
remark: '',
adminName: ''
}
user.value = {}
}else{
ElMessage.error(result.msg)
}

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

@ -188,6 +188,7 @@ const handleAddForm = async () => {
remark: '',
adminName: ''
}
user.value = {}
}else{
ElMessage.error(result.msg)
}

Loading…
Cancel
Save