1.添加 防止重复提交

This commit is contained in:
Wang Chen Chen
2023-10-31 16:10:55 +08:00
parent a6e89315ed
commit 5eb49e0af3
15 changed files with 35 additions and 17 deletions

View File

@@ -53,4 +53,5 @@ const props = defineProps<Props>()
.card-body {
font-size: 12px;
}
}</style>
}
</style>

View File

@@ -8,6 +8,8 @@ export function loadDirectives(app: App) {
app.directive("has", permission)
// example: v-admin
app.directive("admin", adminFlag)
// example: v-preventReClick
app.directive("preventReClick", preventReClick)
}
/** 权限指令,和权限判断函数 checkPermission 功能类似 */
@@ -37,3 +39,18 @@ const adminFlag: Directive = {
}
}
}
/** 防止重复请求 指令 */
const preventReClick: Directive = {
mounted(el, binding) {
const { value } = binding
el.addEventListener("click", () => {
el.disabled = true
el.loading = true
setTimeout(() => {
el.disabled = false
el.loading = false
}, value || 3000)
})
}
}

View File

@@ -66,7 +66,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -89,7 +89,7 @@
<select-dict-data v-model:value="userInfoForm.gender" dictTypeKey="sys_user_sex" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onUpdateUserInfo">立即修改</el-button>
<el-button type="primary" v-preventReClick @click="onUpdateUserInfo">立即修改</el-button>
</el-form-item>
</el-form>
</el-tab-pane>
@@ -112,7 +112,7 @@
<el-input v-model="updatePwdForm.confirmPwd" show-password />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onUpdatePassword">立即修改</el-button>
<el-button type="primary" v-preventReClick @click="onUpdatePassword">立即修改</el-button>
</el-form-item>
</el-form>
</el-tab-pane>

View File

@@ -138,7 +138,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -188,7 +188,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -144,7 +144,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="menusDialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleUpdateMenus">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleUpdateMenus">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -240,7 +240,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>
@@ -270,7 +270,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="linkTenantForm.visible = false">取消</el-button>
<el-button type="primary" @click="handleSaveLinkTenant">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveLinkTenant">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -184,7 +184,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -100,7 +100,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -79,7 +79,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -95,7 +95,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -86,7 +86,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveAndFlush">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>
@@ -125,7 +125,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="menusDialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleUpdateMenus">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleUpdateMenus">确定</el-button>
</span>
</template>
</el-dialog>

View File

@@ -168,7 +168,7 @@
</template>
<template v-if="active === 1">
<el-button type="info" :icon="ArrowLeft" @click="previous" v-loading="loading">上一步</el-button>
<el-button type="primary" @click="next" v-loading="loading">
<el-button type="primary" @click="next" v-preventReClick v-loading="loading">
确定 <el-icon class="el-icon--right"><Check /></el-icon>
</el-button>
</template>

View File

@@ -215,7 +215,7 @@
<template v-if="!saveFlag" #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleUpdate">确定</el-button>
<el-button type="primary" v-preventReClick @click="handleUpdate">确定</el-button>
</span>
</template>
</el-dialog>