2 Комити 3ce59faaae ... 31e88f5b6e

Аутор SHA1 Порука Датум
  Shinohara Haruna 31e88f5b6e 合并分支 пре 6 месеци
  Shinohara Haruna 636df14acd 调整表格样式 пре 6 месеци

+ 53 - 1
smsb-plus-ui/src/assets/styles/index.scss

@@ -1,4 +1,55 @@
 @import './variables.module.scss';
+
+// 让所有页面都能撑满视口高度
+html, body, #app {
+  height: 100%;
+  min-height: 100%;
+}
+
+// 主体容器撑满高度
+.layout-body, .main-container, .app-main, .p-2 {
+  flex: 1 1 0;
+  min-height: 0;
+  display: flex;
+  flex-direction: column;
+}
+
+.main-container {
+  height: 100%;
+  min-height: 100%;
+  display: flex;
+  flex-direction: column;
+}
+
+// 页面内容区撑满高度
+.app-main {
+  height: 100%;
+  min-height: 100%;
+  flex: 1 1 0;
+  display: flex;
+  flex-direction: column;
+}
+
+// 卡片撑满高度
+.el-card.is-never-shadow {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
+
+.el-card.is-never-shadow .el-card__body {
+  flex: 1 1 auto;
+  display: flex;
+  flex-direction: column;
+  min-height: 0;
+}
+
+.table-content {
+  flex: 1 1 0;
+  min-height: 0;
+  overflow: auto;
+}
+
 @import './mixin.scss';
 @import './transition.scss';
 @import './element-ui.scss';
@@ -163,7 +214,8 @@ aside {
 }
 
 .pagination-container {
-  margin-top: 30px;
+  // margin-top: 30px;
+  flex-shrink: 0;
 }
 
 .text-center {

+ 3 - 9
smsb-plus-ui/src/views/smsb/dashboard/device.vue

@@ -5,20 +5,14 @@
         <el-row justify="end" align="middle">
           <el-col :span="19" style="text-align: right">
             <el-radio-group v-model="timeRadio" size="small" @change="handleDateRangeChange">
-<!--              <el-radio-button label="今日" value="today" />-->
+              <!--              <el-radio-button label="今日" value="today" />-->
               <el-radio-button label="近7天" value="week" />
               <el-radio-button label="近30天" value="month" />
             </el-radio-group>
           </el-col>
           <el-col :span="5" style="text-align: right">
-            <el-date-picker
-              v-model="dateRange"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              style="margin-left: 10px; margin-right: 30px"
-            />
+            <el-date-picker v-model="dateRange" type="daterange" range-separator="-" start-placeholder="开始日期"
+              end-placeholder="结束日期" style="margin-left: 10px; margin-right: 30px" />
           </el-col>
         </el-row>
       </el-card>

+ 25 - 24
smsb-plus-ui/src/views/smsb/dashboard/play_info.vue

@@ -65,30 +65,31 @@
         </el-form>
       </el-card>
       <el-card style="margin-top: 10px">
-        <el-table v-loading="loading" :data="playRecordList">
-          <el-table-column label="资源ID" align="left" prop="sourceId" width="250" />
-          <el-table-column label="资源名称" align="left" prop="fileName" :show-overflow-tooltip="true" />
-          <el-table-column label="播放次数" align="center" prop="playTimes" width="200" />
-          <el-table-column label="播放时长" align="center" prop="playDuration" width="200" />
-          <el-table-column label="分类" align="center" prop="fileTag" width="120">
-            <template #default="scope">
-              <dict-tag :options="smsb_source_classify" :value="scope.row.fileTag" />
-            </template>
-          </el-table-column>
-          <el-table-column label="类型" align="center" prop="fileType" width="120">
-            <template #default="scope">
-              <dict-tag :options="smsb_source_type" :value="scope.row.fileType" />
-            </template>
-          </el-table-column>
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
-            <template #default="scope">
-              <el-tooltip content="查看详情" placement="top">
-                <el-button link type="primary" icon="View" @click="handleView(scope.row)"></el-button>
-              </el-tooltip>
-            </template>
-          </el-table-column>
-        </el-table>
-
+        <div class="table-content">
+          <el-table v-loading="loading" :data="playRecordList">
+            <el-table-column label="资源ID" align="left" prop="sourceId" width="250" />
+            <el-table-column label="资源名称" align="left" prop="fileName" :show-overflow-tooltip="true" />
+            <el-table-column label="播放次数" align="center" prop="playTimes" width="200" />
+            <el-table-column label="播放时长" align="center" prop="playDuration" width="200" />
+            <el-table-column label="分类" align="center" prop="fileTag" width="120">
+              <template #default="scope">
+                <dict-tag :options="smsb_source_classify" :value="scope.row.fileTag" />
+              </template>
+            </el-table-column>
+            <el-table-column label="类型" align="center" prop="fileType" width="120">
+              <template #default="scope">
+                <dict-tag :options="smsb_source_type" :value="scope.row.fileType" />
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+              <template #default="scope">
+                <el-tooltip content="查看详情" placement="top">
+                  <el-button link type="primary" icon="View" @click="handleView(scope.row)"></el-button>
+                </el-tooltip>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
         <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
           v-model:limit="queryParams.pageSize" @pagination="getRecordList" />
       </el-card>

+ 124 - 106
smsb-plus-ui/src/views/smsb/device/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ height: '70px' }">
           <el-row :gutter="20" align="middle">
@@ -41,29 +42,37 @@
         <el-card shadow="hover" :style="{ marginTop: '10px', height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="40px">
             <el-form-item label="名称" prop="name">
-              <el-input v-model="queryParams.name" style="width: 150px" placeholder="请输入设备名称" clearable @keyup.enter="handleQuery" />
+              <el-input v-model="queryParams.name" style="width: 150px" placeholder="请输入设备名称" clearable
+                @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="SN" prop="serialNumber">
-              <el-input v-model="queryParams.serialNumber" style="width: 150px" placeholder="请输入设备SN" clearable @keyup.enter="handleQuery" />
+              <el-input v-model="queryParams.serialNumber" style="width: 150px" placeholder="请输入设备SN" clearable
+                @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="MAC" prop="mac">
-              <el-input v-model="queryParams.mac" style="width: 150px" placeholder="请输入设备MAC" clearable @keyup.enter="handleQuery" />
+              <el-input v-model="queryParams.mac" style="width: 150px" placeholder="请输入设备MAC" clearable
+                @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="状态" prop="onlineStatus">
-              <el-select v-model="queryParams.onlineStatus" placeholder="请选择设备状态" clearable @change="handleQuery" style="width: 150px">
-                <el-option v-for="item in sys_device_online" :key="item.label" :value="item.value" :label="item.label"></el-option>
+              <el-select v-model="queryParams.onlineStatus" placeholder="请选择设备状态" clearable @change="handleQuery"
+                style="width: 150px">
+                <el-option v-for="item in sys_device_online" :key="item.label" :value="item.value"
+                  :label="item.label"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item>
               <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
               <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-              <el-button v-hasPermi="['smsb:device:add']" type="primary" plain icon="Plus" @click="handleAdd">设备添加 </el-button>
+              <el-button v-hasPermi="['smsb:device:add']" type="primary" plain icon="Plus" @click="handleAdd">设备添加
+              </el-button>
               <el-button type="warning" plain icon="Picture" :disabled="single" @click="screenShot()">回采画面 </el-button>
-              <el-button type="success" plain icon="VideoPlay" :disabled="single" @click="startMonitor()">回调视频 </el-button>
-              <el-button v-hasPermi="['smsb:device:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
-                >删除
+              <el-button type="success" plain icon="VideoPlay" :disabled="single" @click="startMonitor()">回调视频
+              </el-button>
+              <el-button v-hasPermi="['smsb:device:remove']" type="danger" plain icon="Delete" :disabled="multiple"
+                @click="handleDelete()">删除
               </el-button>
-              <el-button v-hasPermi="['smsb:device:query']" type="info" plain icon="Position" :disabled="single" @click="handleInfo()">
+              <el-button v-hasPermi="['smsb:device:query']" type="info" plain icon="Position" :disabled="single"
+                @click="handleInfo()">
                 详情
               </el-button>
             </el-form-item>
@@ -73,51 +82,56 @@
     </transition>
 
     <el-card shadow="never">
-      <el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="设备名称" align="left" prop="name" width="300" :show-overflow-tooltip="true" />
-        <el-table-column label="设备型号" align="left" prop="deviceModel" width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="设备SN" align="left" prop="serialNumber" width="150" :show-overflow-tooltip="true" />
-        <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
-        <el-table-column label="设备标识" align="left" prop="identifier" width="220" :show-overflow-tooltip="true"/>
-        <el-table-column label="分辨率" align="left" prop="resolution" width="100" />
-        <el-table-column label="开机时间" align="left" prop="openTime" width="80" />
-        <el-table-column label="关机时间" align="left" prop="closeTime" width="80" />
-        <el-table-column label="在线状态" align="center" prop="onlineStatus" width="80">
-          <template #default="scope">
-            <dict-tag :options="sys_device_online" :value="scope.row.onlineStatus" />
-          </template>
-        </el-table-column>
-        <el-table-column label="上线时间" align="left" prop="lastOnline" width="160">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.lastOnline, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="上次离线" align="left" prop="offlineTime" width="160">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.offlineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="具体地址" align="left" prop="address" width="180" :show-overflow-tooltip="true" />
-        <el-table-column label="创建时间" align="left" prop="createTime" width="160">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="备注" align="left" prop="remark" width="200" :show-overflow-tooltip="true" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
-          <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button v-hasPermi="['smsb:device:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button v-hasPermi="['smsb:device:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
+      <div class="table-content">
+        <el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="设备名称" align="left" prop="name" width="300" :show-overflow-tooltip="true" />
+          <el-table-column label="设备型号" align="left" prop="deviceModel" width="120" :show-overflow-tooltip="true" />
+          <el-table-column label="设备SN" align="left" prop="serialNumber" width="150" :show-overflow-tooltip="true" />
+          <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
+          <el-table-column label="设备标识" align="left" prop="identifier" width="220" :show-overflow-tooltip="true" />
+          <el-table-column label="分辨率" align="left" prop="resolution" width="100" />
+          <el-table-column label="开机时间" align="left" prop="openTime" width="80" />
+          <el-table-column label="关机时间" align="left" prop="closeTime" width="80" />
+          <el-table-column label="在线状态" align="center" prop="onlineStatus" width="80">
+            <template #default="scope">
+              <dict-tag :options="sys_device_online" :value="scope.row.onlineStatus" />
+            </template>
+          </el-table-column>
+          <el-table-column label="上线时间" align="left" prop="lastOnline" width="160">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.lastOnline, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="上次离线" align="left" prop="offlineTime" width="160">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.offlineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="具体地址" align="left" prop="address" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="创建时间" align="left" prop="createTime" width="160">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" align="left" prop="remark" width="200" :show-overflow-tooltip="true" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+            <template #default="scope">
+              <el-tooltip content="修改" placement="top">
+                <el-button v-hasPermi="['smsb:device:edit']" link type="primary" icon="Edit"
+                  @click="handleUpdate(scope.row)"></el-button>
+              </el-tooltip>
+              <el-tooltip content="删除" placement="top">
+                <el-button v-hasPermi="['smsb:device:remove']" link type="primary" icon="Delete"
+                  @click="handleDelete(scope.row)"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
 
-      <pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" :total="total" @pagination="getList" />
+      <pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
+        :total="total" @pagination="getList" />
     </el-card>
     <!-- 添加或修改设备对话框 -->
     <el-dialog v-model="dialog.visible" :title="dialog.title" width="850px" append-to-body>
@@ -131,7 +145,8 @@
           <el-col :span="12">
             <el-form-item label="设备型号" prop="deviceModel">
               <el-select v-model="form.deviceModel" placeholder="请选择设备型号" style="width: 100%">
-                <el-option v-for="dict in manufacturerList" :key="dict.id" :label="dict.manufacturerName" :value="dict.id"></el-option>
+                <el-option v-for="dict in manufacturerList" :key="dict.id" :label="dict.manufacturerName"
+                  :value="dict.id"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -151,12 +166,14 @@
         <el-row>
           <el-col :span="10">
             <el-form-item label="分辨率" prop="width">
-              <el-input-number v-model="form.width" controls-position="right" placeholder="请输入宽度" :min="0" style="width: 180px" maxlength="6" />
+              <el-input-number v-model="form.width" controls-position="right" placeholder="请输入宽度" :min="0"
+                style="width: 180px" maxlength="6" />
             </el-form-item>
           </el-col>
           <el-col :span="10">
             <el-form-item label="" prop="height" width="10px">
-              <el-input-number v-model="form.height" controls-position="right" placeholder="请输入高度" :min="0" style="width: 180px" maxlength="6" />
+              <el-input-number v-model="form.height" controls-position="right" placeholder="请输入高度" :min="0"
+                style="width: 180px" maxlength="6" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -169,14 +186,16 @@
           <el-col :span="8">
             <el-form-item label="异形屏" prop="isAlien">
               <el-radio-group v-model="form.isAlien">
-                <el-radio v-for="dict in smsb_yes_no" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label }} </el-radio>
+                <el-radio v-for="dict in smsb_yes_no" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label }}
+                </el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="视频监看" prop="isWatch">
               <el-radio-group v-model="form.isWatch">
