table switch
This commit is contained in:
parent
7c533aeda9
commit
ceeab5ebdc
|
|
@ -0,0 +1,46 @@
|
||||||
|
<template>
|
||||||
|
<n-switch v-bind="getSwitchProps" v-model:value="switchVlue" @update:value="changeValue" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { defineComponent, ref, unref, computed } from 'vue'
|
||||||
|
import { NSwitch } from 'naive-ui'
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'TableSwitch',
|
||||||
|
props: {
|
||||||
|
...NSwitch.props,
|
||||||
|
data: {
|
||||||
|
type: [Object, String, Number, Boolean],
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
rowKey: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
emits: ['getRow'],
|
||||||
|
setup(props, { emit }) {
|
||||||
|
const switchVlue = ref()
|
||||||
|
const { data, rowKey } = unref(props)
|
||||||
|
switchVlue.value = rowKey ? data[rowKey] : data
|
||||||
|
const getSwitchProps = computed(() => {
|
||||||
|
return {
|
||||||
|
...unref(props)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
function changeValue(value) {
|
||||||
|
const { data } = props
|
||||||
|
const params = {
|
||||||
|
data,
|
||||||
|
value
|
||||||
|
}
|
||||||
|
emit('getRow', params)
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
switchVlue,
|
||||||
|
getSwitchProps,
|
||||||
|
changeValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
@ -23,6 +23,7 @@ import dataTable from '@/components/DataTable/index.vue'
|
||||||
import TableAction from '@/components/DataTable/tools/Action.vue'
|
import TableAction from '@/components/DataTable/tools/Action.vue'
|
||||||
import TableImage from '@/components/DataTable/tools/Image.vue'
|
import TableImage from '@/components/DataTable/tools/Image.vue'
|
||||||
import TableTags from '@/components/DataTable/tools/Tags.vue'
|
import TableTags from '@/components/DataTable/tools/Tags.vue'
|
||||||
|
import TableSwitch from '@/components/DataTable/tools/Switch.vue'
|
||||||
import { getUserList } from '@/api/system/user/index.js'
|
import { getUserList } from '@/api/system/user/index.js'
|
||||||
import { h, unref, ref } from 'vue'
|
import { h, unref, ref } from 'vue'
|
||||||
import { reactive } from 'vue'
|
import { reactive } from 'vue'
|
||||||
|
|
@ -82,7 +83,16 @@ export default {
|
||||||
title: '状态',
|
title: '状态',
|
||||||
key: 'status',
|
key: 'status',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 100
|
width: 100,
|
||||||
|
render(row) {
|
||||||
|
return h(TableSwitch, {
|
||||||
|
data: row,
|
||||||
|
rowKey: 'status',
|
||||||
|
checkedValue: 1,
|
||||||
|
uncheckedValue: 2,
|
||||||
|
onGetRow: getSwitch.bind(row)
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '部门',
|
title: '部门',
|
||||||
|
|
@ -158,6 +168,10 @@ export default {
|
||||||
data.modalShow = true
|
data.modalShow = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSwitch(row) {
|
||||||
|
console.log(row)
|
||||||
|
}
|
||||||
|
|
||||||
return { data, loadDataTable, handleUser, rowData, modalTitle }
|
return { data, loadDataTable, handleUser, rowData, modalTitle }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue