修改截图样式不全问题
This commit is contained in:
@@ -289,7 +289,13 @@ const fetchData_wx = async () => {
|
|||||||
// 指标数据
|
// 指标数据
|
||||||
const indexList = async () => {
|
const indexList = async () => {
|
||||||
try {
|
try {
|
||||||
const lineId = deptIds.value[deptIds.value.length - 1]
|
let lineId = ''
|
||||||
|
if (typeof deptIds.value === 'string') {
|
||||||
|
lineId = deptIds.value
|
||||||
|
} else {
|
||||||
|
lineId = deptIds.value[deptIds.value.length - 1]
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const response = await targetList({ lineId: lineId })
|
const response = await targetList({ lineId: lineId })
|
||||||
if (response.data) {
|
if (response.data) {
|
||||||
@@ -304,6 +310,7 @@ const indexList = async () => {
|
|||||||
const handleDeptChange = (deptId: []) => {
|
const handleDeptChange = (deptId: []) => {
|
||||||
// labelString.value = fileRef.value.getCheckedNodes().pathLabels.join(" / ");
|
// labelString.value = fileRef.value.getCheckedNodes().pathLabels.join(" / ");
|
||||||
item_uid.value = []
|
item_uid.value = []
|
||||||
|
indexString.value = ''
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
//fileRef.value.getCheckedNodes()[0]?.label 最后一层的值
|
//fileRef.value.getCheckedNodes()[0]?.label 最后一层的值
|
||||||
let name = []
|
let name = []
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ export const useGenThumbnail = async (canvas_id: string = 'mtCanvasArea') => {
|
|||||||
// //记录要移除的svg元素
|
// //记录要移除的svg元素
|
||||||
const shouldRemoveSvgNodes = []
|
const shouldRemoveSvgNodes = []
|
||||||
// 获取到所有的SVG 得到一个数组 目前只有自定义连线需要特殊处理 别的元素直接使用html2canvas就可以
|
// 获取到所有的SVG 得到一个数组 目前只有自定义连线需要特殊处理 别的元素直接使用html2canvas就可以
|
||||||
|
|
||||||
const svgElements: NodeListOf<HTMLElement> = document.body.querySelectorAll(`#${canvas_id} .mt-line-render`)
|
const svgElements: NodeListOf<HTMLElement> = document.body.querySelectorAll(`#${canvas_id} .mt-line-render`)
|
||||||
// 遍历这个数组
|
// 遍历这个数组
|
||||||
for (const item of svgElements) {
|
for (const item of svgElements) {
|
||||||
@@ -40,13 +41,14 @@ export const useGenThumbnail = async (canvas_id: string = 'mtCanvasArea') => {
|
|||||||
|
|
||||||
const width = el.offsetWidth
|
const width = el.offsetWidth
|
||||||
const height = el.offsetHeight
|
const height = el.offsetHeight
|
||||||
|
|
||||||
const canvas = await html2canvas(el, {
|
const canvas = await html2canvas(el, {
|
||||||
useCORS: true,
|
useCORS: true,
|
||||||
scale: 2,
|
scale: 2,
|
||||||
width,
|
// width,
|
||||||
height,
|
// height,
|
||||||
allowTaint: true,
|
allowTaint: true,
|
||||||
windowHeight: height,
|
// windowHeight: height,
|
||||||
logging: false,
|
logging: false,
|
||||||
ignoreElements: element => {
|
ignoreElements: element => {
|
||||||
if (element.classList.contains('mt-line-render')) {
|
if (element.classList.contains('mt-line-render')) {
|
||||||
|
|||||||
@@ -1,40 +1,66 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="mt-edit" class="relative flex-auto w-1/1 h-1/1 dark">
|
<div id="mt-edit" class="relative flex-auto w-1/1 h-1/1 dark">
|
||||||
<el-container class="h-1/1">
|
<el-container class="h-1/1">
|
||||||
<el-header height="45px" class="dark:bg-myDarkBgColor cb-border p-0 select-none"
|
<el-header
|
||||||
@mousedown="mainPanelRef?.stopListenerKeyDown()">
|
height="45px"
|
||||||
<header-panel v-model:leftAside="aside_state.left_show" v-model:rightAside="aside_state.right_show"
|
class="dark:bg-myDarkBgColor cb-border p-0 select-none"
|
||||||
v-model:lock-state="globalStore.lock" :selected-items-id="globalStore.selected_items_id"
|
@mousedown="mainPanelRef?.stopListenerKeyDown()"
|
||||||
:group-enabled="header_group_enabled" :un-group-enabled="header_un_group_enabled"
|
>
|
||||||
:align-enabled="header_align_enabled" :delete-enabled="header_delete_enabled"
|
<header-panel
|
||||||
|
v-model:leftAside="aside_state.left_show"
|
||||||
|
v-model:rightAside="aside_state.right_show"
|
||||||
|
v-model:lock-state="globalStore.lock"
|
||||||
|
:selected-items-id="globalStore.selected_items_id"
|
||||||
|
:group-enabled="header_group_enabled"
|
||||||
|
:un-group-enabled="header_un_group_enabled"
|
||||||
|
:align-enabled="header_align_enabled"
|
||||||
|
:delete-enabled="header_delete_enabled"
|
||||||
:undo-enabled="cacheStore.historyIndex > 0"
|
:undo-enabled="cacheStore.historyIndex > 0"
|
||||||
:redo-enabled="cacheStore.historyIndex < cacheStore.history.length - 1"
|
:redo-enabled="cacheStore.historyIndex < cacheStore.history.length - 1"
|
||||||
:real-time-data="globalStore.real_time_data" :use-thumbnail="mtEidtProps.useThumbnail"
|
:real-time-data="globalStore.real_time_data"
|
||||||
@on-group-click="mainPanelRef?.createGroupItem" @on-ungroup-click="mainPanelRef?.onUngroup"
|
:use-thumbnail="mtEidtProps.useThumbnail"
|
||||||
@on-delete-click="onDeleteClick" @on-export-click="onExportClick"
|
@on-group-click="mainPanelRef?.createGroupItem"
|
||||||
@on-tree-click="done_json_tree_visiable = true" @on-help-click="onHelpClick"
|
@on-ungroup-click="mainPanelRef?.onUngroup"
|
||||||
@align-selected="onAlignSelected" @on-redo-click="onRedoClick" @on-undo-click="onUndoClick"
|
@on-delete-click="onDeleteClick"
|
||||||
@on-import-click="onImportClick" @on-return-click="emits('onReturnClick')"
|
@on-export-click="onExportClick"
|
||||||
@on-save-click="onSaveClick" @on-preview-click="onPreviewClick"
|
@on-tree-click="done_json_tree_visiable = true"
|
||||||
@on-thumbnail-click="onThumbnailClick" @on-draw-line-click="onDrawLineClick"
|
@on-help-click="onHelpClick"
|
||||||
@on-save-all="onSaveAll"></header-panel>
|
@align-selected="onAlignSelected"
|
||||||
|
@on-redo-click="onRedoClick"
|
||||||
|
@on-undo-click="onUndoClick"
|
||||||
|
@on-import-click="onImportClick"
|
||||||
|
@on-return-click="emits('onReturnClick')"
|
||||||
|
@on-save-click="onSaveClick"
|
||||||
|
@on-preview-click="onPreviewClick"
|
||||||
|
@on-thumbnail-click="onThumbnailClick"
|
||||||
|
@on-draw-line-click="onDrawLineClick"
|
||||||
|
@on-save-all="onSaveAll"
|
||||||
|
></header-panel>
|
||||||
</el-header>
|
</el-header>
|
||||||
<el-container class="h-[calc(100%-45px-40px)]">
|
<el-container class="h-[calc(100%-45px-40px)]">
|
||||||
<el-aside :width="aside_state.left_show ? '300px' : '0px'"
|
<el-aside
|
||||||
|
:width="aside_state.left_show ? '300px' : '0px'"
|
||||||
class="dark:bg-myDarkBgColor cr-border mt-edit-aside h-1/1 select-none mt-edit-aside-left"
|
class="dark:bg-myDarkBgColor cr-border mt-edit-aside h-1/1 select-none mt-edit-aside-left"
|
||||||
@mousedown="mainPanelRef?.stopListenerKeyDown()">
|
@mousedown="mainPanelRef?.stopListenerKeyDown()"
|
||||||
|
>
|
||||||
<tabs></tabs>
|
<tabs></tabs>
|
||||||
|
|
||||||
<!-- <left-aside :leftAsideConfig="leftAsideStore.config"></left-aside> -->
|
<!-- <left-aside :leftAsideConfig="leftAsideStore.config"></left-aside> -->
|
||||||
</el-aside>
|
</el-aside>
|
||||||
<el-main class="dark:bg-myMainDarkBgColor" @mousedown="mainPanelRef?.beginListenerKeyDown()">
|
<el-main class="dark:bg-myMainDarkBgColor" @mousedown="mainPanelRef?.beginListenerKeyDown()">
|
||||||
<main-panel ref="mainPanelRef" :group-enabled="header_group_enabled"
|
<main-panel
|
||||||
:un-group-enabled="header_un_group_enabled" :delete-enabled="header_delete_enabled"
|
ref="mainPanelRef"
|
||||||
:line-append-enable="line_append_enable"></main-panel>
|
:group-enabled="header_group_enabled"
|
||||||
|
:un-group-enabled="header_un_group_enabled"
|
||||||
|
:delete-enabled="header_delete_enabled"
|
||||||
|
:line-append-enable="line_append_enable"
|
||||||
|
></main-panel>
|
||||||
</el-main>
|
</el-main>
|
||||||
<el-aside :width="aside_state.right_show ? '300px' : '0px'"
|
<el-aside
|
||||||
|
:width="aside_state.right_show ? '300px' : '0px'"
|
||||||
class="dark:bg-myDarkBgColor cl-border mt-edit-aside select-none"
|
class="dark:bg-myDarkBgColor cl-border mt-edit-aside select-none"
|
||||||
@mousedown="mainPanelRef?.stopListenerKeyDown()">
|
@mousedown="mainPanelRef?.stopListenerKeyDown()"
|
||||||
|
>
|
||||||
<right-aside>
|
<right-aside>
|
||||||
<template v-if="hasDeviceBindSlot" #deviceBind="{ item }">
|
<template v-if="hasDeviceBindSlot" #deviceBind="{ item }">
|
||||||
<slot name="deviceBind" :item="item" />
|
<slot name="deviceBind" :item="item" />
|
||||||
@@ -46,22 +72,36 @@
|
|||||||
<footer-panel></footer-panel>
|
<footer-panel></footer-panel>
|
||||||
</el-footer>
|
</el-footer>
|
||||||
</el-container>
|
</el-container>
|
||||||
<el-dialog :close-on-click-modal="false" v-model="import_visible" title="数据导入"
|
<el-dialog
|
||||||
@close="mainPanelRef?.beginListenerKeyDown()">
|
:close-on-click-modal="false"
|
||||||
|
v-model="import_visible"
|
||||||
|
title="数据导入"
|
||||||
|
@close="mainPanelRef?.beginListenerKeyDown()"
|
||||||
|
>
|
||||||
<import-json ref="importJsonRef"></import-json>
|
<import-json ref="importJsonRef"></import-json>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button type="primary" @click="onImportYes">确定</el-button>
|
<el-button type="primary" @click="onImportYes">确定</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog :close-on-click-modal="false" v-model="export_visible" title="数据导出"
|
<el-dialog
|
||||||
@close="mainPanelRef?.beginListenerKeyDown()">
|
:close-on-click-modal="false"
|
||||||
<export-json :done-json="objectDeepClone(globalStore.done_json)" :canvas-cfg="globalStore.canvasCfg"
|
v-model="export_visible"
|
||||||
:grid-cfg="globalStore.gridCfg"></export-json>
|
title="数据导出"
|
||||||
|
@close="mainPanelRef?.beginListenerKeyDown()"
|
||||||
|
>
|
||||||
|
<export-json
|
||||||
|
:done-json="objectDeepClone(globalStore.done_json)"
|
||||||
|
:canvas-cfg="globalStore.canvasCfg"
|
||||||
|
:grid-cfg="globalStore.gridCfg"
|
||||||
|
></export-json>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-drawer v-model="done_json_tree_visiable" title="图形结构树" direction="ltr" size="30%">
|
<el-drawer v-model="done_json_tree_visiable" title="图形结构树" direction="ltr" size="30%">
|
||||||
<done-tree :done-json="globalStore.done_json" :selected-items-id="globalStore.selected_items_id"
|
<done-tree
|
||||||
|
:done-json="globalStore.done_json"
|
||||||
|
:selected-items-id="globalStore.selected_items_id"
|
||||||
@update-selected-items-id="onTreeUpdateSelectedItemsId"
|
@update-selected-items-id="onTreeUpdateSelectedItemsId"
|
||||||
@update-selected-id-hide="onDoneTreeUpdateSelectedIdHide"></done-tree>
|
@update-selected-id-hide="onDoneTreeUpdateSelectedIdHide"
|
||||||
|
></done-tree>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -195,7 +235,6 @@ const onSaveAll = async () => {
|
|||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
let form = new FormData()
|
let form = new FormData()
|
||||||
let blob = new Blob([JSON.stringify(data)], {
|
let blob = new Blob([JSON.stringify(data)], {
|
||||||
type: 'application/json'
|
type: 'application/json'
|
||||||
|
|||||||
@@ -54,9 +54,9 @@ class MQTT {
|
|||||||
try {
|
try {
|
||||||
// const mqttUrl = 'ws://192.168.1.103:8083/mqtt'
|
// const mqttUrl = 'ws://192.168.1.103:8083/mqtt'
|
||||||
const mqttUrl =
|
const mqttUrl =
|
||||||
localStorage.getItem('MqttUrl') == 'null'
|
localStorage.getItem('MQTTZUTAI') == 'null'
|
||||||
? 'ws://192.168.1.24:8085/mqtt'
|
? 'ws://192.168.1.24:8085/mqtt'
|
||||||
: localStorage.getItem('MqttUrl')
|
: localStorage.getItem('MQTTZUTAI')
|
||||||
console.log('🚀 ~ MQTT ~ init ~ mqttUrl:', mqttUrl)
|
console.log('🚀 ~ MQTT ~ init ~ mqttUrl:', mqttUrl)
|
||||||
this.client = mqtt.connect(mqttUrl, this.defaultOptions as IClientOptions)
|
this.client = mqtt.connect(mqttUrl, this.defaultOptions as IClientOptions)
|
||||||
this.setupEventListeners()
|
this.setupEventListeners()
|
||||||
|
|||||||
Reference in New Issue
Block a user