|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<el-dialog
|
|
|
- class="le-dialog"
|
|
|
v-model="dialogVisible"
|
|
|
+ class="le-dialog"
|
|
|
:title="titleMap[type - 1]"
|
|
|
:width="type == 1 ? 680 : 460"
|
|
|
destroy-on-close
|
|
@@ -144,7 +144,9 @@ import user from '@/api/system/user'
|
|
|
import role from '@/api/system/role'
|
|
|
export default {
|
|
|
props: {
|
|
|
- modelValue: { type: Boolean, default: false }
|
|
|
+ modelValue: { type: Boolean, default: false },
|
|
|
+ minSelected: { type: Number, default: 0 },
|
|
|
+ maxSelected: { type: Number, default: 999999 }
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -190,7 +192,7 @@ export default {
|
|
|
//打开赋值
|
|
|
open(type, data) {
|
|
|
this.type = type
|
|
|
- this.value = data || []
|
|
|
+ this.value = JSON.parse(JSON.stringify(data || []))
|
|
|
this.selected = JSON.parse(JSON.stringify(data || []))
|
|
|
this.dialogVisible = true
|
|
|
|
|
@@ -289,7 +291,18 @@ export default {
|
|
|
this.selected.map(item => {
|
|
|
this.value.push(item)
|
|
|
})
|
|
|
- this.$emit('contentEv', this.value)
|
|
|
+ // 最小限制
|
|
|
+ const minSelected = this.minSelected
|
|
|
+ // 最大限制
|
|
|
+ const maxSelected = this.maxSelected
|
|
|
+ const selected_l = this.selected.length
|
|
|
+ if (selected_l < minSelected) {
|
|
|
+ return this.$message.warning(`选中的数据个数不能小于${minSelected}条`)
|
|
|
+ }
|
|
|
+ if (selected_l > maxSelected) {
|
|
|
+ return this.$message.warning(`选中的数据个数不能大于${maxSelected}条`)
|
|
|
+ }
|
|
|
+ this.$emit('update:selected', this.value)
|
|
|
this.dialogVisible = false
|
|
|
}
|
|
|
}
|