From 4a800a8fc83c6bd1f86a8e847b079a51a7532c09 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 20 七月 2022 15:05:58 +0800 Subject: [PATCH] 修复国标配置的bug --- src/pages/cameraAccess/components/SceneRule.vue | 276 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 170 insertions(+), 106 deletions(-) diff --git a/src/pages/cameraAccess/components/SceneRule.vue b/src/pages/cameraAccess/components/SceneRule.vue index d6e5bf8..dea5d2e 100644 --- a/src/pages/cameraAccess/components/SceneRule.vue +++ b/src/pages/cameraAccess/components/SceneRule.vue @@ -1,28 +1,33 @@ <template> <div class="scene-edit-container"> <div class="scene-title"> - <b style="font-size: 14px; line-height: 18px;">鍦烘櫙</b> + <b style="font-size: 14px; line-height: 18px">鍦烘櫙</b> <el-button type="primary" size="mini" @click="handleCreate" - style="margin-left:90%" - v-show="!editScene" - >+ 娣诲姞鍦烘櫙</el-button> + style="margin-left: 90%" + v-show="!editScene && TreeDataPool.selectedNode.type !== 'MENU'" + >+ 娣诲姞鍦烘櫙</el-button + > </div> <el-form ref="form" label-width="80px" v-show="editScene"> <div class="flex-form"> <div class="left"> <el-form-item label="鍦烘櫙鍚嶇О"> - <el-input v-model="sceneForm.scene_name" size="mini" maxlength="15"></el-input> + <el-input + v-model="sceneForm.scene_name" + size="mini" + maxlength="15" + ></el-input> </el-form-item> <el-form-item label="浜嬩欢绛夌骇"> <el-select v-model="sceneForm.alarm_level" placeholder="璇烽�夋嫨" size="mini" - style="width:250px" + style="width: 250px" > <el-option label="涓�绾�" :value="1"></el-option> <el-option label="浜岀骇" :value="2"></el-option> @@ -32,7 +37,11 @@ </el-select> </el-form-item> <el-form-item label="鏃堕棿娈�"> - <el-select v-model="sceneForm.time_rule_id" placeholder="璇烽�夋嫨" size="mini"> + <el-select + v-model="sceneForm.time_rule_id" + placeholder="璇烽�夋嫨" + size="mini" + > <el-option v-for="item in VideoManageData.TimeRules" :key="item.id" @@ -44,7 +53,11 @@ </div> <div class="right"> <el-form-item label="鍦烘櫙鎻忚堪"> - <el-input v-model="sceneForm.desc" type="textarea" size="mini"></el-input> + <el-input + v-model="sceneForm.desc" + type="textarea" + size="mini" + ></el-input> </el-form-item> <el-form-item label="浜嬩欢澹伴煶"> <el-select @@ -54,22 +67,27 @@ value-key="id" @change="selSound" > - <el-option v-for="item in soundList" :key="item.id" :label="item.name" :value="item"></el-option> + <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" + 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" + 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" + style="font-size: 26px; vertical-align: middle; color: #409eff" ></i> </span> </el-form-item> @@ -84,9 +102,11 @@ @sdkNameChange="getSceneName" ></scene-editor> - <el-form-item style="width: 60%;min-width: 1048px;"> + <el-form-item style="width: 60%; min-width: 1048px"> <el-button size="mini" @click="editScene = false">鍙栨秷</el-button> - <el-button type="primary" size="mini" @click="saveSceneRule">淇濆瓨</el-button> + <el-button type="primary" size="mini" @click="saveSceneRule" + >淇濆瓨</el-button + > </el-form-item> </el-form> @@ -96,19 +116,42 @@ <el-table :data="tableRuleList" border - style="width:100%" + style="width: 100%" :cell-style="cellStyle" - :header-cell-style="{background:'#f8f8f8',color:'#222222'}" + :header-cell-style="{ background: '#f8f8f8', color: '#222222' }" > - <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"> + <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"></el-table-column> - <el-table-column label="鎻忚堪" prop="desc" align="center" min-width="120"></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> @@ -121,15 +164,20 @@ </el-table-column> <el-table-column label="浜嬩欢绛夌骇" align="center"> <template slot-scope="scope"> - <span>{{scope.row.alarm_level | alarmLevel }}</span> + <span>{{ scope.row.alarm_level | alarmLevel }}</span> </template> </el-table-column> <el-table-column label="鎿嶄綔" fixed="right" align="center"> <template slot-scope="scope"> - <el-tooltip content="缂栬緫" :hide-after="700" 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;" + style="font-size: 28px" @click="handleEdit(scope.row)" ></i> </el-tooltip> @@ -141,7 +189,7 @@ > <i class="iconfont iconshanchu4 btn-icon" - style="font-size: 28px; color:red;" + style="font-size: 28px; color: red" @click="handleDelScene(scope.row)" ></i> </el-tooltip> @@ -154,11 +202,7 @@ </template> <script> -import { - saveCameraScene, - getCameraSceneRule, - deleteCameraScene -} from '@/api/scene' +import { saveCameraScene, deleteCameraScene } from "@/api/scene"; import RuleEditor from "@/components/subComponents/RuleEditor"; import SceneEditor from "./scene/Editor"; import { getSoundList } from "@/api/event"; @@ -166,29 +210,29 @@ export default { name: "SceneRuleEditor", components: { - SceneEditor + SceneEditor, }, props: { seletedCameras: { type: Array, default: () => { - return [] - } + return []; + }, }, tableRuleList: { type: Array, default: () => { - return [] - } + return []; + }, }, onSaveScene: { type: Function, - default: () => false + default: () => false, }, linkRule: { type: Boolean, - default: false - } + default: false, + }, }, filters: { alarmLevel(level) { @@ -204,19 +248,19 @@ case 5: return "浜旂骇"; } - } + }, }, watch: { tableRuleList(n, o) { this.editScene = false; - } + }, }, mounted() { // window.addEventListener('resize', this.windowSizeChange) this.getSounds(); this.eventAudio.addEventListener("ended", () => { - this.togglePlay = true - }) + this.togglePlay = true; + }); }, data() { return { @@ -230,7 +274,7 @@ template_id: "", time_rule_id: "", voice: {}, - voiceId: "" + voiceId: "", }, templateSdks: [], templateRules: "", @@ -238,50 +282,56 @@ sceneNameStore: [], eventAudio: new Audio(), soundList: [], - togglePlay: true - } + togglePlay: true, + }; }, methods: { getSoundById(id) { if (id) { - let sound = this.soundList.find(item => item.id == id); - return sound.name + let sound = this.soundList.find((item) => item.id == id); + return sound.name; } else { - return '' + return ""; } }, getSounds() { - getSoundList().then(res => { - if (res.success) { - this.soundList = [{ id: "", name: "绌�", path: "" }].concat(res.data.list) - } - }).catch( - e => console.log(e) - ) + 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.pause(); + this.$forceUpdate(); // this.eventAudio. }, togglePlayer() { + console.log(this.soundPath); if (!this.soundPath) { this.$notify({ - type: 'info', - message: '璇峰厛閫夋嫨涓�涓0闊�!' - }) + type: "info", + message: "璇峰厛閫夋嫨涓�涓0闊�!", + }); return false; } - this.eventAudio.src = this.soundPath; + debugger; + this.eventAudio.src = "/httpImage/" + this.soundPath; if (this.togglePlay) { this.eventAudio.play(); - this.togglePlay = false + this.togglePlay = false; } else { - this.eventAudio.pause() - this.togglePlay = true + this.eventAudio.pause(); + this.togglePlay = true; } // this.togglePlay = !this.togglePlay }, @@ -291,17 +341,17 @@ if (arr[j] > arr[j + 1]) { let temp = arr[j]; arr[j] = arr[j + 1]; - arr[j + 1] = temp + arr[j + 1] = temp; } } } return arr; }, getSceneName(sdk_name) { - this.sceneNameStore.push(sdk_name) + this.sceneNameStore.push(sdk_name); if (!this.sceneForm.scene_name.trim()) { - this.sceneForm.scene_name = sdk_name + this.sceneForm.scene_name = sdk_name; } // }else if(this.sceneForm.scene_name == store[store.length-2]){ // //鍦烘櫙鍚嶇О鍙栫殑鏄笂涓�娆′紶杩囨潵鐨勭畻娉曞悕绉帮紝鍒欓』鏇存柊涓烘渶鏂颁紶鏉ョ殑绠楁硶鍚� @@ -317,7 +367,7 @@ template_id: "", time_rule_id: "", voice: {}, - voiceId: "" + voiceId: "", }; this.$refs.sceneEditor.cleanRule(); this.$refs.sceneEditor.getSdkConnection(); @@ -326,19 +376,26 @@ if (this.linkRule && this.TreeDataPool.selectedNodes.length < 2) { this.$notify({ type: "warning", - message: "璇烽�夋嫨鑷冲皯2涓憚鍍忔満!" + message: "璇烽�夋嫨鑷冲皯2涓憚鍍忔満!", }); return false; - } else if (!this.linkRule && this.TreeDataPool.treeActiveName != 'dataStack' && this.TreeDataPool.selectedNodes.length < 1) { + } else if ( + !this.linkRule && + this.TreeDataPool.treeActiveName != "dataStack" && + this.TreeDataPool.selectedNodes.length < 1 + ) { this.$notify({ type: "warning", - message: `璇烽�夋嫨1涓憚鍍忔満!` + message: `璇烽�夋嫨1涓憚鍍忔満!`, }); return false; - } else if (this.TreeDataPool.treeActiveName == 'dataStack' && !this.DataStackPool.selectedDir.id) { + } else if ( + this.TreeDataPool.treeActiveName == "dataStack" && + !this.DataStackPool.selectedDir.id + ) { this.$notify({ type: "warning", - message: `璇峰厛閫夋嫨鏁版嵁鏍堟枃浠跺す!` + message: `璇峰厛閫夋嫨鏁版嵁鏍堟枃浠跺す!`, }); return false; } @@ -348,64 +405,68 @@ //鍒濆鍖栧満鏅悕绉� var pattern = /^鍦烘櫙\s*\d+\s*$/; var tempArr = []; - this.tableRuleList.forEach(scene => { - + this.tableRuleList.forEach((scene) => { if (pattern.test(scene.scene_name)) { tempArr.push(Number(scene.scene_name.substring(2).trim())); } }); - let latest = tempArr.length > 0 ? this.bubbleSort(tempArr)[tempArr.length - 1] + 1 : 1; + let latest = + tempArr.length > 0 + ? this.bubbleSort(tempArr)[tempArr.length - 1] + 1 + : 1; - this.sceneForm.scene_name = '鍦烘櫙' + latest; + this.sceneForm.scene_name = "鍦烘櫙" + latest; //鍒濆鍖栨椂闂存 this.sceneForm.time_rule_id = this.VideoManageData.TimeRules[0].id; - }, handleEdit(scene) { - this.sceneForm = scene; - this.sceneForm.voice = this.soundList.find(o => o.id === scene.voiceId); + this.sceneForm = JSON.parse(JSON.stringify(scene)); + // this.originSceneInfo = JSON.parse(JSON.stringify(scene)); + this.sceneForm.voice = this.soundList.find((o) => o.id === scene.voiceId); this.editScene = true; let selectedTpl = {}; this.sceneTemplates.forEach((t) => { if (t.id == this.sceneForm.template_id) { - selectedTpl = t + selectedTpl = t; } - }) + }); this.templateSdks = selectedTpl.sdks; this.templateRules = JSON.stringify(scene.rules); this.$refs.sceneEditor.editHandle(this.templateRules); - }, validateForm() { if (!this.sceneForm.scene_name.trim()) { this.$notify({ - type: 'warning', - message: '鍦烘櫙鍚嶄笉鑳戒负绌�' + type: "warning", + message: "鍦烘櫙鍚嶄笉鑳戒负绌�", }); - return false + return false; } else if (!this.sceneForm.alarm_level) { this.$notify({ - type: 'warning', - message: '浜嬩欢绛夌骇涓嶈兘涓虹┖' + type: "warning", + message: "浜嬩欢绛夌骇涓嶈兘涓虹┖", }); - return false + return false; } else if (!this.sceneForm.time_rule_id) { this.$notify({ - type: 'warning', - message: '鏃堕棿娈典笉鑳戒负绌�' + type: "warning", + message: "鏃堕棿娈典笉鑳戒负绌�", }); - return false + return false; } - return true + return true; }, saveSceneRule() { if (!this.validateForm()) { - return + return; } let editorResp = this.$refs.sceneEditor.submitRule(); + if (!editorResp) { + return; + } this.sceneForm.rules = editorResp.rules; this.sceneForm.id = editorResp.id; this.sceneForm.group_text = editorResp.text; @@ -417,34 +478,34 @@ this.$confirm("鎻愮ず锛氬垹闄ゅ悗锛岃鏉¤鍒欏皢澶辨晥锛屾槸鍚﹀垹闄わ紵", { center: true, cancelButtonClass: "comfirm-class-cancle", - confirmButtonClass: "comfirm-class-sure" + confirmButtonClass: "comfirm-class-sure", }) .then(() => { - deleteCameraScene(groupRule.id).then(res => { + deleteCameraScene(groupRule.id).then((res) => { this.$emit("delete-rule"); if (res && res.success) { this.$notify({ type: "success", - message: "鍒犻櫎鎴愬姛" + message: "鍒犻櫎鎴愬姛", }); - _this.$root.$children[0].$children[0].querySearchAsync('camera') + _this.$root.$children[0].$children[0].querySearchAsync("camera"); } else { this.$notify({ type: "error", - message: "鍒犻櫎澶辫触锛�" + message: "鍒犻櫎澶辫触锛�", }); } }); }) - .catch(() => { }); + .catch(() => {}); }, cellStyle(obj) { - if (obj.column.label == '绛栫暐' || obj.column.label == '浜嬩欢澹伴煶') { - return 'text-align:left;padding-left:8px;' + if (obj.column.label == "绛栫暐" || obj.column.label == "浜嬩欢澹伴煶") { + return "text-align:left;padding-left:8px;"; } - } - } -} + }, + }, +}; </script> <style lang="scss"> @@ -512,5 +573,8 @@ } } } + .el-table th.el-table__cell > .cell { + padding-right: 0; + } } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0