Ver código fonte

列表完善

zhaoen 4 meses atrás
pai
commit
39a0956ab0

+ 10 - 3
src/api/threeMork.js

@@ -28,10 +28,17 @@ export function updateModel(data) {
 }
 
 // 删除
-export function delModel(param) {
+export function delModel(id) {
   return request({
-    url: "/api/v1/three-d-model/delete",
+    url: `/api/v1/three-d-model/delete/${id}`,
     method: "delete",
-    params: param,
+  });
+}
+
+// 查询所有模型类型
+export function getAllModelType() {
+  return request({
+    url: "/api/v1/three-d-model/getTypes",
+    method: "get",
   });
 }

+ 4 - 4
src/api/threeTypeMork.js

@@ -3,7 +3,7 @@ import request from "@/utils/request";
 // 分页获取列表
 export function getDataList(param) {
   return request({
-    url: "/api/v1/three-d-model/page",
+    url: "/api/v1/three-d-model-type/page",
     method: "get",
     params: param,
   });
@@ -12,7 +12,7 @@ export function getDataList(param) {
 // 新增
 export function addModel(data) {
   return request({
-    url: "/api/v1/three-d-model/add",
+    url: "/api/v1/three-d-model-type/add",
     method: "post",
     data,
   });
@@ -21,7 +21,7 @@ export function addModel(data) {
 // 删除
 export function delModel(param) {
   return request({
-    url: "/api/v1/three-d-model/delete",
+    url: "/api/v1/three-d-model-type/delete",
     method: "delete",
     params: param,
   });
@@ -30,7 +30,7 @@ export function delModel(param) {
 // 修改
 export function updateModel(data) {
   return request({
-    url: "/api/v1/three-d-model/upDate",
+    url: "/api/v1/three-d-model-type/upDate",
     method: "post",
     data,
   });

+ 83 - 68
src/views/dataManagement/threeModelManagement/index.vue

@@ -11,18 +11,16 @@
         />
       </el-form-item>
       <el-form-item label="模型类型">
-        <el-select v-model="queryForm.modelType" placeholder="全部" clearable>
-          <el-option label="建筑" value="building"/>
-          <el-option label="装备" value="equipment"/>
-          <el-option label="载具" value="vehicle"/>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="发布状态">
-        <el-select v-model="queryForm.modelCategory" placeholder="全部" clearable>
-          <el-option label="草稿" value="draft"/>
-          <el-option label="已发布" value="published"/>
+        <el-select v-model="queryForm.modelTypeId" placeholder="全部" clearable>
+          <el-option v-for="(item, index) in allTypeList" :key="index" :label="item.typeName" :value="item.id"/>
         </el-select>
       </el-form-item>
+      <!--<el-form-item label="发布状态">-->
+      <!--  <el-select v-model="queryForm.modelCategory" placeholder="全部" clearable>-->
+      <!--    <el-option label="草稿" value="draft"/>-->
+      <!--    <el-option label="已发布" value="published"/>-->
+      <!--  </el-select>-->
+      <!--</el-form-item>-->
     </template>
 
     <!-- 顶部操作 -->
@@ -48,25 +46,30 @@
       >
         <el-table-column type="selection" width="55"/>
         <el-table-column type="index" label="序号" width="60"/>
-        <el-table-column prop="id" label="模型编号" width="120" align="center"/>
+        <!--<el-table-column prop="id" label="模型编号" width="120" align="center"/>-->
         <el-table-column prop="modelName" label="模型名称" min-width="180" show-overflow-tooltip/>
-        <el-table-column prop="modelType" label="模型类型" width="100" align="center"/>
-        <el-table-column label="发布状态" width="100" align="center">
-          <template slot-scope="{row}">
-            <el-tag :type="row.status===1 ? 'success' : 'error'" size="mini">
-              {{ row.status===1 ? '启用' : '禁用' }}
-            </el-tag>
-          </template>
-        </el-table-column>
-        <el-table-column prop="version" label="版本" width="100" align="center"/>
-        <el-table-column prop="secretLevel" label="密级" width="80" align="center"/>
-        <el-table-column prop="modelCategory" label="文件大小" width="100" align="center"/>
-        <el-table-column prop="uploader" label="上传人" width="100" align="center"/>
+        <!--<el-table-column prop="modelTypeId" label="模型类型" align="center">-->
+        <!--  <template slot-scope="{ row }">-->
+        <!--    <span>{{ allTypeList.find(item => Number(item.id) == row.modelTypeId).typeName }}</span>-->
+        <!--  </template>-->
+        <!--</el-table-column>-->
+        <!--<el-table-column label="发布状态" width="100" align="center">-->
+        <!--  <template slot-scope="{row}">-->
+        <!--    <el-tag :type="row.status===1 ? 'success' : 'error'" size="mini">-->
+        <!--      {{ row.status===1 ? '启用' : '禁用' }}-->
+        <!--    </el-tag>-->
+        <!--  </template>-->
+        <!--</el-table-column>-->
+        <!--<el-table-column prop="version" label="版本" width="100" align="center"/>-->
+        <!--<el-table-column prop="secretLevel" label="密级" width="80" align="center"/>-->
+        <!--<el-table-column prop="modelCategory" label="文件大小" width="100" align="center"/>-->
+        <!--<el-table-column prop="uploader" label="上传人" width="100" align="center"/>-->
+        <el-table-column prop="creator" label="创建人" min-width="180" align="center" sortable/>
         <el-table-column prop="createTime" label="创建时间" min-width="180" align="center" sortable/>
-        <el-table-column label="操作" fixed="right" align="center" min-width="240">
+        <el-table-column label="操作" fixed="right" align="center">
           <template slot-scope="{ row }">
             <div class="action-bar">
-              <el-link type="primary" :underline="false" @click="handleView(row)">预览</el-link>
+              <!--<el-link type="primary" :underline="false" @click="handleView(row)">预览</el-link>-->
               <el-link type="primary" :underline="false" @click="handleEdit(row)">编辑</el-link>
               <!--<el-link type="success" :underline="false" @click="togglePublish(row)">-->
               <!--  {{ row.modelCategory === 'published' ? '下线' : '发布' }}-->
@@ -93,10 +96,10 @@
     </div>
 
     <!-- 底部操作 -->
-    <template #footer-actions>
-      <el-button icon="el-icon-download" @click="exportList">导出清单</el-button>
-      <span class="footer-tips">选中 {{ selectedRows.length }} 项</span>
-    </template>
+    <!--<template #footer-actions>-->
+    <!--  <el-button icon="el-icon-download" @click="exportList">导出清单</el-button>-->
+    <!--  <span class="footer-tips">选中 {{ selectedRows.length }} 项</span>-->
+    <!--</template>-->
 
     <!-- 预览弹窗 -->
     <el-dialog title="模型预览" :visible.sync="previewVisible" width="800px" class="model-dialog">
@@ -125,9 +128,7 @@
           <el-col :span="12">
             <el-form-item label="模型类型" prop="modelTypeId">
               <el-select v-model="addForm.modelTypeId" placeholder="请选择">
-                <el-option label="建筑" value="building"/>
-                <el-option label="装备" value="equipment"/>
-                <el-option label="载具" value="vehicle"/>
+                <el-option v-for="(item, index) in allTypeList" :key="index" :label="item.typeName" :value="item.id"/>
               </el-select>
             </el-form-item>
           </el-col>
@@ -142,19 +143,19 @@
             </el-form-item>
           </el-col>
 
-          <!--<el-col :span="12">-->
-          <!--  <el-form-item label="模型格式" prop="modelFormat">-->
-          <!--    <el-select v-model="addForm.modelFormat" placeholder="自动识别或手选" filterable allow-create-->
-          <!--               default-first-option>-->
-          <!--      <el-option label="glb" value="glb"/>-->
-          <!--      <el-option label="gltf" value="gltf"/>-->
-          <!--      <el-option label="fbx" value="fbx"/>-->
-          <!--      <el-option label="obj" value="obj"/>-->
-          <!--      <el-option label="dae" value="dae"/>-->
-          <!--      <el-option label="stl" value="stl"/>-->
-          <!--    </el-select>-->
-          <!--  </el-form-item>-->
-          <!--</el-col>-->
+          <el-col :span="12">
+            <el-form-item label="模型格式" prop="modelFormat">
+              <el-select v-model="addForm.modelFormat" placeholder="自动识别或手选" filterable allow-create
+                         default-first-option>
+                <el-option label="glb" value="glb"/>
+                <el-option label="gltf" value="gltf"/>
+                <el-option label="fbx" value="fbx"/>
+                <el-option label="obj" value="obj"/>
+                <el-option label="dae" value="dae"/>
+                <el-option label="stl" value="stl"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
 
           <el-col :span="24">
             <el-form-item label="模型文件" prop="modelFilePath">
@@ -189,21 +190,21 @@
             </el-form-item>
           </el-col>
 
-          <!--<el-col :span="24">-->
-          <!--  <el-form-item label="模型标签" prop="tags">-->
-          <!--    <el-select-->
-          <!--      v-model="addForm.tags"-->
-          <!--      multiple-->
-          <!--      filterable-->
-          <!--      allow-create-->
-          <!--      default-first-option-->
-          <!--      placeholder="输入并回车可创建新标签"-->
-          <!--      style="width:100%"-->
-          <!--    >-->
-          <!--      <el-option v-for="t in tagOptions" :key="t" :label="t" :value="t"/>-->
-          <!--    </el-select>-->
-          <!--  </el-form-item>-->
-          <!--</el-col>-->
+          <el-col :span="24">
+            <el-form-item label="模型标签" prop="tags">
+              <el-select
+                v-model="addForm.tags"
+                multiple
+                filterable
+                allow-create
+                default-first-option
+                placeholder="输入并回车可创建新标签"
+                style="width:100%"
+              >
+                <el-option v-for="t in tagOptions" :key="t" :label="t" :value="t"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
 
@@ -216,14 +217,15 @@
 </template>
 
 <script>
-import {getDataList, addModel, updateModel, delModel} from '@/api/threeMork.js'
+import {getDataList, addModel, updateModel, delModel, getAllModelType} from '@/api/threeMork.js'
 
 export default {
   name: 'ThreeModelManagement',
   data() {
     return {
+      addOrUpdateTitle: '新增',
       // 查询
-      queryForm: {modelName: '', modelType: '', modelCategory: ''},
+      queryForm: {modelName: '', modelTypeId: ''},
 
       // 列表&分页
       tableData: [],
@@ -247,7 +249,8 @@ export default {
         modelSize: 0,
         modelFormat: '',
         description: '',
-        tags: []
+        tags: [],
+        status: '0'
       },
       addRules: {
         modelName: [{required: true, message: '请输入模型名称', trigger: 'blur'}],
@@ -259,13 +262,24 @@ export default {
         tags: [{type: 'array', required: true, message: '至少添加1个标签', trigger: 'change'}]
       },
       tagOptions: ['建筑', '场景', '环境', '机密', '标准件', '高精度'],
+      allTypeList: [],
     }
   },
   created() {
     // this.initMock()
+    this.getAll()
     this.handleQuery()
   },
   methods: {
+    // 获取所有类型
+    getAll() {
+      getAllModelType().then(res =>{
+        if (res.code !== 0) {
+          return
+        }
+        this.allTypeList = res.data || []
+      })
+    },
     /* ====== 数据Mock ====== */
     initMock() {
       const types = {building: '建筑', equipment: '装备', vehicle: '载具'}
@@ -296,13 +310,13 @@ export default {
       let param = {
         pageNo: this.pagination.currentPage,
         pageSize: this.pagination.pageSize,
-        // ...this.queryForm
+        ...this.queryForm
       }
       getDataList(param).then(res => {
         if (res.code !== 0) {
           return
         }
-        this.tableData = res.data.rows || []
+        this.tableData = res.data.records || []
         this.pagination.total = res.data.total
         console.log(res)
       }).catch(() => {
@@ -317,7 +331,7 @@ export default {
       // this.tableData = list.slice(start, start + this.pagination.pageSize)
     },
     resetQuery() {
-      this.queryForm = {modelName: '', modelType: '', modelCategory: ''}
+      this.queryForm = {modelName: '', modelTypeId: ''}
       this.pagination.currentPage = 1
       this.handleQuery()
     },
@@ -350,7 +364,7 @@ export default {
     },
     handleDelete(row) {
       // this.allData = this.allData.filter(r => r.code !== row.code)
-      delModel({id: row.id}).then(res => {
+      delModel(row.id).then(res => {
         if (res.code !== 0) {
           return
         }
@@ -381,7 +395,8 @@ export default {
         modelSize: 0,
         modelFormat: '',
         description: '',
-        tags: []
+        tags: [],
+        status: '0'
       }
       this.addOrUpdateTitle = '新建'
       this.addVisible = true

+ 157 - 102
src/views/dataManagement/threeModelTypeManagement/index.vue

@@ -2,38 +2,38 @@
   <Container :query-form="queryForm" class="mtm-container">
     <!-- 头部查询表单 -->
     <template #query-form>
-      <el-form-item label="三维型类型名称">
+      <el-form-item label="模型名称">
         <el-input
-          v-model="queryForm.name"
-          placeholder="请输入三维型类型名称"
+          v-model="queryForm.typeName"
+          placeholder="请输入模型名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="三维模型类型码">
+      <el-form-item label="模型类">
         <el-select
-          v-model="queryForm.code"
+          v-model="queryForm.typeCategory"
           placeholder="全部"
           clearable
           filterable
           style="width: 180px"
         >
-          <el-option label="ADMIN" value="ADMIN" />
-          <el-option label="EQUIP" value="EQUIP" />
-          <el-option label="ASSET" value="ASSET" />
+          <el-option label="ADMIN" value="ADMIN"/>
+          <el-option label="EQUIP" value="EQUIP"/>
+          <el-option label="ASSET" value="ASSET"/>
         </el-select>
       </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="queryForm.dateRange"
-          type="datetimerange"
-          range-separator="至"
-          start-placeholder="开始时间"
-          end-placeholder="结束时间"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          clearable
-        />
-      </el-form-item>
+      <!--<el-form-item label="创建时间">-->
+      <!--  <el-date-picker-->
+      <!--    v-model="queryForm.dateRange"-->
+      <!--    type="datetimerange"-->
+      <!--    range-separator="至"-->
+      <!--    start-placeholder="开始时间"-->
+      <!--    end-placeholder="结束时间"-->
+      <!--    value-format="yyyy-MM-dd HH:mm:ss"-->
+      <!--    clearable-->
+      <!--  />-->
+      <!--</el-form-item>-->
     </template>
 
     <!-- 头部操作按钮 -->
@@ -46,7 +46,8 @@
         icon="el-icon-delete"
         :disabled="!selectedRows.length"
         @click="handleBatchDelete"
-      >批量删除</el-button>
+      >批量删除
+      </el-button>
     </template>
 
     <!-- 主内容区表格 -->
@@ -56,38 +57,41 @@
         :data="tableData"
         border
         stripe
-        height="100%"
         size="mini"
         highlight-current-row
         @selection-change="handleSelectionChange"
       >
-        <el-table-column type="selection" width="55" />
-        <el-table-column type="index" label="序号" width="60" />
-        <el-table-column prop="id" label="编号" width="100" sortable align="center" />
+        <el-table-column type="selection" width="55"/>
+        <el-table-column type="index" label="序号" width="60"/>
+        <el-table-column prop="id" label="编号" width="100" sortable align="center"/>
         <el-table-column
           prop="typeName"
-          label="三维模型类型名称"
+          label="类型名称"
           min-width="200"
           align="center"
           show-overflow-tooltip
         />
         <el-table-column
-          prop="typeCode"
-          label="三维模型类型编码"
+          prop="typeCategory"
+          label="类型分类"
           min-width="160"
           align="center"
-          :filters="[{text:'ADMIN',value:'ADMIN'},{text:'EQUIP',value:'EQUIP'},{text:'ASSET',value:'ASSET'}]"
-          :filter-method="(value, row) => row.code === value"
-          filter-placement="bottom-end"
         />
-        <el-table-column prop="creator" label="创建人" width="120" align="center" />
-        <el-table-column prop="createTime" label="创建时间" min-width="180" align="center" sortable />
-        <el-table-column label="操作" fixed="right" align="center" min-width="220">
+        <el-table-column prop="description" label="模型描述" align="center"/>
+        <el-table-column prop="status" label="是否启用" width="120" align="center">
+          <template slot-scope="{ row }">
+            <el-tag type="success" v-if="row.status === 1">是</el-tag>
+            <el-tag type="danger" v-else>否</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column prop="creator" label="创建人" width="120" align="center"/>
+        <el-table-column prop="createTime" label="创建时间" min-width="180" align="center" sortable/>
+        <el-table-column label="操作" fixed="right" align="center">
           <template slot-scope="{ row }">
             <div class="action-bar">
-              <el-link type="primary" :underline="false" @click="handleView(row)">查看</el-link>
+              <!--<el-link type="primary" :underline="false" @click="handleView(row)">查看</el-link>-->
               <el-link type="primary" :underline="false" @click="handleEdit(row)">编辑</el-link>
-              <el-link type="danger"  :underline="false" @click="handleDelete(row)">删除</el-link>
+              <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
             </div>
           </template>
         </el-table-column>
@@ -145,27 +149,27 @@
     >
       <el-form ref="addFormRef" :model="addForm" :rules="addRules" label-width="110px" size="small">
         <el-form-item label="类型名称" prop="typeName">
-          <el-input v-model.trim="addForm.typeName" maxlength="100" show-word-limit placeholder="请输入类型名称" />
+          <el-input v-model.trim="addForm.typeName" maxlength="100" show-word-limit placeholder="请输入类型名称"/>
         </el-form-item>
         <el-form-item label="类型编码" prop="typeCode">
-          <el-input v-model.trim="addForm.typeCode" placeholder="请输入类型编码" />
+          <el-input v-model.trim="addForm.typeCode" placeholder="请输入类型编码"/>
+        </el-form-item>
+        <el-form-item label="类型分类" prop="typeCategory">
+          <el-select v-model="addForm.typeCategory" placeholder="请选择类型分类" style="width: 220px">
+            <el-option label="分类一" value="ADMIN"/>
+            <el-option label="分类二" value="EQUIP"/>
+            <el-option label="分类三" value="ASSET"/>
+          </el-select>
         </el-form-item>
-        <!--<el-form-item label="类型分类" prop="typeCategory">-->
-        <!--  <el-select v-model="addForm.typeCategory" placeholder="请选择类型分类" style="width: 220px">-->
-        <!--    <el-option label="分类一" value="ADMIN" />-->
-        <!--    <el-option label="分类二" value="EQUIP" />-->
-        <!--    <el-option label="分类三" value="ASSET" />-->
-        <!--  </el-select>-->
-        <!--</el-form-item>-->
         <el-form-item label="类型描述" prop="description">
-          <el-input type="textarea" v-model="addForm.description" placeholder="请输入类型描述" />
+          <el-input type="textarea" v-model="addForm.description" placeholder="请输入类型描述"/>
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="addForm.status" placeholder="请选择状态" style="width: 220px">
+            <el-option label="禁用" value="0"/>
+            <el-option label="启用" value="1"/>
+          </el-select>
         </el-form-item>
-        <!--<el-form-item label="状态" prop="status">-->
-        <!--  <el-select v-model="addForm.status" placeholder="请选择状态" style="width: 220px">-->
-        <!--    <el-option label="禁用" value="0" />-->
-        <!--    <el-option label="启用" value="1" />-->
-        <!--  </el-select>-->
-        <!--</el-form-item>-->
         <!--<el-form-item label="创建人" prop="creator">-->
         <!--  <el-input v-model.trim="addForm.creator" placeholder="例如:ADMIN/张三" />-->
         <!--</el-form-item>-->
@@ -189,15 +193,16 @@
 
 <script>
 import {getDataList, addModel, delModel, updateModel} from '@/api/threeTypeMork'
+
 export default {
   name: 'ModelTypeManagement',
-  data () {
+  data() {
     return {
       // 查询表单
       queryForm: {
-        name: '',
-        code: '',
-        dateRange: []
+        typeName: '',
+        id: '',
+        typeCategory: ''
       },
       // 表格
       tableData: [],
@@ -222,37 +227,37 @@ export default {
       addForm: {
         typeName: '',
         typeCode: '',
-        // typeCategory: '',
+        typeCategory: '',
         description: '',
-        // status: '',
+        status: '',
         // creator: 'ADMIN',
         // createTime: ''
       },
       addRules: {
         typeName: [
-          { required: true, message: '请输入类型名称', trigger: 'blur' },
-          { min: 1, max: 100, message: '长度在 1~100 个字符', trigger: 'blur' }
+          {required: true, message: '请输入类型名称', trigger: 'blur'},
+          {min: 1, max: 100, message: '长度在 1~100 个字符', trigger: 'blur'}
         ],
-        typeCode: [{ required: true, message: '请选择类型码', trigger: 'change' }],
-        creator: [{ required: true, message: '请输入创建人', trigger: 'blur' }],
-        createTime: [{ required: true, message: '请选择创建时间', trigger: 'change' }]
+        typeCode: [{required: true, message: '请选择类型码', trigger: 'change'}],
+        creator: [{required: true, message: '请输入创建人', trigger: 'blur'}],
+        createTime: [{required: true, message: '请选择创建时间', trigger: 'change'}]
       }
     }
   },
-  created () {
+  created() {
     // this.initMock()
     this.handleQuery()
   },
   methods: {
     /* ------------ 工具 ------------- */
-    nowStr () {
+    nowStr() {
       const d = new Date()
       const pad = n => n.toString().padStart(2, '0')
-      return `${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`
+      return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`
     },
 
     /* ------------ 数据 ------------- */
-    initMock () {
+    initMock() {
       const creators = ['ADMIN', '系统', '张三', '李四']
       const arr = []
       for (let i = 1; i <= 658; i++) {
@@ -261,24 +266,25 @@ export default {
           name: `设备${(i % 9) + 1}`,
           code: ['ADMIN', 'EQUIP', 'ASSET'][i % 3],
           creator: creators[i % creators.length],
-          createTime: `2021-02-${(i % 28 + 1).toString().padStart(2,'0')} 10:30:00`
+          createTime: `2021-02-${(i % 28 + 1).toString().padStart(2, '0')} 10:30:00`
         })
       }
       this.allData = arr
     },
 
     /* ------------ 查询&分页 ------------- */
-    handleQuery () {
+    handleQuery() {
       let param = {
         pageNo: this.pagination.currentPage,
-        pageSize: this.pagination.pageSize
+        pageSize: this.pagination.pageSize,
+        ...this.queryForm
       }
       getDataList(param).then(res => {
         if (res.code !== 0) {
           return
         }
         this.pagination.total = res.data.total
-        this.tableData = res.data.rows || []
+        this.tableData = res.data.records || []
       })
       // 过滤
       // let list = this.allData.slice()
@@ -304,36 +310,41 @@ export default {
       // const startIdx = (this.pagination.currentPage - 1) * this.pagination.pageSize
       // this.tableData = list.slice(startIdx, startIdx + this.pagination.pageSize)
     },
-    resetQuery () {
-      this.queryForm = { name: '', code: '', dateRange: [] }
+    resetQuery() {
+      this.queryForm = {
+        typeName: '',
+        id: '',
+        typeCategory: ''
+      }
       this.pagination.currentPage = 1
       this.handleQuery()
     },
-    handleSizeChange (size) {
+    handleSizeChange(size) {
       this.pagination.pageSize = size
       this.pagination.currentPage = 1
       this.handleQuery()
     },
-    handleCurrentChange (page) {
+    handleCurrentChange(page) {
       this.pagination.currentPage = page
       this.handleQuery()
     },
 
     /* ------------ 选择/操作 ------------- */
-    handleSelectionChange (val) {
+    handleSelectionChange(val) {
       this.selectedRows = val
     },
-    handleView (row) {
-      this.currentRow = { ...row }
+    handleView(row) {
+      this.currentRow = {...row}
       this.detailVisible = true
     },
-    handleEdit (row) {
+    handleEdit(row) {
       // this.$message.info(`编辑:#${row.id} ${row.name}(占位)`)
       this.addForm = {...row}
       this.addOrUpdateTitle = '编辑'
+      this.addVisible = true
     },
-    handleDelete (row) {
-      this.$confirm(`确认删除「${row.name}」吗?`, '提示', { type: 'warning' })
+    handleDelete(row) {
+      this.$confirm(`确认删除「${row.name}」吗?`, '提示', {type: 'warning'})
         .then(() => {
           delModel({id: row.id}).then(res => {
             if (res.code !== 0) {
@@ -357,12 +368,13 @@ export default {
           // }
           this.handleQuery()
         })
-        .catch(() => {})
+        .catch(() => {
+        })
     },
-    handleBatchDelete () {
+    handleBatchDelete() {
       const ids = new Set(this.selectedRows.map(r => r.id))
       if (!ids.size) return
-      this.$confirm(`确认删除选中的 ${ids.size} 条记录吗?`, '警告', { type: 'warning' })
+      this.$confirm(`确认删除选中的 ${ids.size} 条记录吗?`, '警告', {type: 'warning'})
         .then(() => {
           this.allData = this.allData.filter(r => !ids.has(r.id))
           this.$refs.table && this.$refs.table.clearSelection()
@@ -373,11 +385,12 @@ export default {
           }
           this.handleQuery()
         })
-        .catch(() => {})
+        .catch(() => {
+        })
     },
 
     /* ------------ 新建 ------------- */
-    openAdd () {
+    openAdd() {
       // 预填创建时间为此刻
       this.addForm = {
         typeName: '',
@@ -392,7 +405,7 @@ export default {
       this.addVisible = true
       this.$nextTick(() => this.$refs.addFormRef && this.$refs.addFormRef.clearValidate())
     },
-    handleAddSubmit () {
+    handleAddSubmit() {
       this.$refs.addFormRef.validate(valid => {
         if (!valid) return
         (this.addOrUpdateTitle === '编辑' ? updateModel : addModel)(this.addForm).then(res => {
@@ -428,7 +441,7 @@ export default {
         this.handleQuery()
       })
     },
-    onAddClosed () {
+    onAddClosed() {
       // 关闭时重置表单,避免下次残留
       this.$refs.addFormRef && this.$refs.addFormRef.resetFields()
     }
@@ -443,20 +456,37 @@ export default {
   color: var(--dark-text-primary);
   border-color: var(--dark-border-color);
 }
+
 .mtm-container .el-table th {
-  background-color: rgba(30,55,95,.3);
+  background-color: rgba(30, 55, 95, .3);
   border-color: var(--dark-border-color);
   color: var(--dark-text-primary);
 }
-.mtm-container .el-table tr { background-color: var(--dark-card-bg); }
-.mtm-container .el-table tr:hover > td { background-color: rgba(45,75,120,.2); }
-.mtm-container .el-table td { border-color: var(--dark-border-color); }
+
+.mtm-container .el-table tr {
+  background-color: var(--dark-card-bg);
+}
+
+.mtm-container .el-table tr:hover > td {
+  background-color: rgba(45, 75, 120, .2);
+}
+
+.mtm-container .el-table td {
+  border-color: var(--dark-border-color);
+}
+
 .mtm-container .el-table--striped .el-table__body tr.el-table__row--striped td {
-  background-color: rgba(30,55,95,.1);
+  background-color: rgba(30, 55, 95, .1);
+}
+
+.mtm-container .el-table__current-row td {
+  background-color: rgba(64, 150, 255, .15) !important;
+}
+
+.mtm-container .el-pagination {
+  color: var(--dark-text-secondary);
 }
-.mtm-container .el-table__current-row td { background-color: rgba(64,150,255,.15) !important; }
 
-.mtm-container .el-pagination { color: var(--dark-text-secondary); }
 .mtm-container .el-pagination button,
 .mtm-container .el-pagination span:not([class*='el-icon']),
 .mtm-container .el-pagination .el-pager li {
@@ -464,12 +494,20 @@ export default {
   background-color: var(--dark-card-bg);
   border-color: var(--dark-border-color);
 }
+
 .mtm-container .el-pagination .el-pager li.active {
-  background-color: var(--dark-primary-color); color:#fff;
+  background-color: var(--dark-primary-color);
+  color: #fff;
+}
+
+.mtm-container .el-pagination .el-pager li:hover {
+  color: var(--dark-primary-color);
+}
+
+.mtm-container .el-form-item__label {
+  color: var(--dark-text-secondary);
 }
-.mtm-container .el-pagination .el-pager li:hover { color: var(--dark-primary-color); }
 
-.mtm-container .el-form-item__label { color: var(--dark-text-secondary); }
 .mtm-container .el-input__inner,
 .mtm-container .el-select__inner,
 .mtm-container .el-date-editor .el-input__inner {
@@ -478,10 +516,22 @@ export default {
   color: var(--dark-text-primary);
 }
 
-.mtm-dialog .el-dialog { background-color: var(--dark-card-bg); border:1px solid var(--dark-border-color); }
-.mtm-dialog .el-dialog__title { color: var(--dark-text-primary); }
-.mtm-dialog .el-dialog__header { border-bottom: 1px solid var(--dark-border-color); }
-.mtm-dialog .el-dialog__footer { border-top: 1px solid var(--dark-border-color); }
+.mtm-dialog .el-dialog {
+  background-color: var(--dark-card-bg);
+  border: 1px solid var(--dark-border-color);
+}
+
+.mtm-dialog .el-dialog__title {
+  color: var(--dark-text-primary);
+}
+
+.mtm-dialog .el-dialog__header {
+  border-bottom: 1px solid var(--dark-border-color);
+}
+
+.mtm-dialog .el-dialog__footer {
+  border-top: 1px solid var(--dark-border-color);
+}
 </style>
 
 <style scoped>
@@ -490,17 +540,22 @@ export default {
   flex-direction: column;
   height: 100%;
 }
+
 .pagination-container {
   margin-top: 14px;
   display: flex;
   justify-content: flex-end;
   align-items: center;
 }
+
 .action-bar {
   display: flex;
   justify-content: space-around;
   align-items: center;
   width: 100%;
 }
-.footer-tips { color: var(--dark-text-secondary); }
+
+.footer-tips {
+  color: var(--dark-text-secondary);
+}
 </style>

+ 12 - 11
src/views/equipment/equipment.vue

@@ -5,17 +5,15 @@
     <template #query-form>
       <el-form-item label="装备名称">
         <el-input
-          v-model="queryForm.modelName"
+          v-model="queryForm.equipmentName"
           placeholder="输入装备名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
       <el-form-item label="装备类型">
-        <el-select v-model="queryForm.modelType" placeholder="全部" clearable>
-          <el-option label="第一" value="building"/>
-          <el-option label="第二" value="equipment"/>
-          <el-option label="第三" value="vehicle"/>
+        <el-select v-model="queryForm.equipmentType" placeholder="全部" clearable>
+          <el-option v-for="(item, index) in zbTypeList" :key="index" :label="item.zbTypeName" :value="item.id"></el-option>
         </el-select>
       </el-form-item>
     </template>
@@ -49,14 +47,14 @@
         <el-table-column prop="communicationType" label="通讯方式" width="100" align="center">
           <template slot-scope="{ row }">
             <span v-if="row.communicationType === '0'">PDXP</span>
-            <span v-if="row.communicationType === '1'">UDP</span>
+            <span v-else-if="row.communicationType === '1'">UDP</span>
             <span v-else>TCP</span>
           </template>
         </el-table-column>
         <el-table-column prop="connectionStatus" label="连通状态" width="100" align="center">
           <template slot-scope="{ row }">
-            <span v-if="row.connectionStatus === '0'">断开</span>
-            <span v-if="row.connectionStatus === '1'">连接</span>
+            <span v-if="row.connectionStatus === 0">断开</span>
+            <span v-else-if="row.connectionStatus === 1">连接</span>
             <span v-else>-</span>
           </template>
         </el-table-column>
@@ -185,7 +183,7 @@ export default {
     return {
       addOrUpdateTitle: '新建',
       // 查询
-      queryForm: {modelName: '', modelType: '', modelCategory: ''},
+      queryForm: {equipmentName: '', equipmentType: ''},
 
       // 列表&分页
       tableData: [],
@@ -204,6 +202,7 @@ export default {
         ipAddress: '',        // IP地址
         port: '',             // 端口号
         communicationType: '',// 通讯方式(默认PDXP)
+        status: ''
       },
       addRules: {
       },
@@ -246,14 +245,14 @@ export default {
         if (res.code !== 0) {
           return
         }
-        this.tableData = res.data.rows || []
+        this.tableData = res.data.records || []
         this.pagination.total = res.data.total
         console.log(res)
       }).catch(() => {
       })
     },
     resetQuery() {
-      this.queryForm = {modelName: '', modelType: '', modelCategory: ''}
+      this.queryForm = {equipmentName: '', equipmentType: ''}
       this.pagination.currentPage = 1
       this.handleQuery()
     },
@@ -273,6 +272,7 @@ export default {
     },
     handleEdit(row) {
       this.addForm = {...row}
+      this.addForm.status = '0'
       // getEquDetails(row.id).then(res => {
       //   console.log(res)
       // })
@@ -305,6 +305,7 @@ export default {
         port: '',             // 端口号
         communicationType: '',// 通讯方式
         connectionStatus: '',
+        status: ''
       }
       this.addOrUpdateTitle = '新建'
       this.addVisible = true

+ 18 - 8
src/views/equipment/equipmentModel.vue

@@ -5,7 +5,7 @@
     <template #query-form>
       <el-form-item label="装备型号名称">
         <el-input
-          v-model="queryForm.zbModelName"
+          v-model="queryForm.modelName"
           placeholder="输入装备型号名称"
           clearable
           @keyup.enter.native="handleQuery"
@@ -32,8 +32,14 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55"/>
-        <el-table-column type="index" label="序号" width="60"/>
-        <el-table-column prop="zbTypeName" label="所属装备类型" width="120" align="center"/>
+        <!--<el-table-column type="index" label="序号" width="60"/>-->
+        <el-table-column prop="zbTypeName" label="所属装备类型" width="120" align="center">
+          <template slot-scope="{ row }">
+            <span>{{ row.zbTypeId }}</span>
+            <!--<span v-if="zbTypeList.length > 0">{{ zbTypeList.find(item => Number(item.id) === row.zbTypeId).typeName }}</span>-->
+            <!--<span v-else>-</span>-->
+          </template>
+        </el-table-column>
         <el-table-column prop="zbModelName" label="装备型号名称" align="center"/>
         <el-table-column prop="zbModelRemark" label="装备型号备注" align="center"/>
         <el-table-column prop="zbModelIcon" label="美军标图标" align="center">
@@ -128,8 +134,12 @@
                 <el-table-column prop="sourceType" label="类型">
                   <template slot-scope="scope">
                     <el-select v-if="scope.row.isEditing" v-model="scope.row.sourceType">
-                      <el-option v-for="(item, index) in $getDictList('zb_filed_type')" :key="index"
-                                 :label="item.dictName" :value="item.dictValue"></el-option>
+                      <el-option
+                        v-for="(item, index) in $getDictList('zb_filed_type')"
+                        :key="index"
+                        :label="item.dictName"
+                        :value="item.dictValue"
+                      ></el-option>
                     </el-select>
                     <span v-else>{{ scope.row.sourceType }}</span>
                   </template>
@@ -201,7 +211,7 @@ export default {
     return {
       addOrUpdateTitle: '新建',
       // 查询
-      queryForm: {zbModelName: ''},
+      queryForm: {modelName: ''},
 
       // 列表&分页
       tableData: [],
@@ -274,14 +284,14 @@ export default {
         if (res.code !== 0) {
           return
         }
-        this.tableData = res.data.rows || []
+        this.tableData = res.data.records || []
         this.pagination.total = res.data.total
         console.log(res)
       }).catch(() => {
       })
     },
     resetQuery() {
-      this.queryForm = {zbModelName: ''}
+      this.queryForm = {modelName: ''}
       this.pagination.currentPage = 1
       this.handleQuery()
     },

+ 4 - 4
src/views/equipment/equipmentType.vue

@@ -5,7 +5,7 @@
     <template #query-form>
       <el-form-item label="装备类型名称">
         <el-input
-          v-model="queryForm.zbTypeName"
+          v-model="queryForm.typeName"
           placeholder="输入装备名称"
           clearable
           @keyup.enter.native="handleQuery"
@@ -103,7 +103,7 @@ export default {
     return {
       addOrUpdateTitle: '新建',
       // 查询
-      queryForm: {zbTypeName: ''},
+      queryForm: {typeName: ''},
 
       // 列表&分页
       tableData: [],
@@ -137,14 +137,14 @@ export default {
         if (res.code !== 0) {
           return
         }
-        this.tableData = res.data.rows || []
+        this.tableData = res.data.records || []
         this.pagination.total = res.data.total
         console.log(res)
       }).catch(() => {
       })
     },
     resetQuery() {
-      this.queryForm = {zbTypeName: ''}
+      this.queryForm = {typeName: ''}
       this.pagination.currentPage = 1
       this.handleQuery()
     },