EipPortalDialog.vue
1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<template>
<ht-dialog
:single="single"
:data="data"
:table-columns="tableColumns"
:pagination="pagination"
search-placeholder="名称或别名"
:dialog-title="title"
quick-search-props="name,alias"
:destroy-on-close="destroyOnClose"
@load="handleLoad"
@onConfirm="onConfirm"
ref="htDialog"
:append-to-body="true"
/>
</template>
<script>
import portal from '@/api/portal.js'
export default {
name: 'EipPortalDialog',
props: {
value: Array,
name: String,
single: Boolean,
destroyOnClose: {
type: Boolean,
default: false,
},
defaultQuerys: {
type: Array,
},
title: {
type: String,
default: '选择门户',
},
},
data() {
return {
data: [],
tableColumns: [
{prop: 'name', label: '名称'},
{prop: 'alias', label: '别名'},
],
pagination: {
page: 1,
pageSize: 50,
total: 0,
},
}
},
methods: {
showDialog(data) {
this.$refs.htDialog.showDialog(data)
},
handleLoad(param, cb) {
param.querys = [...(this.defaultQuerys || []), ...(param.querys || [])]
portal
.getLayoutManagerPage(param)
.then((data) => {
this.data = data.rows
this.pagination.page = data.page
this.pagination.pageSize = data.pageSize
this.pagination.total = data.total
cb()
})
.catch((err) => {
cb()
})
},
onConfirm(selection) {
this.$emit('onConfirm', selection, this.name)
this.$emit('input', selection)
},
},
}
</script>
<style scoped></style>