-                <el-radio v-for="dict in smsb_yes_no" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label }} </el-radio>
+                <el-radio v-for="dict in smsb_yes_no" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label }}
+                </el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
@@ -197,14 +216,14 @@
     </el-dialog>
     <!--设备详情弹窗-->
     <el-dialog v-model="viewDialog.visible" :title="viewDialog.title" width="900px" style="height: 700px"
-               append-to-body>
+      append-to-body>
       <el-tabs v-model="activeName" style="height: 500px" @tab-click="handleClickTab">
         <el-tab-pane label="设备详情" name="info">
           <div>
             <span>设备名称:{{ deviceRunInfo.deviceBase.name }}</span>
             <span style="margin-left: 50px">SN:{{ deviceRunInfo.deviceBase.serialNumber }}</span>
             <span style="margin-left: 50px">MAC:{{ deviceRunInfo.deviceBase.mac }}</span>
-            <br/>
+            <br />
           </div>
           <div style="margin-top: 20px">
             <span>分辨率:{{ deviceRunInfo.deviceBase.width }}*{{ deviceRunInfo.deviceBase.height }}</span>
@@ -218,12 +237,12 @@
           <!-- 音量 -->
           <div class="slider-block">
             <span style="width: 50px">音量</span>
-            <el-slider v-model="deviceRunInfo.volume" :disabled="true" :step="10" show-stops/>
+            <el-slider v-model="deviceRunInfo.volume" :disabled="true" :step="10" show-stops />
           </div>
           <!-- 亮度 -->
           <div class="slider-block">
             <span style="width: 50px">亮度</span>
-            <el-slider v-model="deviceRunInfo.bright" :disabled="true" :step="10" show-stops/>
+            <el-slider v-model="deviceRunInfo.bright" :disabled="true" :step="10" show-stops />
           </div>
 
           <div>
@@ -231,28 +250,28 @@
               <!-- cpu -->
               <div class="slider-block">
                 <span style="width: 50px">CPU</span>
-                <el-progress type="circle" :percentage="deviceRunInfo.cpuUsage"/>
+                <el-progress type="circle" :percentage="deviceRunInfo.cpuUsage" />
               </div>
               <div class="slider-block">
                 <span style="width: 50px;margin-left: 20px">内存</span>
-                <el-progress type="circle" :percentage="deviceRunInfo.ramUsage"/>
+                <el-progress type="circle" :percentage="deviceRunInfo.ramUsage" />
               </div>
               <div class="slider-block">
                 <span style="width: 50px;margin-left: 20px">存储</span>
-                <el-progress type="circle" :percentage="deviceRunInfo.externalUsage"/>
+                <el-progress type="circle" :percentage="deviceRunInfo.externalUsage" />
               </div>
             </span>
           </div>
           <div style="margin-top: 20px">
             <span>系统构建时间:{{ deviceRunInfo.systemBuildDate }}</span>
             <span style="margin-left: 50px">系统构建版本:{{ deviceRunInfo.systemBuildVersion }}</span>
-            <br/>
+            <br />
           </div>
           <div style="margin-top: 20px">
             <span>版本CODE:{{ deviceRunInfo.versionCode }}</span>
             <span style="margin-left: 50px">应用版本:{{ deviceRunInfo.versionName }}</span>
             <span style="margin-left: 50px">状态时间:{{ deviceRunInfo.versionName }}</span>
-            <br/>
+            <br />
           </div>
         </el-tab-pane>
         <el-tab-pane label="远程操作" name="control">
@@ -264,28 +283,25 @@
                     <el-button :loading="buttonLoading" type="primary" @click="handleBrightness">亮度调节</el-button>-->
         </el-tab-pane>
         <el-tab-pane label="报警信息" name="alarm">
-          <el-table v-loading="loading" :data="alarmList" row-key="id">
-            <el-table-column v-if="true" label="主键ID" align="left" prop="id" />
-            <el-table-column label="设备名称" align="left" prop="deviceName" :show-overflow-tooltip="true" />
-            <el-table-column label="告警等级" align="center" prop="errorLevel" width="100">
-              <template #default="scope">
-                <dict-tag :options="smsb_device_error_level" :value="scope.row.errorLevel" />
-              </template>
-            </el-table-column>
-            <el-table-column label="告警类型" align="center" prop="errorType" width="100">
-              <template #default="scope">
-                <dict-tag :options="smsb_device_error_type" :value="scope.row.errorType" />
-              </template>
-            </el-table-column>
-            <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
-          </el-table>
-          <pagination
-            v-show="alarmTotal > 0"
-            v-model:page="dialogQueryParams.pageNum"
-            v-model:limit="dialogQueryParams.pageSize"
-            :total="alarmTotal"
-            @pagination="getAlarmList"
-          />
+          <div class="table-content">
+            <el-table v-loading="loading" :data="alarmList" row-key="id">
+              <el-table-column v-if="true" label="主键ID" align="left" prop="id" />
+              <el-table-column label="设备名称" align="left" prop="deviceName" :show-overflow-tooltip="true" />
+              <el-table-column label="告警等级" align="center" prop="errorLevel" width="100">
+                <template #default="scope">
+                  <dict-tag :options="smsb_device_error_level" :value="scope.row.errorLevel" />
+                </template>
+              </el-table-column>
+              <el-table-column label="告警类型" align="center" prop="errorType" width="100">
+                <template #default="scope">
+                  <dict-tag :options="smsb_device_error_type" :value="scope.row.errorType" />
+                </template>
+              </el-table-column>
+              <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
+            </el-table>
+          </div>
+          <pagination v-show="alarmTotal > 0" v-model:page="dialogQueryParams.pageNum"
+            v-model:limit="dialogQueryParams.pageSize" :total="alarmTotal" @pagination="getAlarmList" />
         </el-tab-pane>
       </el-tabs>
       <template #footer>
@@ -294,7 +310,8 @@
         </div>
       </template>
     </el-dialog>
-    <el-dialog v-model="watchDialog.visible" :title="watchDialog.title" width="900px" append-to-body @closed="onDialogClosed">
+    <el-dialog v-model="watchDialog.visible" :title="watchDialog.title" width="900px" append-to-body
+      @closed="onDialogClosed">
       <div v-if="watchDialog.visible" style="width: 100%; height: 500px">
         <video ref="flvPlayerRef" style="width: 100%; height: 100%" controls></video>
       </div>
@@ -304,7 +321,8 @@
         </div>
       </template>
     </el-dialog>
-    <el-dialog v-model="shotDialog.visible" :title="shotDialog.title" width="900px" append-to-body @closed="onDialogClosed">
+    <el-dialog v-model="shotDialog.visible" :title="shotDialog.title" width="900px" append-to-body
+      @closed="onDialogClosed">
       <div style="text-align: center">
         <!--        <image-preview :src="screenshotImageUrl" style="width: 40px; height: 40px; cursor: pointer" />-->
         <el-image v-loading="screenshotLoading" :src="screenshotImageUrl" style="width: 600px; height: 600px" />
@@ -330,25 +348,25 @@ import {
   stopStream,
   updateDevice
 } from '@/api/smsb/device/device';
-import {DeviceForm, DeviceQuery, DeviceStatisticsVo, DeviceVO} from '@/api/smsb/device/device_type';
-import {ProductVO} from '@/api/smsb/device/product_types';
-import {listProduct} from '@/api/smsb/device/product';
-import {DeviceManufacturerVO} from '@/api/smsb/device/deviceManufacturer_type';
-import {listDeviceManufacturer} from '@/api/smsb/device/deviceManufacturer';
-import type {TabsPaneContext} from 'element-plus';
-import {onBeforeUnmount, ref} from 'vue';
+import { DeviceForm, DeviceQuery, DeviceStatisticsVo, DeviceVO } from '@/api/smsb/device/device_type';
+import { ProductVO } from '@/api/smsb/device/product_types';
+import { listProduct } from '@/api/smsb/device/product';
+import { DeviceManufacturerVO } from '@/api/smsb/device/deviceManufacturer_type';
+import { listDeviceManufacturer } from '@/api/smsb/device/deviceManufacturer';
+import type { TabsPaneContext } from 'element-plus';
+import { onBeforeUnmount, ref } from 'vue';
 import flvjs from 'flv.js';
