From cfe33505dc83ecaff395e9d207139d3b43e5a9b6 Mon Sep 17 00:00:00 2001 From: hanbaoshan <hanbaoshan@aiotlink.com> Date: 星期五, 06 十一月 2020 16:46:14 +0800 Subject: [PATCH] 规则列表加入事件声音;数据栈目录树样式优化;集群目录树关键字搜索框查询修复 --- src/pages/cameraAccess/components/DataStackInfo.vue | 116 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 86 insertions(+), 30 deletions(-) diff --git a/src/pages/cameraAccess/components/DataStackInfo.vue b/src/pages/cameraAccess/components/DataStackInfo.vue index b0709c1..aebdd67 100644 --- a/src/pages/cameraAccess/components/DataStackInfo.vue +++ b/src/pages/cameraAccess/components/DataStackInfo.vue @@ -50,7 +50,7 @@ <li> <info-card style="width: 100%;min-width: 440px" - :realtime="PollData.RealTimeSum" + :realtime="PollData.RealTimeValidCount" :polling="PollData.PollValidCount" :dataStack="PollData.stackChannelCount" ></info-card> @@ -105,10 +105,20 @@ </el-tooltip> <!-- 鏂囦欢涓婁紶 --> - <el-button type="primary" size="small" @click="handleUpload"> - 涓婁紶 - <i class="el-icon-upload el-icon--right"></i> - </el-button> + <template v-for="stack in DataStackPool.dirs"> + <el-button + :class="`uploader_${stack.id}`" + :key="stack.id" + type="primary" + size="small" + v-show="stack.id == DataStackPool.selectedDir.id" + :disabled="!DataStackPool.selectedDir.id" + @click="handleUpload" + > + 涓婁紶 + <i class="el-icon-upload el-icon--right"></i> + </el-button> + </template> </div> </div> @@ -118,21 +128,30 @@ v-show="activeName === 'uploaded' " :data="fileList" tooltip-effect="dark" - style="width: 99%" border :header-cell-style="{background:'#f8f8f8', color:'#222222', textAlign:'center'}" @select="handleSelect" @select-all="handleSelect" > - <el-table-column type="selection" width="50" align="center" :selectable="isSelectable"></el-table-column> + <el-table-column type="selection" align="center" :selectable="isSelectable"></el-table-column> <el-table-column prop="name" label="鏂囦欢鍚�"> <template slot-scope="{row}"> <div :class="snapshotClass"> <el-image - v-show="row.snapshot_url !== ''" + v-if="row.type==1" style="width: 30x; height: 30px" :src="'/httpImage/' + row.snapshot_url" fit="fill" + :preview-src-list="['/httpImage/' + row.snapshot_url]" + > + <div slot="error" :class="snapshotClass"></div> + </el-image> + <el-image + v-if="row.type==2" + style="width: 30x; height: 30px;background:#fff;" + :src="`/files/${row.path.substr(row.path.lastIndexOf('/')+1)}`" + fit="fill" + :preview-src-list="[`/files/${row.path.substr(row.path.lastIndexOf('/')+1)}`]" > <div slot="error" :class="snapshotClass"></div> </el-image> @@ -153,7 +172,7 @@ >{{row.name}}</a> </template> </el-table-column> - <el-table-column prop="fileSize" label="澶у皬" width="120"> + <el-table-column prop="fileSize" label="澶у皬"> <template slot-scope="scope">{{scope.row.size | readFileSizeUnit}}</template> </el-table-column> <el-table-column prop="duration" label="鏃堕暱" show-overflow-tooltip align="center"></el-table-column> @@ -238,10 +257,11 @@ <!-- 鍒嗛〉 --> <div class="pagination"> <el-pagination + v-show="activeName=='uploaded'" @size-change="handleSizeChange" @current-change="handleRefrashFileList" :current-page="page" - :page-sizes="[5, 10, 15, 20]" + :page-sizes="[10, 20, 50, 100]" :page-size="size" style="position:absolute;right:10px;bottom:5px" :total="total" @@ -249,12 +269,19 @@ ></el-pagination> </div> - <!-- 鏂囦欢涓婁紶缁勪欢 --> - <file-uploader ref="uploader" v-show="activeName === 'uploading'" /> - + <template v-for="stack in DataStackPool.dirs"> + <!-- 鏂囦欢涓婁紶缁勪欢 --> + <file-uploader + :ref="`uploader_${stack.id}`" + :key="stack.id" + v-show="activeName === 'uploading' && stack.id == DataStackPool.selectedDir.id" + :sourceType="stack.type" + /> + </template> <!-- 鏂囦欢棰勮 --> <el-dialog title="鏌ョ湅鏂囦欢" :visible.sync="previewDialog" width="500px"> - <video :src="videoUrl" controls style="margin-top: 12px;">鎮ㄧ殑娴忚鍣ㄤ笉鏀寔 video 鏍囩銆�</video> + <video v-if="videoUrl" :src="videoUrl" controls style="margin-top: 12px;">鎮ㄧ殑娴忚鍣ㄤ笉鏀寔 video 鏍囩銆�</video> + <el-image v-if="imgUrl" :src="imgUrl"></el-image> </el-dialog> <el-dialog title="绉诲姩/澶嶅埗" :visible.sync="fileDialog" width="500px"> @@ -364,6 +391,7 @@ data() { return { videoUrl: "", + imgUrl: "", previewDialog: false, fileDialog: false, isDisabled: true, @@ -391,20 +419,36 @@ editRowId: "", timer: 0, targetDir: "", - targetFile: "" + targetFile: "", + }; }, mounted() { this.initFormData(); + console.log(this.PollData.barCharts) + }, beforeDestroy() { this.taskUid = 0; }, + watch: { + 'fileList.length': { + handler(n, o) { + //鏁版嵁鏍堟枃浠舵暟閲忓彉鏇� + //鏇存柊鐙珛鍦烘櫙鏁版嵁鏍堟枃浠� + this.$root.$children[0].$children[1].$refs['sepRule'].getStackFiles(); + } + }, + }, methods: { preview(row) { - if (this.form.type === 1) { - this.previewDialog = true; + this.previewDialog = true; + if (row.type === 1) { + this.videoUrl = "/files/" + row.identifier + ".mp4" + } else if (row.type === 2) { + + this.imgUrl = "/files/" + row.path.substr(row.path.lastIndexOf('/') + 1) } }, // 娓呯┖杈撳叆妗� @@ -424,12 +468,13 @@ this.isAdd = true; this.isDisabled = false; this.initFormData(); + this.DataStackPool.clean(); + this.fileList = []; }, selectDir(node) { if (node.id === "") { return } - this.isDisabled = false; this.isAdd = false; this.videoItem = null; @@ -448,6 +493,8 @@ this.total = 0; this.multipleSelection = []; // 娓呯┖閫変腑鐘舵�� this.initFetchListTask(); + this.videoUrl = ''; + this.imgUrl = ''; }, initFetchListTask() { const uid = Math.round(Math.random() * 1000); @@ -458,9 +505,7 @@ if (uid !== this.taskUid || this.form.id === "") { return; } - this.fetchFileList(); - let _this = this; this.timer = setTimeout(() => { _this.timingtask(uid); @@ -468,12 +513,14 @@ }, fetchFileList() { findAllFileByStackId({ name: this.searchInput, stackId: this.form.id, page: this.page, size: this.size, type: 0 }).then(rsp => { - if (rsp && rsp.success && rsp.data.total > 0) { + if (rsp && rsp.success && rsp.data.total >= 0) { this.fileList = rsp.data.dataList; + this.total = rsp.data.total; // 瀹氭椂鍒锋柊浼氭竻绌洪�変腑鐘舵�侊紝鍦ㄨ繖閲屾仮澶� this.fileList.forEach(row => { + //this.polygonDatas.push({snapshot_url:row.snapshot_url}) if (this.multipleSelection.indexOf(row.id) !== -1) { this.$nextTick(() => { this.$refs.multipleTable.toggleRowSelection(row); @@ -484,7 +531,6 @@ }).catch(err => { console.log(err) }) - }, // 淇濆瓨 @@ -550,7 +596,8 @@ this.multipleSelection = []; }, handleUpload() { - console.log(this.$refs.uploader.$refs.button.$refs.btn.click()) + console.log(this.DataStackPool.selectedDir.id) + console.log(this.$refs[`uploader_${this.DataStackPool.selectedDir.id}`][0].$refs.button.$refs.btn.click()) }, handleRefrashFileList(val) { this.page = val; @@ -569,6 +616,9 @@ }) if (res && res.success) { this.fetchFileList(); + //鏇存柊鐙珛鍦烘櫙鏁版嵁鏍堟枃浠� + console.log(this.$root.$children[0].$children[1].$refs['sepRule']) + this.$root.$children[0].$children[1].$refs['sepRule'].getStackFiles(); this.$notify({ type: "success", message: "鏂囦欢鎺掑簭鎴愬姛锛�" @@ -607,6 +657,7 @@ cmd.cb(cmd.data); }, handleFileDelete(rows, multi = false) { + let _this = this; let ids = this.multipleSelection; if (!multi) { ids = [rows.id]; @@ -628,7 +679,8 @@ type: "error", message: "鏂囦欢宸插垹闄�" }) - }) + }); + }).catch(() => { }) }, handleFileMove(row) { @@ -707,13 +759,18 @@ .data-stack-info { width: 100%; height: 100%; - margin-left: 20px; + padding: 20px; + box-sizing: border-box; overflow: auto; .ai-select { text-align: left; } .el-form-item__label { text-align: left; + } + .el-button--primary.is-disabled { + background-color: #9eb4f0 !important; + border-color: #9eb4f0 !important; } .label { color: #606266; @@ -767,7 +824,6 @@ .btn-right { float: right; margin-top: -5px; - margin-right: 10px; .btn { cursor: pointer; font-size: 20px; @@ -799,19 +855,19 @@ vertical-align: middle; } .snapshot-video { - background: url("../../../assets/img/video.png"); + background: url("/images/cameraAccess/video.png"); background-repeat: round; } .snapshot-image { - background: url("../../../assets/img/image.png"); + background: url("/images/cameraAccess/image.png"); background-repeat: round; } .snapshot-audio { - background: url("../../../assets/img/audio.png"); + background: url("/images/cameraAccess/audio.png"); background-repeat: round; } .snapshot-files { - background: url("../../../assets/img/files.png"); + background: url("/images/cameraAccess/files.png"); background-repeat: round; } } -- Gitblit v1.8.0