Browse Source

审核重复提交优化

youhua/chongzhi
ZhangYong 2 months ago
parent
commit
c86f0b94e9
  1. 34
      src/views/audit/bean/beanAudit.vue
  2. 40
      src/views/audit/gold/rechargeAudit.vue
  3. 43
      src/views/audit/gold/refundAudit.vue
  4. 1
      src/views/consume/bean/addBeanConsume.vue
  5. 1
      src/views/recharge/bean/addBeanRecharge.vue
  6. 7
      src/views/refund/gold/addCoinRefund.vue

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>
@ -114,13 +109,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>
@ -129,8 +129,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>
@ -145,7 +144,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>
@ -432,8 +431,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 = {
@ -445,12 +446,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('无权限')
}
@ -464,8 +467,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()) {
@ -484,6 +490,7 @@ const handleReject = async () => {
ElMessage.success('驳回操作成功')
rejectDialogVisible.value = false
await getRecharge()
cancelClicked.value = false
await getStats()
} catch (error) {
console.error('驳回操作失败', error)
@ -491,6 +498,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 {
const params = {
@ -312,19 +315,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()) {
@ -341,8 +348,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)
@ -350,6 +358,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)
}

7
src/views/refund/gold/addCoinRefund.vue

@ -81,12 +81,13 @@ const add = async function () {
taskGold: (Number(addRefund.value.taskGold) || 0) * 100,
sumGold: (Number(addRefund.value.sumGold) || 0) * 100
}
addDisabled.value = true
// POST
const result = await API({
url: '/refund/add',
data: processedRefund
})
addDisabled.value = false
if (result.code === 0) {
ElMessage.error(result.msg)
return
@ -100,6 +101,8 @@ const add = async function () {
//
}
}
//
const addDisabled = ref(false)
// 退
const addBefore = () => {
@ -499,7 +502,7 @@ onMounted(async function () {
</div>
<el-button type="success" @click="cancel()" style="margin-left: 200px">重置</el-button>
<el-button type="primary" @click="addBefore"> 提交</el-button>
<el-button type="primary" :disabled="addDisabled" @click="addBefore"> 提交</el-button>
</el-form>
<!-- 客户信息栏 -->

Loading…
Cancel
Save