| | |
| | | <template> |
| | | <div class="sub-account" v-if="!isShowAdd"> |
| | | <div class="search"> |
| | | <div class="left"> |
| | | <div class="id"> |
| | | 点位名称 |
| | | <el-input v-model="inputText" placeholder="请输入" clearable></el-input> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="right"> |
| | | <div class="button searchBtn" @click="checkCamerasList(1)">搜索</div> |
| | | <!-- <div class="button resetBtn" @click="reset">重置</div> --> |
| | | </div> |
| | | </div> |
| | | <div class="btns"> |
| | | <div class="button add" @click="addPoint"> |
| | | <span class="iconfont"></span> |
| | | <span>添加点位</span> |
| | | </div> |
| | | <div class="switchBox"> |
| | | <el-switch |
| | | v-model="value1" |
| | | width="60" |
| | | @change="changeAll($event)" |
| | | active-text="总点位开" |
| | | inactive-text="总点位关" |
| | | > |
| | | </el-switch> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | :fit="true" |
| | | :default-sort="{ prop: 'createTime', order: 'descending' }" |
| | | > |
| | | <el-table-column prop="cameraName" label="点位名称" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="cameraName" label="点位名称" width="130px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="channelCode" label="报警通道编码" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="companyCode" label="企业编码" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="companyCode" label="企业编码" width="130px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="scenes" label="推送场景" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="updatedAt" label="推动时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="updatedAt" label="推送时间" width="100px" show-overflow-tooltip> |
| | | <template slot-scope="scope">{{ scope.row.startTime }}-{{ scope.row.endTime }}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="Enable" label="开关" width="70px" show-overflow-tooltip> |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.enable" |
| | | @change="changeSwitch($event, scope.row)" |
| | | active-color="#13ce66" |
| | | inactive-color="#f0f3f5" |
| | | > |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="操作" align="center" width="100px"> |
| | | <template slot-scope="scope"> |
| | | <span class="iconfont option" @click="editCameras(scope.row)">编辑</span> |
| | | <span class="iconfont option" style="color:red" @click="delCameras(scope.row)">删除</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | :rules="rules" |
| | | :label-position="'left'" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | label-width="120px" |
| | | class="add-ruleForm" |
| | | > |
| | | <el-form-item label="点位名称" prop="CameraName"> |
| | | <!-- <el-input v-model="ruleForm.CameraName" placeholder="请输入点位名称" style="width: 350px"></el-input> --> |
| | | <el-select style="width: 350px" v-model="ruleForm.CameraName" placeholder="请选择"> |
| | | <el-option v-for="item in cameraOptions" :key="item.id" :label="item.name" :value="item.name"> </el-option> |
| | | </el-select> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="推动时间"> |
| | | <el-form-item label="推送时间" required> |
| | | <el-col :span="12" style="width: 175px"> |
| | | <el-form-item prop="StartTime"> |
| | | <el-time-select |
| | |
| | | :picker-options="{ |
| | | start: '00:00', |
| | | step: '00:30', |
| | | end: '23:30' |
| | | end: ruleForm.EndTime ? ruleForm.EndTime : '23:30', |
| | | maxTime: ruleForm.EndTime |
| | | }" |
| | | > |
| | | </el-time-select> |
| | |
| | | placeholder="结束时间" |
| | | v-model="ruleForm.EndTime" |
| | | :picker-options="{ |
| | | start: '00:00', |
| | | start: ruleForm.StartTime ? ruleForm.StartTime : '00:00', |
| | | step: '00:30', |
| | | end: '23:30' |
| | | end: '23:30', |
| | | minTime: ruleForm.StartTime |
| | | }" |
| | | > |
| | | </el-time-select> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="right"> |
| | | <div class="button searchBtn" @click="saveUser">保存</div> |
| | | <div class="button searchBtn" @click="save">保存</div> |
| | | <div class="button resetBtn" @click="resetUser">重置</div> |
| | | <div class="button resetBtn" style="margin-left:20px" @click="goback">返回</div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import { getLocalCameraTree } from "@/api/area" |
| | | import { traverse } from "./point" |
| | | import { getClusterDevList } from "@/api/clusterManage" |
| | | import { camerasList, camerasCreate, camerasDelete } from "@/api/report" |
| | | |
| | | import { camerasList, camerasCreate, camerasConfig, camerasSwitch, camerasUpdate, camerasDelete } from "@/api/report" |
| | | import "./point.scss" |
| | | export default { |
| | | data() { |
| | | return { |
| | | value1: false, |
| | | query: {}, |
| | | inputText: "", //输入框内容 |
| | | cameraOptions: [], |
| | | scene_nameOptions: [ |
| | | { |
| | |
| | | { |
| | | value: "区域入侵", |
| | | label: "区域入侵" |
| | | }, |
| | | { |
| | | value: "人员撤离", |
| | | label: "人员撤离" |
| | | }, |
| | | { |
| | | value: "人员离岗", |
| | |
| | | label: "未佩戴安全帽" |
| | | }, |
| | | { |
| | | value: "未穿着工作服", |
| | | label: "未穿着工作服" |
| | | value: "未穿工装", |
| | | label: "未穿工装" |
| | | }, |
| | | { |
| | | value: "睡岗", |
| | |
| | | |
| | | CameraId: "", // 摄像机id |
| | | Level: "", |
| | | Enable: true |
| | | Enable: false, |
| | | createdAt: "", |
| | | updatedAt: "", |
| | | id: "" |
| | | }, |
| | | |
| | | dataList: [], |
| | | |
| | | tip: 1, |
| | | tip: 1, // 区分保存还是编辑 但是现在没有编辑 |
| | | rules: { |
| | | CameraName: [{ required: true, message: "请选择设备名称", trigger: "change" }], |
| | | ChannelCode: [{ required: true, message: "请输入报警通道编码", trigger: "blur" }], |
| | | CompanyCode: [{ required: true, message: "请输入企业编码", trigger: "blur" }], |
| | | Sceneslist: [{ type: "array", required: true, message: "请选择推送场景", trigger: "change" }] |
| | | // StartTime: [{ required: true, message: "请选择开始时间", trigger: "change" }], |
| | | // EndTime: [{ required: true, message: "请选择结束时间", trigger: "change" }] |
| | | Sceneslist: [{ type: "array", required: true, message: "请选择推送场景", trigger: "change" }], |
| | | StartTime: [{ type: "string", required: true, message: "请选择开始时间", trigger: "change" }], |
| | | EndTime: [{ type: "string", required: true, message: "请选择结束时间", trigger: "change" }] |
| | | }, |
| | | page: 1, |
| | | size: 10, //分页相关 |
| | | total: 0 //总数, |
| | | } |
| | | }, |
| | | created() { |
| | | this.checkCamerasList() |
| | | async created() { |
| | | let query = { pageIndex: this.page, pageSize: this.size, keyword: this.inputText } |
| | | this.query = query |
| | | let res = await camerasList(query) |
| | | this.dataList = res.data |
| | | this.total = res.total |
| | | this.aaaaa() |
| | | }, |
| | | |
| | | // const rsp: any = await getLocalCameraTree(params) |
| | | // console.log(rsp, "rsp") |
| | | methods: { |
| | | async changeAll(val) { |
| | | console.log(val) |
| | | let enable |
| | | val ? (enable = 1) : (enable = 0) |
| | | let rsp = await camerasSwitch({ enable: enable }) |
| | | if (rsp && rsp.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "成功!" |
| | | }) |
| | | this.checkCamerasList() |
| | | } |
| | | }, |
| | | changeSwitch(val, row) { |
| | | console.log(val, row, "val, rowval, row") |
| | | let params = { |
| | | CameraName: row.cameraName, |
| | | ChannelCode: row.channelCode, |
| | | CompanyCode: row.companyCode, |
| | | Scenes: row.scenes, |
| | | StartTime: row.startTime, |
| | | EndTime: row.endTime, |
| | | CameraId: row.cameraId, // |
| | | Level: row.level, |
| | | Enable: val, |
| | | createdAt: row.createdAt, |
| | | updatedAt: row.updatedAt, |
| | | id: row.id |
| | | } |
| | | camerasUpdate(params).then((res) => { |
| | | console.log(res, "res") |
| | | if (res && res.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: res.msg |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | editCameras(row) { |
| | | console.log(row, "row") |
| | | this.tip = 2 |
| | | this.isShowAdd = true |
| | | this.resetUser() |
| | | this.ruleForm.StartTime = row.startTime |
| | | this.ruleForm.EndTime = row.endTime |
| | | this.ruleForm.CameraName = row.cameraName |
| | | this.ruleForm.ChannelCode = row.channelCode |
| | | this.ruleForm.CompanyCode = row.companyCode |
| | | this.ruleForm.Sceneslist = row.scenes.split(",") |
| | | |
| | | this.ruleForm.Level = row.level |
| | | this.ruleForm.Enable = row.enable |
| | | this.ruleForm.createdAt = row.createdAt |
| | | this.ruleForm.updatedAt = row.updatedAt |
| | | this.ruleForm.id = row.id |
| | | }, |
| | | async aaaaa() { |
| | | // 进入页面前的初始化 |
| | | let res = await camerasConfig() |
| | | // 总开关 |
| | | if (res && res.success) { |
| | | res.data.enable === 0 ? (this.value1 = false) : (this.value1 = true) |
| | | console.log(this.value1) |
| | | } |
| | | let clusterId = "" |
| | | let clusterReq = await getClusterDevList() |
| | | // 查询 |
| | | if (clusterReq && clusterReq.success) { |
| | | if (clusterReq.data.clusterList.length > 0) { |
| | | clusterId = clusterReq.data.clusterList[0].cluster_id |
| | |
| | | } |
| | | console.log(clusterId) |
| | | let camereReq = await getLocalCameraTree({ clusterId: clusterId }) |
| | | console.log(camereReq.data.treeMenu, "camereReqcamereReqcamereReq") |
| | | let array = camereReq.data.treeMenu |
| | | for (let i = 0; i < array.length; i++) { |
| | | console.log(array[i].children, "11111111") |
| | | for (let j = 0; j < array[i].children.length; j++) { |
| | | this.cameraOptions.push(array[i].children[j]) |
| | | } |
| | | } |
| | | console.log(this.cameraOptions, "arrrrrrrrrrrrrrrr") |
| | | // 这个是 添加时的点位 是从摄像机页面 来的 |
| | | let array = [] |
| | | this.cameraOptions = traverse(camereReq.data.treeMenu, array) |
| | | }, |
| | | addPoint() { |
| | | this.isShowAdd = true |
| | | this.tip = 1 |
| | | this.resetUser() |
| | | }, //y |
| | | saveUser() { |
| | | save() { |
| | | this.$refs["ruleForm"].validate((valid) => { |
| | | if (valid) { |
| | | let obj = this.cameraOptions.find((item) => item.name === this.ruleForm.CameraName) |
| | | console.log(obj, "dddddddd") |
| | | let params = { |
| | | CameraName: this.ruleForm.CameraName, |
| | | ChannelCode: this.ruleForm.ChannelCode, |
| | | CompanyCode: this.ruleForm.CompanyCode, |
| | | Scenes: this.ruleForm.Sceneslist.toString(), |
| | | StartTime: this.ruleForm.StartTime, |
| | | EndTime: this.ruleForm.EndTime, |
| | | CameraId: obj.id, // |
| | | Level: this.ruleForm.Level, |
| | | Enable: this.ruleForm.Enable |
| | | } |
| | | console.log(params, "paramsv") |
| | | camerasCreate(params).then((res) => { |
| | | console.log(res, "res") |
| | | if (res && res.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: res.msg |
| | | }) |
| | | this.goback() |
| | | if (this.tip !== 1) { |
| | | // tip1 是添加 其他是编辑 |
| | | let obj = this.cameraOptions.find((item) => item.name === this.ruleForm.CameraName) |
| | | console.log(obj, "dddddddd") |
| | | let params = { |
| | | CameraName: this.ruleForm.CameraName, |
| | | ChannelCode: this.ruleForm.ChannelCode, |
| | | CompanyCode: this.ruleForm.CompanyCode, |
| | | Scenes: this.ruleForm.Sceneslist.toString(), |
| | | StartTime: this.ruleForm.StartTime, |
| | | EndTime: this.ruleForm.EndTime, |
| | | CameraId: obj.id, // |
| | | Level: this.ruleForm.Level, |
| | | Enable: this.ruleForm.Enable, |
| | | createdAt: this.ruleForm.createdAt, |
| | | updatedAt: this.ruleForm.updatedAt, |
| | | id: this.ruleForm.id |
| | | } |
| | | }) |
| | | camerasUpdate(params).then((res) => { |
| | | console.log(res, "res") |
| | | if (res && res.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: res.msg |
| | | }) |
| | | this.goback() |
| | | this.checkCamerasList() |
| | | } |
| | | }) |
| | | } else { |
| | | let obj = this.cameraOptions.find((item) => item.name === this.ruleForm.CameraName) |
| | | console.log(obj, "dddddddd") |
| | | let params = { |
| | | CameraName: this.ruleForm.CameraName, |
| | | ChannelCode: this.ruleForm.ChannelCode, |
| | | CompanyCode: this.ruleForm.CompanyCode, |
| | | Scenes: this.ruleForm.Sceneslist.toString(), |
| | | StartTime: this.ruleForm.StartTime, |
| | | EndTime: this.ruleForm.EndTime, |
| | | CameraId: obj.id, // |
| | | Level: this.ruleForm.Level, |
| | | Enable: this.ruleForm.Enable |
| | | } |
| | | console.log(params, "paramsv") |
| | | camerasCreate(params).then((res) => { |
| | | console.log(res, "res") |
| | | if (res && res.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: res.msg |
| | | }) |
| | | this.goback() |
| | | this.checkCamerasList() |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | return false |
| | | } |
| | |
| | | this.checkCamerasList() |
| | | }) |
| | | }, |
| | | async checkCamerasList() { |
| | | let res = await camerasList({ pageIndex: this.page, pageSize: this.size }) |
| | | this.dataList = res.data |
| | | this.total = res.total |
| | | async checkCamerasList(val) { |
| | | if (val === 1) { |
| | | let query = { pageIndex: this.page, pageSize: this.size, keyword: this.inputText } |
| | | this.query = query |
| | | let res = await camerasList(query) |
| | | this.dataList = res.data |
| | | this.total = res.total |
| | | } else { |
| | | let res = await camerasList(this.query) |
| | | this.dataList = res.data |
| | | this.total = res.total |
| | | } |
| | | }, |
| | | resetUser() { |
| | | this.ruleForm = { |
| | | CameraName: "", |
| | | ChannelCode: "", |
| | | CompanyCode: "", |
| | | Sceneslist: [], |
| | | StartTime: "", |
| | | EndTime: "" |
| | | } |
| | | // this.ruleForm. = { |
| | | this.ruleForm.CameraName = "" |
| | | this.ruleForm.ChannelCode = "" |
| | | this.ruleForm.CompanyCode = "" |
| | | this.ruleForm.Sceneslist = [] |
| | | this.ruleForm.StartTime = "" |
| | | this.ruleForm.EndTime = "" |
| | | |
| | | // Scenes: "", |
| | | // CameraId: "", // 摄像机id |
| | | // Level: "", |
| | | // Enable: false, |
| | | // createdAt: "", |
| | | // updatedAt: "", |
| | | // id: "" |
| | | // } |
| | | }, |
| | | goback() { |
| | | this.isShowAdd = false |
| | |
| | | } |
| | | </script> |
| | | |
| | | // |
| | | <style scoped lang="scss"> |
| | | // |
| | | </style> |
| | | <style scoped lang="scss"> |
| | | .sub-account { |
| | | padding: 20px; |
| | |
| | | display: flex; |
| | | margin: 20px 0; |
| | | text-align: center; |
| | | justify-content: space-between; |
| | | .switchBox { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .add { |
| | | margin-right: 20px; |
| | | width: 126px; |
| | |
| | | </style> |
| | | |
| | | <style> |
| | | /* .el-switch__core { |
| | | height: 32px !important; |
| | | } |
| | | .el-switch__core::after { |
| | | height: 30px !important; |
| | | width: 30px !important; |
| | | } */ |
| | | .el-date-table td.start-date span, |
| | | .el-date-table td.end-date span { |
| | | background-color: #0065ff; |