|
@@ -33,7 +33,9 @@
|
|
|
<el-button type="primary" :icon="Search" data-id="btn-search" @click="handleSearch">
|
|
<el-button type="primary" :icon="Search" data-id="btn-search" @click="handleSearch">
|
|
|
{{ t('查询') }}
|
|
{{ t('查询') }}
|
|
|
</el-button>
|
|
</el-button>
|
|
|
- <el-button :icon="RefreshRight" data-id="btn-reset" @click="handleReset">{{ t('重置') }}</el-button>
|
|
|
|
|
|
|
+ <el-button type="info" :icon="RefreshRight" data-id="btn-reset" @click="handleReset">
|
|
|
|
|
+ {{ t('重置') }}
|
|
|
|
|
+ </el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</div>
|
|
</div>
|
|
@@ -57,15 +59,7 @@
|
|
|
<el-table-column :label="t('心跳')" width="220" align="center">
|
|
<el-table-column :label="t('心跳')" width="220" align="center">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<span :class="getHeartbeatClass(row.status)">
|
|
<span :class="getHeartbeatClass(row.status)">
|
|
|
- {{
|
|
|
|
|
- row.status === 'active'
|
|
|
|
|
- ? t('活跃')
|
|
|
|
|
- : row.status === 'hold'
|
|
|
|
|
- ? t('待机')
|
|
|
|
|
- : row.status === 'dead'
|
|
|
|
|
- ? t('离线')
|
|
|
|
|
- : '-'
|
|
|
|
|
- }}
|
|
|
|
|
|
|
+ {{ row.status || '-' }}
|
|
|
</span>
|
|
</span>
|
|
|
| {{ formatTime(row.lastHeartbeatAt) }}
|
|
| {{ formatTime(row.lastHeartbeatAt) }}
|
|
|
</template>
|
|
</template>
|
|
@@ -101,27 +95,27 @@
|
|
|
<!-- LSS 详情抽屉 -->
|
|
<!-- LSS 详情抽屉 -->
|
|
|
<el-drawer v-model="detailDrawerVisible" :title="t('LSS 节点详情')" direction="rtl" size="500px" destroy-on-close>
|
|
<el-drawer v-model="detailDrawerVisible" :title="t('LSS 节点详情')" direction="rtl" size="500px" destroy-on-close>
|
|
|
<el-descriptions :column="1" border>
|
|
<el-descriptions :column="1" border>
|
|
|
- <el-descriptions-item label="LSS ID">{{ currentLss?.lssId }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="名称">{{ currentLss?.lssName }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="地址">{{ currentLss?.address }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="机器 ID">{{ currentLss?.machineId || '-' }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="状态">
|
|
|
|
|
|
|
+ <el-descriptions-item :label="t('LSS ID')">{{ currentLss?.lssId }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item :label="t('名称')">{{ currentLss?.lssName }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item :label="t('地址')">{{ currentLss?.address }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item :label="t('机器 ID')">{{ currentLss?.machineId || '-' }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item :label="t('状态')">
|
|
|
<el-tag :type="getStatusTagType(currentLss?.status)" size="small">
|
|
<el-tag :type="getStatusTagType(currentLss?.status)" size="small">
|
|
|
{{ formatStatus(currentLss?.status) }}
|
|
{{ formatStatus(currentLss?.status) }}
|
|
|
</el-tag>
|
|
</el-tag>
|
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
|
- <el-descriptions-item label="任务数">
|
|
|
|
|
|
|
+ <el-descriptions-item :label="t('任务数')">
|
|
|
{{ currentLss?.currentTasks }} / {{ currentLss?.maxTasks }}
|
|
{{ currentLss?.currentTasks }} / {{ currentLss?.maxTasks }}
|
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
|
- <el-descriptions-item label="FFmpeg 版本">{{ currentLss?.ffmpegVersion || '-' }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="系统信息">{{ currentLss?.systemInfo || '-' }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="启用状态">
|
|
|
|
|
|
|
+ <el-descriptions-item :label="t('FFmpeg 版本')">{{ currentLss?.ffmpegVersion || '-' }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item :label="t('系统信息')">{{ currentLss?.systemInfo || '-' }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item :label="t('启用状态')">
|
|
|
<el-tag :type="currentLss?.enabled ? 'success' : 'info'" size="small">
|
|
<el-tag :type="currentLss?.enabled ? 'success' : 'info'" size="small">
|
|
|
{{ currentLss?.enabled ? '已启用' : '已禁用' }}
|
|
{{ currentLss?.enabled ? '已启用' : '已禁用' }}
|
|
|
</el-tag>
|
|
</el-tag>
|
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
|
- <el-descriptions-item label="创建时间">{{ formatTime(currentLss?.createdAt) }}</el-descriptions-item>
|
|
|
|
|
- <el-descriptions-item label="更新时间">{{ formatTime(currentLss?.updatedAt) }}</el-descriptions-item>
|
|
|
|
|
|
|
+ <el-descriptions-item :label="t('创建时间')">{{ formatTime(currentLss?.createdAt) }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item :label="t('更新时间')">{{ formatTime(currentLss?.updatedAt) }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
</el-descriptions>
|
|
|
</el-drawer>
|
|
</el-drawer>
|
|
|
|
|
|
|
@@ -146,14 +140,14 @@
|
|
|
<!-- LSS 详情 Tab -->
|
|
<!-- LSS 详情 Tab -->
|
|
|
<div v-show="editActiveTab === 'detail'" class="lss-detail-form">
|
|
<div v-show="editActiveTab === 'detail'" class="lss-detail-form">
|
|
|
<el-form ref="lssEditFormRef" :model="lssEditForm" label-width="80px" label-position="left">
|
|
<el-form ref="lssEditFormRef" :model="lssEditForm" label-width="80px" label-position="left">
|
|
|
- <el-form-item label="LSS ID:">
|
|
|
|
|
|
|
+ <el-form-item :label="t('LSS ID') + ':'">
|
|
|
<span class="form-value">{{ currentLss?.lssId }}</span>
|
|
<span class="form-value">{{ currentLss?.lssId }}</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item :label="t('名称') + ':'" prop="lssName">
|
|
<el-form-item :label="t('名称') + ':'" prop="lssName">
|
|
|
- <el-input v-model="lssEditForm.lssName" placeholder="请输入名称" style="width: 180px" />
|
|
|
|
|
|
|
+ <el-input v-model="lssEditForm.lssName" :placeholder="t('请输入名称')" style="width: 180px" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item :label="t('地址') + ':'" prop="address">
|
|
<el-form-item :label="t('地址') + ':'" prop="address">
|
|
|
- <el-input v-model="lssEditForm.address" placeholder="请输入地址" />
|
|
|
|
|
|
|
+ <el-input v-model="lssEditForm.address" :placeholder="t('请输入地址')" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item :label="t('IP') + ':'">
|
|
<el-form-item :label="t('IP') + ':'">
|
|
|
<span class="form-value">{{ currentLss?.ip }}</span>
|
|
<span class="form-value">{{ currentLss?.ip }}</span>
|
|
@@ -220,20 +214,22 @@
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-select v-model="cameraSearchForm.status" :placeholder="t('状态')" clearable style="width: 120px">
|
|
<el-select v-model="cameraSearchForm.status" :placeholder="t('状态')" clearable style="width: 120px">
|
|
|
<el-option :label="t('全部')" value="" />
|
|
<el-option :label="t('全部')" value="" />
|
|
|
- <el-option :label="t('在线')" value="ative" />
|
|
|
|
|
- <el-option :label="t('待机')" value="hold" />
|
|
|
|
|
- <el-option :label="t('离线')" value="dead" />
|
|
|
|
|
|
|
+ <el-option label="active" value="active" />
|
|
|
|
|
+ <el-option label="hold" value="hold" />
|
|
|
|
|
+ <el-option label="dead" value="dead" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button type="primary" :icon="Search" @click="handleCameraSearch">{{ t('查询') }}</el-button>
|
|
<el-button type="primary" :icon="Search" @click="handleCameraSearch">{{ t('查询') }}</el-button>
|
|
|
- <el-button :icon="RefreshRight" @click="handleCameraReset">{{ t('重置') }}</el-button>
|
|
|
|
|
|
|
+ <el-button type="info" :icon="RefreshRight" @click="handleCameraReset">{{ t('重置') }}</el-button>
|
|
|
<el-button type="primary" :icon="Plus" @click="handleAddCamera">{{ t('新增') }}</el-button>
|
|
<el-button type="primary" :icon="Plus" @click="handleAddCamera">{{ t('新增') }}</el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-empty v-if="!cameraLoading && cameraList.length === 0" :description="t('暂无关联设备')" />
|
|
|
|
|
- <el-table v-else :data="cameraList" stripe size="small" border>
|
|
|
|
|
|
|
+ <el-table :data="cameraList" stripe size="small" border>
|
|
|
|
|
+ <template #empty>
|
|
|
|
|
+ <el-empty :description="t('暂无关联设备')" />
|
|
|
|
|
+ </template>
|
|
|
<el-table-column prop="cameraId" :label="t('设备ID')" min-width="100" show-overflow-tooltip />
|
|
<el-table-column prop="cameraId" :label="t('设备ID')" min-width="100" show-overflow-tooltip />
|
|
|
<el-table-column prop="cameraName" :label="t('名称')" min-width="100" show-overflow-tooltip />
|
|
<el-table-column prop="cameraName" :label="t('名称')" min-width="100" show-overflow-tooltip />
|
|
|
<el-table-column :label="t('状态(心跳)')" min-width="140">
|
|
<el-table-column :label="t('状态(心跳)')" min-width="140">
|
|
@@ -295,7 +291,7 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div class="drawer-footer">
|
|
|
|
|
|
|
+ <div v-show="editActiveTab === 'detail'" class="drawer-footer">
|
|
|
<el-button @click="lssEditDrawerVisible = false">{{ t('取消') }}</el-button>
|
|
<el-button @click="lssEditDrawerVisible = false">{{ t('取消') }}</el-button>
|
|
|
<el-button type="primary" :loading="lssUpdating" @click="handleUpdateLss">{{ t('更新') }}</el-button>
|
|
<el-button type="primary" :loading="lssUpdating" @click="handleUpdateLss">{{ t('更新') }}</el-button>
|
|
|
</div>
|
|
</div>
|
|
@@ -328,19 +324,22 @@
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-select v-model="cameraSearchForm.status" :placeholder="t('状态')" clearable style="width: 120px">
|
|
<el-select v-model="cameraSearchForm.status" :placeholder="t('状态')" clearable style="width: 120px">
|
|
|
<el-option :label="t('全部')" value="" />
|
|
<el-option :label="t('全部')" value="" />
|
|
|
- <el-option :label="t('在线')" value="ONLINE" />
|
|
|
|
|
- <el-option :label="t('离线')" value="OFFLINE" />
|
|
|
|
|
|
|
+ <el-option label="active" value="active" />
|
|
|
|
|
+ <el-option label="hold" value="hold" />
|
|
|
|
|
+ <el-option label="dead" value="dead" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button type="primary" :icon="Search" @click="handleCameraSearch">{{ t('查询') }}</el-button>
|
|
<el-button type="primary" :icon="Search" @click="handleCameraSearch">{{ t('查询') }}</el-button>
|
|
|
- <el-button :icon="RefreshRight" @click="handleCameraReset">{{ t('重置') }}</el-button>
|
|
|
|
|
|
|
+ <el-button type="info" :icon="RefreshRight" @click="handleCameraReset">{{ t('重置') }}</el-button>
|
|
|
|
|
+ <el-button type="primary" :icon="Plus" @click="handleAddCamera">{{ t('新增') }}</el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
- <el-button type="primary" :icon="Plus" @click="handleAddCamera">{{ t('新增') }}</el-button>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
- <el-empty v-if="!cameraLoading && cameraList.length === 0" :description="t('暂无关联设备')" />
|
|
|
|
|
- <el-table v-else :data="cameraList" stripe size="small" border>
|
|
|
|
|
|
|
+ <el-table :data="cameraList" stripe size="small" border>
|
|
|
|
|
+ <template #empty>
|
|
|
|
|
+ <el-empty :description="t('暂无关联设备')" />
|
|
|
|
|
+ </template>
|
|
|
<!-- <el-table-column prop="ip" label="本地IP" min-width="110" /> -->
|
|
<!-- <el-table-column prop="ip" label="本地IP" min-width="110" /> -->
|
|
|
<el-table-column prop="cameraId" :label="t('设备ID')" min-width="100" show-overflow-tooltip />
|
|
<el-table-column prop="cameraId" :label="t('设备ID')" min-width="100" show-overflow-tooltip />
|
|
|
<el-table-column prop="cameraName" :label="t('名称')" min-width="100" show-overflow-tooltip />
|
|
<el-table-column prop="cameraName" :label="t('名称')" min-width="100" show-overflow-tooltip />
|
|
@@ -385,52 +384,52 @@
|
|
|
<div v-if="cameraList.length > 0" class="camera-count">共 {{ cameraList.length }} 个设备</div>
|
|
<div v-if="cameraList.length > 0" class="camera-count">共 {{ cameraList.length }} 个设备</div>
|
|
|
</div>
|
|
</div>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="推币机列表" name="pusher">
|
|
|
|
|
|
|
+ <el-tab-pane :label="t('推币机列表')" name="pusher">
|
|
|
<div class="tab-content-wrapper">
|
|
<div class="tab-content-wrapper">
|
|
|
<div class="camera-toolbar">
|
|
<div class="camera-toolbar">
|
|
|
<el-form inline>
|
|
<el-form inline>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
- <el-input placeholder="设备ID / 名称" clearable style="width: 200px" />
|
|
|
|
|
|
|
+ <el-input :placeholder="t('设备ID / 名称')" clearable style="width: 200px" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
- <el-select placeholder="状态" clearable style="width: 120px">
|
|
|
|
|
- <el-option label="全部" value="" />
|
|
|
|
|
- <el-option label="在线" value="ONLINE" />
|
|
|
|
|
- <el-option label="离线" value="OFFLINE" />
|
|
|
|
|
|
|
+ <el-select :placeholder="t('状态')" clearable style="width: 120px">
|
|
|
|
|
+ <el-option :label="t('全部')" value="" />
|
|
|
|
|
+ <el-option :label="t('在线')" value="ONLINE" />
|
|
|
|
|
+ <el-option :label="t('离线')" value="OFFLINE" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
- <el-button type="primary" :icon="Search">查询</el-button>
|
|
|
|
|
- <el-button :icon="RefreshRight">重置</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" :icon="Search">{{ t('查询') }}</el-button>
|
|
|
|
|
+ <el-button type="info" :icon="RefreshRight">{{ t('重置') }}</el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-button type="primary" :icon="Plus">{{ t('新增') }}</el-button>
|
|
<el-button type="primary" :icon="Plus">{{ t('新增') }}</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-empty description="暂无推币机数据" />
|
|
|
|
|
|
|
+ <el-empty :description="t('暂无推币机数据')" />
|
|
|
</div>
|
|
</div>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="其他设备" name="other">
|
|
|
|
|
|
|
+ <el-tab-pane :label="t('其他设备')" name="other">
|
|
|
<div class="tab-content-wrapper">
|
|
<div class="tab-content-wrapper">
|
|
|
<div class="camera-toolbar">
|
|
<div class="camera-toolbar">
|
|
|
<el-form inline>
|
|
<el-form inline>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
- <el-input placeholder="设备ID / 名称" clearable style="width: 200px" />
|
|
|
|
|
|
|
+ <el-input :placeholder="t('设备ID / 名称')" clearable style="width: 200px" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
- <el-select placeholder="状态" clearable style="width: 120px">
|
|
|
|
|
- <el-option label="全部" value="" />
|
|
|
|
|
- <el-option label="在线" value="ONLINE" />
|
|
|
|
|
- <el-option label="离线" value="OFFLINE" />
|
|
|
|
|
|
|
+ <el-select :placeholder="t('状态')" clearable style="width: 120px">
|
|
|
|
|
+ <el-option :label="t('全部')" value="" />
|
|
|
|
|
+ <el-option :label="t('在线')" value="ONLINE" />
|
|
|
|
|
+ <el-option :label="t('离线')" value="OFFLINE" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
- <el-button type="primary" :icon="Search">查询</el-button>
|
|
|
|
|
- <el-button :icon="RefreshRight">重置</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" :icon="Search">{{ t('查询') }}</el-button>
|
|
|
|
|
+ <el-button type="info" :icon="RefreshRight">{{ t('重置') }}</el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-button type="primary" :icon="Plus">{{ t('新增') }}</el-button>
|
|
<el-button type="primary" :icon="Plus">{{ t('新增') }}</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-empty description="暂无其他设备数据" />
|
|
|
|
|
|
|
+ <el-empty :description="t('暂无其他设备数据')" />
|
|
|
</div>
|
|
</div>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
</el-tabs>
|
|
@@ -439,10 +438,11 @@
|
|
|
<!-- 摄像头编辑抽屉 -->
|
|
<!-- 摄像头编辑抽屉 -->
|
|
|
<el-drawer
|
|
<el-drawer
|
|
|
v-model="cameraDialogVisible"
|
|
v-model="cameraDialogVisible"
|
|
|
- :title="isEditCamera ? '编辑摄像头' : '添加摄像头'"
|
|
|
|
|
|
|
+ :title="isEditCamera ? t('摄像头详情') : t('添加摄像头')"
|
|
|
direction="rtl"
|
|
direction="rtl"
|
|
|
size="500px"
|
|
size="500px"
|
|
|
:close-on-click-modal="false"
|
|
:close-on-click-modal="false"
|
|
|
|
|
+ :show-close="false"
|
|
|
destroy-on-close
|
|
destroy-on-close
|
|
|
class="camera-edit-drawer"
|
|
class="camera-edit-drawer"
|
|
|
>
|
|
>
|
|
@@ -450,16 +450,16 @@
|
|
|
<!-- <el-form-item label="IP 地址" prop="ip">
|
|
<!-- <el-form-item label="IP 地址" prop="ip">
|
|
|
<el-input v-model="cameraForm.ip" :disabled="isEditCamera" placeholder="请输入 IP 地址" />
|
|
<el-input v-model="cameraForm.ip" :disabled="isEditCamera" placeholder="请输入 IP 地址" />
|
|
|
</el-form-item> -->
|
|
</el-form-item> -->
|
|
|
- <el-form-item label="设备ID" prop="cameraId">
|
|
|
|
|
- <el-input v-model="cameraForm.cameraId" :disabled="isEditCamera" placeholder="请输入设备ID" />
|
|
|
|
|
|
|
+ <el-form-item :label="t('设备ID') + ':'" prop="cameraId">
|
|
|
|
|
+ <el-input v-model="cameraForm.cameraId" :disabled="isEditCamera" :placeholder="t('请输入设备ID')" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="设备名称" prop="cameraName">
|
|
|
|
|
- <el-input v-model="cameraForm.cameraName" placeholder="请输入设备名称" />
|
|
|
|
|
|
|
+ <el-form-item :label="t('设备名称') + ':'" prop="cameraName">
|
|
|
|
|
+ <el-input v-model="cameraForm.cameraName" :placeholder="t('请输入设备名称')" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="厂商" prop="vendorName">
|
|
|
|
|
|
|
+ <el-form-item :label="t('厂商') + ':'" prop="vendorName">
|
|
|
<el-select
|
|
<el-select
|
|
|
v-model="cameraForm.vendorName"
|
|
v-model="cameraForm.vendorName"
|
|
|
- placeholder="请选择摄像头"
|
|
|
|
|
|
|
+ :placeholder="t('请选择摄像头')"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
filterable
|
|
filterable
|
|
|
@change="handleVendorSelect"
|
|
@change="handleVendorSelect"
|
|
@@ -477,8 +477,11 @@
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="型号" prop="model">
|
|
|
|
|
- <el-input v-model="cameraForm.model" placeholder="请输入型号" />
|
|
|
|
|
|
|
+ <el-form-item :label="t('型号') + ':'" prop="model">
|
|
|
|
|
+ <el-input v-model="cameraForm.model" :placeholder="t('请输入型号')" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item v-if="isEditCamera" :label="t('添加时间') + ':'">
|
|
|
|
|
+ <span class="form-value">{{ formatTime(currentCamera?.createdAt) }}</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<!-- <el-form-item label="摄像头型号" prop="cameraId">
|
|
<!-- <el-form-item label="摄像头型号" prop="cameraId">
|
|
|
<el-select v-model="cameraForm.selectedVendorId" placeholder="请选择摄像头" style="width: 100%" filterable
|
|
<el-select v-model="cameraForm.selectedVendorId" placeholder="请选择摄像头" style="width: 100%" filterable
|
|
@@ -498,28 +501,28 @@
|
|
|
<el-form-item label="密码" prop="password">
|
|
<el-form-item label="密码" prop="password">
|
|
|
<el-input v-model="cameraForm.password" type="password" show-password placeholder="请输入密码" />
|
|
<el-input v-model="cameraForm.password" type="password" show-password placeholder="请输入密码" />
|
|
|
</el-form-item> -->
|
|
</el-form-item> -->
|
|
|
- <el-form-item label="参数配置">
|
|
|
|
|
|
|
+ <el-form-item :label="t('参数配置') + ':'">
|
|
|
<CodeEditor
|
|
<CodeEditor
|
|
|
v-model="cameraForm.paramConfig"
|
|
v-model="cameraForm.paramConfig"
|
|
|
language="json"
|
|
language="json"
|
|
|
height="200px"
|
|
height="200px"
|
|
|
- placeholder="请输入参数配置 (JSON)"
|
|
|
|
|
|
|
+ :placeholder="t('请输入参数配置 (JSON)')"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<br />
|
|
<br />
|
|
|
- <el-form-item label="设备运行参数">
|
|
|
|
|
|
|
+ <el-form-item :label="t('运行参数') + ':'">
|
|
|
<CodeEditor
|
|
<CodeEditor
|
|
|
v-model="cameraForm.runtimeParams"
|
|
v-model="cameraForm.runtimeParams"
|
|
|
language="json"
|
|
language="json"
|
|
|
height="200px"
|
|
height="200px"
|
|
|
- placeholder="设备运行参数 (JSON)"
|
|
|
|
|
|
|
+ :placeholder="t('设备运行参数 (JSON)')"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<div class="drawer-footer">
|
|
<div class="drawer-footer">
|
|
|
<el-button @click="cameraDialogVisible = false">{{ t('取消') }}</el-button>
|
|
<el-button @click="cameraDialogVisible = false">{{ t('取消') }}</el-button>
|
|
|
- <el-button type="primary" :loading="cameraSubmitting" @click="handleSubmitCamera">{{ t('确定') }}</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" :loading="cameraSubmitting" @click="handleSubmitCamera">{{ t('更新') }}</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-drawer>
|
|
</el-drawer>
|
|
@@ -531,6 +534,7 @@
|
|
|
direction="rtl"
|
|
direction="rtl"
|
|
|
size="500px"
|
|
size="500px"
|
|
|
:close-on-click-modal="false"
|
|
:close-on-click-modal="false"
|
|
|
|
|
+ :show-close="false"
|
|
|
destroy-on-close
|
|
destroy-on-close
|
|
|
class="params-drawer"
|
|
class="params-drawer"
|
|
|
>
|
|
>
|
|
@@ -538,7 +542,9 @@
|
|
|
v-model="paramsContent"
|
|
v-model="paramsContent"
|
|
|
language="json"
|
|
language="json"
|
|
|
height="500px"
|
|
height="500px"
|
|
|
- :placeholder="paramsDialogType === 'config' ? '请输入参数配置(JSON 格式)' : '请输入运行参数(JSON 格式)'"
|
|
|
|
|
|
|
+ :placeholder="
|
|
|
|
|
+ paramsDialogType === 'config' ? t('请输入参数配置(JSON 格式)') : t('请输入运行参数(JSON 格式)')
|
|
|
|
|
+ "
|
|
|
/>
|
|
/>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<div class="drawer-footer">
|
|
<div class="drawer-footer">
|
|
@@ -553,7 +559,7 @@
|
|
|
<el-pagination
|
|
<el-pagination
|
|
|
v-model:current-page="currentPage"
|
|
v-model:current-page="currentPage"
|
|
|
v-model:page-size="pageSize"
|
|
v-model:page-size="pageSize"
|
|
|
- :page-sizes="[10, 20, 50, 100]"
|
|
|
|
|
|
|
+ :page-sizes="[10, 15, 20, 50, 100]"
|
|
|
:total="total"
|
|
:total="total"
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
background
|
|
background
|
|
@@ -866,7 +872,7 @@ const searchForm = reactive<{
|
|
|
|
|
|
|
|
// 分页相关
|
|
// 分页相关
|
|
|
const currentPage = ref(1)
|
|
const currentPage = ref(1)
|
|
|
-const pageSize = ref(20)
|
|
|
|
|
|
|
+const pageSize = ref(15)
|
|
|
const total = ref(0)
|
|
const total = ref(0)
|
|
|
|
|
|
|
|
async function getList() {
|
|
async function getList() {
|
|
@@ -918,6 +924,8 @@ function handleReset() {
|
|
|
searchForm.lssId = ''
|
|
searchForm.lssId = ''
|
|
|
searchForm.lssName = ''
|
|
searchForm.lssName = ''
|
|
|
searchForm.status = ''
|
|
searchForm.status = ''
|
|
|
|
|
+ sortState.sortBy = ''
|
|
|
|
|
+ sortState.sortDir = undefined
|
|
|
currentPage.value = 1
|
|
currentPage.value = 1
|
|
|
getList()
|
|
getList()
|
|
|
}
|
|
}
|
|
@@ -1220,7 +1228,7 @@ async function handleSubmitCamera() {
|
|
|
|
|
|
|
|
async function handleDeleteCamera(row: CameraInfoDTO) {
|
|
async function handleDeleteCamera(row: CameraInfoDTO) {
|
|
|
try {
|
|
try {
|
|
|
- await ElMessageBox.confirm(`确定要删除摄像头 "${row.name}" 吗?`, '提示', {
|
|
|
|
|
|
|
+ await ElMessageBox.confirm(`确定要删除摄像头 "${row.cameraName}" 吗?`, '提示', {
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
|
})
|
|
})
|
|
|
const res = await adminDeleteCamera(row.id)
|
|
const res = await adminDeleteCamera(row.id)
|