Browse Source

功能优化:下载已确认事件发生前后视频

lyq 10 months ago
parent
commit
5990e1b146

+ 2 - 1
event-ui/src/api/event/downloads/downloads.js

@@ -42,10 +42,11 @@ export function delDownloads(id) {
     method: 'delete'
   })
 }
+
 //下载事件的视频
 export function eventhandleDownload(id) {
   return request({
-    url: 'center-event/eventcatalogue/eventhandleDownload/' + id,
+    url: 'center-event/downloads/eventhandleDownload/' + id,
     method: 'get'
   })
 }

+ 0 - 8
event-ui/src/api/event/eventcatalogue/eventcatalogue.js

@@ -37,14 +37,6 @@ export function addEventcatalogue(data) {
   })
 }
 
-//下载事件的视频
-export function eventhandleDownload(id) {
-  return request({
-    url: base + '/downloads/eventhandleDownload/' + id,
-    method: 'get'
-  })
-}
-
 // 删除事件目录
 export function delEventcatalogue(id) {
   return request({

+ 245 - 363
event-ui/src/views/event/downloads/index.vue

@@ -1,381 +1,263 @@
 <template>
-    <div class="app-container">
-        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-<!--                        <el-form-item label="事件编码" prop="eventCode">-->
-<!--                            <el-input-->
-<!--                                    v-model="queryParams.eventCode"-->
-<!--                                    placeholder="请输入事件编码"-->
-<!--                                    clearable-->
-<!--                                    size="small"-->
-<!--                                    @keyup.enter.native="handleQuery"-->
-<!--                            />-->
-<!--                        </el-form-item>-->
-                        <el-form-item label="事件名称" prop="eventName">
-                            <el-input
-                                    v-model="queryParams.eventName"
-                                    placeholder="请输入事件名称"
-                                    clearable
-                                    size="small"
-                                    @keyup.enter.native="handleQuery"
-                            />
-                        </el-form-item>
-<!--                        <el-form-item label="视频路径" prop="path">-->
-<!--                            <el-input-->
-<!--                                    v-model="queryParams.path"-->
-<!--                                    placeholder="请输入视频路径"-->
-<!--                                    clearable-->
-<!--                                    size="small"-->
-<!--                                    @keyup.enter.native="handleQuery"-->
-<!--                            />-->
-<!--                        </el-form-item>-->
-<!--                        <el-form-item label="视频下载是否成功" prop="flag">-->
-<!--                            <el-input-->
-<!--                                    v-model="queryParams.flag"-->
-<!--                                    placeholder="请输入视频下载是否成功"-->
-<!--                                    clearable-->
-<!--                                    size="small"-->
-<!--                                    @keyup.enter.native="handleQuery"-->
-<!--                            />-->
-<!--                        </el-form-item>-->
-<!--                        <el-form-item label="失败原因" prop="reason">-->
-<!--                            <el-input-->
-<!--                                    v-model="queryParams.reason"-->
-<!--                                    placeholder="请输入失败原因"-->
-<!--                                    clearable-->
-<!--                                    size="small"-->
-<!--                                    @keyup.enter.native="handleQuery"-->
-<!--                            />-->
-<!--                        </el-form-item>-->
-<!--                        <el-form-item label="创建人名称" prop="createName">-->
-<!--                            <el-input-->
-<!--                                    v-model="queryParams.createName"-->
-<!--                                    placeholder="请输入创建人名称"-->
-<!--                                    clearable-->
-<!--                                    size="small"-->
-<!--                                    @keyup.enter.native="handleQuery"-->
-<!--                            />-->
-<!--                        </el-form-item>-->
-<!--                        <el-form-item label="更新人名称" prop="updateName">-->
-<!--                            <el-input-->
-<!--                                    v-model="queryParams.updateName"-->
-<!--                                    placeholder="请输入更新人名称"-->
-<!--                                    clearable-->
-<!--                                    size="small"-->
-<!--                                    @keyup.enter.native="handleQuery"-->
-<!--                            />-->
-<!--                        </el-form-item>-->
-            <el-form-item>
-                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" @submit.native.prevent>
+      <el-form-item label="事件名称" prop="eventName">
+        <el-input
+          v-model="queryParams.eventName"
+          placeholder="请输入事件名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
 
-        <el-row :gutter="10" class="mb8">
-<!--            <el-col :span="1.5">-->
-<!--                <el-button-->
-<!--                        type="primary"-->
-<!--                        plain-->
-<!--                        icon="el-icon-plus"-->
-<!--                        size="mini"-->
-<!--                        @click="handleAdd"-->
-<!--                        v-hasPermi="['event:downloads:add']"-->
-<!--                >新增</el-button>-->
-<!--            </el-col>-->
-<!--            <el-col :span="1.5">-->
-<!--                <el-button-->
-<!--                        type="success"-->
-<!--                        plain-->
-<!--                        icon="el-icon-edit"-->
-<!--                        size="mini"-->
-<!--                        :disabled="single"-->
-<!--                        @click="handleUpdate"-->
-<!--                        v-hasPermi="['event:downloads:edit']"-->
-<!--                >修改</el-button>-->
-<!--            </el-col>-->
-<!--            <el-col :span="1.5">-->
-<!--                <el-button-->
-<!--                        type="danger"-->
-<!--                        plain-->
-<!--                        icon="el-icon-delete"-->
-<!--                        size="mini"-->
-<!--                        :disabled="multiple"-->
-<!--                        @click="handleDelete"-->
-<!--                        v-hasPermi="['event:downloads:remove']"-->
-<!--                >删除</el-button>-->
-<!--            </el-col>-->
-<!--            <el-col :span="1.5">-->
-<!--                <el-button-->
-<!--                        type="warning"-->
-<!--                        plain-->
-<!--                        icon="el-icon-download"-->
-<!--                        size="mini"-->
-<!--                        @click="handleExport"-->
-<!--                        v-hasPermi="['event:downloads:export']"-->
-<!--                >导出</el-button>-->
-<!--            </el-col>-->
-            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-        </el-row>
+    <el-row :gutter="10" class="mb8">
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
 
-        <el-table v-loading="loading" :data="downloadsList" @selection-change="handleSelectionChange">
-            <el-table-column  width="55" align="center" />
-<!--                    <el-table-column label="${comment}" align="center" prop="id" />-->
-<!--                    <el-table-column label="事件编码" align="center" prop="eventCode" />-->
-                    <el-table-column label="事件名称" align="center" prop="eventName" />
-<!--                    <el-table-column label="视频路径" align="center" prop="path" />-->
-          <el-table-column label="视频下载状态" align="center" prop="flag">
-            <template slot-scope="scope">
-              <dict-tag :options="dict.type.downloads_status" :value="scope.row.flag"/>
-            </template>
-          </el-table-column>
-                    <el-table-column label="失败原因" align="center" prop="reason" />
-<!--                    <el-table-column label="创建人名称" align="center" prop="createName" />-->
-<!--                    <el-table-column label="更新人名称" align="center" prop="updateName" />-->
-            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-                <template slot-scope="scope">
-                  <el-button size="mini" type="text" icon="el-icon-view" @click="handleDetail(scope.row)"
-                              v-if="scope.row.flag == '1'">视频查看
-                  </el-button>
-                    <el-button
-                            size="mini"
-                            type="text"
-                            icon="el-icon-edit"
-                            @click="handleDownload(scope.row)"
-                             v-if="scope.row.flag == '0' && scope.row.reason !='该时段未查询到录像信息'"
-                    >下载</el-button>
-<!--                    <el-button-->
-<!--                            size="mini"-->
-<!--                            type="text"-->
-<!--                            icon="el-icon-delete"-->
-<!--                            @click="handleDelete(scope.row)"-->
-<!--                            v-hasPermi="['event:downloads:remove']"-->
-<!--                    >删除</el-button>-->
-                </template>
-            </el-table-column>
-        </el-table>
+    <el-table v-loading="loading" :data="downloadsList" @selection-change="handleSelectionChange">
+      <el-table-column label="事件名称" align="center" prop="eventName" width="500"/>
+      <el-table-column label="视频下载状态码" align="center" prop="flag"/>
+      <el-table-column label="说明" align="center" prop="reason"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-view" @click="handleDetail(scope.row)"
+                     v-if="scope.row.flag == '200'">视频查看
+          </el-button>
+          <el-button size="mini" type="text" icon="el-icon-download" @click="handleDownload(scope.row)"
+                     v-if="scope.row.flag != '200' && scope.row.flag != '202'">下载
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
 
-        <pagination
-                v-show="total>0"
-                :total="total"
-                :page.sync="queryParams.pageNum"
-                :limit.sync="queryParams.pageSize"
-                @pagination="getList"
-        />
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
 
-<!--      <el-dialog title="视频预览" :visible.sync="showTcPlayer" width="40%" customClass="customWidthMp4">-->
-<!--        <TcPlayer ref="TcPlayer" :playVideo="playVideo" :widthHeigt="[100,100]"></TcPlayer>-->
-<!--      </el-dialog>-->
-      <el-dialog :visible.sync="showTcPlayer" height="40%" width="40%" title="视频预览" @close="closeDialog">
-        <div style="height:400px;text-align:center">
-          <video
-            width="100%"
-            height="100%"
-            :src="playVideo"
-            controls="controls"
-            ref="video"
-          ></video>
-        </div>
-      </el-dialog>
+    <el-dialog :visible.sync="showTcPlayer" height="40%" width="40%" title="视频预览" @close="closeDialog">
+      <div style="height:400px;text-align:center">
+        <video ref="video" width="100%" height="100%" :src="playVideo" controls="controls"></video>
+      </div>
+    </el-dialog>
 
-        <!-- 添加或修改【请填写功能名称】对话框 -->
-        <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-            <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-                                <el-form-item label="事件编码" prop="eventCode">
-                                    <el-input v-model="form.eventCode" placeholder="请输入事件编码" />
-                                </el-form-item>
-                                <el-form-item label="事件名称" prop="eventName">
-                                    <el-input v-model="form.eventName" placeholder="请输入事件名称" />
-                                </el-form-item>
-                                <el-form-item label="视频路径" prop="path">
-                                    <el-input v-model="form.path" placeholder="请输入视频路径" />
-                                </el-form-item>
-                                <el-form-item label="视频下载是否成功" prop="flag">
-                                    <el-input v-model="form.flag" placeholder="请输入视频下载是否成功" />
-                                </el-form-item>
-                                <el-form-item label="失败原因" prop="reason">
-                                    <el-input v-model="form.reason" placeholder="请输入失败原因" />
-                                </el-form-item>
-                                <el-form-item label="创建人名称" prop="createName">
-                                    <el-input v-model="form.createName" placeholder="请输入创建人名称" />
-                                </el-form-item>
-                                <el-form-item label="更新人名称" prop="updateName">
-                                    <el-input v-model="form.updateName" placeholder="请输入更新人名称" />
-                                </el-form-item>
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-            </div>
-        </el-dialog>
-    </div>
+    <!-- 添加或修改【请填写功能名称】对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="事件编码" prop="eventCode">
+          <el-input v-model="form.eventCode" placeholder="请输入事件编码"/>
+        </el-form-item>
+        <el-form-item label="事件名称" prop="eventName">
+          <el-input v-model="form.eventName" placeholder="请输入事件名称"/>
+        </el-form-item>
+        <el-form-item label="视频路径" prop="path">
+          <el-input v-model="form.path" placeholder="请输入视频路径"/>
+        </el-form-item>
+        <el-form-item label="视频下载是否成功" prop="flag">
+          <el-input v-model="form.flag" placeholder="请输入视频下载是否成功"/>
+        </el-form-item>
+        <el-form-item label="失败原因" prop="reason">
+          <el-input v-model="form.reason" placeholder="请输入失败原因"/>
+        </el-form-item>
+        <el-form-item label="创建人名称" prop="createName">
+          <el-input v-model="form.createName" placeholder="请输入创建人名称"/>
+        </el-form-item>
+        <el-form-item label="更新人名称" prop="updateName">
+          <el-input v-model="form.updateName" placeholder="请输入更新人名称"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-    import { listDownloads, getDownloads, delDownloads, addDownloads, updateDownloads,eventhandleDownload } from "@/api/event/downloads/downloads";
-    import TcPlayer from '@/components/TcPlayer'; // 视频预览
-    export default {
-        name: "Downloads",
-      components: {TcPlayer},
-        dicts: ['downloads_status'],
-        data() {
-            return {
-                // 遮罩层
-                loading: true,
-                // 选中数组
-                ids: [],
-                // 非单个禁用
-                single: true,
-                // 非多个禁用
-                multiple: true,
-                // 显示搜索条件
-                showSearch: true,
-                // 总条数
-                total: 0,
-                // 【请填写功能名称】表格数据
-                    downloadsList: [],
-                // 弹出层标题
-                title: "",
-                // 是否显示弹出层
-                showTcPlayer: false,//视频预览弹窗
-                playVideo: '',//视频预览地址
-                open: false,
-                // 查询参数
-                queryParams: {
-                    pageNum: 1,
-                    pageSize: 10,
-                    eventCode: null,
-                    eventName: null,
-                    path: null,
-                    flag: null,
-                    reason: null,
-                    createName: null,
-                    updateName: null,
+  import {
+    addDownloads,
+    delDownloads,
+    eventhandleDownload,
+    getDownloads,
+    listDownloads,
+    updateDownloads
+  } from "@/api/event/downloads/downloads";
+  import TcPlayer from '@/components/TcPlayer'; // 视频预览
+  export default {
+    name: "Downloads",
+    components: {TcPlayer},
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 【请填写功能名称】表格数据
+        downloadsList: [],
+        // 弹出层标题
+        title: "",
+        // 是否显示弹出层
+        showTcPlayer: false,//视频预览弹窗
+        playVideo: '',//视频预览地址
+        open: false,
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          eventCode: null,
+          eventName: null,
+          path: null,
+          flag: null,
+          reason: null,
+          createName: null,
+          updateName: null,
         },
-            // 表单参数
-            form: {},
-            // 表单校验
-            rules: {
+        // 表单参数
+        form: {},
+        // 表单校验
+        rules: {}
+      };
+    },
+    created() {
+      this.getList();
+    },
+    methods: {
+      /** 查询【请填写功能名称】列表 */
+      getList() {
+        this.loading = true;
+        listDownloads(this.queryParams).then(response => {
+          this.downloadsList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      handleDetail(row) {
+        this.showTcPlayer = true;
+        this.playVideo = row.path;
+      },
+      handleDownload(row) {
+        const id = row.eventCode
+        eventhandleDownload(id).then(response => {
+          if (response.data.code == 200) {
+            this.$modal.msgSuccess("下载成功");
+          } else {
+            if (response.data.msg == null) {
+              response.data.msg = "下载失败";
             }
+            this.$modal.msgError(response.data.msg);
+          }
+        });
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          eventCode: null,
+          eventName: null,
+          path: null,
+          flag: null,
+          reason: null,
+          createBy: null,
+          createName: null,
+          createTime: null,
+          updateBy: null,
+          updateName: null,
+          updateTime: null
         };
-        },
-        created() {
-            this.getList();
-        },
-        methods: {
-            /** 查询【请填写功能名称】列表 */
-            getList() {
-                this.loading = true;
-                listDownloads(this.queryParams).then(response => {
-                    this.downloadsList = response.rows;
-                    this.total = response.total;
-                    this.loading = false;
-                });
-            },
-            // 取消按钮
-            cancel() {
+        this.resetForm("form");
+      },
+      /** 搜索按钮操作 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 多选框选中数据
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.id)
+        this.single = selection.length !== 1
+        this.multiple = !selection.length
+      },
+      /** 新增按钮操作 */
+      handleAdd() {
+        this.reset();
+        this.open = true;
+        this.title = "添加【请填写功能名称】";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getDownloads(id).then(response => {
+          this.form = response.data;
+          this.open = true;
+          this.title = "修改【请填写功能名称】";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updateDownloads(this.form).then(response => {
+                this.$modal.msgSuccess("修改成功");
                 this.open = false;
-                this.reset();
-            },
-            handleDetail(row) {
-              this.showTcPlayer = true;
-                this.playVideo = row.path;
-            },
-          handleDownload(row) {
-            const id = row.eventCode
-            eventhandleDownload(id).then(response => {
-              if(response.data.code == 200){
-                this.$modal.msgSuccess("下载成功");
-              }else{
-                this.$modal.msgError(response.data.msg);
-              }
-
-            });
-          },
-            // 表单重置
-            reset() {
-                this.form = {
-                        id: null,
-                        eventCode: null,
-                        eventName: null,
-                        path: null,
-                        flag: null,
-                        reason: null,
-                        createBy: null,
-                        createName: null,
-                        createTime: null,
-                        updateBy: null,
-                        updateName: null,
-                        updateTime: null
-            };
-                this.resetForm("form");
-            },
-            /** 搜索按钮操作 */
-            handleQuery() {
-                this.queryParams.pageNum = 1;
                 this.getList();
-            },
-            /** 重置按钮操作 */
-            resetQuery() {
-                this.resetForm("queryForm");
-                this.handleQuery();
-            },
-            // 多选框选中数据
-            handleSelectionChange(selection) {
-                this.ids = selection.map(item => item.id)
-                this.single = selection.length!==1
-                this.multiple = !selection.length
-            },
-            /** 新增按钮操作 */
-            handleAdd() {
-                this.reset();
-                this.open = true;
-                this.title = "添加【请填写功能名称】";
-            },
-            /** 修改按钮操作 */
-            handleUpdate(row) {
-                this.reset();
-                const id = row.id || this.ids
-                getDownloads(id).then(response => {
-                    this.form = response.data;
-                    this.open = true;
-                    this.title = "修改【请填写功能名称】";
-                });
-            },
-            /** 提交按钮 */
-            submitForm() {
-                this.$refs["form"].validate(valid => {
-                    if (valid) {
-                        if (this.form.id != null) {
-                            updateDownloads(this.form).then(response => {
-                                this.$modal.msgSuccess("修改成功");
-                                this.open = false;
-                                this.getList();
-                            });
-                        } else {
-                            addDownloads(this.form).then(response => {
-                                this.$modal.msgSuccess("新增成功");
-                                this.open = false;
-                                this.getList();
-                            });
-                        }
-                    }
-                });
-            },
-            /** 删除按钮操作 */
-            handleDelete(row) {
-                const ids = row.id || this.ids;
-                this.$modal.confirm('是否确认删除【请填写功能名称】编号为"' + ids + '"的数据项?').then(function() {
-                    return delDownloads(ids);
-                }).then(() => {
-                    this.getList();
-                    this.$modal.msgSuccess("删除成功");
-                }).catch(() => {});
-            },
-    /** 导出按钮操作 */
-    handleExport() {
+              });
+            } else {
+              addDownloads(this.form).then(response => {
+                this.$modal.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$modal.confirm('是否确认删除【请填写功能名称】编号为"' + ids + '"的数据项?').then(function () {
+          return delDownloads(ids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        }).catch(() => {
+        });
+      },
+      /** 导出按钮操作 */
+      handleExport() {
         this.download('event/downloads/export', {
-            ...this.queryParams
+          ...this.queryParams
         }, `downloads_${new Date().getTime()}.xlsx`)
+      }
     }
-    }
-    };
+  };
 </script>

+ 1 - 1
event-ui/src/views/event/eventcatalogue/index.vue

@@ -357,7 +357,6 @@
   import {
     addEventcatalogue,
     delEventcatalogue,
-    eventhandleDownload,
     getEventcatalogue,
     listByPc,
     listcentereventtfirelog,
@@ -365,6 +364,7 @@
     listSJfl,
     listYuAn
   } from "@/api/event/eventcatalogue/eventcatalogue";
+  import {eventhandleDownload} from "@/api/event/downloads/downloads";
   import {getConfigKey} from "@/api/system/config";
   import {listByParentId} from "@/api/event/eventtypemonitor/eventtypemonitor";
   import Deptselector from '@/views/components/deptselector';