From 8dda5c3923bbc377371ccb8c7d4d83c499b5d1c3 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 02 九月 2022 05:00:53 +0800 Subject: [PATCH] 调整子账户管理页面 --- /dev/null | 145 ------------------------------------------------ src/views/subAccount/index.vue | 6 +- src/views/manageCenter/index.vue | 6 +- src/router/index.js | 6 +- 4 files changed, 9 insertions(+), 154 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 09413ad..0544118 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -114,9 +114,9 @@ component: () => import(/* webpackChunkName: "about" */ "../views/manageCenter") }, { - path: "/report", - name: "report", - component: () => import(/* webpackChunkName: "about" */ "../views/report") + path: "/subAccount", + name: "subAccount", + component: () => import(/* webpackChunkName: "about" */ "../views/subAccount") }, { // 瀹炴椂鐩戞帶 diff --git a/src/views/manageCenter/index.vue b/src/views/manageCenter/index.vue index 45af064..12dba17 100644 --- a/src/views/manageCenter/index.vue +++ b/src/views/manageCenter/index.vue @@ -316,9 +316,9 @@ { name: "鐢ㄦ埛绠$悊", icon: "/images/manageCenter/push.png", - openPath: "/report", - path: "/report", - permission: "dataPushMng" + openPath: "/subAccount", + path: "/subAccount", + permission: "subAccount" }, { diff --git a/src/views/report/components/Banner.vue b/src/views/report/components/Banner.vue deleted file mode 100644 index 7b68487..0000000 --- a/src/views/report/components/Banner.vue +++ /dev/null @@ -1,55 +0,0 @@ -<template> - <div class="Banner"> - <div class="heart"> - <div class="title">GB28181閰嶇疆</div> - <div class="des">鏀寔鍥芥爣鏈嶅姟锛屾帴鍏ュ浗鏍囨憚鍍忔満銆�</div> - <div class="button" @click="jump">绔嬪嵆寮�閫�</div> - </div> - </div> -</template> - -<script> -import { enableMenu } from "@/api/user"; - -export default { - methods: { - async jump() { - /* console.log(JSON.parse(sessionStorage.getItem("userInfo")).id); - await enableMenu({ - userId: JSON.parse(sessionStorage.getItem("userInfo")).id, - menuId: "89098e9f-baaa-4a69-9e9b-26444dd69ff6", - }); */ - this.$router.push("/GB28181"); - }, - }, -}; -</script> - -<style scoped lang="scss"> -.Banner { - overflow: hidden; - height: 480px; - background-image: url("/images/hashrate/banner.png"); - color: #fff; - - .title { - margin: 122px 0 10px 0; - font-size: 48px; - } - - .des { - margin-bottom: 82px; - width: 560px; - font-size: 16px; - line-height: 24px; - } - - .button { - width: 160px; - height: 56px; - background: #0065ff; - text-align: center; - line-height: 56px; - } -} -</style> \ No newline at end of file diff --git a/src/views/report/components/DevList.vue b/src/views/report/components/DevList.vue deleted file mode 100644 index 776aadb..0000000 --- a/src/views/report/components/DevList.vue +++ /dev/null @@ -1,248 +0,0 @@ -<template> - <div class="event-list"> - <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="handleAdd"> - 绔嬪嵆娣诲姞 - </div> - </div> - <div class="list scroll"> - <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> - <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> - </div> - - <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 - }, - data() { - return { - taskList: [], - showSettingBox: false, - idObj: {}, - editNode: {}, - cameraTree: [], - menuTree: [] - } - }, - mounted() { - this.getCameras() - this.getTaskList() - }, - methods: { - 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 - } - }, - 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 - }, - 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> - -<style lang="scss" scoped> -.event-list { - position: relative; - box-sizing: border-box; - padding: 20px; - width: 1280px; - height: 100%; - background-color: #fff; - margin: 0 auto; - - .title { - margin-bottom: 20px; - height: 20px; - padding-left: 20px; - font-weight: 700; - font-size: 16px; - border-left: 4px solid #0065ff; - } - - .empty { - text-align: center; - - img { - width: 260px; - } - - .des { - margin-bottom: 30px; - font-size: 14px; - } - - .add { - margin: 0 auto; - width: 112px; - height: 40px; - text-align: center; - line-height: 40px; - color: #fff; - background-color: #0065ff; - } - } - - .list { - display: flex; - flex-wrap: wrap; - overflow-y: auto; - height: 710px; - - .devItem { - position: relative; - margin: 0 15px 20px 0; - width: 295px; - height: 150px; - border: 1px solid #c0c5cc; - border-radius: 5px; - - .mainInfo { - display: flex; - padding: 20px; - - img { - margin-right: 20px; - width: 88px; - } - } - - .right { - .name { - margin-bottom: 6px; - font-size: 16px; - font-weight: 700; - } - - .ip, - .number { - margin-bottom: 2px; - font-size: 12px; - color: #666; - } - } - - .set { - position: absolute; - left: 0; - right: 0; - bottom: 0; - height: 40px; - line-height: 40px; - text-align: center; - border: 1px solid #c0c5cc; - font-size: 16px; - color: #0065ff; - } - - &:nth-child(4n) { - margin-right: 0; - } - - &:hover { - box-shadow: 0px 2px 16px 0px rgba(0, 43, 106, 0.25); - - .set { - color: #fff; - background-color: #0065ff; - border-color: #0065ff; - } - } - } - } -} -</style> diff --git a/src/views/report/components/Flow.vue b/src/views/report/components/Flow.vue deleted file mode 100644 index 1718c32..0000000 --- a/src/views/report/components/Flow.vue +++ /dev/null @@ -1,68 +0,0 @@ -<template> - <div class="Flow heart"> - <div class="title">绠楀姏绠$悊鐨勪娇鐢ㄦ祦绋�</div> - - <div class="flowList"> - <div class="flowItem" v-for="(item, index) in flowList" :key="index"> - <img :src="item.img" alt="" /> - <div class="flowTitle">{{ item.title }}</div> - </div> - </div> - </div> -</template> - -<script> -export default { - data() { - return { - flowList: [ - { - img: "/images/search/1.png", - title: "寮�閫氱粺璁℃煡璇�", - }, - { img: "/images/search/3.png", title: "鏁版嵁鏌ョ湅" }, - { - img: "/images/search/2.png", - title: "褰曞儚鏌ョ湅", - }, - { - img: "/images/search/4.png", - title: "鏁版嵁瀹炴椂鐩戞帶", - }, - ], - }; - }, -}; -</script> - -<style scoped lang="scss"> -.Flow { - overflow: hidden; - height: 540px; - text-align: center; - - .title { - margin: 60px 0; - font-size: 28px; - color: #3d3d3d; - } - - .flowList { - display: flex; - - .flowItem { - width: 260px; - margin-right: 80px; - - &:last-child { - margin-right: 0; - } - - .flowTitle { - margin-top: 20px; - font-size: 16px; - } - } - } -} -</style> \ No newline at end of file diff --git a/src/views/report/components/FormArea.vue b/src/views/report/components/FormArea.vue deleted file mode 100644 index b49a304..0000000 --- a/src/views/report/components/FormArea.vue +++ /dev/null @@ -1,296 +0,0 @@ -<template> - <div class="FormArea"> - <el-form :model="reportTask" label-position="left" label-width="90px" class="alarmSetting" ref="report-task"> - <el-form-item class="selectItem" label="浜嬩欢鍚嶇О"> - <el-select class="h32" v-model="reportTask.taskName" size="small" placeholder="璇烽�夋嫨浜嬩欢" style="width: 400px"> - <el-option - v-for="item in eventsOptions" - :key="item.value" - :label="item.label" - size="small" - :value="item.value" - ></el-option> - </el-select> - </el-form-item> - <el-form-item class="selectItem" label="浜嬩欢绛夌骇"> - <el-select class="h32" v-model="reportTask.level" size="small" placeholder="璇烽�夋嫨" style="width: 400px"> - <el-option - v-for="item in levelOptions" - :key="item.value" - :label="item.label" - size="small" - :value="item.value" - ></el-option> - </el-select> - </el-form-item> - - <el-form-item label="鍏宠仈鍖哄煙"> - <el-cascader - size="mini" - style="width:400px" - v-model="tmpOrg" - :options="menu" - :props="{ value: 'id', label: 'name', checkStrictly: true }" - collapse-tags - clearable - @change="handleTreeChange" - ref="cascader" - ></el-cascader> - </el-form-item> - - <el-form-item label="璐d换浜�" prop="person"> - <el-input - class="h32" - v-model="reportTask.person" - placeholder="璇疯緭鍏�" - size="small" - style="width: 400px" - ></el-input> - </el-form-item> - <el-form-item label="鎵嬫満鍙�" prop="tel"> - <el-input - class="h32" - v-model="reportTask.tel" - placeholder="璇疯緭鍏�" - size="small" - style="width: 400px" - ></el-input> - </el-form-item> - - <!-- <el-form-item label="鎺ㄩ�佹柟寮�"> - <el-select v-model="pushType" placeholder="璇烽�夋嫨" style="width: 400px"> - <el-option label="鐭俊" value="msg"> </el-option> - </el-select> - </el-form-item> --> - <el-form-item label="寮�鍚换鍔�"> - <el-switch v-model="reportTask.enable" active-color="#13ce66" inactive-color="#bbbbbb"> </el-switch> - </el-form-item> - </el-form> - - <div class="btnArea"> - <div class="button cancel" @click="$emit('close')">鍙栨秷</div> - <div class="button submit" @click="submit">淇濆瓨</div> - </div> - </div> -</template> - -<script> -import { createTask, updateTask } from "@/api/report" - -export default { - props: { - id: { - type: String, - default: "" - }, - node: {}, - camera: {}, - menu: {} - }, - data() { - return { - reportTask: {}, - eventsOptions: [ - { value: "鏄庣伀", label: "鏄庣伀" }, - { value: "鐑熼浘", label: "鐑熼浘" }, - { value: "绂诲矖", label: "绂诲矖" }, - { value: "浜哄憳鑱氶泦", label: "浜哄憳鑱氶泦" }, - { value: "鏈┛宸ヨ", label: "鏈┛宸ヨ" }, - { value: "鏈埓瀹夊叏甯�", label: "鏈埓瀹夊叏甯�" } - ], - levelOptions: [ - { value: "涓�绾�", label: "涓�绾�" }, - { value: "浜岀骇", label: "浜岀骇" }, - { value: "涓夌骇", label: "涓夌骇" }, - { value: "鍥涚骇", label: "鍥涚骇" }, - { value: "浜旂骇", label: "浜旂骇" } - ], - pushType: "msg", - selectedOrg: {}, - tmpOrg: [] - } - }, - mounted() { - this.reportTask = this.node - }, - methods: { - handleTreeChange(value) { - this.selectedOrg = value[value.length - 1] - }, - collSelectedNodes() { - let selectedNodeId = this.selectedOrg - let selectedNode = {} - let orgNodeIds = [] - - if (this.selectedOrg == "") { - return orgNodeIds - } - - function findNode(node) { - if (node.id == selectedNodeId) { - selectedNode = node - - return - } - - if (node.children) { - node.children.forEach((n) => { - findNode(n) - }) - } - } - - function collNode(node) { - if (node.type != "MENU") { - orgNodeIds.push(node.id) - return - } - - if (node.children) { - node.children.forEach((n) => { - collNode(n) - }) - } - } - - this.camera.forEach((n) => { - findNode(n) - }) - - collNode(selectedNode) - - return orgNodeIds - }, - - submit() { - if (this.reportTask.tel.length != 11) { - this.$message.error("鎵嬫満鍙风爜涓嶆纭�") - return - } - this.$refs["report-task"].validate((valid) => { - if (valid) { - if (this.tmpOrg.length > 0) { - this.reportTask["cameraIds"] = this.collSelectedNodes().join(",") - this.reportTask.org = this.$refs["cascader"].getCheckedNodes()[0].pathLabels.join("/") - } - if (this.id == "") { - createTask(this.reportTask).then((rsp) => { - if (rsp && rsp.success) { - this.$notify({ - type: "success", - message: "淇濆瓨鎴愬姛" - }) - this.$emit("close") - } - }) - } else { - updateTask(this.reportTask).then((rsp) => { - if (rsp && rsp.success) { - this.$notify({ - type: "success", - message: "淇濆瓨鎴愬姛" - }) - this.$emit("close") - } - }) - } - } else { - console.log("error submit!!") - return false - } - }) - } - } -} -</script> - -<style lang="scss" scoped> -.FormArea { - position: relative; - height: 565px; - .el-form { - padding: 20px; - padding-top: 34px; - - .el-form-item { - margin-bottom: 34px; - } - - .h32 { - border-radius: 3px; - - ::v-deep input { - border-radius: 3px; - border-color: #c0c5cc; - } - } - - .el-input { - width: 410px; - } - - .el-radio-group { - margin-bottom: 34px; - - ::v-deep .el-radio__label { - color: #3d3d3d; - } - } - - .selectItem ::v-deep { - .el-form-item__content { - display: flex; - - .el-select { - margin-right: 10px; - width: 200px; - } - - .button { - margin-left: 10px; - line-height: 32px; - color: #0065ff; - } - } - } - } - - .el-form-item.is-required { - ::v-deep .el-form-item__label:before { - display: none; - } - - ::v-deep .el-form-item__label::after { - content: "*"; - color: #f52323; - margin-right: 4px; - } - } - - .btnArea { - position: absolute; - left: 0; - right: 0; - bottom: 0; - padding: 20px 0; - border-top: 1px solid #e9ebee; - display: flex; - justify-content: flex-end; - text-align: center; - - .cancel { - margin-right: 10px; - padding: 6px 16px; - border: 1px solid #0065ff; - color: #0065ff; - } - - .submit { - padding: 6px 16px; - border: 1px solid #0065ff; - color: #fff; - background-color: #0065ff; - } - } -} -</style> diff --git a/src/views/report/components/SettingBox.vue b/src/views/report/components/SettingBox.vue deleted file mode 100644 index 6b65a4f..0000000 --- a/src/views/report/components/SettingBox.vue +++ /dev/null @@ -1,98 +0,0 @@ -<template> - <div class="SettingBox" :class="{ large: activeTab === 2 }"> - <div class="title">浜嬩欢鎺ㄩ�侀厤缃�</div> - <div class="close iconfont" @click="$emit('close')"></div> - <div class="content"> - <FormArea - :id="id" - :node="nodeList" - :camera="camera" - :menu="menu" - @close="$emit('close')" - v-if="activeTab === 0" - ></FormArea> - </div> - </div> -</template> - -<script> -import FormArea from "@/views/report/components/FormArea" - -export default { - components: { - FormArea - }, - props: { - id: {}, - nodeList: {}, - camera: {}, - menu: {} - }, - data() { - return { - activeTab: 0 - } - } -} -</script> - -<style lang="scss" scoped> -.SettingBox { - position: fixed; - top: 50%; - left: 60%; - margin-top: -354px; - margin-left: -500px; - width: 700px; - height: 708px; - background-color: #fff; - box-shadow: 0px 2px 16px 0px rgba(0, 43, 106, 0.25); - z-index: 2; - - &.large { - margin-top: -477px; - margin-left: -719px; - width: 1438px; - height: 953px; - } - - .title { - box-sizing: border-box; - padding: 20px; - height: 64px; - border-bottom: 1px solid #e9ebee; - font-size: 18px; - font-weight: 700; - } - - .close { - position: absolute; - top: 20px; - right: 20px; - font-size: 12px; - color: #666; - cursor: pointer; - } - - .content { - padding: 20px; - - .tabs { - display: flex; - border-bottom: 1px solid #e9ebee; - - .tab { - transform: translateY(1px); - padding: 16px 24px; - cursor: pointer; - border-bottom: 2px solid rgba(255, 255, 255, 0); - - &.active { - border-color: #0065ff; - color: #0065ff; - } - } - } - } -} -</style> diff --git a/src/views/report/components/TableArea.vue b/src/views/report/components/TableArea.vue deleted file mode 100644 index 87561d5..0000000 --- a/src/views/report/components/TableArea.vue +++ /dev/null @@ -1,145 +0,0 @@ -<template> - <div class="TableArea"> - <div class="content"> - <el-table - :data="subDevTable" - fit - highlight-current-row - style="width: 100%" - > - <el-table-column - type="index" - label="搴忓彿" - align="center" - width="80" - ></el-table-column> - <el-table-column - prop="name" - label="鍚嶇О" - show-overflow-tooltip - ></el-table-column> - <el-table-column - prop="publicid" - label="ID" - show-overflow-tooltip - ></el-table-column> - <el-table-column prop="ip" label="IP"></el-table-column> - <el-table-column prop="status" label="鐘舵��" align="center"> - <template slot-scope="scope"> - <span - :style="scope.row.alive ? `color:#36B24A` : 'color:#FF4B33;'" - >{{ scope.row.alive ? "鍦ㄧ嚎" : "绂荤嚎" }}</span - > - </template> - </el-table-column> - <el-table-column prop="corp" label="澶囨敞"></el-table-column> - </el-table> - </div> - </div> -</template> - -<script> -import { getAllSubServer } from "@/api/Gb28181"; - -export default { - props: { - id: {}, - }, - created() { - this.getList(); - }, - data() { - return { - subDevTable: [], - }; - }, - methods: { - async getList() { - let params = {}; - if (this.id.clusterId) { - params = { - clusterId: this.id.clusterId, - devId: "", - }; - } else { - params = { - clusterId: "", - devId: this.id.devId, - }; - } - const res = await getAllSubServer(params); - if (res && res.success) { - this.subDevTable = res.data; - } - }, - }, -}; -</script> - -<style lang="scss" scoped > -.TableArea { - padding: 30px 0; - .content { - height: 500px; - } - .el-table ::v-deep { - background-color: rgb(233, 235, 238); - padding: 1px; - - &::after { - display: none; - } - - td.index .cell { - padding-left: 16px; - padding-right: 4px; - } - - .has-gutter tr th { - background: #f0f3f5; - font-size: 16px; - color: #3d3d3d; - font-weight: 700; - } - - td .cell { - color: #3d3d3d; - } - - tr:hover > td.el-table__cell { - background-color: #fff; - } - - .el-table__row--striped .el-table__cell { - background-color: #f0f5fa !important; - } - tr:hover > td.el-table__cell { - background-color: #fff; - } - - .el-table__row--striped .el-table__cell { - background-color: #f0f5fa !important; - } - - .status { - color: #ff4b33; - - &.green { - color: #36b24a; - } - } - - .option { - margin-right: 10px; - font-size: 24px; - color: rgb(0, 101, 255); - cursor: pointer; - - &.disable { - color: #666; - cursor: default; - } - } - } -} -</style> \ No newline at end of file diff --git a/src/views/report/index.vue b/src/views/subAccount/index.vue similarity index 94% rename from src/views/report/index.vue rename to src/views/subAccount/index.vue index f80c655..66bf956 100644 --- a/src/views/report/index.vue +++ b/src/views/subAccount/index.vue @@ -16,7 +16,7 @@ </div> <!-- 椤靛熬 --> - <Footer :isBlack="true"></Footer> + <!-- <Footer :isBlack="true"></Footer> --> </div> </template> @@ -30,9 +30,9 @@ export default { components: { IndexHeader, - SubAccount, + SubAccount // SettingBox, - Footer + // Footer } } </script> -- Gitblit v1.8.0