From 0175cda6150656bc74b34c6f6c71edd1e1fc653c Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@iotlink.com> Date: 星期四, 04 二月 2021 18:22:54 +0800 Subject: [PATCH] treee, 修复tab切换时树的选中状态.添加区域 --- src/pages/cameraAccess/components/SceneRule.vue | 152 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 109 insertions(+), 43 deletions(-) diff --git a/src/pages/cameraAccess/components/SceneRule.vue b/src/pages/cameraAccess/components/SceneRule.vue index 5cdea2c..ecf6db6 100644 --- a/src/pages/cameraAccess/components/SceneRule.vue +++ b/src/pages/cameraAccess/components/SceneRule.vue @@ -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,36 +96,35 @@ <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="缂栬緫" :hide-after="700" placement="top" popper-class="atooltip"> <i @@ -107,7 +133,12 @@ @click="handleEdit(scope.row)" ></i> </el-tooltip> - <el-tooltip content="鍒犻櫎" :hide-after="700" 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;" @@ -130,6 +161,7 @@ } 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 +213,10 @@ }, mounted() { // window.addEventListener('resize', this.windowSizeChange) - + this.getSounds(); + this.eventAudio.addEventListener("ended", () => { + this.togglePlay = true + }) }, data() { return { @@ -194,14 +229,62 @@ 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() { + getSoundList().then(res => { + if (res.success) { + this.soundList = [{ id: "", name: "绌�", path: "" }].concat(res.data.list) + } + }).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; + } + 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,13 +316,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", @@ -261,7 +344,6 @@ } this.editScene = true; this.cleanForm(); - console.log(this.tableRuleList) //鍒濆鍖栧満鏅悕绉� var pattern = /^鍦烘櫙\s*\d+\s*$/; @@ -280,8 +362,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) => { @@ -296,24 +379,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', @@ -336,7 +402,6 @@ return true }, saveSceneRule() { - if (!this.validateForm()) { return } @@ -344,6 +409,7 @@ this.sceneForm.rules = editorResp.rules; this.sceneForm.id = editorResp.id; this.sceneForm.group_text = editorResp.text; + this.onSaveScene(this.sceneForm); }, handleDelScene(groupRule) { @@ -373,7 +439,7 @@ .catch(() => { }); }, cellStyle(obj) { - if (obj.column.label == '绛栫暐') { + if (obj.column.label == '绛栫暐'||obj.column.label == '浜嬩欢澹伴煶') { return 'text-align:left;padding-left:8px;' } } @@ -410,7 +476,7 @@ } } textarea { - height: 143px; + height: 92px; } } .right { @@ -441,8 +507,8 @@ } .cell { padding-left: 0 !important; - i{ - outline: none!important; + i { + outline: none !important; } } } -- Gitblit v1.8.0