模型管理功能开发。

This commit is contained in:
lSun 2025-11-12 14:20:06 +08:00
parent db57695418
commit 6def9f51f2
5 changed files with 613 additions and 560 deletions

View File

@ -13,10 +13,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备编" prop="deviceCode"> <el-form-item label="设备编" prop="deviceCode">
<el-input <el-input
clearable clearable
placeholder="请输入设备编" placeholder="请输入设备编"
v-model="queryParams.deviceCode" v-model="queryParams.deviceCode"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -59,10 +59,10 @@
<el-table-column label="序号" align="center" type="index"/> <el-table-column label="序号" align="center" type="index"/>
<!-- 设备类型 --> <!-- 设备类型 -->
<el-table-column label="设备类型" align="center" prop="deviceTypeName" /> <el-table-column label="设备类型" align="center" prop="deviceTypeName" />
<!-- 设备编 --> <!-- 设备编 -->
<el-table-column label="设备编" align="center" prop="deviceCode" /> <el-table-column label="设备编" align="center" prop="deviceCode" />
<!-- 所属保管人 --> <!-- 设备保管人 -->
<el-table-column label="所属保管人" align="center" prop="userName" /> <el-table-column label="设备保管人" align="center" prop="userName" />
<!-- 设备状态特殊处理 --> <!-- 设备状态特殊处理 -->
<el-table-column label="设备状态" align="center"> <el-table-column label="设备状态" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -195,11 +195,11 @@ export default {
prop: 'deviceTypeName', prop: 'deviceTypeName',
}, },
{ {
label: '设备编', label: '设备编',
prop: 'deviceCode', prop: 'deviceCode',
}, },
{ {
label: '所属保管人', label: '设备保管人',
prop: 'userName', prop: 'userName',
}, },
{ {

View File

@ -82,7 +82,7 @@ export default {
userList: [], userList: [],
columnList: [ columnList: [
{prop: 'deviceTypeName', label: '设备类型'}, {prop: 'deviceTypeName', label: '设备类型'},
{prop: 'deviceCode', label: '设备编'}, {prop: 'deviceCode', label: '设备编'},
{prop: 'userName', label: '领用人'}, {prop: 'userName', label: '领用人'},
{prop: 'startTime', label: '领用日期'}, {prop: 'startTime', label: '领用日期'},
{prop: 'endTime', label: '归还日期'}, {prop: 'endTime', label: '归还日期'},

View File

@ -26,14 +26,24 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item>--> </el-form-item>-->
<el-form-item label="负责人" prop="chargePerson"> <!-- <el-form-item label="负责人" prop="chargePerson">-->
<!-- <el-input-->
<!-- clearable-->
<!-- placeholder="请输入负责人"-->
<!-- v-model="queryParams.chargePerson"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="设计人" prop="designer">
<el-input <el-input
clearable clearable
placeholder="请输入负责人" placeholder="请输入设计人"
v-model="queryParams.chargePerson" v-model="queryParams.designer"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -62,6 +72,9 @@
</el-table-column> </el-table-column>
<el-table-column label="所属项目" align="center" prop="proName"/> <el-table-column label="所属项目" align="center" prop="proName"/>
<el-table-column label="层级名称" align="center" prop="levelName"/> <el-table-column label="层级名称" align="center" prop="levelName"/>
<el-table-column label="模型版本" align="center" prop="version"/>
<el-table-column label="版本说明" align="center" prop="remark"/>
<el-table-column label="设计人" align="center" prop="designer"/>
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button <el-button
@ -237,6 +250,7 @@ export default {
projectId: undefined, projectId: undefined,
unit: undefined, unit: undefined,
chargePerson: undefined, chargePerson: undefined,
designer:undefined
}, },
projectSelectList: [], projectSelectList: [],
list: [ list: [

View File

@ -28,6 +28,31 @@
</div> </div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label=" 模型版本" prop="version">
<el-row>
<el-col :span="20">
<el-input v-model="useOrReturnForm.version" placeholder="请输入模型版本"/>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="设计人员" prop="designer">
<el-row>
<el-col :span="20">
<el-input v-model="useOrReturnForm.designer" placeholder="请输入设计人员"/>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="版本描述" prop="remark">
<el-row>
<el-col :span="20">
<el-input type="textarea" v-model="useOrReturnForm.remark" placeholder="请输入版本描述"/>
</el-col>
</el-row>
</el-form-item>
<el-form-item> <el-form-item>
<el-button @click="cancel">取消</el-button> <el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="goToNextStep" :disabled="!fileList.length">下一步</el-button> <el-button type="primary" @click="goToNextStep" :disabled="!fileList.length">下一步</el-button>
@ -37,14 +62,14 @@
<!-- 图层和实体预览 --> <!-- 图层和实体预览 -->
<div v-if="showLayerDialog" class="layer-container"> <div v-if="showLayerDialog" class="layer-container">
<div class="all-select"> <div class="all-select">
<div class="item-index"> </div> <div class="item-index"></div>
<el-checkbox v-model="allSelect">全选</el-checkbox> <el-checkbox v-model="allSelect">全选</el-checkbox>
</div> </div>
<div class="layer-item" :key="layer.layerName" v-for="(layer, index) in layerList"> <div class="layer-item" :key="layer.layerName" v-for="(layer, index) in layerList">
<div class="item-index"> <div class="item-index">
{{ index + 1 }} {{ index + 1 }}
</div> </div>
<el-checkbox v-model="layer.checked" style="margin-right: 10px" /> <el-checkbox v-model="layer.checked" style="margin-right: 10px"/>
<span @click="handleLayerSelectNew(layer)"> <span @click="handleLayerSelectNew(layer)">
{{ layer.layerName }} {{ layer.layerName }}
</span> </span>
@ -59,8 +84,8 @@
</template> </template>
<script> <script>
import { getToken } from '@/utils/auth' import {getToken} from '@/utils/auth'
import { addModel } from '@/api/basic/model' import {addModel} from '@/api/basic/model'
export default { export default {
name: 'UseOrReturnForm', name: 'UseOrReturnForm',
@ -77,13 +102,17 @@ export default {
modelType: '', modelType: '',
version: '', version: '',
designer: '', designer: '',
remark: '',
user: '', user: '',
files: [], files: [],
modelUrl: '', modelUrl: '',
projectId: '', projectId: '',
}, },
useOrReturnFormRules: { useOrReturnFormRules: {
files: [{ required: true, message: '请上传模型文件', trigger: 'change' }], files: [{required: true, message: '请上传模型文件', trigger: 'change'}],
version: [{required: true, message: '请输入模型版本', trigger: 'blur'}],
designer: [{required: true, message: '请输入设计人员', trigger: 'blur'}],
remark: [{required: true, message: '请输入版本描述', trigger: 'blur'}],
}, },
fileList: [], fileList: [],
showLayerDialog: false, showLayerDialog: false,
@ -101,7 +130,7 @@ export default {
panY: 0, panY: 0,
originX: 200, originX: 200,
originY: 200, originY: 200,
viewBox: { x: 0, y: 0 }, viewBox: {x: 0, y: 0},
} }
}, },
computed: { computed: {
@ -182,7 +211,7 @@ export default {
this.zoomLevel = 1 this.zoomLevel = 1
this.panX = 0 this.panX = 0
this.panY = 0 this.panY = 0
this.viewBox = { x: 0, y: 0 } this.viewBox = {x: 0, y: 0}
}, },
startPan(event) { startPan(event) {
@ -212,6 +241,13 @@ export default {
}, },
goToNextStep() { goToNextStep() {
this.$refs.useOrReturnFormRef.validate((valid) => {
if (!valid) {
// Element
return false;
}
this.showLayerDialog = true this.showLayerDialog = true
if (!this.cadData || !this.cadData.length) { if (!this.cadData || !this.cadData.length) {
@ -222,7 +258,7 @@ export default {
const map = {} const map = {}
this.cadData.forEach((entity) => { this.cadData.forEach((entity) => {
if (!map[entity.layerName]) { if (!map[entity.layerName]) {
map[entity.layerName] = { layerName: entity.layerName, entities: [] } map[entity.layerName] = {layerName: entity.layerName, entities: []}
} }
if (!entity.id) { if (!entity.id) {
entity.id = entity.layerName + '_' + Math.random().toString(36).substr(2, 9) entity.id = entity.layerName + '_' + Math.random().toString(36).substr(2, 9)
@ -241,6 +277,7 @@ export default {
this.selectedLayerIndex = 0 this.selectedLayerIndex = 0
this.selectedLayerEntities = this.layerList[0].entities || [] this.selectedLayerEntities = this.layerList[0].entities || []
this.selectedEntities = [] this.selectedEntities = []
});
}, },
handleLayerSelect(index) { handleLayerSelect(index) {
@ -439,6 +476,7 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.upload-demo-tip { .upload-demo-tip {
margin-left: 10px; margin-left: 10px;
color: #f56c6c; color: #f56c6c;
@ -453,6 +491,7 @@ export default {
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 8px; width: 8px;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
background-color: #dcdfe6; background-color: #dcdfe6;
border-radius: 4px; border-radius: 4px;

View File

@ -16,26 +16,26 @@
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="主单位负责人" prop="unitMan"> <el-form-item label="主单位负责人" prop="unitMan">
<el-row> <el-row>
<el-col :span="20"> <el-col :span="20">
<el-input v-model="addOrEditForm.unitMan" placeholder="请输入主单位负责人"/> <el-input v-model="addOrEditForm.unitMan" placeholder="请输入主单位负责人"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="主单位负责人电话" prop="phone"> <el-form-item label="主单位负责人电话" prop="phone">
<el-row> <el-row>
<el-col :span="20"> <el-col :span="20">
<el-input v-model="addOrEditForm.phone" placeholder="请输入主单位负责人电话"/> <el-input v-model="addOrEditForm.phone" placeholder="请输入主单位负责人电话"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="主单位地址" prop="address"> <el-form-item label="主单位地址" prop="address">
<el-row> <el-row>
<el-col :span="20"> <el-col :span="20">
<el-input v-model="addOrEditForm.address" placeholder="请输入主单位地址"/> <el-input v-model="addOrEditForm.address" placeholder="请输入主单位地址"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
@ -74,7 +74,7 @@ export default {
}, },
addOrEditFormRules: { addOrEditFormRules: {
unitName: [{required: true, message: '请输入业主单位名称', trigger: 'blur'}], unitName: [{required: true, message: '请输入业主单位名称', trigger: 'blur'}],
unitMan: [{required: true, message: '请输入主单位负责人', trigger: 'blur'}], unitMan: [{required: true, message: '请输入主单位负责人', trigger: 'blur'}],
}, },
} }
}, },