zhaoen пре 4 месеци
родитељ
комит
07d519c59f

+ 3 - 4
src/views/dataManagement/threeModelManagement/index.vue

@@ -39,7 +39,6 @@
         ref="table"
         :data="tableData"
         border
-        stripe
         size="mini"
         highlight-current-row
         @selection-change="handleSelectionChange"
@@ -66,15 +65,15 @@
         <!--<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">
+        <el-table-column label="操作" fixed="right" align="center" width="220">
           <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="handleEdit(row)">编辑</el-link>
+              <el-button size="small" plain icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
               <!--<el-link type="success" :underline="false" @click="togglePublish(row)">-->
               <!--  {{ row.modelCategory === 'published' ? '下线' : '发布' }}-->
               <!--</el-link>-->
-              <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+              <el-button size="small" type="danger" icon="el-icon-delete" @click="handleDelete(row)">删除</el-button>
             </div>
           </template>
         </el-table-column>

+ 5 - 7
src/views/dataManagement/threeModelTypeManagement/index.vue

@@ -56,7 +56,6 @@
         ref="table"
         :data="tableData"
         border
-        stripe
         size="mini"
         highlight-current-row
         @selection-change="handleSelectionChange"
@@ -67,14 +66,12 @@
         <el-table-column
           prop="typeName"
           label="类型名称"
-          min-width="200"
           align="center"
           show-overflow-tooltip
         />
         <el-table-column
           prop="typeCategory"
           label="类型分类"
-          min-width="160"
           align="center"
         />
         <el-table-column prop="description" label="模型描述" align="center"/>
@@ -85,13 +82,13 @@
           </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">
+        <el-table-column prop="createTime" label="创建时间" align="center" sortable/>
+        <el-table-column label="操作" fixed="right" align="center" width="220">
           <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="handleEdit(row)">编辑</el-link>
-              <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+              <el-button size="small" plain icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
+              <el-button size="small" type="danger" icon="el-icon-delete" @click="handleDelete(row)">删除</el-button>
             </div>
           </template>
         </el-table-column>
