微调
This commit is contained in:
@@ -32,4 +32,13 @@ export namespace TestSource {
|
||||
export interface ResTestSourcePage extends ResPage<ResTestSource> {
|
||||
|
||||
}
|
||||
export interface ParameterType{
|
||||
id:string;
|
||||
sourceParamType:string;
|
||||
sourceParamDesc:string;
|
||||
sourceParamValue:string;
|
||||
sort:number;
|
||||
pId:string;
|
||||
children?:ParameterType[];
|
||||
}
|
||||
}
|
||||
@@ -37,39 +37,57 @@
|
||||
import { useDictStore } from '@/stores/modules/dict'
|
||||
import ParameterPopup from '@/views/machine/testSource/components/parameterPopup.vue';
|
||||
import { onMounted, reactive, ref, watch } from 'vue'
|
||||
import {map} from "lodash";
|
||||
const parameterPopup = ref()
|
||||
const dictStore = useDictStore()
|
||||
// ProTable 实例
|
||||
const proTable = ref<ProTableInstance>()
|
||||
const tableData = ref<any[]>([])
|
||||
const props = defineProps<{
|
||||
data: TestSource.ResTestSource | null;
|
||||
parameterStr: string;
|
||||
}>();
|
||||
|
||||
let originalParameterArr: TestSource.ParameterType[] = []
|
||||
onMounted(() => {
|
||||
getTableList();
|
||||
})
|
||||
|
||||
watch(() => props.data, (newData) => {
|
||||
watch(() => props.parameterStr, (newData) => {
|
||||
if (newData) {
|
||||
getTableList();
|
||||
}
|
||||
})
|
||||
|
||||
const getTableList = () => {
|
||||
if (props.data) {
|
||||
// 处理传递过来的数据
|
||||
let newParams = props.data.parameter ? JSON.parse(props.data.parameter) : {};
|
||||
// 确保 newParams 是一个数组
|
||||
if (!Array.isArray(newParams)) {
|
||||
newParams = [newParams];
|
||||
}
|
||||
const apiData = newParams;
|
||||
tableData.value = apiData;
|
||||
if (props.parameterStr) {
|
||||
originalParameterArr =JSON.parse(props.parameterStr)
|
||||
tableData.value = getTreeData(originalParameterArr)
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const getTreeData = (data: TestSource.ParameterType[]): TestSource.ParameterType[] => {
|
||||
const result: TestSource.ParameterType[] = []// 最终返回的树形结构数据
|
||||
//不能修改原数组,所以需要深拷贝
|
||||
const copyData = JSON.parse(JSON.stringify(data))
|
||||
const map = new Map<string, TestSource.ParameterType>();
|
||||
copyData.forEach(item => {
|
||||
map.set(item.id, item);
|
||||
});
|
||||
for (const item of copyData) {
|
||||
let parent = map.get(item.pId);
|
||||
if (parent) {
|
||||
if (!parent.children) {
|
||||
parent.children = [];
|
||||
}
|
||||
parent.children.push(item);
|
||||
} else {
|
||||
result.push(item);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
const columns = reactive<ColumnProps<any>[]>([
|
||||
{ type: 'selection', fixed: 'left', width: 70 },
|
||||
{ type: 'index', fixed: 'left', width: 70, label: '序号' },
|
||||
@@ -107,10 +125,24 @@ const batchDelete = async (id: string[]) => {
|
||||
|
||||
// 删除设备
|
||||
const handleDelete = async (params: TestSource.ResTestSource) => {
|
||||
console.log(tableData.value )
|
||||
tableData.value = tableData.value.filter(item => item.id !== params.id);
|
||||
console.log(tableData.value )
|
||||
let parentIds = originalParameterArr.map(item => item.pId)
|
||||
if (parentIds.includes(params.id)) {
|
||||
ElMessage.error('不能删除父节点');
|
||||
return;
|
||||
}
|
||||
originalParameterArr = originalParameterArr.filter(item => item.id !== params.id);
|
||||
tableData.value = getTreeData(originalParameterArr)
|
||||
|
||||
}
|
||||
const copyRow = (row) => {
|
||||
let parentIds = originalParameterArr.map(item => item.pId)
|
||||
// if (parentIds.includes(row.id)) {
|
||||
// originalParameterArr.push({
|
||||
//
|
||||
// })
|
||||
// } else {
|
||||
//
|
||||
// }
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<ParameterTable :data="formContent"/>
|
||||
<ParameterTable :parameterStr="formContent.parameter"/>
|
||||
<template #footer>
|
||||
<div >
|
||||
<el-button @click='close()'>取 消</el-button>
|
||||
|
||||
Reference in New Issue
Block a user