diff options
Diffstat (limited to 'UI source code/dns_mapping_ui-master/src/components/Crud/UD.operation.vue')
| -rw-r--r-- | UI source code/dns_mapping_ui-master/src/components/Crud/UD.operation.vue | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/UI source code/dns_mapping_ui-master/src/components/Crud/UD.operation.vue b/UI source code/dns_mapping_ui-master/src/components/Crud/UD.operation.vue new file mode 100644 index 0000000..c60abd7 --- /dev/null +++ b/UI source code/dns_mapping_ui-master/src/components/Crud/UD.operation.vue @@ -0,0 +1,71 @@ +<template> + <div> + <el-button v-permission="permission.edit" :loading="crud.status.cu === 2" :disabled="disabledEdit" size="mini" type="primary" icon="el-icon-edit" @click="crud.toEdit(data)" /> + <el-popover v-model="pop" v-permission="permission.del" placement="top" width="180" trigger="manual" @show="onPopoverShow" @hide="onPopoverHide"> + <p>{{ msg }}</p> + <div style="text-align: right; margin: 0"> + <el-button size="mini" type="text" @click="doCancel">取消</el-button> + <el-button :loading="crud.dataStatus[crud.getDataId(data)].delete === 2" type="primary" size="mini" @click="crud.doDelete(data)">确定</el-button> + </div> + <el-button slot="reference" :disabled="disabledDle" type="danger" icon="el-icon-delete" size="mini" @click="toDelete" /> + </el-popover> + </div> +</template> +<script> +import CRUD, { crud } from '@crud/crud' +export default { + mixins: [crud()], + props: { + data: { + type: Object, + required: true + }, + permission: { + type: Object, + required: true + }, + disabledEdit: { + type: Boolean, + default: false + }, + disabledDle: { + type: Boolean, + default: false + }, + msg: { + type: String, + default: '确定删除本条数据吗?' + } + }, + data() { + return { + pop: false + } + }, + methods: { + doCancel() { + this.pop = false + this.crud.cancelDelete(this.data) + }, + toDelete() { + this.pop = true + }, + [CRUD.HOOK.afterDelete](crud, data) { + if (data === this.data) { + this.pop = false + } + }, + onPopoverShow() { + setTimeout(() => { + document.addEventListener('click', this.handleDocumentClick) + }, 0) + }, + onPopoverHide() { + document.removeEventListener('click', this.handleDocumentClick) + }, + handleDocumentClick(event) { + this.pop = false + } + } +} +</script> |
