|
@@ -1,24 +1,29 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
- <el-form :model="queryParams" ref="queryForm" label-width="80px" v-show="showSearch">
|
|
|
+ <el-form :model="queryParams" label-width="80px" v-show="showSearch">
|
|
|
<el-row>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="仓库" prop="fWarehouseName">
|
|
|
- <el-input v-model="queryParams.fWarehouseName" placeholder="请输入仓库" clearable size="small"
|
|
|
- @keyup.enter.native="handleQuery" />
|
|
|
+ <el-form-item label="仓库" prop="fWarehouseId">
|
|
|
+ <!-- <el-input v-model="queryParams.fWarehouseId" placeholder="请输入仓库" clearable size="small"
|
|
|
+ @keyup.enter.native="handleQuery" /> -->
|
|
|
+ <el-select v-model="queryParams.fWarehouseId" clearable filterable style="width: 100%" placeholder="请选择仓库"
|
|
|
+ size="small" @change="warehouseChange">
|
|
|
+ <el-option v-for="(item, index) in warehouseOptions" :key="index.fId" :label="item.fName"
|
|
|
+ :value="item.fId"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="监控名称" prop="deviceName">
|
|
|
- <el-input v-model="queryParams.deviceName" placeholder="请输入监控名称" clearable size="small"
|
|
|
- @keyup.enter.native="handleQuery" />
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item label="设备名称" prop="deviceName">
|
|
|
+ <el-input v-model="queryParams.deviceName" placeholder="请输入监控项目" clearable size="small"
|
|
|
+ @keyup.enter.native="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<div style="display:flex;justify-content: space-between;">
|
|
|
<div>
|
|
|
- <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" disabled>新增
|
|
|
+ <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增
|
|
|
</el-button>
|
|
|
</div>
|
|
|
<div>
|
|
@@ -30,47 +35,63 @@
|
|
|
<el-table v-loading="loading" :data="list" style="width: 100%;">
|
|
|
<el-table-column label="序号" type="index" width="50" />
|
|
|
<el-table-column v-for="(item, index) in tableOption" :key="index" :label="item.name" :width="item.width"
|
|
|
- :prop="item.label" header-align="center" :align="item.align" :fixed="item.fixed"
|
|
|
- :show-overflow-tooltip="true" />
|
|
|
+ :prop="item.label" header-align="center" :align="item.align" :fixed="item.fixed" :show-overflow-tooltip="true">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="item.label == 'projectId'">
|
|
|
+ {{ scope.row.projectId | projectIdFormat(projectIdOptions) }}
|
|
|
+ </span>
|
|
|
+ <span v-else>{{ scope.row[item.label] }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button size="mini" type="text" icon="el-icon-view" @click="rowView(scope.row)">
|
|
|
查看视频
|
|
|
</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-edit" @click="rowDell(scope.row)" disabled>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-edit" @click="rowDell(scope.row)">
|
|
|
修改
|
|
|
</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-delete" @click="rowDel(scope.row)" disabled>
|
|
|
+ <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="rowDel(scope.row)" disabled>
|
|
|
删除
|
|
|
- </el-button>
|
|
|
+ </el-button> -->
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" />
|
|
|
- <el-dialog :title="title" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
|
|
|
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
|
|
|
+ <el-dialog :title="title" :visible.sync="dialogVisible" width="30%" @closed="handleClose">
|
|
|
<span>
|
|
|
- <el-form :model="form" ref="queryForm" :inline="true" label-width="100px">
|
|
|
- <el-form-item label="仓库" prop="fWarehouseName">
|
|
|
- <el-input v-model="form.fWarehouseName" placeholder="请输入仓库" clearable size="small" />
|
|
|
+ <el-form :model="form" :rules="rules" ref="queryForm" label-width="100px">
|
|
|
+ <el-form-item label="仓库" prop="fWarehouseId">
|
|
|
+ <el-select v-model="form.fWarehouseId" clearable filterable style="width: 100%" placeholder="请选择仓库"
|
|
|
+ size="small" @change="warehouseChange">
|
|
|
+ <el-option v-for="(item, index) in warehouseOptions" :key="index.fId" :label="item.fName"
|
|
|
+ :value="item.fId"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="监控项目" prop="projectId">
|
|
|
+ <el-select v-model="form.projectId" clearable placeholder="请选择监控项目" style="width:100%">
|
|
|
+ <el-option v-for="(item, index) in projectIdOptions" :key="index.dictValue" :label="item.dictLabel"
|
|
|
+ :value="item.dictValue" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="监控名称" prop="deviceName">
|
|
|
- <el-input v-model="form.deviceName" placeholder="请输入监控名称" clearable size="small" />
|
|
|
+ <el-form-item label="设备名称" prop="deviceName">
|
|
|
+ <el-input v-model="form.deviceName" placeholder="请输入设备名称" clearable size="small" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="设备序列号" prop="deviceSerial">
|
|
|
<el-input v-model="form.deviceSerial" placeholder="请输入设备序列号" clearable size="small" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="萤石云验证码" prop="code">
|
|
|
- <el-input v-model="form.code" placeholder="请输入萤石云验证码" clearable size="small" />
|
|
|
+ <el-form-item label="通道号" prop="code">
|
|
|
+ <el-input v-model="form.code" placeholder="请输入通道号" clearable size="small" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</span>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submit">{{ title == '添加' ? '保 存' : '修 改' }}</el-button>
|
|
|
+ <el-button type="primary" @click="submit(title)">{{ title == '添加' ? '保 存' : '修 改' }}</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="查看监控" :visible.sync="dialogVideo">
|
|
|
- <div style="width:100%; height:60vh;">
|
|
|
+ <el-dialog title="查看监控" v-dialogDrag :visible.sync="dialogVideo">
|
|
|
+ <div style="width:100%; height:80vh;">
|
|
|
<iframe :src="iframeSrc" width="100%" height="100%" frameborder="0" scrolling="no">
|
|
|
</iframe>
|
|
|
</div>
|
|
@@ -80,7 +101,8 @@
|
|
|
|
|
|
<script>
|
|
|
import { tableOption } from "./js/index";
|
|
|
-import { list, getAccessToken, getTokenvideoWeb } from "@/api/monitor/monitorList";
|
|
|
+import { list, addRow, editRow } from "@/api/monitor/monitorList";
|
|
|
+import { listWarehousesss } from '@/api/basicdata/warehouse'
|
|
|
import Axios from "axios";
|
|
|
|
|
|
export default {
|
|
@@ -103,15 +125,51 @@ export default {
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
- fWarehouseName: undefined,
|
|
|
+ fWarehouseId: undefined,
|
|
|
deviceName: undefined
|
|
|
},
|
|
|
showSearch: true,
|
|
|
+ projectIdOptions: [],
|
|
|
+ warehouseOptions: [],
|
|
|
+ rules: {
|
|
|
+ fWarehouseId: [
|
|
|
+ { required: true, message: ' ', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ projectId: [
|
|
|
+ { required: true, message: ' ', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ deviceName: [
|
|
|
+ { required: true, message: ' ', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ deviceSerial: [
|
|
|
+ { required: true, message: ' ', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ code: [
|
|
|
+ { required: true, message: ' ', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
+ this.getDicts("monitor_project").then((response) => {
|
|
|
+ this.projectIdOptions = response.data;
|
|
|
+ });
|
|
|
+ listWarehousesss({ fStatus: 0, delFlag: 0 }).then((response) => {
|
|
|
+ this.warehouseOptions = response.rows
|
|
|
+ })
|
|
|
this.getList();
|
|
|
},
|
|
|
+ filters: {
|
|
|
+ projectIdFormat(row, list) {
|
|
|
+ let name = ""
|
|
|
+ list.map((e) => {
|
|
|
+ if (row == e.dictValue) {
|
|
|
+ name = e.dictLabel;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
/** 查询登录日志列表 */
|
|
|
getList() {
|
|
@@ -136,6 +194,41 @@ export default {
|
|
|
this.title = '添加'
|
|
|
this.dialogVisible = true
|
|
|
},
|
|
|
+ // 获取仓库信息
|
|
|
+ warehouseChange(row) {
|
|
|
+ if (row) {
|
|
|
+ this.warehouseOptions.forEach(item => {
|
|
|
+ if (row == item.fId) {
|
|
|
+ this.form.fWarehouseName = item.fName
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.form.fWarehouseName = null
|
|
|
+ }
|
|
|
+ },
|
|
|
+ submit(status) {
|
|
|
+ this.$refs.queryForm.validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (status == '添加') {
|
|
|
+ addRow(this.form).then(response => {
|
|
|
+ this.$message.success('添加成功');
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.handleQuery();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ editRow(this.form).then(response => {
|
|
|
+ this.$message.success('添加成功');
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.handleQuery();
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
rowView(row) {
|
|
|
Axios.post("/dev-api/api/LiveBroadcast/getAccessToken").then(res => {
|
|
|
Axios.post(`/dev-api/api/LiveBroadcast/getToken?productCode=1640070936703286&token=${res.data.data.access_token}`).then(res2 => {
|
|
@@ -146,12 +239,12 @@ export default {
|
|
|
params: {
|
|
|
deviceSerial: row.deviceSerial,
|
|
|
projectId: row.projectId,
|
|
|
+ channelNo: row.code,
|
|
|
token: res.data.data.access_token,
|
|
|
Authorization: res2.data.data.data.Authorization
|
|
|
}
|
|
|
})
|
|
|
.then(response => {
|
|
|
- console.log(response)
|
|
|
this.dialogVideo = true
|
|
|
this.iframeSrc = response.data.data.data.previewUrl
|
|
|
});
|
|
@@ -164,7 +257,8 @@ export default {
|
|
|
this.form = row
|
|
|
},
|
|
|
handleClose() {
|
|
|
- this.form = this.$options.data().form
|
|
|
+ this.form = this.$options.data().form;
|
|
|
+ this.dialogVisible = false;
|
|
|
}
|
|
|
}
|
|
|
};
|