feat: 增加仓库的排序,修复展示bug

This commit is contained in:
砂糖
2025-08-07 17:32:16 +08:00
parent 1bfd22a749
commit e28c7f54e8
3 changed files with 43 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<video ref="videoElement" controls autoplay></video> <video ref="videoElement" controls autoplay style="width: 100%; height: 400px;"></video>
</div> </div>
</template> </template>

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
<el-form-item label="摄像头编号" prop="cameraCode"> <el-form-item label="摄像头编号" prop="cameraCode">
<el-input <el-input
v-model="queryParams.cameraCode" v-model="queryParams.cameraCode"
@@ -71,11 +71,17 @@
<el-table-column label="摄像头编号" align="center" prop="cameraCode" /> <el-table-column label="摄像头编号" align="center" prop="cameraCode" />
<el-table-column label="摄像头名称" align="center" prop="cameraName" /> <el-table-column label="摄像头名称" align="center" prop="cameraName" />
<el-table-column label="RTSP 推流地址" align="center" prop="rtspUrl" /> <el-table-column label="RTSP 推流地址" align="center" prop="rtspUrl" />
<el-table-column label="ws - fmp4 播放地址" align="center" prop="wsFmp4" /> <!-- <el-table-column label="ws播放地址" align="center" prop="wsFmp4" /> -->
<el-table-column label="状态0-未启用 1-正常 2-离线 3-故障" align="center" prop="status" /> <!-- <el-table-column label="状态" align="center" prop="status" /> -->
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-video-play"
@click="handlePlay(scope.row)"
>播放</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@@ -101,8 +107,8 @@
/> />
<!-- 添加或修改摄像头管理对话框 --> <!-- 添加或修改摄像头管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="200px">
<el-form-item label="摄像头编号" prop="cameraCode"> <el-form-item label="摄像头编号" prop="cameraCode">
<el-input v-model="form.cameraCode" placeholder="请输入摄像头编号" /> <el-input v-model="form.cameraCode" placeholder="请输入摄像头编号" />
</el-form-item> </el-form-item>
@@ -112,7 +118,7 @@
<el-form-item label="RTSP 推流地址" prop="rtspUrl"> <el-form-item label="RTSP 推流地址" prop="rtspUrl">
<el-input v-model="form.rtspUrl" placeholder="请输入RTSP 推流地址" /> <el-input v-model="form.rtspUrl" placeholder="请输入RTSP 推流地址" />
</el-form-item> </el-form-item>
<el-form-item label="ws - fmp4 播放地址" prop="wsFmp4"> <!-- <el-form-item label="ws - fmp4 播放地址" prop="wsFmp4">
<el-input v-model="form.wsFmp4" placeholder="请输入ws - fmp4 播放地址" /> <el-input v-model="form.wsFmp4" placeholder="请输入ws - fmp4 播放地址" />
</el-form-item> </el-form-item>
<el-form-item label="http - fmp4 播放地址" prop="httpFmp4"> <el-form-item label="http - fmp4 播放地址" prop="httpFmp4">
@@ -123,7 +129,7 @@
</el-form-item> </el-form-item>
<el-form-item label="hls 播放地址" prop="hlsAddr"> <el-form-item label="hls 播放地址" prop="hlsAddr">
<el-input v-model="form.hlsAddr" placeholder="请输入hls 播放地址" /> <el-input v-model="form.hlsAddr" placeholder="请输入hls 播放地址" />
</el-form-item> </el-form-item> -->
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
@@ -133,21 +139,31 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog :title="title" :visible.sync="openVideo" width="800px" append-to-body>
<flv-player :url="videoUrl" />
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listCameraManagement, getCameraManagement, delCameraManagement, addCameraManagement, updateCameraManagement } from "@/api/wms/cameraManagement"; import { listCameraManagement, getCameraManagement, delCameraManagement, addCameraManagement, updateCameraManagement } from "@/api/wms/cameraManagement";
import flvPlayer from '@/components/FLVPlayer/index.vue';
export default { export default {
name: "CameraManagement", name: "CameraManagement",
components: {
flvPlayer
},
data() { data() {
return { return {
videoUrl: '',
openVideo: false,
// 按钮loading // 按钮loading
buttonLoading: false, buttonLoading: false,
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
ids: [], ids: [],
// 非单个禁用 // 非单个禁用
single: true, single: true,
@@ -301,6 +317,11 @@ export default {
this.download('wms/cameraManagement/export', { this.download('wms/cameraManagement/export', {
...this.queryParams ...this.queryParams
}, `cameraManagement_${new Date().getTime()}.xlsx`) }, `cameraManagement_${new Date().getTime()}.xlsx`)
},
handlePlay(row) {
this.videoUrl = row.rtspUrl;
this.title = row.cameraName;
this.openVideo = true;
} }
} }
}; };

View File

@@ -191,7 +191,7 @@ export default {
warehouseCode: undefined, warehouseCode: undefined,
warehouseName: undefined, warehouseName: undefined,
warehouseType: undefined, warehouseType: undefined,
sortNo: 0, sortNo: undefined,
isEnabled: undefined, isEnabled: undefined,
}, },
// 表单参数 // 表单参数
@@ -218,7 +218,18 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
listWarehouse(this.queryParams).then(response => { listWarehouse(this.queryParams).then(response => {
this.warehouseList = this.handleTree(response.data, "warehouseId", "parentId"); const list = this.handleTree(response.data, "warehouseId", "parentId");
// 递归遍历list通过sortNo排序
const sort = (list) => {
list.sort((a, b) => a.sortNo - b.sortNo);
list.forEach(item => {
if (item.children) {
sort(item.children);
}
});
};
sort(list);
this.warehouseList = list;
this.loading = false; this.loading = false;
}); });
}, },