左侧树高度超出显示滚动条,鼠标移入应用小图标显示实时快照,样式调整
| | |
| | | padding: 5px; |
| | | box-sizing: border-box; |
| | | position: relative; |
| | | // display: inline-block; |
| | | // vertical-align: middle; |
| | | img { |
| | | width: 100%; |
| | | cursor: pointer; |
| | |
| | | height: 100%; |
| | | box-sizing: border-box; |
| | | padding: 5px; |
| | | .el-button--info{ |
| | | color: #222; |
| | | } |
| | | .upload-area { |
| | | width: 300px; |
| | | height: 100%; |
| | |
| | | padding: 5px; |
| | | box-sizing: border-box; |
| | | position: relative; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | img { |
| | | width: 100%; |
| | | object-fit: contain; |
| | | cursor: pointer; |
| | | border-radius: 3px; |
| | |
| | | padding: 5px; |
| | | box-sizing: border-box; |
| | | position: relative; |
| | | // display: inline-block; |
| | | // vertical-align: middle; |
| | | img { |
| | | width: 100%; |
| | | cursor: pointer; |
| | |
| | | padding: 5px; |
| | | box-sizing: border-box; |
| | | position: relative; |
| | | // display: inline-block; |
| | | // vertical-align: middle; |
| | | img { |
| | | width: 100%; |
| | | cursor: pointer; |
| | |
| | | border |
| | | :cell-style="cellStyle" |
| | | > |
| | | <el-table-column label="序号" type="index" align="center" width="100px"></el-table-column> |
| | | <el-table-column label="序号" type="index" align="center" width="60px"></el-table-column> |
| | | <el-table-column label="摄像机名称" align="center" show-overflow-tooltip sortable> |
| | | <template slot-scope="scope"> |
| | | <span |
| | |
| | | </el-table-column> |
| | | <el-table-column label="摄像机地址" prop="addr" align="center" show-overflow-tooltip sortable></el-table-column> |
| | | <el-table-column label="摄像机IP" prop="ip" align="center" width="130px" sortable></el-table-column> |
| | | <el-table-column label="摄像机类型" align="center" width="110px" sortable> |
| | | <el-table-column label="摄像机类型" align="center" width="120px" sortable> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.run_type | cameraType}}</span> |
| | | </template> |
| | |
| | | title="算力设置" |
| | | :visible.sync="drawer" |
| | | direction="rtl" |
| | | size="350px" |
| | | size="450px" |
| | | custom-class="e-drawer" |
| | | :before-close="closeDrawer" |
| | | > |
| | |
| | | |
| | | .e-drawer { |
| | | // margin-top: 150px; |
| | | |
| | | font-family: PingFangSC-Medium; |
| | | font-size: 14px; |
| | | &:focus{ |
| | | outline: none; |
| | | } |
| | | .el-dialog__close{ |
| | | &:focus{ |
| | | outline: none!important; |
| | | } |
| | | } |
| | | .dawer_details { |
| | | text-align: left; |
| | | margin-left: 70px; |
| | |
| | | } |
| | | |
| | | .el-drawer__header { |
| | | border-bottom: 2px solid #eee; |
| | | padding-bottom: 10px; |
| | | font-size: 16px; |
| | | margin-bottom: 0px; |
| | | span{ |
| | | border: none!important; |
| | | border-image-width: 0!important; |
| | | &:focus{ |
| | | outline: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="resize-bar"></div> |
| | | <div class="resize-line"></div> |
| | | <div class="resize-save"> |
| | | <left-nav :appName="app" :edit="editTree"></left-nav> |
| | | <left-nav :appName="app" :edit="editTree" :height="screenHeight"></left-nav> |
| | | </div> |
| | | </div> |
| | | <div class="column-right" > |
| | |
| | | height: 100%; |
| | | } |
| | | .column-left { |
| | | height: inherit; |
| | | height: 100%; |
| | | padding-bottom: 20px; |
| | | box-sizing: border-box; |
| | | // height: inherit; |
| | | background-color: #fff; |
| | | position: relative; |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | .ev-left-list { |
| | | border-right: 1px solid #e0e0e0; |
| | | min-width: 384px; |
| | | } |
| | | |
| | | .ant-divider, |
| | |
| | | padding-top: 20px; |
| | | //height: 50em; |
| | | .left-list { |
| | | min-width:340px; |
| | | position: absolute; |
| | | left: 15px; |
| | | top: 10px; |
| | |
| | | type: "3", |
| | | screenshot: shotSrc |
| | | }); |
| | | }).catch(e=>{ |
| | | console.log(e); |
| | | this.$store.commit('desktop/addMinDock', { |
| | | id: this.data.id, |
| | | src: this.data.icon, |
| | | alt: this.data.title, |
| | | type: "3", |
| | | screenshot: '' |
| | | }); |
| | | }); |
| | | return false; |
| | | //this.refreshDock(); |
| | |
| | | } |
| | | |
| | | .d-frame .d-frame-title { |
| | | /* min-width: 378px; */ |
| | | height: 30px; |
| | | background-color: #e0e0e0; |
| | | border-radius: 4px 4px 0 0; |
| | |
| | | </div> |
| | | </div> |
| | | <div class="tools-middle"> |
| | | <div v-for="dock in $store.state.desktop.minDocks" :key="dock.id" class="dock-item-wrap" :class="{'actived':dock.highlight}"> |
| | | <div v-for="dock in $store.state.desktop.minDocks" :key="dock.id" class="dock-item-wrap" :class="{'actived':dock.highlight}" @mouseover="screenShot(dock)"> |
| | | <a @click="dockClick(dock)"> |
| | | <img class="dock-item" :src="dock.src" :alt="dock.alt" /> |
| | | <img class="dock-shot" :src="dock.screenshot" v-if="dock.screenshot"/> |
| | | |
| | | <!-- <iframe class="dock-shot" :src="dock.url" ></iframe> --> |
| | | </a> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import html2canvas from 'html2canvas'; |
| | | import {logout} from "@/api/login"; |
| | | export default { |
| | | name: "Tools", |
| | |
| | | this.$store.commit("desktop/refreshFrame", dock); |
| | | } |
| | | }, |
| | | screenShot(dock){ |
| | | debugger |
| | | //找到当前的iframe |
| | | let curIframe = Array.from(document.querySelectorAll('iframe')).find(iframe => iframe.src.indexOf(dock.url) >= 0); |
| | | //保存当前应用快照 |
| | | html2canvas(curIframe.contentWindow.document.body, { |
| | | dpi: window.devicePixelRatio * 4, |
| | | logging: true, //查看html2canvas内部执行流程 |
| | | removeContainer: true, |
| | | imageTimeout: 0, |
| | | useCORS: true, //开启跨域配置 |
| | | //allowTaint: true |
| | | }).then(canvas => { |
| | | let shotSrc = canvas.toDataURL(); |
| | | // this.$store.commit('desktop/addMinDock', { |
| | | // id: dock.id, |
| | | // src: dock.icon, |
| | | // alt: dock.title, |
| | | // type: "3", |
| | | // screenshot: shotSrc |
| | | // }); |
| | | this.$store.commit('desktop/shotscreen', {id:dock.id, src:shotSrc}); |
| | | |
| | | }).catch(e => { |
| | | this.$store.commit('desktop/shotscreen', {id:dock.id, src:''}); |
| | | }); |
| | | }, |
| | | toLogout(){ |
| | | this.$confirm("提示:确定退出吗?", { |
| | | center: true, |
| | |
| | | float: left; |
| | | position: relative; |
| | | } |
| | | |
| | | .tools .tools-middle::before { |
| | | width: 1px; |
| | | height: 20px; |
| | |
| | | } |
| | | .dock-item-wrap .dock-shot { |
| | | visibility: hidden; |
| | | /* transform: scale(0.5); */ |
| | | width: 100px; |
| | | height: 46px; |
| | | position: absolute; |
| | |
| | | </template>
|
| | |
|
| | | <script>
|
| | |
|
| | | export default {
|
| | | name: 'toolsEntry',
|
| | | data() {
|
| | |
| | | alt: dock.title,
|
| | | type: "3",
|
| | | highlight: true,
|
| | | url: dock.url,
|
| | | screenshot: ''
|
| | | });
|
| | | } else if (dock.type === '2' && dock.isOpen) {
|
| | | this.$store.commit('desktop/resetMinFrame', dock.id);
|
| | |
| | | "type": "2", |
| | | "url": "/view/vindicate", |
| | | "title": "系统维护", |
| | | "width": 758, |
| | | "width": 760, |
| | | "height": 534 |
| | | } |
| | | ] |
| | |
| | | |
| | | return true; |
| | | }, |
| | | |
| | | shotscreen: (state, {id,src}) => { |
| | | let curFrame = state.frames.find(frame => frame.id == id); |
| | | if(!curFrame.isShow){ |
| | | return |
| | | } |
| | | let curDock = state.minDocks.find(one => one.id == id); |
| | | curDock.screenshot = src; |
| | | }, |
| | | addMinDock: (state, dock) => { |
| | | let ids = state.minDocks.map(item => item.id); |
| | | |
| | |
| | | let minOne = state.minDocks.find(one => one.id == dock.id); |
| | | |
| | | minOne.highlight = false; |
| | | debugger |
| | | minOne.screenshot = dock.screenshot; |
| | | //找到minDocks最近打开的状态isShow为true的dock置为高亮 |
| | | let minLen = state.minDocks.length; |
| | |
| | | }, |
| | | menuOpen(){ |
| | | |
| | | }, |
| | | menuClose(){ |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | .el-drawer.ltr, |
| | | .el-drawer.rtl { |
| | | width: 27% !important; |
| | | height: 90%; |
| | | top: 9%; |
| | | //height: 90%; |
| | | //top: 9%; |
| | | .el-drawer__header { |
| | | border-bottom: 2px solid #eee; |
| | | padding-bottom: 10px; |
| | |
| | | .el-drawer.rtl { |
| | | min-width: 450px; |
| | | width: 25% !important; |
| | | height: 90%; |
| | | min-height: 1100px; |
| | | top: 9%; |
| | | //height: 90%; |
| | | //min-height: 1100px; |
| | | //top: 9%; |
| | | .el-drawer__header { |
| | | border-bottom: 2px solid #eee; |
| | | padding-bottom: 10px; |
| | |
| | | } |
| | | |
| | | .drawerSpace { |
| | | height: 900px; |
| | | height: calc(100% - 140px); |
| | | box-sizing: border-box; |
| | | margin-bottom: 30px; |
| | | overflow-y: scroll; |
| | | .uploadLine { |
| | |
| | | border-bottom: none; |
| | | // border-bottom: none; |
| | | } |
| | | .el-dialog{ |
| | | min-width: 515px; |
| | | .el-button--info{ |
| | | color: #222; |
| | | } |
| | | } |
| | | .el-dialog__header { |
| | | padding: 20px 0 10px; |
| | | text-align: left; |
| | |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | |
| | | <hsc-window-style-metal class="windown-model"> |
| | | <hsc-window |
| | | v-for="(item, index) in CardList.addBaseList" |
| | | :closeButton="true" |
| | | @closebuttonclick="closeWindow(index)" |
| | | :key="index" |
| | | @update:height="resizeHeight" |
| | | @update:width="resizeWidth" |
| | | style="background:white; height:475px" |
| | | :left="center.x + index * 10" |
| | | :top="center.y + index * 10" |
| | | :resizable="true" |
| | | positionHint="center" |
| | | :isScrollable="true" |
| | | :minWidth="662" |
| | | :minHeight="479" |
| | | :maxWidth="10000" |
| | | :maxHeight="7000" |
| | | :height="defaultHeight" |
| | | :width="defaultWidth" |
| | | > |
| | | <div class="addToBase"> |
| | | <div class="topLabel">加入底库</div> |
| | | <div class="items"> |
| | | <div class="lable"> |
| | | <p>黑名单 ></p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group v-model="VideoPhotoData.selectBlacks" @change="blackAngWhite"> |
| | | <div class="base" v-for="(item, index) in VideoPhotoData.blackList" :key="index"> |
| | | <el-checkbox |
| | | :label="item.value" |
| | | :title="item.title" |
| | | :disabled="item.disabled" |
| | | >{{item.title}}</el-checkbox> |
| | | </div> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <div class="items"> |
| | | <div class="lable"> |
| | | <p>白名单 ></p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group v-model="VideoPhotoData.selectWhites" @change="blackAngWhite"> |
| | | <div class="base" v-for="(item, index) in VideoPhotoData.whiteList" :key="index"> |
| | | <el-checkbox |
| | | :label="item.value" |
| | | :title="item.title" |
| | | :disabled="item.disabled" |
| | | >{{item.title}}</el-checkbox> |
| | | </div> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <div class="buttons"> |
| | | <el-button type="primary" @click="saveAddBase(item, index)">保存</el-button> |
| | | <el-button type="default" @click="closeWindow(index)">取消</el-button> |
| | | </div> |
| | | </div> |
| | | </hsc-window> |
| | | </hsc-window-style-metal> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | this.VideoPhotoData.activeCard = obj.activeObject.id; |
| | | }, |
| | | toAdd(item) { |
| | | debugger |
| | | this.CardList.addBaseList.push(item) |
| | | }, |
| | | handleClose(done) { |
| | |
| | | <style lang="scss"> |
| | | .s-system-manage { |
| | | width: 100% !important; |
| | | min-width: 1067px; |
| | | height: 100%; |
| | | box-sizing: border-box; |
| | | padding: 10px; |
| | |
| | | <style lang="scss"> |
| | | .s-system-manage { |
| | | width: 100% !important; |
| | | min-width: 759px; |
| | | box-sizing: border-box; |
| | | padding: 10px; |
| | | // background-color: #e9ebf2; |