@@ -340,6 +337,7 @@ export default {
     handleEdit(row) {
       // this.$message.info(`编辑:#${row.id} ${row.name}(占位)`)
       this.addForm = {...row}
+      this.addForm.status = `${row.status}`
       this.addOrUpdateTitle = '编辑'
       this.addVisible = true
     },

+ 46 - 19
src/views/equipment/equipment.vue

@@ -31,16 +31,15 @@
         ref="table"
         :data="tableData"
         border
-        stripe
         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="zbTypeName" label="所属装备类型" width="120" align="center"/>
-        <el-table-column prop="zbModelName" label="所属装备型号名称" width="180" align="center" show-overflow-tooltip/>
-        <el-table-column prop="zbName" label="装备名称" min-width="180" show-overflow-tooltip/>
+        <el-table-column prop="zbTypeName" label="所属装备类型" align="center"/>
+        <el-table-column prop="zbModelName" label="所属装备型号名称" align="center" show-overflow-tooltip/>
+        <el-table-column prop="zbName" label="装备名称" show-overflow-tooltip/>
         <el-table-column prop="zbCode" label="装备编号" width="120" align="center"/>
         <el-table-column prop="ipAddress" label="IP地址" width="120" align="center"/>
         <el-table-column prop="port" label="端口" width="100" align="center"/>
@@ -60,11 +59,11 @@
         </el-table-column>
         <el-table-column prop="createTime" label="创建时间" align="center" sortable/>
         <el-table-column prop="userName" label="创建人" align="center" sortable/>
-        <el-table-column label="操作" fixed="right" align="center">
+        <el-table-column label="操作" fixed="right" align="center" width="220">
           <template slot-scope="{ row }">
             <div class="action-bar">
-              <el-link type="primary" :underline="false" @click="handleEdit(row)">编辑</el-link>
-              <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+              <el-button size="small" plain icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
+              <el-button size="small" type="danger" icon="el-icon-delete" @click="handleDelete(row)">删除</el-button>
             </div>
           </template>
         </el-table-column>
@@ -155,14 +154,14 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="状态" prop="connectionStatus">
-              <el-select v-model="addForm.connectionStatus">
-                <el-option :value="0" label="断开"></el-option>
-                <el-option :value="1" label="连接"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
+          <!--<el-col :span="12">-->
+          <!--  <el-form-item label="状态" prop="connectionStatus">-->
+          <!--    <el-select v-model="addForm.connectionStatus">-->
+          <!--      <el-option :value="0" label="断开"></el-option>-->
+          <!--      <el-option :value="1" label="连接"></el-option>-->
+          <!--    </el-select>-->
+          <!--  </el-form-item>-->
+          <!--</el-col>-->
         </el-row>
       </el-form>
 
@@ -202,9 +201,37 @@ export default {
         ipAddress: '',        // IP地址
         port: '',             // 端口号
         communicationType: '',// 通讯方式(默认PDXP)
-        status: ''
+        // status: ''
       },
       addRules: {
+        zbTypeId: [{required: true, message: '所属装备类型不能为空', trigger: 'change'}],
+        zbModelId: [{required: true, message: '所属装备型号名称不能为空', trigger: 'change'}],
+        zbName: [{required: true, message: '装备名称不能为空', trigger: 'blur'}],
+        zbCode: [{required: true, message: '装备编号不能为空', trigger: 'blur'}],
+        ipAddress: [
+          { required: true, message: 'IP地址不能为空', trigger: 'blur' },
+          {
+            pattern: /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
+            message: '请输入有效的IP地址(如:192.168.1.1)',
+            trigger: 'blur'
+          }
+        ],
+        port: [
+          { required: true, message: '端口号不能为空', trigger: 'blur' },
+          { pattern: /^\d+$/, message: '端口号只能输入数字', trigger: 'blur' },
+          {
+            validator: (rule, value, callback) => {
+              const port = parseInt(value, 10)
+              if (port < 1 || port > 65535) {
+                callback(new Error('端口号必须在1-65535之间'))
+              } else {
+                callback()
+              }
+            },
+            trigger: 'blur'
+          }
+        ],
+        communicationType: [{required: true, message: '通讯方式不能为空', trigger: 'change'}]
       },
       zbTypeList: [],
       zbModelList: [],
@@ -272,7 +299,7 @@ export default {
     },
     handleEdit(row) {
       this.addForm = {...row}
-      this.addForm.status = '0'
+      // this.addForm.status = '0'
       // getEquDetails(row.id).then(res => {
       //   console.log(res)
       // })
@@ -304,8 +331,8 @@ export default {
         ipAddress: '',        // IP地址
         port: '',             // 端口号
         communicationType: '',// 通讯方式
-        connectionStatus: '',
-        status: ''
+        // connectionStatus: '',
+        // status: ''
       }
       this.addOrUpdateTitle = '新建'
       this.addVisible = true

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

@@ -26,8 +26,6 @@
         ref="table"
         :data="tableData"
         border
-        stripe
-        size="mini"
         highlight-current-row
         @selection-change="handleSelectionChange"
       >
@@ -49,11 +47,11 @@
         </el-table-column>
         <el-table-column prop="userName" label="创建人" width="120" align="center" sortable/>
         <el-table-column prop="createTime" label="创建时间" width="180" align="center" sortable/>
-        <el-table-column label="操作" fixed="right" align="center" width="100">
+        <el-table-column label="操作" fixed="right" align="center" width="220">
           <template slot-scope="{ row }">
             <div class="action-bar">
-              <el-link type="primary" :underline="false" @click="handleEdit(row)">编辑</el-link>
-              <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+              <el-button size="small" plain icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
+              <el-button size="small" type="danger" icon="el-icon-delete" @click="handleDelete(row)">删除</el-button>
             </div>
           </template>
         </el-table-column>
@@ -86,7 +84,7 @@
       <el-form ref="addFormRef" :model="addForm" :rules="addRules" label-width="110px" size="small">
         <el-row :gutter="16">
           <el-col :span="12">
-            <el-form-item label="所属装备类型" prop="zbTypeName">
+            <el-form-item label="所属装备类型" prop="zbTypeId">
               <el-select v-model="addForm.zbTypeId" placeholder="请选择所属装备类型">
                 <el-option v-for="(item, index) in zbTypeList" :key="index" :label="item.zbTypeName"
                            :value="item.id"></el-option>
@@ -94,7 +92,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="装备型号名称" prop="zbModeName">
+            <el-form-item label="装备型号名称" prop="zbModelName">
               <el-input v-model="addForm.zbModelName" placeholder="请输入装备型号名称"/>
             </el-form-item>
           </el-col>
@@ -236,7 +234,49 @@ export default {
           }
         ],
       },
