From 4b43bfb3f6f499f480712dd29bef52275466afd6 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期五, 30 七月 2021 22:10:59 +0800
Subject: [PATCH] change all
---
src/pages/cameraAccess/components/DataStackInfo.vue | 163 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 120 insertions(+), 43 deletions(-)
diff --git a/src/pages/cameraAccess/components/DataStackInfo.vue b/src/pages/cameraAccess/components/DataStackInfo.vue
index af2cfef..57281fa 100644
--- a/src/pages/cameraAccess/components/DataStackInfo.vue
+++ b/src/pages/cameraAccess/components/DataStackInfo.vue
@@ -13,7 +13,22 @@
<el-radio v-model="form.type" :label="3" :disabled="!isAdd">闊抽</el-radio>
<el-radio v-model="form.type" :label="4" :disabled="!isAdd">鍏朵粬鏁版嵁</el-radio>
</el-form-item>
-
+ <el-form-item label="澶勭悊鍒嗚鲸鐜�" style="width:440px">
+ <el-select
+ v-model="form.resolution"
+ placeholder="鏈満鍒嗚鲸鐜�"
+ style="position: absolute;left: 0;"
+ size="small"
+ @change="checkResolution"
+ >
+ <el-option
+ v-for="item in form.resolutions"
+ :key="`${item.width}*${item.height}`"
+ :label="`${item.width}*${item.height}`=='0*0'?'鏈満鍒嗚鲸鐜�':`${item.width}*${item.height}`"
+ :value="`${item.width}*${item.height}`"
+ ></el-option>
+ </el-select>
+ </el-form-item>
<el-form-item
label="澶勭悊瀹屾垚鍚庤嚜鍔ㄥ垹闄ゆ枃浠�"
prop="isAutoDelFile"
@@ -50,7 +65,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 +120,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 +143,30 @@
v-show="activeName === 'uploaded' "
:data="fileList"
tooltip-effect="dark"
-
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 +187,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>
@@ -203,7 +237,7 @@
:disabled="scope.row.status == 2"
class="iconfont iconzhongxinkaishi btn"
@click="handleFileStatus(scope.row, 1)"
- v-show="scope.row.status === 9"
+ v-show="scope.row.status === 9 || scope.row.status === -2"
></el-button>
</el-tooltip>
@@ -238,10 +272,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 +284,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">
@@ -290,7 +332,6 @@
copyFile
} from "@/api/localVedio";
-import { changeRunType } from "@/api/pollConfig";
import InfoCard from "./infoCard"
import eChartsBar from '@/components/subComponents/eChartsBar'
@@ -314,6 +355,7 @@
filters: {
statusFormat(value) {
let statusCode = {
+ "-2": "澶勭悊寮傚父",
"-1": "宸插垹闄�",
"0": "鏆傚仠澶勭悊",
"1": "绛夊緟澶勭悊",
@@ -364,6 +406,7 @@
data() {
return {
videoUrl: "",
+ imgUrl: "",
previewDialog: false,
fileDialog: false,
isDisabled: true,
@@ -372,7 +415,8 @@
multipleSelection: [],
searchInput: "",
form: {
- id: ""
+ id: "",
+ resolution: ""
},
fileList: [],
// 璁板綍娣诲姞鐘舵��
@@ -391,7 +435,7 @@
editRowId: "",
timer: 0,
targetDir: "",
- targetFile: ""
+ targetFile: "",
};
},
mounted() {
@@ -401,10 +445,22 @@
this.taskUid = 0;
},
methods: {
+ checkResolution(val) {
+ this.form.resolution_width = Number(val.split('*')[0]);
+ this.form.resolution_height = Number(val.split('*')[1]);
+ },
preview(row) {
- if (this.form.type === 1) {
- this.previewDialog = true;
+ this.previewDialog = true;
+ if (row.type === 1) {
+
this.videoUrl = "/files/" + row.identifier + ".mp4"
+
+ // 涓烘湐榛勪娇鐢ㄦ暟鎹爤瀹氬埗, 娌℃湁MD5
+ if (row.identifier == "") {
+ this.videoUrl = row.path.replace("/opt/vasystem", "");
+ }
+ } else if (row.type === 2) {
+ this.imgUrl = "/files/" + row.path.substr(row.path.lastIndexOf('/') + 1)
}
},
// 娓呯┖杈撳叆妗�
@@ -427,6 +483,7 @@
this.DataStackPool.clean();
this.fileList = [];
},
+ // 鏁版嵁鏍堟枃浠跺す閫変腑鏃讹紝鐢辩埗缁勪欢瑙﹀彂
selectDir(node) {
if (node.id === "") {
return
@@ -439,6 +496,7 @@
// this.initFormData();
// this.$refs.addForm.clearValidate();
this.form = { ...node };
+ this.form.resolution = `${node.resolution_width}*${node.resolution_height}`;
delete this.form.createTime;
delete this.form.updateTime;
delete this.form.status;
@@ -450,6 +508,8 @@
this.total = 0;
this.multipleSelection = []; // 娓呯┖閫変腑鐘舵��
this.initFetchListTask();
+ this.videoUrl = '';
+ this.imgUrl = '';
},
initFetchListTask() {
const uid = Math.round(Math.random() * 1000);
@@ -460,37 +520,44 @@
if (uid !== this.taskUid || this.form.id === "") {
return;
}
-
this.fetchFileList();
-
let _this = this;
this.timer = setTimeout(() => {
_this.timingtask(uid);
}, 2 * 1000);
},
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) {
- this.fileList = rsp.data.dataList;
- this.total = rsp.data.total;
-
- // 瀹氭椂鍒锋柊浼氭竻绌洪�変腑鐘舵�侊紝鍦ㄨ繖閲屾仮澶�
- this.fileList.forEach(row => {
- if (this.multipleSelection.indexOf(row.id) !== -1) {
- this.$nextTick(() => {
- this.$refs.multipleTable.toggleRowSelection(row);
- })
- }
- });
- }
- }).catch(err => {
- console.log(err)
- })
-
+ 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) {
+ 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);
+ })
+ }
+ });
+ }
+ }).catch(err => {
+ console.log(err)
+ })
},
// 淇濆瓨
onSubmit(formName) {
+ if (formName == 'addForm') {
+ if (this.form.name.indexOf('/') >= 0) {
+ this.$notify({
+ type: "error",
+ message: "淇濆瓨澶辫触,鏁版嵁鏍堝悕绉颁笉鑳藉寘鍚�'/'锛�"
+ });
+ return;
+ }
+ }
this.$refs[formName].validate(async valid => {
if (valid) {
saveDir(this.form).then(rsp => {
@@ -552,7 +619,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;
@@ -571,6 +639,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: "鏂囦欢鎺掑簭鎴愬姛锛�"
@@ -609,6 +680,7 @@
cmd.cb(cmd.data);
},
handleFileDelete(rows, multi = false) {
+ let _this = this;
let ids = this.multipleSelection;
if (!multi) {
ids = [rows.id];
@@ -630,7 +702,8 @@
type: "error",
message: "鏂囦欢宸插垹闄�"
})
- })
+ });
+
}).catch(() => { })
},
handleFileMove(row) {
@@ -718,6 +791,10 @@
.el-form-item__label {
text-align: left;
}
+ .el-button--primary.is-disabled {
+ background-color: #9eb4f0 !important;
+ border-color: #9eb4f0 !important;
+ }
.label {
color: #606266;
font-size: 14px;
--
Gitblit v1.8.0