接口调试
This commit is contained in:
parent
ad5ede8854
commit
7b7adb79f3
|
|
@ -39,6 +39,7 @@ export function addModel(data) {
|
|||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// // 修改层级
|
||||
// export function editLevelApi(data) {
|
||||
// return request({
|
||||
|
|
|
|||
|
|
@ -42,3 +42,11 @@ export function delProject(proId) {
|
|||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
// 查询所有的项目下拉选
|
||||
export function getProjectSelectListApi() {
|
||||
return request({
|
||||
url: '/project/SelectList',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,16 +6,16 @@ export function login(username, password, code, uuid) {
|
|||
username,
|
||||
password,
|
||||
code,
|
||||
uuid
|
||||
uuid,
|
||||
}
|
||||
return request({
|
||||
url: '/login',
|
||||
headers: {
|
||||
isToken: false,
|
||||
repeatSubmit: false
|
||||
repeatSubmit: false,
|
||||
},
|
||||
method: 'post',
|
||||
data: data
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -24,10 +24,10 @@ export function register(data) {
|
|||
return request({
|
||||
url: '/register',
|
||||
headers: {
|
||||
isToken: false
|
||||
isToken: false,
|
||||
},
|
||||
method: 'post',
|
||||
data: data
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ export function register(data) {
|
|||
export function getInfo() {
|
||||
return request({
|
||||
url: '/getInfo',
|
||||
method: 'get'
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -43,7 +43,7 @@ export function getInfo() {
|
|||
export function logout() {
|
||||
return request({
|
||||
url: '/logout',
|
||||
method: 'post'
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -52,9 +52,9 @@ export function getCodeImg() {
|
|||
return request({
|
||||
url: '/captchaImage',
|
||||
headers: {
|
||||
isToken: false
|
||||
isToken: false,
|
||||
},
|
||||
method: 'get',
|
||||
timeout: 20000
|
||||
timeout: 20000,
|
||||
})
|
||||
}
|
||||
|
|
@ -1,13 +1,17 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form size="small" :inline="true" ref="queryForm" :model="queryParams">
|
||||
<el-form-item label="项目名称" prop="proName">
|
||||
<el-input
|
||||
<el-form-item label="项目名称" prop="projectId">
|
||||
<!-- <el-input
|
||||
clearable
|
||||
placeholder="请输入项目名称"
|
||||
v-model="queryParams.proName"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
/> -->
|
||||
|
||||
<el-select v-model="queryParams.projectId" placeholder="请选择项目名称" style="width: 100%">
|
||||
<el-option :key="item.id" :value="item.id" :label="item.name" v-for="item in projectSelectList" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位" prop="unit">
|
||||
<el-input
|
||||
|
|
@ -31,18 +35,12 @@
|
|||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
>新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getModelList"></right-toolbar>
|
||||
</el-row>
|
||||
</el-row> -->
|
||||
|
||||
<el-table
|
||||
border
|
||||
|
|
@ -50,6 +48,7 @@
|
|||
v-loading="loading"
|
||||
:data="modelList"
|
||||
:tree-props="{ children: 'nodes' }"
|
||||
default-expand-all
|
||||
>
|
||||
<el-table-column label="序号" align="center" type="index" />
|
||||
|
||||
|
|
@ -158,12 +157,7 @@
|
|||
<el-dialog width="40%" append-to-body :title="addOrEditFormTitle" :visible.sync="addOrEditFormVisible">
|
||||
<AddOrEditForm ref="addOrEditComponentRef" @closeAddOrEditFormDialog="closeAddOrEditFormDialog" />
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
title="模型预览"
|
||||
:visible.sync="viewDialogVisible"
|
||||
width="60%"
|
||||
append-to-body
|
||||
>
|
||||
<el-dialog title="模型预览" :visible.sync="viewDialogVisible" width="60%" append-to-body>
|
||||
<dxf-viewer :entities="dxfPreviewUrl"></dxf-viewer>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
|
@ -177,17 +171,23 @@ import DxfViewer from './DxfViewer.vue'
|
|||
|
||||
// 引入相关的 API 接口
|
||||
import { getModelListApi, delModelApi, openView } from '@/api/basic/model'
|
||||
import { listProject, getProject, delProject, addProject, updateProject } from '@/api/basic/project'
|
||||
import {
|
||||
listProject,
|
||||
getProject,
|
||||
delProject,
|
||||
addProject,
|
||||
updateProject,
|
||||
getProjectSelectListApi,
|
||||
} from '@/api/basic/project'
|
||||
import { getLevelListApi } from '@/api/basic/level-manage.js'
|
||||
|
||||
|
||||
export default {
|
||||
name: 'DeviceManage',
|
||||
components: {
|
||||
AddOrEditForm,
|
||||
UseOrReturnForm,
|
||||
UseRecordTable,
|
||||
DxfViewer
|
||||
DxfViewer,
|
||||
},
|
||||
|
||||
data() {
|
||||
|
|
@ -228,15 +228,44 @@ export default {
|
|||
queryParams: {
|
||||
// pageNum: 1, // 如果您的API支持分页,可以保留
|
||||
// pageSize: 10, // 如果您的API支持分页,可以保留
|
||||
proName: undefined,
|
||||
projectId: undefined,
|
||||
unit: undefined,
|
||||
chargePerson: undefined,
|
||||
},
|
||||
projectSelectList: [],
|
||||
list: [
|
||||
{
|
||||
label: '项目1',
|
||||
id: 1,
|
||||
level: 1,
|
||||
count: 2,
|
||||
children: [
|
||||
// {
|
||||
// label: '节点1',
|
||||
// id: 1,
|
||||
// level: 2,
|
||||
// },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '项目2',
|
||||
id: 2,
|
||||
level: 1,
|
||||
count: 3,
|
||||
children: [
|
||||
{
|
||||
label: '节点1',
|
||||
id: 1,
|
||||
level: 2,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getModelList()
|
||||
this.getLevelList() // 获取层级配置数据
|
||||
this.getProjectSelectList()
|
||||
},
|
||||
methods: {
|
||||
/** 获取层级配置列表 */
|
||||
|
|
@ -248,7 +277,7 @@ export default {
|
|||
})
|
||||
this.levelList = res.rows
|
||||
} catch (error) {
|
||||
console.error("获取层级配置失败:", error)
|
||||
console.error('获取层级配置失败:', error)
|
||||
}
|
||||
},
|
||||
// 打开新增项目对话框
|
||||
|
|
@ -265,13 +294,14 @@ export default {
|
|||
return
|
||||
} */
|
||||
/* 新需求 重新做 上面建议不要删除 有需要直接可以查看 */
|
||||
openView({ id: row.id }).then(response => {
|
||||
openView({ id: row.id })
|
||||
.then((response) => {
|
||||
this.dxfPreviewUrl = response.data
|
||||
this.viewDialogVisible = true
|
||||
}).catch(error => {
|
||||
console.error("获取项目详情失败:", error);
|
||||
});
|
||||
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('获取项目详情失败:', error)
|
||||
})
|
||||
},
|
||||
|
||||
// 查询按钮
|
||||
|
|
@ -295,8 +325,8 @@ export default {
|
|||
|
||||
// 新增子节点
|
||||
handleAddChild(row) {
|
||||
const { id, proName, nodeName, level, nodeCount, projectId } = row;
|
||||
const name = nodeName || proName; // 如果 nodeName 存在就用它,否则用 proName
|
||||
const { id, proName, nodeName, level, nodeCount, projectId } = row
|
||||
const name = nodeName || proName // 如果 nodeName 存在就用它,否则用 proName
|
||||
|
||||
this.addOrEditFormTitle = '新增'
|
||||
this.editForm = null
|
||||
|
|
@ -311,9 +341,9 @@ export default {
|
|||
// 获取模型列表
|
||||
// 生成 UUID,备用当 nodeId 缺失时
|
||||
generateUUID() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
|
||||
const r = Math.random() * 16 | 0
|
||||
const v = c === 'x' ? r : (r & 0x3 | 0x8)
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
||||
const r = (Math.random() * 16) | 0
|
||||
const v = c === 'x' ? r : (r & 0x3) | 0x8
|
||||
return v.toString(16)
|
||||
})
|
||||
},
|
||||
|
|
@ -322,38 +352,40 @@ export default {
|
|||
// 获取模型列表 - 最终优化版
|
||||
// 获取模型列表 - 最终优化版
|
||||
getModelList() {
|
||||
this.loading = true;
|
||||
getModelListApi(this.queryParams).then((response) => {
|
||||
const rawList = response.rows || [];
|
||||
this.loading = true
|
||||
getModelListApi(this.queryParams)
|
||||
.then((response) => {
|
||||
const rawList = response.rows || []
|
||||
|
||||
// 增强型递归处理
|
||||
const formatNodes = (nodes, level = 2) => { // 从第二级开始
|
||||
if (!Array.isArray(nodes)) return [];
|
||||
const formatNodes = (nodes, level = 2) => {
|
||||
// 从第二级开始
|
||||
if (!Array.isArray(nodes)) return []
|
||||
|
||||
return nodes
|
||||
.filter(item => item && item.nodeId) // 过滤无效节点
|
||||
.map(item => ({
|
||||
.filter((item) => item && item.nodeId) // 过滤无效节点
|
||||
.map((item) => ({
|
||||
...item,
|
||||
id: item.nodeId,
|
||||
name: item.nodeName || '未命名节点',
|
||||
level: level, // 添加层级标记
|
||||
// 递归处理子节点,层级+1
|
||||
nodes: formatNodes(item.nodes || item.children || [], level + 1)
|
||||
}));
|
||||
};
|
||||
nodes: formatNodes(item.nodes || item.children || [], level + 1),
|
||||
}))
|
||||
}
|
||||
|
||||
// 处理项目层数据
|
||||
const formatted = rawList.map(project => {
|
||||
const children = project.children || [];
|
||||
const formatted = rawList.map((project) => {
|
||||
const children = project.children || []
|
||||
|
||||
// 获取层级名称(项目级才需要)
|
||||
let levelName = '';
|
||||
let nodeCount = '';
|
||||
let levelName = ''
|
||||
let nodeCount = ''
|
||||
if (this.levelList && this.levelList.length > 0) {
|
||||
const levelConfig = this.levelList.find(
|
||||
item => item.configId == project.level // 注意类型匹配
|
||||
);
|
||||
levelName = levelConfig ? levelConfig.configName : '';
|
||||
(item) => item.configId == project.level, // 注意类型匹配
|
||||
)
|
||||
levelName = levelConfig ? levelConfig.configName : ''
|
||||
}
|
||||
|
||||
return {
|
||||
|
|
@ -364,19 +396,19 @@ export default {
|
|||
levelName: project.levelName, // 添加层级名称
|
||||
nodes: formatNodes(children),
|
||||
rawData: project,
|
||||
nodeCount:project.nodeCount
|
||||
};
|
||||
});
|
||||
nodeCount: project.nodeCount,
|
||||
}
|
||||
})
|
||||
|
||||
this.modelList = formatted;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
|
||||
}).catch(error => {
|
||||
console.error("获取模型列表失败:", error);
|
||||
this.loading = false;
|
||||
this.$message.error("模型数据加载失败,请重试");
|
||||
});
|
||||
this.modelList = formatted
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('获取模型列表失败:', error)
|
||||
this.loading = false
|
||||
this.$message.error('模型数据加载失败,请重试')
|
||||
})
|
||||
},
|
||||
// 上传按钮
|
||||
handleUploadModel(row) {
|
||||
|
|
@ -385,7 +417,10 @@ export default {
|
|||
this.useOrReturnFormVisible = true
|
||||
// 找到子组件并调用它的 resetForm 方法 (如果存在)
|
||||
// 确保 useOrReturnFormComponentRef 存在且 resetForm 是一个函数
|
||||
if (this.$refs.useOrReturnFormComponentRef && typeof this.$refs.useOrReturnFormComponentRef.resetForm === 'function') {
|
||||
if (
|
||||
this.$refs.useOrReturnFormComponentRef &&
|
||||
typeof this.$refs.useOrReturnFormComponentRef.resetForm === 'function'
|
||||
) {
|
||||
this.$refs.useOrReturnFormComponentRef.resetForm()
|
||||
}
|
||||
})
|
||||
|
|
@ -415,38 +450,44 @@ export default {
|
|||
|
||||
/** 修改按钮操作 (使用新的弹窗) */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const proId = row.id; // 对于模型列表,id 对应 projectId
|
||||
getProject(proId).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = '修改项目';
|
||||
this.reset()
|
||||
const proId = row.id // 对于模型列表,id 对应 projectId
|
||||
getProject(proId)
|
||||
.then((response) => {
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = '修改项目'
|
||||
// 注意:这里 form.level 的赋值可能需要根据您的实际数据结构调整
|
||||
// 比如,如果 response.data.level 是 configId,则可以直接赋值
|
||||
// this.form.level = response.data.level;
|
||||
}).catch(error => {
|
||||
console.error("获取项目详情失败:", error);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('获取项目详情失败:', error)
|
||||
})
|
||||
},
|
||||
|
||||
// 删除按钮
|
||||
handleDelete(row) {
|
||||
this.$modal.confirm('是否确认删除当前节点数据吗?').then(async () => {
|
||||
this.$modal
|
||||
.confirm('是否确认删除当前节点数据吗?')
|
||||
.then(async () => {
|
||||
// 根据 row.level 判断是删除项目还是删除模型节点
|
||||
let res;
|
||||
if (row.level === 1) { // 假设 level 1 是项目
|
||||
res = await delProject(row.id); // 使用 delProject API 删除项目
|
||||
let res
|
||||
if (row.level === 1) {
|
||||
// 假设 level 1 是项目
|
||||
res = await delProject(row.id) // 使用 delProject API 删除项目
|
||||
} else {
|
||||
res = await delModelApi({ id: row.id }); // 使用 delModelApi 删除模型节点
|
||||
res = await delModelApi({ id: row.id }) // 使用 delModelApi 删除模型节点
|
||||
}
|
||||
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
this.getModelList()
|
||||
} else {
|
||||
this.$modal.msgError(res.msg || '删除失败');
|
||||
this.$modal.msgError(res.msg || '删除失败')
|
||||
}
|
||||
}).catch(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
// 用户取消删除
|
||||
})
|
||||
},
|
||||
|
|
@ -496,25 +537,42 @@ export default {
|
|||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.proId != undefined) {
|
||||
updateProject(this.form).then((response) => {
|
||||
updateProject(this.form)
|
||||
.then((response) => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getModelList() // 刷新列表
|
||||
}).catch(error => {
|
||||
console.error("修改项目失败:", error);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('修改项目失败:', error)
|
||||
})
|
||||
} else {
|
||||
addProject(this.form).then((response) => {
|
||||
addProject(this.form)
|
||||
.then((response) => {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getModelList() // 刷新列表
|
||||
}).catch(error => {
|
||||
console.error("新增项目失败:", error);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('新增项目失败:', error)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 获取所有的项目下拉选
|
||||
async getProjectSelectList() {
|
||||
const { data: res } = await getProjectSelectListApi()
|
||||
|
||||
console.log(res, '下拉选的所有数据')
|
||||
this.projectSelectList = res
|
||||
|
||||
if (res.length > 0) {
|
||||
this.queryParams.projectId = res[0].id
|
||||
this.getModelList()
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
1080
src/views/index.vue
1080
src/views/index.vue
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue