You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.5 KiB
Vue
80 lines
1.5 KiB
Vue
<template>
|
|
<el-dialog
|
|
:title="hasCreate ? '新建' : '模板'"
|
|
:visible.sync="dialogVisible"
|
|
width="50%"
|
|
class="bs-dialog-wrap bs-el-dialog"
|
|
:before-close="handleClose"
|
|
>
|
|
<TemplateList
|
|
ref="templateList"
|
|
:has-create="hasCreate"
|
|
:page-info="pageInfo"
|
|
:loading="loading"
|
|
@addNew="addNew"
|
|
@useIt="useIt"
|
|
@replaceItByTemplate="replaceItByTemplate"
|
|
/>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script>
|
|
import TemplateList from 'data-room-ui/TemplateList'
|
|
export default {
|
|
name: 'ChooseTemplistDialog',
|
|
components: {
|
|
TemplateList
|
|
},
|
|
props: {
|
|
loading: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
hasCreate: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
pageInfo: {
|
|
type: Object,
|
|
default: () => {}
|
|
}
|
|
},
|
|
data () {
|
|
return {
|
|
dialogVisible: false,
|
|
parentNode: null,
|
|
type: null
|
|
}
|
|
},
|
|
mounted () {
|
|
|
|
},
|
|
methods: {
|
|
init (parentNode, type) {
|
|
this.parentNode = parentNode
|
|
this.type = type
|
|
this.dialogVisible = true
|
|
this.$nextTick(() => {
|
|
this.$refs.templateList.getTemplateList(type)
|
|
})
|
|
},
|
|
handleClose () {
|
|
this.dialogVisible = false
|
|
},
|
|
addNew () {
|
|
this.$emit('addNew', this.parentNode, this.type)
|
|
},
|
|
useIt (id) {
|
|
this.$emit('useIt', id, this.parentNode, this.type)
|
|
},
|
|
replaceItByTemplate (config) {
|
|
this.$emit('replaceItByTemplate', config)
|
|
this.dialogVisible = false
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
</style>
|