| | |
| | | <div class="opts">
|
| | | <div class="opt" @click="openDialog">选择摄像机</div>
|
| | | </div>
|
| | | <div class="pick-num">已选({{pickNum}})</div>
|
| | | <div class="pick-num">已选 : ( {{ pickNum }} )</div>
|
| | | </div>
|
| | | <div class="search">
|
| | | <el-input
|
| | | placeholder="搜索"
|
| | | v-model="procName"
|
| | | v-model="fuzzySearch"
|
| | | size="small"
|
| | | class="input-with-select"
|
| | | @keyup.enter.native="getScheduleLog(1)"
|
| | | >
|
| | | <el-button
|
| | | <span
|
| | | class="icon iconfont icon_clear"
|
| | | @click="clearSearch"
|
| | | slot="append"
|
| | | v-if="fuzzySearch"
|
| | | >
|
| | | 
|
| | | </span>
|
| | | <span
|
| | | class="icon iconfont icon_search"
|
| | | @click="getScheduleLog(1)"
|
| | | slot="append"
|
| | | >
|
| | | 
|
| | | </span>
|
| | |
|
| | | <!-- <el-button
|
| | | slot="append"
|
| | | icon="el-icon-search"
|
| | | @click="getScheduleLog"
|
| | | ></el-button>
|
| | | @click="getOperationLog(1)"
|
| | | ></el-button> -->
|
| | | </el-input>
|
| | | </div>
|
| | | </div>
|
| | | <div class="second">
|
| | | <span>日期时间:</span>
|
| | | <span class="title">日期时间:</span>
|
| | | <el-date-picker
|
| | | v-model="dateRange"
|
| | | size="small"
|
| | |
| | | start-placeholder="开始日期"
|
| | | @change="dateChange"
|
| | | end-placeholder="结束日期"
|
| | | :picker-options="pickerOptions"
|
| | | popper-class="pollingLog_timePicker"
|
| | | >
|
| | | </el-date-picker>
|
| | | </div>
|
| | |
| | | :header-cell-style="{ background: '#f8f8f8', color: '#222222' }"
|
| | | @selection-change="handleSelectionChange"
|
| | | style="width: 100%"
|
| | | border
|
| | | >
|
| | | <template slot="empty">
|
| | | <img :src="png" class="empty_img" alt="" />
|
| | | </template>
|
| | | <el-table-column :align="'center'" label="序号" type="index" width="50">
|
| | | </el-table-column>
|
| | | <el-table-column
|
| | |
| | | <el-table-column
|
| | | :align="'center'"
|
| | | sortable
|
| | | prop="procName"
|
| | | prop="info"
|
| | | label="摄像机"
|
| | | ></el-table-column>
|
| | | <el-table-column
|
| | | :align="'center'"
|
| | | prop="procName"
|
| | | prop="minute"
|
| | | label="轮询时长(分)"
|
| | | ></el-table-column>
|
| | | </el-table>
|
| | | </div>
|
| | |
|
| | | <el-pagination
|
| | | @size-change="handleSizeChange"
|
| | | @current-change="handleCurrentChange"
|
| | | :current-page="page"
|
| | | :page-sizes="[15, 30, 50, 100]"
|
| | | :page-size="15"
|
| | | layout="total, sizes, prev, pager, next, jumper"
|
| | | :total="total"
|
| | | >
|
| | | </el-pagination>
|
| | |
|
| | | <el-dialog
|
| | | title="选择摄像机"
|
| | |
| | | show-checkbox
|
| | | check-on-click-node
|
| | | default-expand-all
|
| | | :default-checked-keys="selectedIDs"
|
| | | ></el-tree>
|
| | |
|
| | | <span slot="footer" class="dialog-footer">
|
| | |
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | png: require("../../../../public/images/syslog/没数据.png"),
|
| | | loading: false,
|
| | | loadingText: "",
|
| | | tableData: [],
|
| | |
| | | dialogVisible: false,
|
| | | procID: "",
|
| | | procName: "",
|
| | | pickNum:0
|
| | | pickNum: 0,
|
| | | selectedIDs: [],
|
| | | pickerOptions: {
|
| | | shortcuts: [
|
| | | {
|
| | | text: "最近一周",
|
| | | onClick(picker) {
|
| | | const end = new Date();
|
| | | const start = new Date();
|
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
| | | picker.$emit("pick", [start, end]);
|
| | | },
|
| | | },
|
| | | {
|
| | | text: "最近一个月",
|
| | | onClick(picker) {
|
| | | const end = new Date();
|
| | | const start = new Date();
|
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
| | | picker.$emit("pick", [start, end]);
|
| | | },
|
| | | },
|
| | | {
|
| | | text: "最近三个月",
|
| | | onClick(picker) {
|
| | | const end = new Date();
|
| | | const start = new Date();
|
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
| | | picker.$emit("pick", [start, end]);
|
| | | },
|
| | | },
|
| | | ],
|
| | | },
|
| | | };
|
| | | },
|
| | | mounted() {
|
| | |
| | | this.getOptions();
|
| | | },
|
| | | methods: {
|
| | | handleSizeChange(val) {
|
| | | this.pageSize = val;
|
| | | this.getScheduleLog();
|
| | | },
|
| | | handleCurrentChange(val) {
|
| | | this.page = val;
|
| | | this.getScheduleLog();
|
| | | },
|
| | | cancelShow() {
|
| | | this.dialogVisible = false;
|
| | | this.pickAllNot();
|
| | |
| | | },
|
| | | confirmCamera() {
|
| | | const selectedIDs = this.$refs.cameraTree.getCheckedKeys();
|
| | | this.pickNum = selectedIDs.length
|
| | | this.selectedIDs = selectedIDs;
|
| | | console.log(selectedIDs);
|
| | | this.pickNum = selectedIDs.length;
|
| | | this.procID = selectedIDs.join(",");
|
| | | this.getScheduleLog();
|
| | | this.dialogVisible = false;
|
| | |
| | | this.moduleOptions = res.data;
|
| | | });
|
| | | },
|
| | | getScheduleLog() {
|
| | | getScheduleLog(typ) {
|
| | | if (typ == 1) {
|
| | | this.page = 1;
|
| | | }
|
| | |
|
| | | const data = {
|
| | | timeStart: this.timeStart,
|
| | | timeEnd: this.timeEnd,
|
| | | page: this.page,
|
| | | pageSize: this.pageSize,
|
| | | fuzzySearch: this.fuzzySearch,
|
| | | procID: this.procID,
|
| | | procName: this.procName,
|
| | | };
|
| | |
| | | this.timeEnd = this.getTimeStr(date);
|
| | | this.dateRange = [this.timeStart, this.timeEnd];
|
| | | },
|
| | | handleSelectionChange() {},
|
| | | handleClose() {},
|
| | | clearSearch() {
|
| | | this.fuzzySearch = "";
|
| | | this.getScheduleLog(1);
|
| | | },
|
| | | },
|
| | | };
|
| | | </script>
|
| | | <style lang="scss">
|
| | | .polling-log {
|
| | | margin: 0 auto;
|
| | | padding: 10px 8px 10px 5px;
|
| | | background-color: rgba(248, 248, 248, 1);
|
| | | padding: 0px 8px 10px 5px;
|
| | | border-top: 1px solid #e1e0e6;
|
| | | background-color: rgba(242, 242, 247, 1);
|
| | | width: 100%;
|
| | | display: flex;
|
| | | overflow: auto;
|
| | |
| | | }
|
| | | }
|
| | | .top {
|
| | | height: 100px;
|
| | | height: 132px;
|
| | | background: #fff;
|
| | | border-radius: 5px;
|
| | | .first {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | align-items: center;
|
| | | height: 45px;
|
| | | padding: 0 20px;
|
| | | padding: 20px 20px 0 20px;
|
| | | .time-option {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | align-items: center;
|
| | | .title,.pick-num {
|
| | | .title,
|
| | | .pick-num {
|
| | | margin-right: 10px;
|
| | | font-size: 14px;
|
| | | min-width: fit-content;
|
| | | font-weight: bold;
|
| | | font-size: 12px;
|
| | | }
|
| | |
|
| | | .opts {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | .opt {
|
| | | width: fit-content;
|
| | | height: 32px;
|
| | | width: 100px;
|
| | | height: 36px;
|
| | | padding: 0 15px;
|
| | | border-radius: 4px;
|
| | | cursor: pointer;
|
| | | margin-right: 20px;
|
| | | line-height: 32px;
|
| | | font-size: 14px;
|
| | | line-height: 36px;
|
| | | font-size: 12px;
|
| | | font-weight: 700;
|
| | | color: #fff;
|
| | | background-color: rgba(61, 104, 225, 1);
|
| | | background-color: #4e94ff;
|
| | | }
|
| | | }
|
| | | }
|
| | | .search {
|
| | | width: 280px;
|
| | | height: 36px;
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
|
| | | .input-with-select {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | |
|
| | | input {
|
| | | height: 100%;
|
| | | border-radius: 18px 0 0 18px;
|
| | | border: 2px solid #f2f2f7;
|
| | | border-right: none;
|
| | |
|
| | | &:focus,
|
| | | &:focus + .el-input-group__append {
|
| | | border-color: #409eff;
|
| | | }
|
| | | }
|
| | |
|
| | | .el-input-group__append {
|
| | | transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
|
| | | background-color: #fff;
|
| | | border: 2px solid #f2f2f7;
|
| | | border-radius: 0 18px 18px 0;
|
| | | border-left: none;
|
| | | }
|
| | | }
|
| | |
|
| | | span {
|
| | | cursor: pointer;
|
| | | color: rgb(47, 45, 61);
|
| | | font-weight: 700;
|
| | | font-size: 19px;
|
| | | }
|
| | | }
|
| | | }
|
| | | .second {
|
| | | display: flex;
|
| | | margin: 10px 0;
|
| | | padding: 0 20px;
|
| | | align-items: center;
|
| | | font-size: 14px;
|
| | | margin: 15px 0 20px 0;
|
| | | padding: 0 20px;
|
| | | .title {
|
| | | margin-right: 10px;
|
| | | min-width: fit-content;
|
| | | font-weight: bold;
|
| | | font-size: 12px;
|
| | | }
|
| | | .bar {
|
| | | display: flex;
|
| | | align-items: baseline;
|
| | | width: fit-content;
|
| | | padding-left: 20px;
|
| | | margin-right: 30px;
|
| | | min-width: 120px;
|
| | |
|
| | | .name {
|
| | | margin-right: 5px;
|
| | | margin-right: 15px;
|
| | | min-width: fit-content;
|
| | | font-weight: bold;
|
| | | font-size: 12px;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | border-radius: 5px;
|
| | | padding: 12px;
|
| | | background-color: white;
|
| | |
|
| | | .empty_img {
|
| | | margin: 80px auto;
|
| | | width: 164px;
|
| | | }
|
| | |
|
| | | .tableBox {
|
| | | border: none;
|
| | | &::before,
|
| | | &::after {
|
| | | display: none;
|
| | | }
|
| | |
|
| | | tr {
|
| | | td:first-child {
|
| | | border-radius: 4px 0 0 4px;
|
| | | }
|
| | | td:last-child {
|
| | | border-radius: 0 4px 4px 0;
|
| | | }
|
| | |
|
| | | &.current-row td {
|
| | | background-color: #4e94ff !important;
|
| | | color: #fff;
|
| | | }
|
| | | &:hover td {
|
| | | background-color: rgb(242, 242, 247);
|
| | | }
|
| | | }
|
| | | th {
|
| | | padding: 0 !important;
|
| | | height: 40px;
|
| | | line-height: 40px;
|
| | | border-color: #fff !important;
|
| | | border-right: 2px solid #fff;
|
| | | border-radius: 4px;
|
| | | font-size: 12px;
|
| | | background: #f2f2f7;
|
| | | }
|
| | | td {
|
| | | padding: 0 !important;
|
| | | height: 34px;
|
| | | line-height: 34px;
|
| | | border: none;
|
| | | font-size: 12px;
|
| | | }
|
| | | }
|
| | | }
|
| | | .el-pagination {
|
| | | padding: 20px 5px;
|
| | | height: 100%;
|
| | | box-sizing: border-box;
|
| | | background-color: white;
|
| | | }
|
| | | }
|
| | |
|
| | | .pollingLog_timePicker {
|
| | | width: 520px !important;
|
| | | * {
|
| | | font-size: 12px !important;
|
| | | min-width: 0px !important;
|
| | | }
|
| | |
|
| | | .el-date-range-picker__time-header {
|
| | | border: none;
|
| | | }
|
| | |
|
| | | .el-date-range-picker__content {
|
| | | padding: 2px 9px;
|
| | | }
|
| | |
|
| | | .el-date-table th {
|
| | | pad: 0 5px;
|
| | | }
|
| | |
|
| | | .el-picker-panel__shortcut {
|
| | | padding-left: 20px;
|
| | | padding-bottom: 10px;
|
| | | }
|
| | |
|
| | | .el-picker-panel__footer {
|
| | | padding: 0 20px 10px 0;
|
| | | background-color: none;
|
| | | display: flex;
|
| | | justify-content: end;
|
| | | border: none;
|
| | | button {
|
| | | display: block;
|
| | | width: 54px;
|
| | | height: 24px;
|
| | | border: 1px solid #e0e0e0;
|
| | | border-radius: 25px;
|
| | | line-height: 9px;
|
| | |
|
| | | &:first-child {
|
| | | color: #4f4f4f !important;
|
| | | }
|
| | |
|
| | | &:last-child {
|
| | | color: #fff !important;
|
| | | background-color: #4e94ff !important;
|
| | | border-color: #4e94ff !important;
|
| | | }
|
| | | }
|
| | | }
|