From 878ce80ef3ca88a2c108fbc713cd6ea461c44de1 Mon Sep 17 00:00:00 2001 From: ZZJ <zzjdsg2300@163.com> Date: 星期三, 13 十月 2021 13:51:03 +0800 Subject: [PATCH] 拓扑图 --- src/pages/cameraAccess/components/SceneRule.vue | 163 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 118 insertions(+), 45 deletions(-) diff --git a/src/pages/cameraAccess/components/SceneRule.vue b/src/pages/cameraAccess/components/SceneRule.vue index a24fec5..3126c17 100644 --- a/src/pages/cameraAccess/components/SceneRule.vue +++ b/src/pages/cameraAccess/components/SceneRule.vue @@ -6,7 +6,7 @@ type="primary" size="mini" @click="handleCreate" - style="margin-left:87%" + style="margin-left:90%" v-show="!editScene" >+ 娣诲姞鍦烘櫙</el-button> </div> @@ -46,9 +46,36 @@ <el-form-item label="鍦烘櫙鎻忚堪"> <el-input v-model="sceneForm.desc" type="textarea" size="mini"></el-input> </el-form-item> + <el-form-item label="浜嬩欢澹伴煶"> + <el-select + v-model="sceneForm.voice" + placeholder="绌�" + size="small" + value-key="id" + @change="selSound" + > + <el-option v-for="item in soundList" :key="item.id" :label="item.name" :value="item"></el-option> + </el-select> + <span + @click="togglePlayer" + style="cursor:pointer; margin-left:20px" + v-show="sceneForm.voiceId.length" + > + <i + v-if="togglePlay" + class="el-icon-video-play" + style="font-size:26px; vertical-align:middle; color:#409eff" + ></i> + <i + v-else + class="el-icon-video-pause" + style="font-size:26px; vertical-align:middle; color:#409eff" + ></i> + </span> + </el-form-item> </div> </div> - + <scene-editor ref="sceneEditor" :isLinkRule="linkRule" @@ -69,45 +96,49 @@ <el-table :data="tableRuleList" border - style="width: 100%" + style="width:100%" :cell-style="cellStyle" :header-cell-style="{background:'#f8f8f8',color:'#222222'}" > - <el-table-column label="搴忓彿" type="index" align="center" width="50"></el-table-column> - <el-table-column - label="鍦烘櫙鍚嶇О" - prop="scene_name" - width="120" - align="center" - show-overflow-tooltip - ></el-table-column> + <el-table-column label="搴忓彿" type="index" align="center"></el-table-column> + <el-table-column label="鍦烘櫙鍚嶇О" prop="scene_name" align="center" show-overflow-tooltip></el-table-column> <el-table-column label="绛栫暐" prop="group_text" align="center" min-width="350px"> <template slot-scope="scope"> <span v-html="scope.row.group_text"></span> </template> </el-table-column> - <el-table-column label="鏃堕棿娈�" prop="time_name" align="center" width="100"></el-table-column> - <el-table-column label="鎻忚堪" prop="desc" align="center" min-width="150"></el-table-column> + <el-table-column label="鏃堕棿娈�" prop="time_name" align="center"></el-table-column> + <el-table-column label="鎻忚堪" prop="desc" align="center" min-width="120"></el-table-column> <!-- <el-table-column label="鐘舵��" align="center" width="90"> <template slot-scope="scope"> <el-switch v-model="scope.row.defence_state" @change="updateDefence(scope.row)"></el-switch> </template> </el-table-column>--> - <el-table-column label="浜嬩欢绛夌骇" align="center" width="120"> + <el-table-column label="浜嬩欢澹伴煶" align="center"> + <template slot-scope="scope"> + <span>{{ getSoundById(scope.row.voiceId) }}</span> + </template> + </el-table-column> + <el-table-column label="浜嬩欢绛夌骇" align="center"> <template slot-scope="scope"> <span>{{scope.row.alarm_level | alarmLevel }}</span> </template> </el-table-column> - <el-table-column label="鎿嶄綔" fixed="right" align="center" width="100"> + <el-table-column label="鎿嶄綔" fixed="right" align="center"> <template slot-scope="scope"> - <el-tooltip content="缂栬緫" placement="top" popper-class="atooltip"> + <el-tooltip content="缂栬緫" :hide-after="700" placement="top" popper-class="atooltip"> <i class="iconfont iconbianji1 btn-icon" style="font-size: 28px;" @click="handleEdit(scope.row)" ></i> </el-tooltip> - <el-tooltip content="鍒犻櫎" placement="top" popper-class="atooltipgroup_"> + <el-tooltip + content="鍒犻櫎" + :hide-after="700" + placement="top" + popper-class="atooltipgroup_" + > <i class="iconfont iconshanchu4 btn-icon" style="font-size: 28px; color:red;" @@ -125,11 +156,11 @@ <script> import { saveCameraScene, - getCameraSceneRule, deleteCameraScene } from '@/api/scene' import RuleEditor from "@/components/subComponents/RuleEditor"; import SceneEditor from "./scene/Editor"; +import { getSoundList } from "@/api/event"; export default { name: "SceneRuleEditor", @@ -181,7 +212,10 @@ }, mounted() { // window.addEventListener('resize', this.windowSizeChange) - + this.getSounds(); + this.eventAudio.addEventListener("ended", () => { + this.togglePlay = true + }) }, data() { return { @@ -194,14 +228,65 @@ desc: "", template_id: "", time_rule_id: "", + voice: {}, + voiceId: "" }, templateSdks: [], templateRules: "", ruleList: [], - sceneNameStore: [] + sceneNameStore: [], + eventAudio: new Audio(), + soundList: [], + togglePlay: true } }, methods: { + getSoundById(id) { + if (id) { + let sound = this.soundList.find(item => item.id == id); + return sound.name + } else { + return '' + } + }, + getSounds() { + let _this = this; + getSoundList().then(res => { + if (res.success) { + //_this.soundList = [{ id: "", name: "绌�", path: "" }].concat(res.data.list) + _this.soundList = [{ id: "", name: "绌�", path: "" }].concat(res.data) + } + }).catch( + e => console.log(e) + ) + }, + selSound(sound) { + this.soundPath = sound.path; + this.sceneForm.voiceId = sound.id; + this.togglePlay = true; + this.eventAudio.pause() + this.$forceUpdate() + // this.eventAudio. + }, + togglePlayer() { + if (!this.soundPath) { + this.$notify({ + type: 'info', + message: '璇峰厛閫夋嫨涓�涓0闊�!' + }) + return false; + } + debugger + this.eventAudio.src = this.soundPath; + if (this.togglePlay) { + this.eventAudio.play(); + this.togglePlay = false + } else { + this.eventAudio.pause() + this.togglePlay = true + } + // this.togglePlay = !this.togglePlay + }, bubbleSort(arr) { for (var i = arr.length - 1; i > 0; i--) { for (var j = 0; j < i; j++) { @@ -233,12 +318,13 @@ desc: "", template_id: "", time_rule_id: "", + voice: {}, + voiceId: "" }; this.$refs.sceneEditor.cleanRule(); + this.$refs.sceneEditor.getSdkConnection(); }, handleCreate() { - - console.log(this.DataStackPool.selectedDir.id, this.TreeDataPool.treeActiveName == 'dataStack') if (this.linkRule && this.TreeDataPool.selectedNodes.length < 2) { this.$notify({ type: "warning", @@ -260,7 +346,6 @@ } this.editScene = true; this.cleanForm(); - console.log(this.tableRuleList) //鍒濆鍖栧満鏅悕绉� var pattern = /^鍦烘櫙\s*\d+\s*$/; @@ -279,8 +364,9 @@ }, handleEdit(scene) { - this.sceneForm = scene; + this.sceneForm.voice = this.soundList.find(o => o.id === scene.voiceId); + this.editScene = true; let selectedTpl = {}; this.sceneTemplates.forEach((t) => { @@ -295,24 +381,7 @@ }, - selectTemplate() { - let selectedTpl = {}; - this.sceneTemplates.forEach((t) => { - if (t.id == this.sceneForm.template_id) { - selectedTpl = t; - } - }) - - // 璁剧疆榛樿鍙傛暟, 鏃堕棿瑙勫垯鍙栫涓�涓� - this.sceneForm.time_rule_id = this.VideoManageData.TimeRules[0].id; - this.sceneForm.scene_name = selectedTpl.name; - this.sceneForm.desc = selectedTpl.desc; - - this.templateSdks = selectedTpl.sdks; - this.templateRules = selectedTpl.rules; - }, validateForm() { - if (!this.sceneForm.scene_name.trim()) { this.$notify({ type: 'warning', @@ -335,7 +404,6 @@ return true }, saveSceneRule() { - if (!this.validateForm()) { return } @@ -343,9 +411,11 @@ this.sceneForm.rules = editorResp.rules; this.sceneForm.id = editorResp.id; this.sceneForm.group_text = editorResp.text; + this.onSaveScene(this.sceneForm); }, handleDelScene(groupRule) { + let _this = this; this.$confirm("鎻愮ず锛氬垹闄ゅ悗锛岃鏉¤鍒欏皢澶辨晥锛屾槸鍚﹀垹闄わ紵", { center: true, cancelButtonClass: "comfirm-class-cancle", @@ -359,7 +429,7 @@ type: "success", message: "鍒犻櫎鎴愬姛" }); - + _this.$root.$children[0].$children[0].querySearchAsync('camera') } else { this.$notify({ type: "error", @@ -371,7 +441,7 @@ .catch(() => { }); }, cellStyle(obj) { - if (obj.column.label == '绛栫暐') { + if (obj.column.label == '绛栫暐' || obj.column.label == '浜嬩欢澹伴煶') { return 'text-align:left;padding-left:8px;' } } @@ -408,7 +478,7 @@ } } textarea { - height: 143px; + height: 92px; } } .right { @@ -439,6 +509,9 @@ } .cell { padding-left: 0 !important; + i { + outline: none !important; + } } } } -- Gitblit v1.8.0