Files
maintenance_system/src/views/largeScreen/components/newMap/dialog/addStandText.vue
2025-10-11 09:56:33 +08:00

81 lines
2.0 KiB
Vue

<template>
<Dialog ref="baseDialog" title="立体文字" left="calc(50% - 160px)" top="calc(50% - 120px)">
<template #content>
<textarea style="height: 76px; width: 270px" v-model="text"></textarea>
</template>
<template #footer>
<button @click="confirm">确定</button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { ref, inject } from 'vue';
import { addOtherSource } from '@/views/largeScreen/components/api';
import Dialog from './baseDialog.vue';
import { initMapData } from '../initMapData';
import { useTreeNode } from '../treeNode';
const { cusAddNodes } = useTreeNode();
const eventBus: any = inject('bus');
const baseDialog: any = ref(null);
const text = ref('');
const open = () => {
baseDialog.value?.open();
};
const confirm = () => {
baseDialog.value?.close();
let name = text.value;
text.value = '';
let Draw = new window['YJ'].Draw.DrawPolyline(window['Earth1']);
Draw.start(async (a, positions) => {
if (!positions || positions.length < 2) {
return;
}
let id = new window['YJ'].Tools().randomString();
let options: any = await initMapData(
'standText',
{
id: id,
name: name,
text: name,
positions: positions
},
null
);
delete options.host;
console.log('options', options);
let selectedNodes = window['treeObj'].getSelectedNodes();
let node = selectedNodes && selectedNodes[selectedNodes.length - 1];
let parentId;
if (node) {
if (node.sourceType === 'directory') {
parentId = node.id;
} else {
parentId = node.parentId;
}
}
let params: any = {
id: id,
sourceName: name,
sourceType: 'standText',
parentId: parentId,
// "treeIndex": 0,
params: options
};
addOtherSource(params);
params.params = JSON.stringify(params.params);
params.isShow = true;
cusAddNodes(window['treeObj'], params.parentId, [params]);
});
};
defineExpose({
open
});
</script>
<style scoped lang="scss"></style>