feat: 用户、部门、表格选择监听change支持返回当前选中的数据

This commit is contained in:
零零零
2025-03-26 10:21:51 +08:00
parent 6582eec6cc
commit e071daeca0
3 changed files with 40 additions and 9 deletions

View File

@@ -148,6 +148,7 @@
import { useLowStoreWithOut } from '@/store/modules/low'
import { listToTree } from '@/utils/tree'
import * as DicApi from '@/api/design/dic/index'
import { cloneDeep } from 'lodash-es'
defineOptions({ name: 'DeptSelect' })
@@ -210,8 +211,10 @@ const dialogData = ref({
name: '确定',
icon: 'material-symbols:check-rounded',
clickFun: () => {
dialogData.value.value = false
model.value = getCurrDeptSelect('confirm').join(',')
setTimeout(() => {
dialogData.value.value = false
}, 30)
}
}
],
@@ -338,8 +341,16 @@ const getDeptList = (getType) => {
watch(
() => model.value,
(value) => {
if (props.column['onChange']) props.column['onChange']({ value, column: props.column })
else if (props.column['change']) props.column['change']({ value, column: props.column })
const selectObj = {}
cloneDeep(deptSelect.value).forEach((item) => {
delete item.children
selectObj[item[treeDeptOption.value.nodeKey]] = item
})
if (props.column['onChange']) {
props.column['onChange']({ value, column: props.column, selectObj })
} else if (props.column['change']) {
props.column['change']({ value, column: props.column, selectObj })
}
}
)

View File

@@ -145,6 +145,7 @@
import { useWindowSize } from '@vueuse/core'
import { encryptAES } from '@/components/LowDesign/src/utils/aes'
import { useLowStoreWithOut } from '@/store/modules/low'
import { cloneDeep } from 'lodash-es'
defineOptions({ name: 'DicTableSelect' })
interface Column {
@@ -200,8 +201,10 @@ const dialogData = ref({
name: '确定',
icon: 'material-symbols:check-rounded',
clickFun: () => {
dialogData.value.value = false
model.value = getCurrTableSelect('confirm').join(',')
setTimeout(() => {
dialogData.value.value = false
}, 30)
}
}
]
@@ -317,8 +320,15 @@ const tagTableClose = (id) => {
watch(
() => model.value,
(value) => {
if (props.column['onChange']) props.column['onChange']({ value, column: props.column })
else if (props.column['change']) props.column['change']({ value, column: props.column })
const selectObj = {}
cloneDeep(tableRef.value.tableSelect).forEach(
(item) => (selectObj[item[props.column.dictCode]] = item)
)
if (props.column['onChange']) {
props.column['onChange']({ value, column: props.column, selectObj })
} else if (props.column['change']) {
props.column['change']({ value, column: props.column, selectObj })
}
}
)

View File

@@ -204,6 +204,7 @@
import { listToTree, filter } from '@/utils/tree'
import { useLowStoreWithOut } from '@/store/modules/low'
import * as DicApi from '@/api/design/dic/index'
import { cloneDeep } from 'lodash-es'
defineOptions({ name: 'UserSelect' })
interface Column {
@@ -269,8 +270,10 @@ const dialogData = ref({
name: '确定',
icon: 'material-symbols:check-rounded',
clickFun: () => {
dialogData.value.value = false
model.value = getCurrTableSelect('confirm').join(',')
setTimeout(() => {
dialogData.value.value = false
}, 30)
}
}
]
@@ -644,8 +647,15 @@ const initSelect = (val) => {
watch(
() => model.value,
(value) => {
if (props.column['onChange']) props.column['onChange']({ value, column: props.column })
else if (props.column['change']) props.column['change']({ value, column: props.column })
const selectObj = {}
cloneDeep(tableSelect.value).forEach(
(item) => (selectObj[item[tableOption.value.rowKey]] = item)
)
if (props.column['onChange']) {
props.column['onChange']({ value, column: props.column, selectObj })
} else if (props.column['change']) {
props.column['change']({ value, column: props.column, selectObj })
}
}
)