-      addRules: {},
+      addRules: {
+        zbTypeId: [ { required: true, message: '装备类型ID不能为空', trigger: 'change' }],
+        zbModelName: [
+          { required: true, message: '装备型号名称不能为空', trigger: 'blur' },
+          // { max: 50, message: '装备型号名称长度不能超过 50 个字符', trigger: 'blur' }
+        ],
+        zbModelRemark: [{ required: true, max: 200, message: '装备型号备注长度不能超过 200 个字符', trigger: 'blur' }],
+        // zbModelIcon 验证:选填
+        zbModelIcon: [],
+        // zbModelJson 验证:自定义验证,确保数组至少有一条数据,且每条数据的 sourceName、sourceCode、sourceType 不为空
+        zbModelJson: [
+          {
+            validator: (rule, value, callback) => {
+              if (!value || value.length === 0) {
+                callback(new Error('请至少添加一条可编辑参数'));
+              } else {
+                let hasError = false;
+                value.forEach((item, index) => {
+                  if (!item.sourceName) {
+                    callback(new Error(`第 ${index + 1} 条参数的业务名称不能为空`));
+                    hasError = true;
+                    return false;
+                  }
+                  if (!item.sourceCode) {
+                    callback(new Error(`第 ${index + 1} 条参数的英文名称不能为空`));
+                    hasError = true;
+                    return false;
+                  }
+                  if (!item.sourceType) {
+                    callback(new Error(`第 ${index + 1} 条参数的类型不能为空`));
+                    hasError = true;
+                    return false;
+                  }
+                });
+                if (!hasError) {
+                  callback();
+                }
+              }
+            },
+            trigger: 'blur'
+          }
+        ]
+      },
       zbTypeList: [], // 所有装备类型
     }
   },
@@ -311,6 +351,7 @@ export default {
     },
     handleEdit(row) {
       this.addForm = {...row}
+      this.addForm.zbTypeId = Number(row.zbTypeId)
       if (typeof row.zbModelJson != 'string') {
         this.addForm.zbModelJson = JSON.parse(row.zbModelJson)
       }

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

@@ -26,7 +26,6 @@
         ref="table"
         :data="tableData"
         border
-        stripe
         size="mini"
         highlight-current-row
         @selection-change="handleSelectionChange"
@@ -37,11 +36,11 @@
         <el-table-column prop="zbTypeRemark" label="装备类型备注"  align="center" show-overflow-tooltip/>
         <el-table-column prop="userName" label="创建人" width="120" align="center" sortable/>
         <el-table-column prop="createTime" label="创建时间" width="180" align="center" sortable/>
-        <el-table-column label="操作" fixed="right" align="center" width="100">
+        <el-table-column label="操作" fixed="right" align="center" width="220">
           <template slot-scope="{ row }">
             <div class="action-bar">
-              <el-link type="primary" :underline="false" @click="handleEdit(row)">编辑</el-link>
-              <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>
+              <el-button size="small" plain icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
+              <el-button size="small" type="danger" icon="el-icon-delete" @click="handleDelete(row)">删除</el-button>
             </div>
           </template>
         </el-table-column>
@@ -119,6 +118,8 @@ export default {
         zbTypeRemark: '',      // 装备类型备注
       },
       addRules: {
+        zbTypeName: [{required: true, message: '装备类型名称不能为空', trigger: 'blur'}],
+        zbTypeRemark: [{required: true, message: '装备类型备注不能为空', trigger: 'blur'}],
       },
     }
   },