Commit 1aef729b by 周田

refactor: 重构 修改数据后直接展示

parent 1bd63a2e
<template> <template>
<el-descriptions :title="props.deviceInfo.device_name" :column=1> <el-descriptions :title="deviceInfo.device_name" :column=1>
<template #extra> <template #extra>
<el-button type="danger" size="small" @click="del">delete</el-button> <el-button type="danger" size="small" @click="del">delete</el-button>
<el-button type="primary" size="small" @click="dialogFormVisible = true">Edit</el-button> <el-button type="primary" size="small" @click="dialogFormVisible = true">Edit</el-button>
</template> </template>
<el-descriptions-item label="协议名">{{ props.deviceInfo.protocol_name }}</el-descriptions-item> <el-descriptions-item label="协议名">{{ deviceInfo.protocol_name }}</el-descriptions-item>
<el-descriptions-item label="通信参数" :column=3> <el-descriptions-item label="通信参数" :column=3>
<span> {{ props.deviceInfo.communicate_mode }} </span> <span> {{ deviceInfo.communicate_mode }} </span>
<span v-if="isTcp"> <span v-if="isTcp">
<span ml-9> {{ props.deviceInfo.tcp_ip }} </span> <span ml-9> {{ deviceInfo.tcp_ip }} </span>
<span ml-9> {{ props.deviceInfo.tcp_port }} </span> <span ml-9> {{ deviceInfo.tcp_port }} </span>
</span> </span>
<span v-else> <span v-else>
<span ml-9> {{ props.deviceInfo.udp_ip_src}} </span> <span ml-9> {{ deviceInfo.udp_ip_src}} </span>
<span ml-9> {{ props.deviceInfo.udp_port_src }} </span> <span ml-9> {{ deviceInfo.udp_port_src }} </span>
<span ml-9> {{ props.deviceInfo.udp_ip_dst }} </span> <span ml-9> {{ deviceInfo.udp_ip_dst }} </span>
<span ml-9> {{ props.deviceInfo.udp_port_dst }} </span> <span ml-9> {{ deviceInfo.udp_port_dst }} </span>
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="性能参数"> <el-descriptions-item label="性能参数">
...@@ -28,8 +28,9 @@ ...@@ -28,8 +28,9 @@
<edit-dialog <edit-dialog
:is-show="dialogFormVisible" :is-show="dialogFormVisible"
:device-info="props.deviceInfo" :device-info="deviceInfo"
@close="dialogFormVisible = false" @close="dialogFormVisible = false"
@change-device-info="changeDeviceInfo"
type="edit" /> type="edit" />
</template> </template>
...@@ -45,19 +46,22 @@ type propType = { ...@@ -45,19 +46,22 @@ type propType = {
deviceInfo: DeviceInfo deviceInfo: DeviceInfo
} }
const props = defineProps<propType>(); const props = defineProps<propType>();
const deviceInfo = ref<DeviceInfo>(props.deviceInfo)
const checked_performance_fields = ref<string[]>([]) const checked_performance_fields = ref<string[]>([])
const isTcp = ref<boolean>(true) const isTcp = ref<boolean>(true)
// performance_fields tag
const dialogFormVisible = ref(false)
onMounted(() => { onMounted(() => {
isTcp.value = props.deviceInfo.communicate_mode.toUpperCase().includes('TCP'.toUpperCase()) isTcp.value = deviceInfo.value.communicate_mode.toUpperCase().includes('TCP'.toUpperCase())
checked_performance_fields.value = JSON.parse(props.deviceInfo.performance_fields!) checked_performance_fields.value = JSON.parse(deviceInfo.value.performance_fields!)
props.deviceInfo.checked_performance_fields = checked_performance_fields.value deviceInfo.value.checked_performance_fields = checked_performance_fields.value
}) })
const emit = defineEmits(['deleteDeviceInfo']) const emit = defineEmits(['deleteDeviceInfo'])
const del = () => { const del = () => {
let station_id = props.deviceInfo.station_id let station_id = deviceInfo.value.station_id
let id = props.deviceInfo.id let id = deviceInfo.value.id
axios.delete('/api/device_communication/communicate/' + id + '/') axios.delete('/api/device_communication/communicate/' + id + '/')
.then((res) => { .then((res) => {
emit('deleteDeviceInfo', { station_id, id }) emit('deleteDeviceInfo', { station_id, id })
...@@ -68,8 +72,13 @@ const del = () => { ...@@ -68,8 +72,13 @@ const del = () => {
}) })
} }
// performance_fields tag const changeDeviceInfo = (device_info: DeviceInfo) => {
const dialogFormVisible = ref(false) console.log('changeDeviceInfo')
deviceInfo.value = device_info
checked_performance_fields.value = JSON.parse(device_info.performance_fields!)
}
</script> </script>
......
...@@ -90,7 +90,7 @@ type porpsType = { ...@@ -90,7 +90,7 @@ type porpsType = {
type: string, type: string,
} }
const props = defineProps<porpsType>() const props = defineProps<porpsType>()
const emit = defineEmits(['close']) const emit = defineEmits(['close', 'changeDeviceInfo'])
const handleClose = () => { const handleClose = () => {
emit('close') emit('close')
formRef.value!.resetFields() formRef.value!.resetFields()
...@@ -304,6 +304,7 @@ const submit = () => { ...@@ -304,6 +304,7 @@ const submit = () => {
}) })
} }
emit('close') emit('close')
emit('changeDeviceInfo', data)
} }
......
...@@ -22,7 +22,11 @@ ...@@ -22,7 +22,11 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<edit-dialog :is-show="isShow" @close="isShow = false" type="add" /> <edit-dialog
:is-show="isShow"
@close="isShow = false"
@change-device-info="changeDeviceInfo"
type="add" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -85,8 +89,13 @@ const deleteDeviceInfo = (params: param) => { ...@@ -85,8 +89,13 @@ const deleteDeviceInfo = (params: param) => {
const isShow = ref(false) const isShow = ref(false)
const addDevice = () => { const addDevice = () => {
console.log('addDevice')
isShow.value = true isShow.value = true
} }
const changeDeviceInfo = (params: param) => {
console.log('changeDeviceInfo')
console.log(params);
}
</script> </script>
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment