diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 5c2472d..35f47cd 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -230,7 +230,7 @@ clickIndex.value = props.data.findIndex(item => item === row) console.log('右击', clickIndex.value) // 获取自定义菜单元素 - var menu = document.getElementById('custom-menu') + var menu = document.getElementById('custom-menu') as HTMLElement // 设置自定义菜单的位置并显示 let positionX = event.pageX let positionY = event.pageY @@ -247,7 +247,9 @@ // 点击其他位置隐藏自定义菜单 document.addEventListener('click', () => { if (!props.needContextmenu) { return } - document.getElementById('custom-menu').style.display = 'none' + if (document.getElementById('custom-menu')) { + (document.getElementById('custom-menu') as HTMLElement).style.display = 'none' + } }) // 添加行 const costomAddRow = (type: string) => { @@ -291,6 +293,20 @@ }) table.value!.clearSelection() } + else if (type === 'del-current') { + props.data.splice(clickIndex.value, 1) + } + else if (type === 'del-select') { + if (!multiSelectData.value.length) { + ElMessage.warning('未选择数据') + return + } + multiSelectData.value.forEach((item, index) => { + const dataIndex = props.data.findIndex(citem => item === citem) + props.data.splice(dataIndex, 1) + }) + table.value!.clearSelection() + } clickIndex.value = -1 } @@ -322,23 +338,15 @@ > @@ -386,6 +394,12 @@ + + diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 5c2472d..35f47cd 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -230,7 +230,7 @@ clickIndex.value = props.data.findIndex(item => item === row) console.log('右击', clickIndex.value) // 获取自定义菜单元素 - var menu = document.getElementById('custom-menu') + var menu = document.getElementById('custom-menu') as HTMLElement // 设置自定义菜单的位置并显示 let positionX = event.pageX let positionY = event.pageY @@ -247,7 +247,9 @@ // 点击其他位置隐藏自定义菜单 document.addEventListener('click', () => { if (!props.needContextmenu) { return } - document.getElementById('custom-menu').style.display = 'none' + if (document.getElementById('custom-menu')) { + (document.getElementById('custom-menu') as HTMLElement).style.display = 'none' + } }) // 添加行 const costomAddRow = (type: string) => { @@ -291,6 +293,20 @@ }) table.value!.clearSelection() } + else if (type === 'del-current') { + props.data.splice(clickIndex.value, 1) + } + else if (type === 'del-select') { + if (!multiSelectData.value.length) { + ElMessage.warning('未选择数据') + return + } + multiSelectData.value.forEach((item, index) => { + const dataIndex = props.data.findIndex(citem => item === citem) + props.data.splice(dataIndex, 1) + }) + table.value!.clearSelection() + } clickIndex.value = -1 } @@ -322,23 +338,15 @@ > @@ -386,6 +394,12 @@ + + diff --git a/src/components/TableContainer/configColumnsDialog.vue b/src/components/TableContainer/configColumnsDialog.vue index d0a8430..2b9a6fc 100644 --- a/src/components/TableContainer/configColumnsDialog.vue +++ b/src/components/TableContainer/configColumnsDialog.vue @@ -18,6 +18,7 @@ checkList.value = data.map((item: any) => item.text) } else { + // checkList.value = data.columns.filter((item: any) => item.isRequired).map((item: any) => item.text) checkList.value = data.columns.map((item: any) => item.text) } dialogFormVisible.value = true @@ -47,6 +48,7 @@ + diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 5c2472d..35f47cd 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -230,7 +230,7 @@ clickIndex.value = props.data.findIndex(item => item === row) console.log('右击', clickIndex.value) // 获取自定义菜单元素 - var menu = document.getElementById('custom-menu') + var menu = document.getElementById('custom-menu') as HTMLElement // 设置自定义菜单的位置并显示 let positionX = event.pageX let positionY = event.pageY @@ -247,7 +247,9 @@ // 点击其他位置隐藏自定义菜单 document.addEventListener('click', () => { if (!props.needContextmenu) { return } - document.getElementById('custom-menu').style.display = 'none' + if (document.getElementById('custom-menu')) { + (document.getElementById('custom-menu') as HTMLElement).style.display = 'none' + } }) // 添加行 const costomAddRow = (type: string) => { @@ -291,6 +293,20 @@ }) table.value!.clearSelection() } + else if (type === 'del-current') { + props.data.splice(clickIndex.value, 1) + } + else if (type === 'del-select') { + if (!multiSelectData.value.length) { + ElMessage.warning('未选择数据') + return + } + multiSelectData.value.forEach((item, index) => { + const dataIndex = props.data.findIndex(citem => item === citem) + props.data.splice(dataIndex, 1) + }) + table.value!.clearSelection() + } clickIndex.value = -1 } @@ -322,23 +338,15 @@ > @@ -386,6 +394,12 @@ + + diff --git a/src/components/TableContainer/configColumnsDialog.vue b/src/components/TableContainer/configColumnsDialog.vue index d0a8430..2b9a6fc 100644 --- a/src/components/TableContainer/configColumnsDialog.vue +++ b/src/components/TableContainer/configColumnsDialog.vue @@ -18,6 +18,7 @@ checkList.value = data.map((item: any) => item.text) } else { + // checkList.value = data.columns.filter((item: any) => item.isRequired).map((item: any) => item.text) checkList.value = data.columns.map((item: any) => item.text) } dialogFormVisible.value = true @@ -47,6 +48,7 @@ + diff --git a/src/components/TableContainer/index.vue b/src/components/TableContainer/index.vue index 87b1567..c468022 100644 --- a/src/components/TableContainer/index.vue +++ b/src/components/TableContainer/index.vue @@ -63,6 +63,7 @@ } else { console.log('无存储', props.configTitle, props.columns) + // props.edit(props.columns.filter((item: any) => item.isRequired)) props.edit(props.columns) } diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue index 5c2472d..35f47cd 100644 --- a/src/components/NormalTable/index.vue +++ b/src/components/NormalTable/index.vue @@ -230,7 +230,7 @@ clickIndex.value = props.data.findIndex(item => item === row) console.log('右击', clickIndex.value) // 获取自定义菜单元素 - var menu = document.getElementById('custom-menu') + var menu = document.getElementById('custom-menu') as HTMLElement // 设置自定义菜单的位置并显示 let positionX = event.pageX let positionY = event.pageY @@ -247,7 +247,9 @@ // 点击其他位置隐藏自定义菜单 document.addEventListener('click', () => { if (!props.needContextmenu) { return } - document.getElementById('custom-menu').style.display = 'none' + if (document.getElementById('custom-menu')) { + (document.getElementById('custom-menu') as HTMLElement).style.display = 'none' + } }) // 添加行 const costomAddRow = (type: string) => { @@ -291,6 +293,20 @@ }) table.value!.clearSelection() } + else if (type === 'del-current') { + props.data.splice(clickIndex.value, 1) + } + else if (type === 'del-select') { + if (!multiSelectData.value.length) { + ElMessage.warning('未选择数据') + return + } + multiSelectData.value.forEach((item, index) => { + const dataIndex = props.data.findIndex(citem => item === citem) + props.data.splice(dataIndex, 1) + }) + table.value!.clearSelection() + } clickIndex.value = -1 } @@ -322,23 +338,15 @@ > @@ -386,6 +394,12 @@ + + diff --git a/src/components/TableContainer/configColumnsDialog.vue b/src/components/TableContainer/configColumnsDialog.vue index d0a8430..2b9a6fc 100644 --- a/src/components/TableContainer/configColumnsDialog.vue +++ b/src/components/TableContainer/configColumnsDialog.vue @@ -18,6 +18,7 @@ checkList.value = data.map((item: any) => item.text) } else { + // checkList.value = data.columns.filter((item: any) => item.isRequired).map((item: any) => item.text) checkList.value = data.columns.map((item: any) => item.text) } dialogFormVisible.value = true @@ -47,6 +48,7 @@ + diff --git a/src/components/TableContainer/index.vue b/src/components/TableContainer/index.vue index 87b1567..c468022 100644 --- a/src/components/TableContainer/index.vue +++ b/src/components/TableContainer/index.vue @@ -63,6 +63,7 @@ } else { console.log('无存储', props.configTitle, props.columns) + // props.edit(props.columns.filter((item: any) => item.isRequired)) props.edit(props.columns) } diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue index 485b182..3b198cf 100644 --- a/src/views/home/device/device/index.vue +++ b/src/views/home/device/device/index.vue @@ -14,19 +14,19 @@ const total = ref(0) // 初始展示列 const columns = ref([ - { text: '状态', value: 'onlineState', align: 'center', isCustom: true }, - { text: '设备编号', value: 'devcode', align: 'center' }, - { text: '设备类型', value: 'deviceTypeName', align: 'center' }, + { text: '状态', value: 'onlineState', align: 'center', isCustom: true, width: '70' }, + { text: '设备编号', value: 'devcode', align: 'center', isRequired: true }, + { text: '设备类型', value: 'deviceTypeName', align: 'center', isRequired: true }, { text: '监测对象', value: 'watchObjectName', align: 'center' }, { text: '设备型号', value: 'isUsedName', align: 'center' }, - { text: '厂商', value: 'isUsedName', align: 'center' }, - { text: '安装位号', value: 'isUsedName', align: 'center' }, - { text: '详细位置', value: 'isUsedName', align: 'center' }, - { text: '管理单位', value: 'isUsedName', align: 'center' }, - { text: '在用情况', value: 'isUsedName', align: 'center' }, - { text: '电量', value: 'isUsedName', align: 'center' }, - { text: '最新上报时间', value: 'isUsedName', align: 'center' }, - { text: '安装日期', value: 'isUsedName', align: 'center' }, + { text: '厂商', value: 'isUsedName', align: 'center', isRequired: true }, + { text: '安装位号', value: 'isUsedName', align: 'center', isRequired: true }, + { text: '详细位置', value: 'isUsedName', align: 'center', isRequired: true }, + { text: '管理单位', value: 'isUsedName', align: 'center', isRequired: true }, + { text: '在用情况', value: 'isUsedName', align: 'center', isRequired: true }, + { text: '电量', value: 'isUsedName', align: 'center', isRequired: true }, + { text: '最新上报时间', value: 'isUsedName', align: 'center', isRequired: true }, + { text: '安装日期', value: 'isUsedName', align: 'center', isRequired: true }, ]) // 最终展示列 const columnsConfig = ref([]) @@ -132,7 +132,7 @@ +