|
|
@ -25,16 +25,17 @@ |
|
|
</template> |
|
|
</template> |
|
|
<script lang="ts"> |
|
|
<script lang="ts"> |
|
|
import { defineComponent, PropType, computed, toRaw } from 'vue'; |
|
|
import { defineComponent, PropType, computed, toRaw } from 'vue'; |
|
|
|
|
|
|
|
|
import { MoreOutlined } from '@ant-design/icons-vue'; |
|
|
import { MoreOutlined } from '@ant-design/icons-vue'; |
|
|
|
|
|
import { Divider } from 'ant-design-vue'; |
|
|
|
|
|
|
|
|
import Icon from '/@/components/Icon/index'; |
|
|
import Icon from '/@/components/Icon/index'; |
|
|
import { ActionItem, TableActionType } from '/@/components/Table'; |
|
|
import { ActionItem, TableActionType } from '/@/components/Table'; |
|
|
import { PopConfirmButton } from '/@/components/Button'; |
|
|
import { PopConfirmButton } from '/@/components/Button'; |
|
|
import { Divider } from 'ant-design-vue'; |
|
|
|
|
|
import { Dropdown } from '/@/components/Dropdown'; |
|
|
import { Dropdown } from '/@/components/Dropdown'; |
|
|
|
|
|
|
|
|
import { useDesign } from '/@/hooks/web/useDesign'; |
|
|
import { useDesign } from '/@/hooks/web/useDesign'; |
|
|
import { useTableContext } from '../hooks/useTableContext'; |
|
|
import { useTableContext } from '../hooks/useTableContext'; |
|
|
|
|
|
import { usePermission } from '/@/hooks/web/usePermission'; |
|
|
|
|
|
|
|
|
import { propTypes } from '/@/utils/propTypes'; |
|
|
import { propTypes } from '/@/utils/propTypes'; |
|
|
import { ACTION_COLUMN_FLAG } from '../const'; |
|
|
import { ACTION_COLUMN_FLAG } from '../const'; |
|
|
@ -61,33 +62,42 @@ |
|
|
table = useTableContext(); |
|
|
table = useTableContext(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const { hasPermission } = usePermission(); |
|
|
const getActions = computed(() => { |
|
|
const getActions = computed(() => { |
|
|
return (toRaw(props.actions) || []).map((action) => { |
|
|
return (toRaw(props.actions) || []) |
|
|
const { popConfirm } = action; |
|
|
.filter((action) => { |
|
|
return { |
|
|
return hasPermission(action.auth); |
|
|
type: 'link', |
|
|
}) |
|
|
size: 'small', |
|
|
.map((action) => { |
|
|
...action, |
|
|
const { popConfirm } = action; |
|
|
...(popConfirm || {}), |
|
|
return { |
|
|
onConfirm: popConfirm?.confirm, |
|
|
type: 'link', |
|
|
onCancel: popConfirm?.cancel, |
|
|
size: 'small', |
|
|
enable: !!popConfirm, |
|
|
...action, |
|
|
}; |
|
|
...(popConfirm || {}), |
|
|
}); |
|
|
onConfirm: popConfirm?.confirm, |
|
|
|
|
|
onCancel: popConfirm?.cancel, |
|
|
|
|
|
enable: !!popConfirm, |
|
|
|
|
|
}; |
|
|
|
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
const getDropdownList = computed(() => { |
|
|
const getDropdownList = computed(() => { |
|
|
return (toRaw(props.dropDownActions) || []).map((action, index) => { |
|
|
return (toRaw(props.dropDownActions) || []) |
|
|
const { label, popConfirm } = action; |
|
|
.filter((action) => { |
|
|
return { |
|
|
return hasPermission(action.auth); |
|
|
...action, |
|
|
}) |
|
|
...popConfirm, |
|
|
.map((action, index) => { |
|
|
onConfirm: popConfirm?.confirm, |
|
|
const { label, popConfirm } = action; |
|
|
onCancel: popConfirm?.cancel, |
|
|
return { |
|
|
text: label, |
|
|
...action, |
|
|
divider: index < props.dropDownActions.length - 1 ? props.divider : false, |
|
|
...popConfirm, |
|
|
}; |
|
|
onConfirm: popConfirm?.confirm, |
|
|
}); |
|
|
onCancel: popConfirm?.cancel, |
|
|
|
|
|
text: label, |
|
|
|
|
|
divider: index < props.dropDownActions.length - 1 ? props.divider : false, |
|
|
|
|
|
}; |
|
|
|
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
const getAlign = computed(() => { |
|
|
const getAlign = computed(() => { |
|
|
|