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/FormArea.vue | 301 +++++++++++++++++++++++-------------------------- 1 files changed, 141 insertions(+), 160 deletions(-) diff --git a/src/views/report/components/FormArea.vue b/src/views/report/components/FormArea.vue index 7957dda..b49a304 100644 --- a/src/views/report/components/FormArea.vue +++ b/src/views/report/components/FormArea.vue @@ -1,15 +1,8 @@ <template> <div class="FormArea"> - <el-form - :model="gb28181" - :rules="rules" - label-position="left" - label-width="90px" - class="alarmSetting" - ref="gb28181" - > + <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="locationCity.province" size="small" placeholder="璇烽�夋嫨浜嬩欢"> + <el-select class="h32" v-model="reportTask.taskName" size="small" placeholder="璇烽�夋嫨浜嬩欢" style="width: 400px"> <el-option v-for="item in eventsOptions" :key="item.value" @@ -20,13 +13,7 @@ </el-select> </el-form-item> <el-form-item class="selectItem" label="浜嬩欢绛夌骇"> - <el-select - class="h32" - v-model="locationCity.level" - size="small" - placeholder="璇烽�夋嫨" - :disabled="gb28181.idType === 0" - > + <el-select class="h32" v-model="reportTask.level" size="small" placeholder="璇烽�夋嫨" style="width: 400px"> <el-option v-for="item in levelOptions" :key="item.value" @@ -38,184 +25,178 @@ </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="gb28181.PublicId" + v-model="reportTask.person" placeholder="璇疯緭鍏�" size="small" - :disabled="gb28181.idType === 1" + 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="璐d换浜�" prop="GbServerPort"> - <el-input - class="h32" - v-model.number="gb28181.GbServerPort" - placeholder="璇疯緭鍏�" - size="small" - style="width: 200px" - ></el-input> - </el-form-item> - <el-form-item label="鎵嬫満鍙�" prop="GbServerPort"> - <el-input - class="h32" - v-model.number="gb28181.GbServerPort" - placeholder="璇疯緭鍏�" - size="small" - style="width: 200px" - ></el-input> - </el-form-item> - - <el-form-item label="鎺ㄩ�佹柟寮�"> - <el-input - class="h32" - v-model="gb28181.Password" - placeholder="璇疯緭鍏�" - size="small" - :disabled="!gb28181.IsAuth" - ></el-input> + <!-- <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="submitGB28281">淇濆瓨</div> + <div class="button submit" @click="submit">淇濆瓨</div> </div> </div> </template> <script> -import { getGB28181Config, saveGB28181Config, getGb28181AreaList, newGb28181ID } from "@/api/Gb28181" -import { isPort, isIPv4 } from "@/scripts/validate" +import { createTask, updateTask } from "@/api/report" export default { props: { - id: {} - }, - created() { - this.initGB28181Conf() + id: { + type: String, + default: "" + }, + node: {}, + camera: {}, + menu: {} }, data() { return { - gb28181: {}, - rules: { - ip: [ - { - required: true, - message: "璇疯緭鍏P鍦板潃", - trigger: "change" - }, - { validator: isIPv4, trigger: "change" } - ], - ServerIp: [ - { - required: true, - message: "璇疯緭鍏P鍦板潃", - trigger: "change" - }, - { validator: isIPv4, trigger: "change" } - ], - ServerPort: [ - { - required: true, - message: "璇疯緭鍏ョ鍙�", - trigger: "change" - }, - { validator: isPort, trigger: "change" } - ], - GbServerPort: [ - { - required: true, - message: "璇疯緭鍏ョ鍙�", - trigger: "change" - }, - { validator: isPort, trigger: "change" } - ] - }, - locationCity: { - province: "", - city: "", - county: "", - provinceOptions: [], - cityOptions: [], - countyOptions: [] - }, + reportTask: {}, eventsOptions: [ - { value: "fire", label: "鏄� 鐏�" }, - { value: "smoke", label: "鐑� 闆�" }, - { value: "work", label: "鏈┛宸ユ湇" }, - { value: "head", label: "鏈埓瀹夊叏甯�" }, - { value: "dowork", label: "绂诲矖" }, - { value: "juji", label: "浜哄憳鑱氶泦" } + { value: "鏄庣伀", label: "鏄庣伀" }, + { value: "鐑熼浘", label: "鐑熼浘" }, + { value: "绂诲矖", label: "绂诲矖" }, + { value: "浜哄憳鑱氶泦", label: "浜哄憳鑱氶泦" }, + { value: "鏈┛宸ヨ", label: "鏈┛宸ヨ" }, + { value: "鏈埓瀹夊叏甯�", label: "鏈埓瀹夊叏甯�" } ], levelOptions: [ - { value: "1", label: "涓�绾�" }, - { value: "2", label: "浜岀骇" }, - { value: "3", label: "涓夌骇" }, - { value: "4", label: "鍥涚骇" }, - { value: "5", label: "浜旂骇" } - ] + { value: "涓�绾�", label: "涓�绾�" }, + { value: "浜岀骇", label: "浜岀骇" }, + { value: "涓夌骇", label: "涓夌骇" }, + { value: "鍥涚骇", label: "鍥涚骇" }, + { value: "浜旂骇", label: "浜旂骇" } + ], + pushType: "msg", + selectedOrg: {}, + tmpOrg: [] } }, + mounted() { + this.reportTask = this.node + }, methods: { - initGB28181Conf() { - getGB28181Config(this.id).then((rsp) => { - if (rsp && rsp.success) { - this.gb28181 = rsp.data - //this.gb28181.idType = 0; - - this.$set(this.gb28181, "idType", 0) - this.$refs["gb28181"].resetFields() - } - }) - getGb28181AreaList().then((rsp) => { - if (rsp && rsp.success) { - this.locationCity.provinceOptions = rsp.data.list - } - }) + handleTreeChange(value) { + this.selectedOrg = value[value.length - 1] }, - submitGB28281() { - this.$refs["gb28181"].validate((valid) => { - if (valid) { - saveGB28181Config(this.gb28181).then((rsp) => { - if (rsp && rsp.success) { - console.log("1212112") - this.$notify({ - type: "success", - message: "GB28181璁剧疆淇濆瓨鎴愬姛" - }) - } + 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 - } - }) - }, - changeProvince() { - let pid = this.locationCity.province - getGb28181AreaList({ parentId: pid }).then((rsp) => { - if (rsp && rsp.success) { - this.locationCity.cityOptions = rsp.data.list - this.locationCity.city = this.locationCity.cityOptions[0].id - this.changeCity() - } - }) - }, - changeCity() { - let pid = this.locationCity.city - getGb28181AreaList({ parentId: pid }).then((rsp) => { - if (rsp && rsp.success) { - this.locationCity.countyOptions = rsp.data.list - this.locationCity.county = this.locationCity.countyOptions[0].id - } - }) - }, - newGBID() { - let cCode = this.locationCity.county + "" - newGb28181ID({ code: cCode }).then((rsp) => { - if (rsp && rsp.success) { - this.gb28181.PublicId = rsp.data.code } }) } -- Gitblit v1.8.0