|
@@ -5,10 +5,11 @@
|
|
|
<el-button plain type="primary" class="shape-border" @click="enableDragMode" :disabled="state.dragMode">移动图片</el-button>
|
|
|
|
|
|
<el-button plain type="primary" style="margin-left: 30px" class="shape-border" @click="selectLastObject" :disabled="!!state.activeTarget"
|
|
|
- >选择最后一个标注(w)</el-button
|
|
|
+ >选择标注(w)</el-button
|
|
|
>
|
|
|
<el-button plain type="primary" class="shape-border" @click="rotate(8)" :disabled="!state.activeTarget"> 顺时针旋转(r) </el-button>
|
|
|
<el-button plain type="primary" class="shape-border" @click="rotate(-8)" :disabled="!state.activeTarget">逆时针旋转(e)</el-button>
|
|
|
+ <el-button plain type="primary" class="shape-border" @click="deleteOne">删除(Back)</el-button>
|
|
|
<el-button plain type="primary" style="margin-left: 30px" class="shape-border" @click="changeZoom(1.1)">放大图片</el-button>
|
|
|
<el-button plain type="primary" class="shape-border" @click="changeZoom(0.9)">缩小图片</el-button>
|
|
|
<!-- <el-button plain type="primary" class="shape-border" @click="drawPolygon('polygon')">多边形</el-button> -->
|
|
@@ -18,7 +19,7 @@
|
|
|
</template>
|
|
|
<script lang="ts" setup>
|
|
|
import { fabric } from 'fabric'
|
|
|
-import { reactive, watch, onMounted } from 'vue'
|
|
|
+import { reactive, watch, onMounted, computed } from 'vue'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
// import { sortPoints } from '@/utils/fabric'
|
|
|
|
|
@@ -93,6 +94,7 @@ const state = reactive({
|
|
|
activeLine: '' as any,
|
|
|
line: {} as canvasPoint
|
|
|
})
|
|
|
+
|
|
|
watch(
|
|
|
() => props.classDef,
|
|
|
value => {
|
|
@@ -133,14 +135,23 @@ const changeZoom = multi => {
|
|
|
state.canvas.renderAll()
|
|
|
}
|
|
|
|
|
|
+const deleteOne = () => {
|
|
|
+ const obj = state.canvas.getActiveObject()
|
|
|
+ state.canvas.remove(obj)
|
|
|
+}
|
|
|
+
|
|
|
const loadInit = () => {
|
|
|
drawTypeChange('rectangle')
|
|
|
state.color = props.classDef && props.classDef.color ? props.classDef.color : '#E34F51'
|
|
|
if (!props.isPicOnly) {
|
|
|
document.addEventListener('keydown', function (e) {
|
|
|
+ console.log(e.key, state.activeTarget, state.canvas.getActiveObject())
|
|
|
if (e.key === 'w' || e.key === 'W') {
|
|
|
selectLastObject()
|
|
|
return
|
|
|
+ } else if (e.key === 'Backspace') {
|
|
|
+ const obj = state.canvas.getActiveObject()
|
|
|
+ state.canvas.remove(obj)
|
|
|
}
|
|
|
if (state.activeTarget) {
|
|
|
if (e.key === 'r' || e.key === 'R') {
|
|
@@ -199,8 +210,9 @@ const loadInit = () => {
|
|
|
for (let i = 0; i < props.jsonData.length; i++) {
|
|
|
let config = props.jsonData[i]
|
|
|
let subArr = config.subArr
|
|
|
- const lW = imgInstance.width * state.radio
|
|
|
- const lH = imgInstance.height * state.radio
|
|
|
+ console.log('ratio', state.radio)
|
|
|
+ const lW = imgInstance.width //* state.radio
|
|
|
+ const lH = imgInstance.height //* state.radio
|
|
|
let obj = new fabric.Path(
|
|
|
'M ' +
|
|
|
subArr[1] * lW +
|
|
@@ -786,6 +798,7 @@ const getData = () => {
|
|
|
// }
|
|
|
})
|
|
|
} else {
|
|
|
+ // console.log('else')
|
|
|
marks.forEach(mark => {
|
|
|
let poi = {
|
|
|
x: getPoint(aCoords[mark].x),
|
|
@@ -794,8 +807,8 @@ const getData = () => {
|
|
|
// console.log(poi)
|
|
|
poi = getRealPoint(poi)
|
|
|
// console.log(poi)
|
|
|
- poi.x = poi.x / state.realRadioX / 1920
|
|
|
- poi.y = poi.y / state.realRadioY / 1080
|
|
|
+ poi.x = poi.x / 1920
|
|
|
+ poi.y = poi.y / 1080
|
|
|
// console.log(poi)
|
|
|
point['nodes'].push(poi)
|
|
|
// point['nodes'].push(getRealPoint(poi))
|