From e018e23189eb9520f6f28ae515b17333351267ff Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期六, 06 八月 2022 05:30:21 +0800 Subject: [PATCH] 完善推送管理功能 --- src/views/report/components/DevList.vue | 153 +++++++++++++++++++++++++++++++------------------- 1 files changed, 95 insertions(+), 58 deletions(-) diff --git a/src/views/report/components/DevList.vue b/src/views/report/components/DevList.vue index ed9afd2..776aadb 100644 --- a/src/views/report/components/DevList.vue +++ b/src/views/report/components/DevList.vue @@ -1,21 +1,34 @@ <template> <div class="event-list"> - <div class="title">鍛婅鎺ㄩ�侀厤缃�</div> - <div class="empty" v-if="eventList.length === 0"> + <div class="title"> + <span>鍛婅鎺ㄩ�侀厤缃�</span> + <i + class="el-icon-circle-plus-outline" + style="cursor: pointer;margin-left:15px" + v-show="taskList.length > 0" + @click="handleAdd" + ></i> + </div> + <div class="empty" v-show="taskList.length == 0"> <img src="/images/search/1.png" alt="" /> <div class="des">鎮ㄨ繕鏈坊鍔犳坊鍔犲憡璀︿簨浠舵帹閫佷换鍔�</div> - <div class="button add" @click="showSettingBox = true"> + <div class="button add" @click="handleAdd"> 绔嬪嵆娣诲姞 </div> </div> <div class="list scroll"> - <el-table :data="eventList" style="width: 100%"> - <el-table-column label="搴忓彿" width="180"> </el-table-column> - <el-table-column label="浜嬩欢鍚嶇О" width="180"> </el-table-column> - <el-table-column label="浜嬩欢绛夌骇" width="180"> </el-table-column> - <el-table-column label="鍏宠仈鍖哄煙" width="180"> </el-table-column> - <el-table-column label="璐d换浜�" width="180"> </el-table-column> - <el-table-column label="鎺ㄩ�佹柟寮�" width="180"> </el-table-column> + <el-table :data="taskList" style="width: 100%"> + <el-table-column label="搴忓彿" type="index" width="50"> </el-table-column> + <el-table-column label="浜嬩欢鍚嶇О" width="180" prop="taskName"> </el-table-column> + <el-table-column label="浜嬩欢绛夌骇" width="120" prop="level"> </el-table-column> + <el-table-column label="鍏宠仈鍖哄煙" prop="org"> </el-table-column> + <el-table-column label="璐d换浜�" width="180" prop="person"> </el-table-column> + <el-table-column label="鎵嬫満鍙�" width="180" prop="tel"> </el-table-column> + <el-table-column label="鐘舵��" width="100" prop="enable"> + <template slot-scope="scope"> + <el-switch v-model="scope.row.enable" active-color="#13ce66" inactive-color="#bbbbbb"> </el-switch> + </template> + </el-table-column> <el-table-column label="鎿嶄綔"> <template slot-scope="scope"> <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">缂栬緫</el-button> @@ -23,77 +36,101 @@ </template> </el-table-column> </el-table> - <!-- <div class="devItem" v-for="(item, index) in clusterList" :key="index"> - <div class="mainInfo"> - <img src="/images/hashrate/cluster.png" alt="" /> - - <div class="right"> - <div class="name">{{ item.cluster_name }}</div> - <div class="ip">{{ item.virtual_ip }}</div> - <div class="number">璁惧鎬婚噺:{{ item.nodeNum }}</div> - </div> - - <div class="button set" @click="setting({ clusterId: item.cluster_id }, item.nodeList)"> - 閰嶇疆 - </div> - </div> - </div> - <div class="devItem" v-for="(item, index) in devList" :key="index + 'dev'"> - <div class="mainInfo"> - <img src="/images/hashrate/equipment.png" alt="" /> - - <div class="right"> - <div class="name">{{ item.devName }}</div> - <div class="ip">{{ item.devIp }}</div> - </div> - - <div class="button set" @click="setting({ devId: item.devId })"> - 閰嶇疆 - </div> - </div> - </div> --> </div> - <SettingBox v-if="showSettingBox" @close="showSettingBox = false" :id="idObj" :nodeList="nodeList"></SettingBox> + <SettingBox + v-if="showSettingBox" + @close="handleClose" + :id="idObj" + :node-list="editNode" + :camera="cameraTree" + :menu="menuTree" + ></SettingBox> </div> </template> <script> import SettingBox from "@/views/report/components/SettingBox" import { getClusterDevList } from "@/api/clusterManage" +import { findAllTask, deleteTask } from "@/api/report" +import { getLocalCameraTree } from "@/api/area" export default { components: { SettingBox }, - created() { - this.getClusterDevList() - }, data() { return { - eventList: [], - clusterList: [], - devList: [], + taskList: [], showSettingBox: false, idObj: {}, - nodeList: [] + editNode: {}, + cameraTree: [], + menuTree: [] } }, + mounted() { + this.getCameras() + this.getTaskList() + }, methods: { - async getClusterDevList() { - const res = await getClusterDevList() - if (res && res.success) { - this.clusterList = res.data.clusterList - this.devList = res.data.devList + async getCameras() { + let clusterId = "" + let clusterReq = await getClusterDevList() + if (clusterReq && clusterReq.success) { + if (clusterReq.data.clusterList.length > 0) { + clusterId = clusterReq.data.clusterList[0].cluster_id + } + } + let camereReq = await getLocalCameraTree({ clusterId: clusterId }) + if (camereReq && camereReq.success) { + this.cameraTree = camereReq.data.treeMenu + let tmpTree = JSON.parse(JSON.stringify(camereReq.data.treeMenu)) + for (let i = 0; i < tmpTree.length; i++) this.clearNode(tmpTree[i]) + this.menuTree = tmpTree } }, - setting(id, nodeList) { - this.idObj = id - this.nodeList = nodeList ? nodeList : [] + clearNode(tree) { + if (tree.children) { + tree.children = tree.children.filter((item) => { + return item.type == "MENU" + }) + } + if (tree.children && tree.children.length > 0) { + for (let i = 0; i < tree.children.length; i++) this.clearNode(tree.children[i]) + } else { + delete tree.children + } + }, + getTaskList() { + findAllTask().then((rsp) => { + if (rsp && rsp.success) { + this.taskList = rsp.data + } + }) + }, + handleAdd() { + this.idObj = "" + this.editNode = {} this.showSettingBox = true }, - handleEdit(idx, row) {}, - handleDelete(idx, row) {} + handleClose() { + this.showSettingBox = false + this.getTaskList() + }, + handleEdit(idx, row) { + console.log("edit", row) + this.idObj = row.id + this.editNode = row + this.showSettingBox = true + }, + handleDelete(idx, row) { + deleteTask({ id: row.id }).then((rsp) => { + if (rsp && rsp.success) { + this.getTaskList() + } + }) + } } } </script> @@ -104,7 +141,7 @@ box-sizing: border-box; padding: 20px; width: 1280px; - height: 770px; + height: 100%; background-color: #fff; margin: 0 auto; -- Gitblit v1.8.0