-import {DeviceRunInfoVO} from '@/api/smsb/device/device_run_type';
-import {DeviceErrorRecordQuery, DeviceErrorRecordVO} from '@/api/smsb/device/errorRecord_type';
-import {listDeviceErrorRecord} from '@/api/smsb/device/errorRecord';
-import {storeToRefs} from 'pinia';
+import { DeviceRunInfoVO } from '@/api/smsb/device/device_run_type';
+import { DeviceErrorRecordQuery, DeviceErrorRecordVO } from '@/api/smsb/device/errorRecord_type';
+import { listDeviceErrorRecord } from '@/api/smsb/device/errorRecord';
+import { storeToRefs } from 'pinia';
 import useScreenshotStore from '@/store/modules/screenshot';
 
 const screenshotStore = storeToRefs(useScreenshotStore());
 const screenshotImageUrl = ref<string>();
 const alarmList = ref<DeviceErrorRecordVO[]>([]);
-const {proxy} = getCurrentInstance() as ComponentInternalInstance;
-const {sys_device_online, smsb_yes_no, smsb_device_error_level, smsb_device_error_type} = toRefs<any>(
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const { sys_device_online, smsb_yes_no, smsb_device_error_level, smsb_device_error_type } = toRefs<any>(
   proxy?.useDict('sys_device_online', 'smsb_yes_no', 'smsb_device_error_level', 'smsb_device_error_type')
 );
 const deviceList = ref<DeviceVO[]>([]);

+ 42 - 37
smsb-plus-ui/src/views/smsb/deviceAuth/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ marginTop: '10px', height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="70px">
@@ -12,7 +13,8 @@
             </el-form-item>
             <el-form-item label="鉴权结果" prop="authResult">
               <el-select v-model="queryParams.authResult" placeholder="请选择鉴权结果" clearable @keyup.enter="handleQuery">
-                <el-option v-for="dict in smsb_device_auth_result" :key="dict.value" :label="dict.label" :value="dict.value"/>
+                <el-option v-for="dict in smsb_device_auth_result" :key="dict.value" :label="dict.label"
+                  :value="dict.value" />
               </el-select>
             </el-form-item>
             <el-form-item>
@@ -25,38 +27,41 @@
     </transition>
 
     <el-card shadow="never">
+      <div class="table-content">
+        <el-table v-loading="loading" :data="deviceAuthList" @selection-change="handleSelectionChange">
+          <el-table-column label="主键ID" align="left" prop="id" v-if="true" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="加密字符" align="left" prop="encryptCode" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="解密字符" align="left" prop="decryptCode" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="鉴权key" align="center" prop="authKey" width="150" :show-overflow-tooltip="true" />
+          <el-table-column label="鉴权结果" align="center" prop="authResult" width="100">
+            <template #default="scope">
+              <dict-tag :options="smsb_device_auth_result" :value="scope.row.authResult" />
+            </template>
+          </el-table-column>
+          <el-table-column label="鉴权描述" align="left" prop="authRemark" :show-overflow-tooltip="true" width="150" />
+          <el-table-column label="设备IP" align="center" prop="deviceIp" width="150" :show-overflow-tooltip="true" />
+          <el-table-column label="设备名称" align="left" prop="deviceName" width="220" :show-overflow-tooltip="true" />
+          <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
+          <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
+          <el-table-column label="鉴权时间" align="center" prop="createTime" width="160" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template #default="scope">
+              <el-tooltip content="修改" placement="top">
+                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
+                  v-hasPermi="['device:deviceAuth:edit']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['device:deviceAuth:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
 
-      <el-table v-loading="loading" :data="deviceAuthList" @selection-change="handleSelectionChange">
-        <el-table-column label="主键ID" align="left" prop="id" v-if="true" width="180"
-                         :show-overflow-tooltip="true"/>
-        <el-table-column label="加密字符" align="left" prop="encryptCode" width="250" :show-overflow-tooltip="true"/>
-        <el-table-column label="解密字符" align="left" prop="decryptCode" width="250" :show-overflow-tooltip="true"/>
-        <el-table-column label="鉴权key" align="center" prop="authKey" width="150" :show-overflow-tooltip="true"/>
-        <el-table-column label="鉴权结果" align="center" prop="authResult" width="100">
-          <template #default="scope">
-            <dict-tag :options="smsb_device_auth_result" :value="scope.row.authResult"/>
-          </template>
-        </el-table-column>
-        <el-table-column label="鉴权描述" align="left" prop="authRemark" :show-overflow-tooltip="true" width="150" />
-        <el-table-column label="设备IP" align="center" prop="deviceIp" width="150" :show-overflow-tooltip="true"/>
-        <el-table-column label="设备名称" align="left" prop="deviceName" width="220" :show-overflow-tooltip="true" />
-        <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true"/>
-        <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
-        <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
-        <el-table-column label="鉴权时间" align="center" prop="createTime" width="160" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-          <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:deviceAuth:edit']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['device:deviceAuth:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改设备鉴权对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
@@ -99,7 +104,7 @@ const dialog = reactive<DialogOption>({
 const initFormData: DeviceAuthForm = {
 }
 const data = reactive<PageData<DeviceAuthForm, DeviceAuthQuery>>({
-  form: {...initFormData},
+  form: { ...initFormData },
   queryParams: {
     pageNum: 1,
     pageSize: 10,
@@ -134,7 +139,7 @@ const cancel = () => {
 
 /** 表单重置 */
 const reset = () => {
-  form.value = {...initFormData};
+  form.value = { ...initFormData };
   deviceAuthFormRef.value?.resetFields();
 }
 
@@ -180,9 +185,9 @@ const submitForm = () => {
     if (valid) {
       buttonLoading.value = true;
       if (form.value.id) {
-        await updateDeviceAuth(form.value).finally(() =>  buttonLoading.value = false);
+        await updateDeviceAuth(form.value).finally(() => buttonLoading.value = false);
       } else {
-        await addDeviceAuth(form.value).finally(() =>  buttonLoading.value = false);
+        await addDeviceAuth(form.value).finally(() => buttonLoading.value = false);
       }
       proxy?.$modal.msgSuccess("操作成功");
       dialog.visible = false;

+ 39 - 38
smsb-plus-ui/src/views/smsb/deviceLogin/index.vue

@@ -1,20 +1,21 @@
 <template>
   <div class="p-2">
     <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
-                :leave-active-class="proxy?.animate.searchAnimate.leave">
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ marginTop: '10px', height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="70px">
             <el-form-item label="唯一标识" prop="reqIdentifier">
-              <el-input v-model="queryParams.reqIdentifier" placeholder="请输入请求标识" clearable @keyup.enter="handleQuery"/>
+              <el-input v-model="queryParams.reqIdentifier" placeholder="请输入请求标识" clearable
+                @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="设备IP" prop="reqIp">
-              <el-input v-model="queryParams.reqIp" placeholder="请输入请求IP" clearable @keyup.enter="handleQuery"/>
+              <el-input v-model="queryParams.reqIp" placeholder="请输入请求IP" clearable @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="登录结果" prop="loginResult">
               <el-select v-model="form.loginResult" placeholder="请选择设备型号" clearable @keyup.enter="handleQuery">
                 <el-option v-for="dict in smsb_device_login_result" :key="dict.value" :label="dict.label"
-                           :value="dict.value"/>
+                  :value="dict.value" />
               </el-select>
             </el-form-item>
             <el-form-item>
@@ -44,40 +45,40 @@
                 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
               </el-row>
             </template>-->
-
-      <el-table v-loading="loading" :data="deviceLoginList" @selection-change="handleSelectionChange">
-        <!--
+      <div class="table-content">
+        <el-table v-loading="loading" :data="deviceLoginList" @selection-change="handleSelectionChange">
+          <!--
                 <el-table-column type="selection" width="55" align="center" />
         -->
-        <el-table-column label="ID" align="left" prop="id" v-if="true" width="180"
-                         :show-overflow-tooltip="true"/>
-        <el-table-column label="请求标识" align="left" prop="reqIdentifier" width="250" :show-overflow-tooltip="true"/>
-        <el-table-column label="请求IP" align="left" prop="reqIp" width="150" :show-overflow-tooltip="true"/>
-        <el-table-column label="登录结果" align="center" prop="loginResult" width="120">
-          <template #default="scope">
-            <dict-tag :options="smsb_device_login_result" :value="scope.row.loginResult"/>
-          </template>
-        </el-table-column>
-        <el-table-column label="登录时间" align="left" prop="createTime" width="160"/>
-        <el-table-column label="设备名称" align="left" prop="deviceName" width="220" :show-overflow-tooltip="true" />
-        <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true"/>
-        <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
-        <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
-          <template #default="scope">
-            <!--            <el-tooltip content="修改" placement="top">
+          <el-table-column label="ID" align="left" prop="id" v-if="true" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="请求标识" align="left" prop="reqIdentifier" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="请求IP" align="left" prop="reqIp" width="150" :show-overflow-tooltip="true" />
+          <el-table-column label="登录结果" align="center" prop="loginResult" width="120">
+            <template #default="scope">
+              <dict-tag :options="smsb_device_login_result" :value="scope.row.loginResult" />
+            </template>
+          </el-table-column>
+          <el-table-column label="登录时间" align="left" prop="createTime" width="160" />
+          <el-table-column label="设备名称" align="left" prop="deviceName" width="220" :show-overflow-tooltip="true" />
+          <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
+          <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
+            <template #default="scope">
+              <!--            <el-tooltip content="修改" placement="top">
                           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:deviceLogin:edit']"></el-button>
                         </el-tooltip>-->
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
-                         v-hasPermi="['device:login:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['device:login:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
 
       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
-                  v-model:limit="queryParams.pageSize" @pagination="getList"/>
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改设备登录对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
@@ -101,10 +102,10 @@ import {
   listDeviceLogin,
   updateDeviceLogin
 } from '@/api/smsb/device/device_login';
-import {DeviceLoginForm, DeviceLoginQuery, DeviceLoginVO} from '@/api/smsb/device/device_login_type';
+import { DeviceLoginForm, DeviceLoginQuery, DeviceLoginVO } from '@/api/smsb/device/device_login_type';
 
-const {proxy} = getCurrentInstance() as ComponentInternalInstance;
-const {smsb_device_login_result} = toRefs<any>(
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const { smsb_device_login_result } = toRefs<any>(
   proxy?.useDict('smsb_device_login_result')
 );
 const deviceLoginList = ref<DeviceLoginVO[]>([]);
@@ -126,7 +127,7 @@ const dialog = reactive<DialogOption>({
 
 const initFormData: DeviceLoginForm = {}
 const data = reactive<PageData<DeviceLoginForm, DeviceLoginQuery>>({
-  form: {...initFormData},
+  form: { ...initFormData },
   queryParams: {
     pageNum: 1,
     pageSize: 10,
@@ -139,7 +140,7 @@ const data = reactive<PageData<DeviceLoginForm, DeviceLoginQuery>>({
   rules: {}
 });
 
-const {queryParams, form, rules} = toRefs(data);
+const { queryParams, form, rules } = toRefs(data);
 
 /** 查询设备登录列表 */
 const getList = async () => {
@@ -158,7 +159,7 @@ const cancel = () => {
 
 /** 表单重置 */
 const reset = () => {
-  form.value = {...initFormData};
+  form.value = { ...initFormData };
   deviceLoginFormRef.value?.resetFields();
 }
 

+ 33 - 30
smsb-plus-ui/src/views/smsb/httpHeart/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ marginTop: '10px', height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="70px">
@@ -20,7 +21,7 @@
     </transition>
 
     <el-card shadow="never">
-<!--      <template #header>
+      <!--      <template #header>
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
             <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['device:deviceHeartRecord:add']">新增</el-button>
@@ -37,32 +38,34 @@
           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
       </template>-->
-
-      <el-table v-loading="loading" :data="deviceHeartRecordList" @selection-change="handleSelectionChange">
-<!--        <el-table-column type="selection" width="55" align="center" />-->
-        <el-table-column label="ID" align="left" prop="id" v-if="true" width="180"
-                         :show-overflow-tooltip="true"/>
-        <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true"/>
-        <el-table-column label="设备IP" align="left" prop="clientIp" width="150" :show-overflow-tooltip="true"/>
-<!--        <el-table-column label="心跳类型 1-http 2-Netty" align="center" prop="heartType" />-->
-        <el-table-column label="心跳间隔" align="center" prop="timeInterval" width="100" />
-        <el-table-column label="心跳时间" align="left" prop="createTime" width="180" />
-        <el-table-column label="设备名称" align="left" prop="deviceName" :show-overflow-tooltip="true" />
-        <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
-        <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
-          <template #default="scope">
-<!--            <el-tooltip content="修改" placement="top">
+      <div class="table-content">
+        <el-table v-loading="loading" :data="deviceHeartRecordList" @selection-change="handleSelectionChange">
+          <!--        <el-table-column type="selection" width="55" align="center" />-->
+          <el-table-column label="ID" align="left" prop="id" v-if="true" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="设备IP" align="left" prop="clientIp" width="150" :show-overflow-tooltip="true" />
+          <!--        <el-table-column label="心跳类型 1-http 2-Netty" align="center" prop="heartType" />-->
+          <el-table-column label="心跳间隔" align="center" prop="timeInterval" width="100" />
+          <el-table-column label="心跳时间" align="left" prop="createTime" width="180" />
+          <el-table-column label="设备名称" align="left" prop="deviceName" :show-overflow-tooltip="true" />
+          <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
+          <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
+            <template #default="scope">
+              <!--            <el-tooltip content="修改" placement="top">
               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:deviceHeartRecord:edit']"></el-button>
             </el-tooltip>-->
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['device:heart:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['device:heart:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改设备心跳对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
@@ -104,7 +107,7 @@ const dialog = reactive<DialogOption>({
 const initFormData: DeviceHeartRecordForm = {
 }
 const data = reactive<PageData<DeviceHeartRecordForm, DeviceHeartRecordQuery>>({
-  form: {...initFormData},
+  form: { ...initFormData },
   queryParams: {
     pageNum: 1,
     pageSize: 10,
@@ -139,7 +142,7 @@ const cancel = () => {
 
 /** 表单重置 */
 const reset = () => {
-  form.value = {...initFormData};
+  form.value = { ...initFormData };
   deviceHeartRecordFormRef.value?.resetFields();
 }
 
@@ -185,9 +188,9 @@ const submitForm = () => {
     if (valid) {
       buttonLoading.value = true;
       if (form.value.id) {
-        await updateDeviceHeartRecord(form.value).finally(() =>  buttonLoading.value = false);
+        await updateDeviceHeartRecord(form.value).finally(() => buttonLoading.value = false);
       } else {
-        await addDeviceHeartRecord(form.value).finally(() =>  buttonLoading.value = false);
+        await addDeviceHeartRecord(form.value).finally(() => buttonLoading.value = false);
       }
       proxy?.$modal.msgSuccess("操作成功");
       dialog.visible = false;

+ 45 - 44
smsb-plus-ui/src/views/smsb/item/index.vue

@@ -70,47 +70,48 @@
     </transition>
 
     <el-card shadow="never">
-      <el-table v-loading="mainLoading" :data="itemList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="ID" align="left" prop="id" v-if="true" width="180"
-          :show-overflow-tooltip="true" />
-        <el-table-column label="名称" align="left" prop="itemName" />
-        <el-table-column label="类型" align="center" prop="itemType" width="120">
-          <template #default="scope">
-            <dict-tag :options="smsb_item_type" :value="scope.row.itemType" />
-          </template>
-        </el-table-column>
-        <el-table-column label="分屏" align="center" prop="splitScreen" width="120">
-          <template #default="scope">
-            <span v-if="scope.row.splitScreen == 0"> --- </span>
-            <dict-tag v-else :options="smsb_split_screen" :value="scope.row.splitScreen" />
-          </template>
-        </el-table-column>
-        <el-table-column label="资源数量" align="center" prop="sourceNum" width="100" />
-        <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
-        <el-table-column label="更新时间" align="left" prop="updateTime" width="160" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
-          <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
-                v-hasPermi="['source:item:edit']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
-                v-hasPermi="['source:item:remove']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="编辑历史" placement="top">
-              <el-button link type="primary" icon="Clock" @click="onShowEditHistory(scope.row)"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-
-        <!-- 编辑历史弹窗 -->
-        <el-dialog title="编辑历史" v-model="editHistoryDialog.visible" width="800px" append-to-body>
-          <div class="edit-history-container" v-html="editHistoryDialog.tableHtml"></div>
-        </el-dialog>
-      </el-table>
+      <div class="table-content">
+        <el-table v-loading="mainLoading" :data="itemList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="ID" align="left" prop="id" v-if="true" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="名称" align="left" prop="itemName" />
+          <el-table-column label="类型" align="center" prop="itemType" width="120">
+            <template #default="scope">
+              <dict-tag :options="smsb_item_type" :value="scope.row.itemType" />
+            </template>
+          </el-table-column>
+          <el-table-column label="分屏" align="center" prop="splitScreen" width="120">
+            <template #default="scope">
+              <span v-if="scope.row.splitScreen == 0"> --- </span>
+              <dict-tag v-else :options="smsb_split_screen" :value="scope.row.splitScreen" />
+            </template>
+          </el-table-column>
+          <el-table-column label="资源数量" align="center" prop="sourceNum" width="100" />
+          <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
+          <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
+          <el-table-column label="更新时间" align="left" prop="updateTime" width="160" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+            <template #default="scope">
+              <el-tooltip content="修改" placement="top">
+                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
+                  v-hasPermi="['source:item:edit']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['source:item:remove']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="编辑历史" placement="top">
+                <el-button link type="primary" icon="Clock" @click="onShowEditHistory(scope.row)"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+
+          <!-- 编辑历史弹窗 -->
+          <el-dialog title="编辑历史" v-model="editHistoryDialog.visible" width="800px" append-to-body>
+            <div class="edit-history-container" v-html="editHistoryDialog.tableHtml"></div>
+          </el-dialog>
+        </el-table>
+      </div>
 
       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
         v-model:limit="queryParams.pageSize" @pagination="getList" />
@@ -250,7 +251,7 @@
                 <el-form-item label="跑马灯" prop="hasPmd">
                   <el-radio-group v-model="form.hasPmd">
                     <el-radio v-for="dict in smsb_yes_no" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label
-                      }}
+                    }}
                     </el-radio>
                   </el-radio-group>
                 </el-form-item>
@@ -272,7 +273,7 @@
                 <el-form-item label="天气" prop="hasWeather">
                   <el-radio-group v-model="form.hasWeather">
                     <el-radio v-for="dict in smsb_yes_no" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label
-                      }}
+                    }}
                     </el-radio>
                   </el-radio-group>
                 </el-form-item>
@@ -281,7 +282,7 @@
                 <el-form-item label="时间" prop="hasTime">
                   <el-radio-group v-model="form.hasTime">
                     <el-radio v-for="dict in smsb_yes_no" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label
-                      }}
+                    }}
                     </el-radio>
                   </el-radio-group>
                 </el-form-item>

+ 52 - 51
smsb-plus-ui/src/views/smsb/itemPush/index.vue

@@ -76,62 +76,63 @@
     </transition>
 
     <el-card shadow="never">
-      <el-table v-loading="loading" :data="itemPushList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="主键ID" align="left" prop="id" width="180" v-if="true" />
-        <el-table-column label="名称" align="left" prop="name" />
-        <el-table-column label="优先级" align="center" width="100" prop="level">
-          <template #default="scope">
-            <dict-tag :options="smsb_push_level" :value="scope.row.level" />
-          </template>
-        </el-table-column>
-        <el-table-column label="类型" align="center" width="100" prop="itemType">
-          <template #default="scope">
-            <dict-tag :options="smsb_push_type" :value="scope.row.itemType" />
-          </template>
-        </el-table-column>
-        <el-table-column label="审核状态" align="center" width="100" prop="status">
-          <template #default="scope">
-            <dict-tag :options="smsb_push_state" :value="scope.row.status" />
-          </template>
-        </el-table-column>
-        <el-table-column label="生效日期" align="left" prop="startDate" width="140">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="失效日期" align="left" prop="endDate" width="140">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="发布时间" align="left" prop="createTime" width="160" />
-        <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
-          <template #default="scope">
-            <!-- <el-tooltip content="修改" placement="top">
+      <div class="table-content">
+        <el-table v-loading="loading" :data="itemPushList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="主键ID" align="left" prop="id" width="180" v-if="true" />
+          <el-table-column label="名称" align="left" prop="name" />
+          <el-table-column label="优先级" align="center" width="100" prop="level">
+            <template #default="scope">
+              <dict-tag :options="smsb_push_level" :value="scope.row.level" />
+            </template>
+          </el-table-column>
+          <el-table-column label="类型" align="center" width="100" prop="itemType">
+            <template #default="scope">
+              <dict-tag :options="smsb_push_type" :value="scope.row.itemType" />
+            </template>
+          </el-table-column>
+          <el-table-column label="审核状态" align="center" width="100" prop="status">
+            <template #default="scope">
+              <dict-tag :options="smsb_push_state" :value="scope.row.status" />
+            </template>
+          </el-table-column>
+          <el-table-column label="生效日期" align="left" prop="startDate" width="140">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="失效日期" align="left" prop="endDate" width="140">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="发布时间" align="left" prop="createTime" width="160" />
+          <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
+            <template #default="scope">
+              <!-- <el-tooltip content="修改" placement="top">
               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
                 v-hasPermi="['source:itemPush:edit']"></el-button>
             </el-tooltip> -->
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
-                v-hasPermi="['source:itemPush:remove']"></el-button>
-            </el-tooltip>
-            <!--            <el-tooltip content="提交审核" placement="top">
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['source:itemPush:remove']"></el-button>
+              </el-tooltip>
+              <!--            <el-tooltip content="提交审核" placement="top">
                           <el-button link type="primary" icon="Top" @click="handleReview(scope.row)" v-hasPermi="['source:minioData:add']"></el-button>
                         </el-tooltip>-->
-            <el-tooltip content="下发详情" placement="top">
-              <el-button link type="primary" icon="List" @click="handleDevice(scope.row)"
-                v-hasPermi="['source:itemPush:edit']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="下架" placement="top">
-              <el-button link type="primary" icon="Bottom" v-if="scope.row.status == 'finish'"
-                @click="handleRemoveItem(scope.row)" v-hasPermi="['source:itemPush:edit']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
+              <el-tooltip content="下发详情" placement="top">
+                <el-button link type="primary" icon="List" @click="handleDevice(scope.row)"
+                  v-hasPermi="['source:itemPush:edit']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="下架" placement="top">
+                <el-button link type="primary" icon="Bottom" v-if="scope.row.status == 'finish'"
+                  @click="handleRemoveItem(scope.row)" v-hasPermi="['source:itemPush:edit']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
         v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>

+ 44 - 49
smsb-plus-ui/src/views/smsb/itemReview/index.vue

@@ -1,11 +1,13 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ marginTop: '10px', height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="50px">
             <el-form-item label="名称" prop="name">
-              <el-input v-model="queryParams.name" style="width: 150px" placeholder="请输入名称" clearable @keyup.enter="handleQuery" />
+              <el-input v-model="queryParams.name" style="width: 150px" placeholder="请输入名称" clearable
+                @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="类型" prop="itemType">
               <el-select v-model="queryParams.itemType" style="width: 150px" placeholder="请选择类型" clearable>
@@ -13,15 +15,9 @@
               </el-select>
             </el-form-item>
             <el-form-item label="时间" style="width: 250px">
-              <el-date-picker
-                v-model="dateRangeCreateTime"
-                value-format="YYYY-MM-DD HH:mm:ss"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"
-              />
+              <el-date-picker v-model="dateRangeCreateTime" value-format="YYYY-MM-DD HH:mm:ss" type="daterange"
+                range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
+                :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" />
             </el-form-item>
             <el-form-item>
               <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -33,36 +29,39 @@
     </transition>
     <el-tabs type="border-card" v-model="activeName" @tab-click="handleClickTab">
       <el-tab-pane label="内容审核" name="need">
-        <el-table v-loading="loading" :data="itemPushList">
-          <el-table-column label="ID" align="left" prop="id" width="200" />
-          <el-table-column label="名称" align="left" prop="name" />
-          <el-table-column label="优先级" align="center" width="100" prop="level">
-            <template #default="scope">
-              <dict-tag :options="smsb_push_level" :value="scope.row.level" />
-            </template>
-          </el-table-column>
-          <el-table-column label="类型" align="center" width="100" prop="itemType">
-            <template #default="scope">
-              <dict-tag :options="smsb_push_type" :value="scope.row.itemType" />
-            </template>
-          </el-table-column>
-          <el-table-column label="发布状态" align="center" width="100" prop="status">
-            <template #default="scope">
-              <dict-tag :options="smsb_push_state" :value="scope.row.status" />
-            </template>
-          </el-table-column>
-          <el-table-column label="创建时间" align="left" prop="createTime" width="180" />
-          <el-table-column label="创建人" align="left" prop="createUser" width="180" :show-overflow-tooltip="true" />
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
-            <template #default="scope">
-              <el-tooltip content="内容审核" placement="top">
-                <el-button link type="primary" icon="Notification" @click="handleApproval(scope.row)" v-hasPermi="['source:itemPush:edit']"></el-button>
-              </el-tooltip>
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+        <div class="table-content">
+          <el-table v-loading="loading" :data="itemPushList">
+            <el-table-column label="ID" align="left" prop="id" width="200" />
+            <el-table-column label="名称" align="left" prop="name" />
+            <el-table-column label="优先级" align="center" width="100" prop="level">
+              <template #default="scope">
+                <dict-tag :options="smsb_push_level" :value="scope.row.level" />
+              </template>
+            </el-table-column>
+            <el-table-column label="类型" align="center" width="100" prop="itemType">
+              <template #default="scope">
+                <dict-tag :options="smsb_push_type" :value="scope.row.itemType" />
+              </template>
+            </el-table-column>
+            <el-table-column label="发布状态" align="center" width="100" prop="status">
+              <template #default="scope">
+                <dict-tag :options="smsb_push_state" :value="scope.row.status" />
+              </template>
+            </el-table-column>
+            <el-table-column label="创建时间" align="left" prop="createTime" width="180" />
+            <el-table-column label="创建人" align="left" prop="createUser" width="180" :show-overflow-tooltip="true" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
+              <template #default="scope">
+                <el-tooltip content="内容审核" placement="top">
+                  <el-button link type="primary" icon="Notification" @click="handleApproval(scope.row)"
+                    v-hasPermi="['source:itemPush:edit']"></el-button>
+                </el-tooltip>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+          v-model:limit="queryParams.pageSize" @pagination="getList" />
       </el-tab-pane>
       <el-tab-pane label="我的已办" name="finish">
         <el-table v-loading="loading" :data="itemPushList">
@@ -88,19 +87,15 @@
           <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
             <template #default="scope">
               <el-tooltip content="审核详情" placement="top">
-                <el-button link type="primary" icon="View" @click="handleReview(scope.row)" v-hasPermi="['source:itemPush:edit']"></el-button>
+                <el-button link type="primary" icon="View" @click="handleReview(scope.row)"
+                  v-hasPermi="['source:itemPush:edit']"></el-button>
               </el-tooltip>
             </template>
           </el-table-column>
         </el-table>
 
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          v-model:page="queryParams.pageNum"
-          v-model:limit="queryParams.pageSize"
-          @pagination="getFinishList"
-        />
+        <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+          v-model:limit="queryParams.pageSize" @pagination="getFinishList" />
       </el-tab-pane>
     </el-tabs>
   </div>

+ 45 - 48
smsb-plus-ui/src/views/smsb/manufacturer/index.vue

@@ -1,31 +1,30 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ marginTop: '10px', height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
             <el-form-item label="厂商名称" prop="manufacturerName">
               <el-input v-model="queryParams.manufacturerName" placeholder="请输入厂商名称" clearable
-                        @keyup.enter="handleQuery"/>
+                @keyup.enter="handleQuery" />
             </el-form-item>
             <el-form-item label="设备类型" prop="type">
               <el-select v-model="queryParams.type" placeholder="请选择设备类型" clearable>
-                <el-option v-for="dict in smsb_device_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
+                <el-option v-for="dict in smsb_device_type" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
             <el-form-item>
               <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
               <el-button icon="Refresh" @click="resetQuery">重置</el-button>
               <el-button v-hasPermi="['smsb:deviceManufacturer:add']" type="primary" plain icon="Plus"
-                         @click="handleAdd"> 新增
+                @click="handleAdd"> 新增
               </el-button>
               <el-button v-hasPermi="['smsb:deviceManufacturer:edit']" type="success" plain icon="Edit"
-                         :disabled="single" @click="handleUpdate()"
-              >修改
+                :disabled="single" @click="handleUpdate()">修改
               </el-button>
               <el-button v-hasPermi="['smsb:deviceManufacturer:remove']" type="danger" plain icon="Delete"
-                         :disabled="multiple" @click="handleDelete()"
-              >删除
+                :disabled="multiple" @click="handleDelete()">删除
               </el-button>
             </el-form-item>
           </el-form>
@@ -51,42 +50,40 @@
                 <right-toolbar v-model:showSearch="showSearch" @query-table="getList"></right-toolbar>
               </el-row>
             </template>-->
-      <el-table v-loading="loading" :data="deviceManufacturerList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column v-if="true" label="主键ID" align="left" prop="id" width="200" />
-        <el-table-column label="厂商标识" align="left" prop="manufacturerKey" width="180"/>
-        <el-table-column label="厂商名称" align="left" prop="manufacturerName" />
-        <el-table-column label="设备型号" align="left" prop="deviceModel" width="200"/>
-        <el-table-column label="设备类型" align="center" prop="type" width="120">
-          <template #default="scope">
-            <dict-tag :options="smsb_device_type" :value="scope.row.type" />
-          </template>
-        </el-table-column>
-        <el-table-column label="创建时间" align="left" prop="createTime" width="180">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}  {h}:{i}:{s}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="备注" align="left" prop="remark" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
-          <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button v-hasPermi="['smsb:deviceManufacturer:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button
-                v-hasPermi="['smsb:deviceManufacturer:remove']"
-                link
-                type="primary"
-                icon="Delete"
-                @click="handleDelete(scope.row)"
-              ></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" :total="total" @pagination="getList" />
+      <div class="table-content">
+        <el-table v-loading="loading" :data="deviceManufacturerList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column v-if="true" label="主键ID" align="left" prop="id" width="200" />
+          <el-table-column label="厂商标识" align="left" prop="manufacturerKey" width="180" />
+          <el-table-column label="厂商名称" align="left" prop="manufacturerName" />
+          <el-table-column label="设备型号" align="left" prop="deviceModel" width="200" />
+          <el-table-column label="设备类型" align="center" prop="type" width="120">
+            <template #default="scope">
+              <dict-tag :options="smsb_device_type" :value="scope.row.type" />
+            </template>
+          </el-table-column>
+          <el-table-column label="创建时间" align="left" prop="createTime" width="180">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" align="left" prop="remark" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+            <template #default="scope">
+              <el-tooltip content="修改" placement="top">
+                <el-button v-hasPermi="['smsb:deviceManufacturer:edit']" link type="primary" icon="Edit"
+                  @click="handleUpdate(scope.row)"></el-button>
+              </el-tooltip>
+              <el-tooltip content="删除" placement="top">
+                <el-button v-hasPermi="['smsb:deviceManufacturer:remove']" link type="primary" icon="Delete"
+                  @click="handleDelete(scope.row)"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
+        :total="total" @pagination="getList" />
     </el-card>
     <!-- 添加或修改厂商管理对话框 -->
     <el-dialog v-model="dialog.visible" :title="dialog.title" width="700px" append-to-body>
@@ -94,26 +91,26 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="厂商KEY" prop="manufacturerKey">
-              <el-input v-model="form.manufacturerKey" placeholder="请输入厂商KEY"/>
+              <el-input v-model="form.manufacturerKey" placeholder="请输入厂商KEY" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="厂商名称" prop="manufacturerName">
-              <el-input v-model="form.manufacturerName" placeholder="请输入厂商名称"/>
+              <el-input v-model="form.manufacturerName" placeholder="请输入厂商名称" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="设备型号" prop="deviceModel">
-              <el-input v-model="form.deviceModel" placeholder="请输入设备型号"/>
+              <el-input v-model="form.deviceModel" placeholder="请输入设备型号" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="设备类型" prop="type">
               <el-select v-model="form.type" placeholder="请选择设备类型">
                 <el-option v-for="dict in smsb_device_type" :key="dict.value" :label="dict.label"
-                           :value="parseInt(dict.value)"></el-option>
+                  :value="parseInt(dict.value)"></el-option>
               </el-select>
             </el-form-item>
           </el-col>

+ 102 - 96
smsb-plus-ui/src/views/smsb/minioData/index.vue

@@ -86,67 +86,69 @@
     </transition>
 
     <el-card shadow="never">
-      <el-table v-loading="loading" :data="minioDataList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="资源" align="left" prop="keyName" width="200" :show-overflow-tooltip="true" />
-        <el-table-column label="类型" align="center" prop="type" width="120">
-          <template #default="scope">
-            <dict-tag :options="smsb_source_type" :value="scope.row.type" />
-          </template>
-        </el-table-column>
-        <el-table-column label="原名" align="left" prop="originalName" width="150" :show-overflow-tooltip="true" />
-        <el-table-column label="大小" align="left" prop="size" />
-        <el-table-column label="分辨率" align="left" prop="resolution" />
-        <el-table-column label="码率(kbps)" align="left" prop="codeRate" />
-        <el-table-column label="时长" align="left" prop="durationStr" />
-        <el-table-column label="预览" align="center" prop="screenshot">
-          <template #default="scope">
-            <div v-if="scope.row.type === 1">
-              <!-- 图片类型 -->
-              <image-preview :src="scope.row.screenshot" style="width: 40px; height: 40px; cursor: pointer" />
-            </div>
-            <div v-else-if="scope.row.type === 2">
-              <!-- 视频类型 -->
-              <!-- <image-preview :src="scope.row.screenshot" style="width: 40px; height: 40px; cursor: pointer" -->
-              <!-- @click="viewVideo(scope.row.url)" /> -->
-              <el-icon class="VideoPlay" @click="viewVideo(scope.row.screenshot)" size="40" style="cursor: pointer">
-                <VideoPlay />
-              </el-icon>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="转码" align="center" prop="transState">
-          <template #default="scope">
-            <dict-tag :options="smsb_trans_result" :value="scope.row.transState" />
-          </template>
-        </el-table-column>
-        <el-table-column label="分类" align="center" prop="tag">
-          <template #default="scope">
-            <dict-tag :options="smsb_source_classify" :value="scope.row.tag" />
-          </template>
-        </el-table-column>
-        <el-table-column label="创建人" align="left" prop="createUser" />
-        <el-table-column label="创建时间" align="left" prop="createTime" width="180">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-          <template #default="scope">
-            <!--            <el-tooltip content="修改" placement="top">
+      <div class="table-content">
+        <el-table v-loading="loading" :data="minioDataList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="资源" align="left" prop="keyName" width="200" :show-overflow-tooltip="true" />
+          <el-table-column label="类型" align="center" prop="type" width="120">
+            <template #default="scope">
+              <dict-tag :options="smsb_source_type" :value="scope.row.type" />
+            </template>
+          </el-table-column>
+          <el-table-column label="原名" align="left" prop="originalName" width="150" :show-overflow-tooltip="true" />
+          <el-table-column label="大小" align="left" prop="size" />
+          <el-table-column label="分辨率" align="left" prop="resolution" />
+          <el-table-column label="码率(kbps)" align="left" prop="codeRate" />
+          <el-table-column label="时长" align="left" prop="durationStr" />
+          <el-table-column label="预览" align="center" prop="screenshot">
+            <template #default="scope">
+              <div v-if="scope.row.type === 1">
+                <!-- 图片类型 -->
+                <image-preview :src="scope.row.screenshot" style="width: 40px; height: 40px; cursor: pointer" />
+              </div>
+              <div v-else-if="scope.row.type === 2">
+                <!-- 视频类型 -->
+                <!-- <image-preview :src="scope.row.screenshot" style="width: 40px; height: 40px; cursor: pointer" -->
+                <!-- @click="viewVideo(scope.row.url)" /> -->
+                <el-icon class="VideoPlay" @click="viewVideo(scope.row.screenshot)" size="40" style="cursor: pointer">
+                  <VideoPlay />
+                </el-icon>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="转码" align="center" prop="transState">
+            <template #default="scope">
+              <dict-tag :options="smsb_trans_result" :value="scope.row.transState" />
+            </template>
+          </el-table-column>
+          <el-table-column label="分类" align="center" prop="tag">
+            <template #default="scope">
+              <dict-tag :options="smsb_source_classify" :value="scope.row.tag" />
+            </template>
+          </el-table-column>
+          <el-table-column label="创建人" align="left" prop="createUser" />
+          <el-table-column label="创建时间" align="left" prop="createTime" width="180">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template #default="scope">
+              <!--            <el-tooltip content="修改" placement="top">
                           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['source:minioData:edit']"></el-button>
                         </el-tooltip>-->
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
-                v-hasPermi="['source:minioData:remove']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="引用情况" placement="top">
-              <el-button link type="primary" icon="List" @click="handleUse(scope.row)"
-                v-hasPermi="['source:minioData:edit']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['source:minioData:remove']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="引用情况" placement="top">
+                <el-button link type="primary" icon="List" @click="handleUse(scope.row)"
+                  v-hasPermi="['source:minioData:edit']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
 
       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
         v-model:limit="queryParams.pageSize" @pagination="getList" />
@@ -192,26 +194,28 @@
     <!-- 转码进度弹窗 -->
     <el-dialog :title="trans.title" v-model="trans.visible" width="1000px" append-to-body :style="{ height: '700px' }">
       <el-card shadow="never">
-        <el-table v-loading="loading" :data="transRecordList">
-          <el-table-column label="资源名称" align="left" prop="fileName" width="200" :show-overflow-tooltip="true" />
-          <el-table-column label="转码类型" align="center" prop="transType">
-            <template #default="scope">
-              <dict-tag :options="smsb_trans_type" :value="scope.row.transType" />
-            </template>
-          </el-table-column>
-          <el-table-column label="转码进度" align="center" prop="transProgress">
-            <template #default="scope">
-              <dict-tag :options="smsb_trans_progress" :value="scope.row.transProgress" />
-            </template>
-          </el-table-column>
-          <el-table-column label="转码结果" align="center" prop="result">
-            <template #default="scope">
-              <dict-tag :options="smsb_trans_result" :value="scope.row.result" />
-            </template>
-          </el-table-column>
-          <el-table-column label="用户名" align="left" prop="createUser" width="100" :show-overflow-tooltip="true" />
-          <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
-        </el-table>
+        <div class="table-content">
+          <el-table v-loading="loading" :data="transRecordList">
+            <el-table-column label="资源名称" align="left" prop="fileName" width="200" :show-overflow-tooltip="true" />
+            <el-table-column label="转码类型" align="center" prop="transType">
+              <template #default="scope">
+                <dict-tag :options="smsb_trans_type" :value="scope.row.transType" />
+              </template>
+            </el-table-column>
+            <el-table-column label="转码进度" align="center" prop="transProgress">
+              <template #default="scope">
+                <dict-tag :options="smsb_trans_progress" :value="scope.row.transProgress" />
+              </template>
+            </el-table-column>
+            <el-table-column label="转码结果" align="center" prop="result">
+              <template #default="scope">
+                <dict-tag :options="smsb_trans_result" :value="scope.row.result" />
+              </template>
+            </el-table-column>
+            <el-table-column label="用户名" align="left" prop="createUser" width="100" :show-overflow-tooltip="true" />
+            <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
+          </el-table>
+        </div>
         <pagination v-show="transTotal > 0" :total="transTotal" v-model:page="transQueryParams.pageNum"
           v-model:limit="transQueryParams.pageSize" @pagination="getTransList" />
       </el-card>
@@ -226,23 +230,25 @@
     <el-dialog :title="useDialog.title" v-model="useDialog.visible" width="1000px" append-to-body
       :style="{ height: '700px' }">
       <el-card shadow="never">
-        <el-table v-loading="loading" :data="itemRecordList">
-          <el-table-column label="名称" align="left" prop="itemName" />
-          <el-table-column label="类型" align="center" prop="itemType" width="100">
-            <template #default="scope">
-              <dict-tag :options="smsb_item_type" :value="scope.row.itemType" />
-            </template>
-          </el-table-column>
-          <el-table-column label="分屏" align="center" prop="splitScreen" width="100">
-            <template #default="scope">
-              <span v-if="scope.row.splitScreen == 0"> --- </span>
-              <dict-tag v-else :options="smsb_split_screen" :value="scope.row.splitScreen" />
-            </template>
-          </el-table-column>
-          <el-table-column label="资源数量" align="center" prop="sourceNum" width="100" />
-          <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
-          <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
-        </el-table>
+        <div class="table-content">
+          <el-table v-loading="loading" :data="itemRecordList">
+            <el-table-column label="名称" align="left" prop="itemName" />
+            <el-table-column label="类型" align="center" prop="itemType" width="100">
+              <template #default="scope">
+                <dict-tag :options="smsb_item_type" :value="scope.row.itemType" />
+              </template>
+            </el-table-column>
+            <el-table-column label="分屏" align="center" prop="splitScreen" width="100">
+              <template #default="scope">
+                <span v-if="scope.row.splitScreen == 0"> --- </span>
+                <dict-tag v-else :options="smsb_split_screen" :value="scope.row.splitScreen" />
+              </template>
+            </el-table-column>
+            <el-table-column label="资源数量" align="center" prop="sourceNum" width="100" />
+            <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
+            <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
+          </el-table>
+        </div>
         <pagination v-show="itemTotal > 0" :total="itemTotal" v-model:page="dialogQueryParams.pageNum"
           v-model:limit="dialogQueryParams.pageSize" @pagination="getItemListByFileId" />
       </el-card>

+ 32 - 30
smsb-plus-ui/src/views/smsb/nettyHeart/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ marginTop: '10px', height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="70px">
@@ -20,7 +21,7 @@
     </transition>
 
     <el-card shadow="never">
-<!--      <template #header>
+      <!--      <template #header>
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
             <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['device:deviceHeartRecord:add']">新增</el-button>
@@ -37,32 +38,33 @@
           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
       </template>-->
-
-      <el-table v-loading="loading" :data="deviceHeartRecordList" @selection-change="handleSelectionChange">
-<!--        <el-table-column type="selection" width="55" align="center" />-->
-        <el-table-column label="ID" align="left" prop="id" v-if="true" width="180"
-                         :show-overflow-tooltip="true"/>
-        <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true"/>
-        <el-table-column label="设备IP" align="left" prop="clientIp" width="150" :show-overflow-tooltip="true"/>
-<!--        <el-table-column label="心跳类型 1-http 2-Netty" align="center" prop="heartType" />-->
-        <el-table-column label="心跳间隔" align="center" prop="timeInterval" width="100" />
-        <el-table-column label="心跳时间" align="left" prop="createTime" width="180" />
-        <el-table-column label="设备名称" align="left" prop="deviceName" :show-overflow-tooltip="true" />
-        <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
-        <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
-          <template #default="scope">
-<!--            <el-tooltip content="修改" placement="top">
+      <div class="table-content">
+        <el-table v-loading="loading" :data="deviceHeartRecordList" @selection-change="handleSelectionChange">
+          <!--        <el-table-column type="selection" width="55" align="center" />-->
+          <el-table-column label="ID" align="left" prop="id" v-if="true" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="设备标识" align="left" prop="identifier" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="设备IP" align="left" prop="clientIp" width="150" :show-overflow-tooltip="true" />
+          <!--        <el-table-column label="心跳类型 1-http 2-Netty" align="center" prop="heartType" />-->
+          <el-table-column label="心跳间隔" align="center" prop="timeInterval" width="100" />
+          <el-table-column label="心跳时间" align="left" prop="createTime" width="180" />
+          <el-table-column label="设备名称" align="left" prop="deviceName" :show-overflow-tooltip="true" />
+          <el-table-column label="设备SN" align="left" prop="serialNumber" width="200" :show-overflow-tooltip="true" />
+          <el-table-column label="设备MAC" align="left" prop="mac" width="150" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
+            <template #default="scope">
+              <!--            <el-tooltip content="修改" placement="top">
               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:deviceHeartRecord:edit']"></el-button>
             </el-tooltip>-->
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['device:heart:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['device:heart:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改设备心跳对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
@@ -104,7 +106,7 @@ const dialog = reactive<DialogOption>({
 const initFormData: DeviceHeartRecordForm = {
 }
 const data = reactive<PageData<DeviceHeartRecordForm, DeviceHeartRecordQuery>>({
-  form: {...initFormData},
+  form: { ...initFormData },
   queryParams: {
     pageNum: 1,
     pageSize: 10,
@@ -139,7 +141,7 @@ const cancel = () => {
 
 /** 表单重置 */
 const reset = () => {
-  form.value = {...initFormData};
+  form.value = { ...initFormData };
   deviceHeartRecordFormRef.value?.resetFields();
 }
 
@@ -185,9 +187,9 @@ const submitForm = () => {
     if (valid) {
       buttonLoading.value = true;
       if (form.value.id) {
-        await updateDeviceHeartRecord(form.value).finally(() =>  buttonLoading.value = false);
+        await updateDeviceHeartRecord(form.value).finally(() => buttonLoading.value = false);
       } else {
-        await addDeviceHeartRecord(form.value).finally(() =>  buttonLoading.value = false);
+        await addDeviceHeartRecord(form.value).finally(() => buttonLoading.value = false);
       }
       proxy?.$modal.msgSuccess("操作成功");
       dialog.visible = false;

+ 32 - 27
smsb-plus-ui/src/views/smsb/otaPackage/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
@@ -16,9 +17,10 @@
             <el-form-item>
               <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
               <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-              <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['device:otaPackage:add']"> 新增 </el-button>
-              <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['device:otaPackage:remove']"
-                >删除
+              <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['device:otaPackage:add']"> 新增
+              </el-button>
+              <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
+                v-hasPermi="['device:otaPackage:remove']">删除
               </el-button>
             </el-form-item>
           </el-form>
@@ -27,29 +29,32 @@
     </transition>
 
     <el-card shadow="never">
-      <el-table v-loading="loading" :data="otaPackageList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="主键ID" align="left" prop="id" v-if="true" width="180" />
-        <el-table-column label="版本名称" align="center" prop="versionName" width="100" />
-        <el-table-column label="版本号" align="left" prop="versionCode" width="100" :show-overflow-tooltip="true" />
-        <el-table-column label="文件大小" align="left" prop="fileSize" width="100" :show-overflow-tooltip="true" />
-        <el-table-column label="文件名称" align="left" prop="fileName" width="250" :show-overflow-tooltip="true" />
-        <el-table-column label="下载路径" align="left" prop="fileUrl" :show-overflow-tooltip="true" width="200" />
-        <el-table-column label="MD5" align="left" prop="md5" width="250" :show-overflow-tooltip="true" />
-        <el-table-column label="状态" align="center" prop="status" width="80" />
-        <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
-        <el-table-column label="创建人" align="center" prop="createUser" width="80" :show-overflow-tooltip="true" />
-        <el-table-column label="备注" align="left" prop="remark" :show-overflow-tooltip="true" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
-          <template #default="scope">
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['device:otaPackage:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <div class="table-content">
+        <el-table v-loading="loading" :data="otaPackageList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="主键ID" align="left" prop="id" v-if="true" width="180" />
+          <el-table-column label="版本名称" align="center" prop="versionName" width="100" />
+          <el-table-column label="版本号" align="left" prop="versionCode" width="100" :show-overflow-tooltip="true" />
+          <el-table-column label="文件大小" align="left" prop="fileSize" width="100" :show-overflow-tooltip="true" />
+          <el-table-column label="文件名称" align="left" prop="fileName" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="下载路径" align="left" prop="fileUrl" :show-overflow-tooltip="true" width="200" />
+          <el-table-column label="MD5" align="left" prop="md5" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="状态" align="center" prop="status" width="80" />
+          <el-table-column label="创建时间" align="left" prop="createTime" width="160" />
+          <el-table-column label="创建人" align="center" prop="createUser" width="80" :show-overflow-tooltip="true" />
+          <el-table-column label="备注" align="left" prop="remark" :show-overflow-tooltip="true" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+            <template #default="scope">
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['device:otaPackage:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改OTA版本管理对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>

+ 32 - 27
smsb-plus-ui/src/views/smsb/otaRecord/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover" :style="{ height: '60px' }">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
@@ -16,9 +17,10 @@
             <el-form-item>
               <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
               <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-              <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:otaRecord:add']"> 新增 </el-button>
-              <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:otaRecord:remove']"
-                >删除
+              <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:otaRecord:add']"> 新增
+              </el-button>
+              <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
+                v-hasPermi="['system:otaRecord:remove']">删除
               </el-button>
             </el-form-item>
           </el-form>
@@ -27,34 +29,36 @@
     </transition>
 
     <el-card shadow="never">
-      <el-table v-loading="loading" :data="otaRecordList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="ID" align="left" prop="id" v-if="true" width="175" />
-        <el-table-column label="升级名称" align="left" prop="otaName" width="180" :show-overflow-tooltip="true" />
-        <el-table-column label="升级设备" align="left" prop="deviceName" width="220" :show-overflow-tooltip="true" />
-        <el-table-column label="升级文件" align="left" prop="fileName" width="250" :show-overflow-tooltip="true" />
-        <el-table-column label="文件地址" align="left" prop="fileUrl" width="200" :show-overflow-tooltip="true" />
-        <el-table-column label="文件MD5" align="left" prop="md5" width="180" :show-overflow-tooltip="true" />
-        <el-table-column label="版本号" align="left" prop="versionCode" width="100" :show-overflow-tooltip="true" />
-        <el-table-column label="版本名称" align="left" prop="versionName" width="90" :show-overflow-tooltip="true" />
-        <el-table-column label="升级状态" align="center" prop="otaStatus" width="120">
-          <template #default="scope">
-            <dict-tag :options="smsb_ota_status" :value="scope.row.otaStatus" />
-          </template>
-        </el-table-column>
-        <el-table-column label="备注" align="left" prop="remark" width="160" :show-overflow-tooltip="true" />
-        <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="创建时间" align="left" prop="createTime" :show-overflow-tooltip="true" width="160" />
-        <!--        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <div class="table-content">
+        <el-table v-loading="loading" :data="otaRecordList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="ID" align="left" prop="id" v-if="true" width="175" />
+          <el-table-column label="升级名称" align="left" prop="otaName" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="升级设备" align="left" prop="deviceName" width="220" :show-overflow-tooltip="true" />
+          <el-table-column label="升级文件" align="left" prop="fileName" width="250" :show-overflow-tooltip="true" />
+          <el-table-column label="文件地址" align="left" prop="fileUrl" width="200" :show-overflow-tooltip="true" />
+          <el-table-column label="文件MD5" align="left" prop="md5" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="版本号" align="left" prop="versionCode" width="100" :show-overflow-tooltip="true" />
+          <el-table-column label="版本名称" align="left" prop="versionName" width="90" :show-overflow-tooltip="true" />
+          <el-table-column label="升级状态" align="center" prop="otaStatus" width="120">
+            <template #default="scope">
+              <dict-tag :options="smsb_ota_status" :value="scope.row.otaStatus" />
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" align="left" prop="remark" width="160" :show-overflow-tooltip="true" />
+          <el-table-column label="创建人" align="left" prop="createUser" width="120" :show-overflow-tooltip="true" />
+          <el-table-column label="创建时间" align="left" prop="createTime" :show-overflow-tooltip="true" width="160" />
+          <!--        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                   <template #default="scope">
                     <el-tooltip content="删除" placement="top">
                       <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:otaRecord:remove']"></el-button>
                     </el-tooltip>
                   </template>
                 </el-table-column>-->
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+        </el-table>
+      </div>
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改发布升级对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
@@ -77,7 +81,8 @@
           <el-col :span="12">
             <el-form-item label="租户设备" prop="tenantId">
               <el-select v-model="form.tenantId" placeholder="请选择目标版本" @change="getDeviceList">
-                <el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" :value="item.tenantId" />
+                <el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName"
+                  :value="item.tenantId" />
               </el-select>
             </el-form-item>
           </el-col>

+ 53 - 42
smsb-plus-ui/src/views/smsb/product/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
@@ -20,55 +21,61 @@
       <template #header>
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['smsb:product:add']">新增 </el-button>
+            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['smsb:product:add']">新增
+            </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['smsb:product:edit']"
-              >修改
+            <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
+              v-hasPermi="['smsb:product:edit']">修改
             </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['smsb:product:remove']"
-              >删除
+            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
+              v-hasPermi="['smsb:product:remove']">删除
             </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['smsb:product:export']"> 导出 </el-button>
+            <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['smsb:product:export']">
+              导出 </el-button>
           </el-col>
           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
       </template>
-
-      <el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="id" align="left" prop="id" v-if="true" width="200" />
-        <el-table-column label="配置名称" align="left" prop="name" />
-        <el-table-column label="屏幕类型" align="center" prop="productTypeName" width="180" :show-overflow-tooltip="true" />
-        <el-table-column label="分割器" align="center" prop="fpga" width="100">
-          <template #default="scope">
-            <dict-tag :options="sys_is_exist" :value="scope.row.fpga" />
-          </template>
-        </el-table-column>
-        <el-table-column label="屏宽高比" align="center" prop="wideHighRatio" width="100" />
-        <el-table-column label="创建时间" align="left" prop="createTime" width="180">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="备注" align="left" prop="remark" width="180" :show-overflow-tooltip="true" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
-          <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['smsb:product:edit']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['smsb:product:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <div class="table-content">
+        <el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="id" align="left" prop="id" v-if="true" width="200" />
+          <el-table-column label="配置名称" align="left" prop="name" />
+          <el-table-column label="屏幕类型" align="center" prop="productTypeName" width="180"
+            :show-overflow-tooltip="true" />
+          <el-table-column label="分割器" align="center" prop="fpga" width="100">
+            <template #default="scope">
+              <dict-tag :options="sys_is_exist" :value="scope.row.fpga" />
+            </template>
+          </el-table-column>
+          <el-table-column label="屏宽高比" align="center" prop="wideHighRatio" width="100" />
+          <el-table-column label="创建时间" align="left" prop="createTime" width="180">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="备注" align="left" prop="remark" width="180" :show-overflow-tooltip="true" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+            <template #default="scope">
+              <el-tooltip content="修改" placement="top">
+                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
+                  v-hasPermi="['smsb:product:edit']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['smsb:product:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改屏幕配置对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
@@ -80,7 +87,8 @@
           <el-col :span="12">
             <el-form-item label="屏幕类型" prop="productTypeId">
               <el-select v-model="form.productTypeId" placeholder="请选择屏幕类型" style="width: 100%">
-                <el-option v-for="dict in productTypeList" :key="dict.id" :label="dict.name" :value="dict.id"></el-option>
+                <el-option v-for="dict in productTypeList" :key="dict.id" :label="dict.name"
+                  :value="dict.id"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -88,7 +96,8 @@
             <el-form-item label="分割器" prop="fpga">
               <!--          <el-input v-model="form.fpga" placeholder="请输入是否有分割器" />-->
               <el-select v-model="form.fpga" placeholder="请选择是否有分割器" style="width: 100%">
-                <el-option :disabled="true" v-for="dict in sys_is_exist" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
+                <el-option :disabled="true" v-for="dict in sys_is_exist" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -96,12 +105,14 @@
         <el-row>
           <el-col :span="14">
             <el-form-item label="分辨率" prop="wide">
-              <el-input-number v-model="form.wide" controls-position="right" placeholder="请输入宽" min="0" style="width: 180px" maxlength="5" />
+              <el-input-number v-model="form.wide" controls-position="right" placeholder="请输入宽" min="0"
+                style="width: 180px" maxlength="5" />
             </el-form-item>
           </el-col>
           <el-col :span="10">
             <el-form-item prop="high" labelWidth="10px">
-              <el-input-number v-model="form.high" controls-position="right" placeholder="请输入高" min="0" style="width: 180px" maxlength="5" />
+              <el-input-number v-model="form.high" controls-position="right" placeholder="请输入高" min="0"
+                style="width: 180px" maxlength="5" />
             </el-form-item>
           </el-col>
         </el-row>

+ 37 - 31
smsb-plus-ui/src/views/smsb/productType/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
@@ -20,48 +21,53 @@
       <template #header>
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['smsb:productType:add']"> 新增 </el-button>
+            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['smsb:productType:add']"> 新增
+            </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['smsb:productType:edit']"
-              >修改
+            <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
+              v-hasPermi="['smsb:productType:edit']">修改
             </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['smsb:productType:remove']"
-              >删除
+            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
+              v-hasPermi="['smsb:productType:remove']">删除
             </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['smsb:productType:export']">导出 </el-button>
+            <el-button type="warning" plain icon="Download" @click="handleExport"
+              v-hasPermi="['smsb:productType:export']">导出 </el-button>
           </el-col>
           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
       </template>
-
-      <el-table v-loading="loading" :data="productTypeList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="id" align="left" prop="id" v-if="true" width="250" />
-        <el-table-column label="宽高比" align="left" prop="name" />
-        <el-table-column label="描述" align="left" prop="remark" width="500" :show-overflow-tooltip="true" />
-        <el-table-column label="创建时间" align="left" prop="createTime" width="300">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
-          <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['smsb:productType:edit']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['smsb:productType:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <div class="table-content">
+        <el-table v-loading="loading" :data="productTypeList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="id" align="left" prop="id" v-if="true" width="250" />
+          <el-table-column label="宽高比" align="left" prop="name" />
+          <el-table-column label="描述" align="left" prop="remark" width="500" :show-overflow-tooltip="true" />
+          <el-table-column label="创建时间" align="left" prop="createTime" width="300">
+            <template #default="scope">
+              <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
+            <template #default="scope">
+              <el-tooltip content="修改" placement="top">
+                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
+                  v-hasPermi="['smsb:productType:edit']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['smsb:productType:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改屏幕类型对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>

+ 48 - 65
smsb-plus-ui/src/views/smsb/thirdScreen/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+      :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
@@ -20,49 +21,54 @@
       <template #header>
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['smsb:thirdScreen:add']"> 新增 </el-button>
+            <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['smsb:thirdScreen:add']"> 新增
+            </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['smsb:thirdScreen:edit']"
-              >修改
+            <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
+              v-hasPermi="['smsb:thirdScreen:edit']">修改
             </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['smsb:thirdScreen:remove']"
-              >删除
+            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
+              v-hasPermi="['smsb:thirdScreen:remove']">删除
             </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['smsb:thirdScreen:export']">导出 </el-button>
+            <el-button type="warning" plain icon="Download" @click="handleExport"
+              v-hasPermi="['smsb:thirdScreen:export']">导出 </el-button>
           </el-col>
           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
       </template>
-
-      <el-table v-loading="loading" :data="thirdScreenList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="主键ID" align="center" prop="id" v-if="true" />
-        <el-table-column label="厂商名称" align="center" prop="manufacturerName" />
-        <el-table-column label="点间距" align="center" prop="pitch" />
-        <el-table-column label="屏宽高" align="center" prop="measure" />
-        <el-table-column label="分辨率" align="center" prop="resolutionRatio" />
-        <el-table-column label="唯一标识" align="center" prop="identifier" />
-        <el-table-column label="型号" align="center" prop="model" />
-        <el-table-column label="组织ID" align="center" prop="org" />
-        <el-table-column label="备注" align="center" prop="remark" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-          <template #default="scope">
-            <el-tooltip content="修改" placement="top">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['smsb:thirdScreen:edit']"></el-button>
-            </el-tooltip>
-            <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['smsb:thirdScreen:remove']"></el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <div class="table-content">
+        <el-table v-loading="loading" :data="thirdScreenList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="主键ID" align="center" prop="id" v-if="true" />
+          <el-table-column label="厂商名称" align="center" prop="manufacturerName" />
+          <el-table-column label="点间距" align="center" prop="pitch" />
+          <el-table-column label="屏宽高" align="center" prop="measure" />
+          <el-table-column label="分辨率" align="center" prop="resolutionRatio" />
+          <el-table-column label="唯一标识" align="center" prop="identifier" />
+          <el-table-column label="型号" align="center" prop="model" />
+          <el-table-column label="组织ID" align="center" prop="org" />
+          <el-table-column label="备注" align="center" prop="remark" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template #default="scope">
+              <el-tooltip content="修改" placement="top">
+                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
+                  v-hasPermi="['smsb:thirdScreen:edit']"></el-button>
+              </el-tooltip>
+              <el-tooltip content="删除" placement="top">
+                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['smsb:thirdScreen:remove']"></el-button>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize" @pagination="getList" />
     </el-card>
     <!-- 添加或修改第三方屏幕管理对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
@@ -70,7 +76,8 @@
         <el-form-item label="厂商" prop="manufacturerId">
           <!--          <el-input v-model="form.productId" placeholder="请输入所属屏幕配置" />-->
           <el-select v-model="form.manufacturerId" placeholder="请选择屏幕厂商" style="width: 100%">
-            <el-option v-for="dict in manufacturerList" :key="dict.id" :label="dict.manufacturerName" :value="dict.id"></el-option>
+            <el-option v-for="dict in manufacturerList" :key="dict.id" :label="dict.manufacturerName"
+              :value="dict.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="型号" prop="model">
@@ -82,52 +89,28 @@
         <el-row>
           <el-col :span="14">
             <el-form-item label="尺寸" prop="measureWidth">
-              <el-input-number
-                v-model="form.measureWidth"
-                controls-position="right"
-                placeholder="请输入宽"
-                min="0"
-                style="width: 180px"
-                maxlength="5"
-              />
+              <el-input-number v-model="form.measureWidth" controls-position="right" placeholder="请输入宽" min="0"
+                style="width: 180px" maxlength="5" />
             </el-form-item>
           </el-col>
           <el-col :span="10">
             <el-form-item prop="measureHeight" labelWidth="10px">
-              <el-input-number
-                v-model="form.measureHeight"
-                controls-position="right"
-                placeholder="请输入高"
-                min="0"
-                style="width: 180px"
-                maxlength="5"
-              />
+              <el-input-number v-model="form.measureHeight" controls-position="right" placeholder="请输入高" min="0"
+                style="width: 180px" maxlength="5" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="14">
             <el-form-item label="分辨率" prop="resolutionRatioWidth">
-              <el-input-number
-                v-model="form.resolutionRatioWidth"
-                controls-position="right"
-                placeholder="请输入宽"
-                min="0"
-                style="width: 180px"
-                maxlength="5"
-              />
+              <el-input-number v-model="form.resolutionRatioWidth" controls-position="right" placeholder="请输入宽" min="0"
+                style="width: 180px" maxlength="5" />
             </el-form-item>
           </el-col>
           <el-col :span="10">
             <el-form-item prop="resolutionRatioHeight" labelWidth="10px">
-              <el-input-number
-                v-model="form.resolutionRatioHeight"
-                controls-position="right"
-                placeholder="请输入高"
-                min="0"
-                style="width: 180px"
-                maxlength="5"
-              />
+              <el-input-number v-model="form.resolutionRatioHeight" controls-position="right" placeholder="请输入高" min="0"
+                style="width: 180px" maxlength="5" />
             </el-form-item>
           </el-col>
         </el-row>