next-element-vue 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +4 -4
- package/dist/index.js +301 -105
- package/dist/index.min.js +3 -3
- package/dist/index.umd.js +297 -103
- package/dist/index.umd.min.js +3 -3
- package/dist/packages/components/crud-table/src/config.d.ts +3 -0
- package/dist/packages/components/crud-table-virtualized/src/index.test.d.ts +2 -2
- package/dist/packages/components/labelimg/index.d.ts +2 -6
- package/dist/packages/components/labelimg/src/config.d.ts +1 -1
- package/dist/packages/components/labelimg/src/hooks/canvas-context-hook.d.ts +1 -0
- package/dist/packages/components/labelimg/src/index.d.ts +2 -6
- package/dist/packages/components/labelimg/src/widgets/right-label.d.ts +6 -0
- package/dist/packages/components/labelimg/src/widgets/tool-header.d.ts +35 -0
- package/dist/packages/components/layout/src/config.d.ts +2 -0
- package/dist/packages/hooks/use-locale/index.d.ts +3 -0
- package/dist/packages/locale/lang/en.d.ts +3 -0
- package/dist/packages/locale/lang/zh-cn.d.ts +3 -0
- package/dist/packages/locale/lang/zh-tw.d.ts +3 -0
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* 作 者:huangteng
|
|
4
4
|
* 邮 箱:htengweb@163.com
|
|
5
|
-
* 当前版本:0.3.
|
|
6
|
-
* 发布日期:2024-06-
|
|
5
|
+
* 当前版本:0.3.2 v
|
|
6
|
+
* 发布日期:2024-06-27
|
|
7
7
|
* 地 址:https://www.npmjs.com/package/next-element-vue
|
|
8
8
|
*/
|
|
9
9
|
|
|
@@ -794,7 +794,10 @@
|
|
|
794
794
|
labelimg: {
|
|
795
795
|
saveTxt: "保存中...",
|
|
796
796
|
emptyLabelText: "暂无标签数据",
|
|
797
|
-
confirmDeleteLabel: "确定要删除该标注吗?"
|
|
797
|
+
confirmDeleteLabel: "确定要删除该标注吗?",
|
|
798
|
+
saveLabel: "保存当前标注",
|
|
799
|
+
instructions: "使用说明",
|
|
800
|
+
labelNoUpdate: "暂无标签数据更新"
|
|
798
801
|
}
|
|
799
802
|
}
|
|
800
803
|
}, enLocale = {
|
|
@@ -869,7 +872,10 @@
|
|
|
869
872
|
labelimg: {
|
|
870
873
|
saveTxt: "saving...",
|
|
871
874
|
emptyLabelText: "No label data",
|
|
872
|
-
confirmDeleteLabel: "Are you sure you want to delete this annotation?"
|
|
875
|
+
confirmDeleteLabel: "Are you sure you want to delete this annotation?",
|
|
876
|
+
saveLabel: "save label",
|
|
877
|
+
instructions: "instructions",
|
|
878
|
+
labelNoUpdate: "No label data update"
|
|
873
879
|
}
|
|
874
880
|
}
|
|
875
881
|
}, zhtwLocale = {
|
|
@@ -944,7 +950,10 @@
|
|
|
944
950
|
labelimg: {
|
|
945
951
|
saveTxt: "保存中...",
|
|
946
952
|
emptyLabelText: "暂无标签数据",
|
|
947
|
-
confirmDeleteLabel: "确定要删除该标注吗?"
|
|
953
|
+
confirmDeleteLabel: "确定要删除该标注吗?",
|
|
954
|
+
saveLabel: "保存当前标注",
|
|
955
|
+
instructions: "使用说明",
|
|
956
|
+
labelNoUpdate: "暂无标签数据更新"
|
|
948
957
|
}
|
|
949
958
|
}
|
|
950
959
|
};
|
|
@@ -1090,13 +1099,16 @@
|
|
|
1090
1099
|
} ],
|
|
1091
1100
|
userDropdown: [ {
|
|
1092
1101
|
value: "/",
|
|
1093
|
-
label: "next.layout.home"
|
|
1102
|
+
label: "next.layout.home",
|
|
1103
|
+
svg: '<svg t="1718695810903" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11410" width="16" height="16"><path d="M988.672 502.272l-476.16-476.16-476.16 476.16c-8.704 8.704-8.704 22.528 0 31.232l1.536 1.536c8.704 8.704 22.528 8.704 31.232 0l443.392-443.392 443.392 443.392c8.704 8.704 22.528 8.704 31.232 0l1.536-1.536c8.704-8.704 8.704-22.528 0-31.232z" fill="" p-id="11411"></path><path d="M860.16 534.016c-12.288 0-22.016 9.728-22.016 22.016v333.312c0 54.272-27.648 64-47.104 64h-152.064v-227.84c0-25.088 0-59.392-44.544-59.392H418.816c-44.032 0-44.032 33.28-44.032 59.392v227.84h-153.6c-44.032 0-45.056-64-45.056-64v-333.312c0.512-12.288-8.704-22.528-20.992-23.04-12.288-0.512-22.528 8.704-23.04 20.992v368.64c0 65.536 70.144 75.264 70.144 75.264h217.088v-287.232h176.64v287.232H824.32c39.424 0 57.856-44.032 57.856-75.264v-366.592c0-12.288-9.728-22.016-22.016-22.016z" fill="" p-id="11412"></path></svg>'
|
|
1094
1104
|
}, {
|
|
1095
1105
|
value: "/personal",
|
|
1096
|
-
label: "next.layout.personal"
|
|
1106
|
+
label: "next.layout.personal",
|
|
1107
|
+
svg: '<svg t="1718695007028" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2161" width="16" height="16"><path d="M512 87.04c-136.704 0-247.808 111.104-247.808 247.808 0 98.816 58.368 184.32 142.336 223.744-155.136 45.568-268.8 188.928-268.8 358.912 0 10.752 8.704 19.456 19.456 19.456 10.752 0 19.456-8.704 19.456-19.456 0-184.832 150.528-335.36 335.36-335.36 136.704 0 247.808-111.104 247.808-247.808S648.704 87.04 512 87.04z m0 456.192c-115.2 0-208.384-93.696-208.384-208.384 0-115.2 93.696-208.384 208.384-208.384 115.2 0 208.384 93.696 208.384 208.384 0 114.688-93.184 208.384-208.384 208.384z m226.816 76.8c-8.704-6.656-20.992-5.12-27.648 3.584-6.656 8.704-5.12 20.992 3.584 27.648 83.968 64 132.096 161.28 132.096 266.752 0 10.752 8.704 19.456 19.456 19.456 10.752 0 19.456-8.704 19.456-19.456 0.512-118.272-53.248-226.816-146.944-297.984z" fill="" p-id="2162"></path></svg>'
|
|
1097
1108
|
}, {
|
|
1098
1109
|
value: "logOut",
|
|
1099
1110
|
label: "next.layout.logOut",
|
|
1111
|
+
svg: '<svg t="1718695049981" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2313" width="16" height="16"><path d="M896 928H384a32 32 0 0 1-32-32v-128a32 32 0 0 1 64 0v96h448v-704h-448V256a32 32 0 1 1-64 0V128a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32z" fill="" p-id="2314"></path><path d="M608 544H192a32 32 0 0 1 0-64h416a32 32 0 0 1 0 64z" fill="" p-id="2315"></path><path d="M256 672a30.08 30.08 0 0 1-22.4-9.6l-128-128a30.72 30.72 0 0 1 0-44.8l128-128a31.36 31.36 0 1 1 44.8 44.8L173.44 512l104.96 105.6a30.72 30.72 0 0 1 0 44.8 30.08 30.08 0 0 1-22.4 9.6z" fill="" p-id="2316"></path></svg>',
|
|
1100
1112
|
divided: !0
|
|
1101
1113
|
} ],
|
|
1102
1114
|
showTabs: !0,
|
|
@@ -1463,7 +1475,18 @@
|
|
|
1463
1475
|
}, null, -1) ];
|
|
1464
1476
|
var view_default = export_helper_default(view_vue_vue_type_script_lang_default, [ [ "render", function(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1465
1477
|
return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1283, _hoisted_3282);
|
|
1466
|
-
} ], [ "__file", "view.vue" ] ]),
|
|
1478
|
+
} ], [ "__file", "view.vue" ] ]), warning_vue_vue_type_script_lang_default = {
|
|
1479
|
+
name: "Warning"
|
|
1480
|
+
}, _hoisted_1288 = {
|
|
1481
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1482
|
+
viewBox: "0 0 1024 1024"
|
|
1483
|
+
}, _hoisted_3287 = [ vue.createElementVNode("path", {
|
|
1484
|
+
fill: "currentColor",
|
|
1485
|
+
d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0zm-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z"
|
|
1486
|
+
}, null, -1) ];
|
|
1487
|
+
var warning_default = export_helper_default(warning_vue_vue_type_script_lang_default, [ [ "render", function(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1488
|
+
return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1288, _hoisted_3287);
|
|
1489
|
+
} ], [ "__file", "warning.vue" ] ]), LayoutSetting = vue.defineComponent({
|
|
1467
1490
|
setup() {},
|
|
1468
1491
|
render() {
|
|
1469
1492
|
const _slots = vue.inject("__slots__", {}), _ns = vue.inject("__ns__", {}), _config = vue.inject("options", {}), _updateOptions = vue.inject("updateOptions", null), settingConfig = vue.reactive({
|
|
@@ -1592,16 +1615,13 @@
|
|
|
1592
1615
|
class: _ns.be("config-bar-item", "label")
|
|
1593
1616
|
}, [ vue.createTextVNode("是否显示标签栏") ]), vue.createVNode("div", {
|
|
1594
1617
|
class: _ns.be("config-bar-item", "value")
|
|
1595
|
-
}, [ vue.createVNode(
|
|
1618
|
+
}, [ vue.createVNode(elementPlus.ElSwitch, {
|
|
1596
1619
|
modelValue: _config.showTabs,
|
|
1597
1620
|
"onUpdate:modelValue": $event => _config.showTabs = $event
|
|
1598
1621
|
}, null) ]) ]), _slots.setting?.() ]
|
|
1599
1622
|
});
|
|
1600
1623
|
}
|
|
1601
1624
|
});
|
|
1602
|
-
function _isSlot$8(s) {
|
|
1603
|
-
return "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !vue.isVNode(s);
|
|
1604
|
-
}
|
|
1605
1625
|
var HeaderTools = vue.defineComponent({
|
|
1606
1626
|
setup() {
|
|
1607
1627
|
const locale = vue.inject(localeContextKey, vue.ref()), config = vue.inject("options", {}), {t: t} = useLocale(), {toggle: toggle, isFullscreen: isFullscreen} = core.useFullscreen(), language = vue.ref(vue.computed((() => config.language)).value), settingDrawer = vue.ref(!1);
|
|
@@ -1653,14 +1673,15 @@
|
|
|
1653
1673
|
}) ]),
|
|
1654
1674
|
dropdown: () => {
|
|
1655
1675
|
let _slot;
|
|
1656
|
-
return vue.createVNode(elementPlus.ElDropdownMenu, null,
|
|
1676
|
+
return vue.createVNode(elementPlus.ElDropdownMenu, null, "function" == typeof (s = _slot = _languageDropdown.map((item => vue.createVNode(elementPlus.ElDropdownItem, {
|
|
1657
1677
|
command: item.value,
|
|
1658
1678
|
disabled: this.language === item.value
|
|
1659
1679
|
}, {
|
|
1660
1680
|
default: () => [ item.label ]
|
|
1661
|
-
})))) ? _slot : {
|
|
1681
|
+
})))) || "[object Object]" === Object.prototype.toString.call(s) && !vue.isVNode(s) ? _slot : {
|
|
1662
1682
|
default: () => [ _slot ]
|
|
1663
1683
|
});
|
|
1684
|
+
var s;
|
|
1664
1685
|
}
|
|
1665
1686
|
}) ]), vue.createVNode("li", null, [ vue.createVNode("span", {
|
|
1666
1687
|
style: {
|
|
@@ -1697,6 +1718,7 @@
|
|
|
1697
1718
|
}) ]) ]), slots[slots_config_headerToolsSuffix]?.(), vue.createVNode("li", null, [ vue.createVNode(elementPlus.ElDropdown, {
|
|
1698
1719
|
"show-timeout": 70,
|
|
1699
1720
|
"hide-timeout": 80,
|
|
1721
|
+
"popper-class": _ns.be("header-tools", "userDropdown"),
|
|
1700
1722
|
onCommand: command => {
|
|
1701
1723
|
_emit("changeUserDropdown", command), _config.onChangeUserDropdown && _config.onChangeUserDropdown(command);
|
|
1702
1724
|
}
|
|
@@ -1712,15 +1734,17 @@
|
|
|
1712
1734
|
default: () => [ vue.createVNode(arrow_down_default, null, null) ]
|
|
1713
1735
|
}) ]),
|
|
1714
1736
|
dropdown: () => vue.createVNode(elementPlus.ElDropdownMenu, null, {
|
|
1715
|
-
default: () => [ _userDropdown?.map((item => {
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
})
|
|
1723
|
-
|
|
1737
|
+
default: () => [ _userDropdown?.map((item => vue.createVNode(elementPlus.ElDropdownItem, {
|
|
1738
|
+
command: item.value,
|
|
1739
|
+
divided: !!item.divided
|
|
1740
|
+
}, {
|
|
1741
|
+
default: () => [ item.svg ? vue.createVNode("span", {
|
|
1742
|
+
innerHTML: item.svg,
|
|
1743
|
+
class: "item-svg"
|
|
1744
|
+
}, null) : null, item.iconfont ? vue.createVNode("i", {
|
|
1745
|
+
class: item.iconfont
|
|
1746
|
+
}, null) : null, _t(item.label) ]
|
|
1747
|
+
}))) ]
|
|
1724
1748
|
})
|
|
1725
1749
|
}) ]), vue.createVNode("li", null, [ vue.createVNode("span", {
|
|
1726
1750
|
style: {
|
|
@@ -3135,6 +3159,8 @@
|
|
|
3135
3159
|
settingBtn: !0,
|
|
3136
3160
|
operations: !0,
|
|
3137
3161
|
operationsWidth: 260,
|
|
3162
|
+
operationsHeaderAlign: "center",
|
|
3163
|
+
operationsColumnAlign: "center",
|
|
3138
3164
|
operationsBtnPlain: !1,
|
|
3139
3165
|
operationsBtnText: !0,
|
|
3140
3166
|
operationsBtnSize: "small",
|
|
@@ -3728,7 +3754,9 @@
|
|
|
3728
3754
|
}, mergeDicData = loopDicData(columnOption.dicData);
|
|
3729
3755
|
return vue.createVNode("span", null, [ _formatterColumnValue(row[columnOption.prop], mergeDicData) ]);
|
|
3730
3756
|
}
|
|
3731
|
-
return null
|
|
3757
|
+
return columnOption.cellUnit ? vue.createVNode(vue.Fragment, null, [ vue.createVNode("span", null, [ row[columnOption.prop] ]), vue.createVNode("em", {
|
|
3758
|
+
class: "cell-unit"
|
|
3759
|
+
}, [ columnOption.cellUnit ]) ]) : null;
|
|
3732
3760
|
};
|
|
3733
3761
|
return () => vue.createVNode(vue.Fragment, null, [ !columnOption.hide && vue.createVNode(elementPlus.ElTableColumn, {
|
|
3734
3762
|
prop: columnOption.prop,
|
|
@@ -3759,8 +3787,8 @@
|
|
|
3759
3787
|
fixed: "right",
|
|
3760
3788
|
label: t("next.table.operation"),
|
|
3761
3789
|
width: options.operationsWidth,
|
|
3762
|
-
headerAlign: options.headerAlign,
|
|
3763
|
-
align: options.cellAlign
|
|
3790
|
+
headerAlign: valueExist(options.operationsHeaderAlign, options.headerAlign),
|
|
3791
|
+
align: valueExist(options.operationsColumnAlign, options.cellAlign)
|
|
3764
3792
|
}, {
|
|
3765
3793
|
default: scoped => vue.createVNode(vue.Fragment, null, [ slots["operation-column-prefix"]?.(scoped, {
|
|
3766
3794
|
text: btnText,
|
|
@@ -4155,7 +4183,7 @@
|
|
|
4155
4183
|
}
|
|
4156
4184
|
})(event, vue.toRaw(row))
|
|
4157
4185
|
}, null) : vue.createVNode(elementPlus.ElRadio, {
|
|
4158
|
-
|
|
4186
|
+
value: value,
|
|
4159
4187
|
onChange: () => {
|
|
4160
4188
|
sinleSelection.value = value, multipleSelection.value = [ row ];
|
|
4161
4189
|
}
|
|
@@ -4717,7 +4745,7 @@
|
|
|
4717
4745
|
}, {
|
|
4718
4746
|
default: () => [ col.dicData && col.dicData.map((item => vue.createVNode(elementPlus.ElRadio, {
|
|
4719
4747
|
key: item.value,
|
|
4720
|
-
|
|
4748
|
+
value: item.value,
|
|
4721
4749
|
disabled: valueExist(item.disabled, !1)
|
|
4722
4750
|
}, {
|
|
4723
4751
|
default: () => [ item.label ]
|
|
@@ -5199,7 +5227,8 @@
|
|
|
5199
5227
|
getFormExpose: () => addEditFormRef.value?.getFormExpose(),
|
|
5200
5228
|
updateColumns: ops => {
|
|
5201
5229
|
_updateColumnsAll(ops);
|
|
5202
|
-
}
|
|
5230
|
+
},
|
|
5231
|
+
getSearchFormParams: () => _searchFormParams.value
|
|
5203
5232
|
});
|
|
5204
5233
|
return () => vue.createVNode(vue.Fragment, null, [ vue.createVNode(vue.Fragment, null, [ vue.createVNode("div", {
|
|
5205
5234
|
ref: crudTableRef,
|
|
@@ -5704,7 +5733,117 @@
|
|
|
5704
5733
|
name: "NextDragResize",
|
|
5705
5734
|
props: {},
|
|
5706
5735
|
setup: () => () => vue.createVNode(vue.Fragment, null, [ vue.createVNode(vue.Fragment, null, null) ])
|
|
5707
|
-
}))
|
|
5736
|
+
}));
|
|
5737
|
+
var ToolHeader = vue.defineComponent({
|
|
5738
|
+
props: {
|
|
5739
|
+
isFullscreen: {
|
|
5740
|
+
type: Boolean,
|
|
5741
|
+
default: !1
|
|
5742
|
+
},
|
|
5743
|
+
imageIndex: {
|
|
5744
|
+
type: Number,
|
|
5745
|
+
default: 0
|
|
5746
|
+
},
|
|
5747
|
+
imageLength: {
|
|
5748
|
+
type: Number,
|
|
5749
|
+
default: 0
|
|
5750
|
+
}
|
|
5751
|
+
},
|
|
5752
|
+
emits: [ "fullscreen", "save" ],
|
|
5753
|
+
setup(props, {emit: emit}) {
|
|
5754
|
+
const _ns = vue.inject("ns", {}), {t: t} = useLocale(), switchFillscreen = val => {
|
|
5755
|
+
emit("fullscreen", val);
|
|
5756
|
+
};
|
|
5757
|
+
return () => vue.createVNode(vue.Fragment, null, [ vue.createVNode(vue.Fragment, null, [ vue.createVNode("ul", {
|
|
5758
|
+
class: [ _ns.be("header", "tool") ]
|
|
5759
|
+
}, [ vue.createVNode("li", {
|
|
5760
|
+
class: "hover",
|
|
5761
|
+
onClick: () => emit("save")
|
|
5762
|
+
}, [ vue.createVNode("svg", {
|
|
5763
|
+
t: "1719034799379",
|
|
5764
|
+
class: "icon",
|
|
5765
|
+
viewBox: "0 0 1024 1024",
|
|
5766
|
+
version: "1.1",
|
|
5767
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5768
|
+
"p-id": "4272",
|
|
5769
|
+
width: "18",
|
|
5770
|
+
height: "18"
|
|
5771
|
+
}, [ vue.createVNode("path", {
|
|
5772
|
+
d: "M831.4 252.2L711.5 132.4c-10.3-10.3-24.2-16.1-38.8-16.1h-450c-23.3 0-42.2 18.9-42.2 42.2v709.4c0 23.3 18.9 42.2 42.2 42.2h582.6c23.3 0 42.2-18.9 42.2-42.2V291c-0.1-14.5-5.8-28.5-16.1-38.8zM619.6 159v159.8c0 4-3.3 7.3-7.3 7.3H387.2c-4 0-7.3-3.3-7.3-7.3V159h239.7z m67.7 708.4H340.8v-292c0-3.9 3.2-7.1 7.1-7.1h332.4c3.9 0 7.1 3.2 7.1 7.1v292z m117.4 0H730v-292c0-27.5-22.3-49.8-49.8-49.8H347.8c-27.5 0-49.8 22.3-49.8 49.8v292h-74.7V159.1h113.9v159.8c0 27.6 22.4 50.1 50.1 50.1h225.1c27.6 0 50.1-22.4 50.1-50.1V159h10.4c3.2 0 6.3 1.3 8.6 3.6l119.9 119.9c2.3 2.3 3.6 5.3 3.6 8.6l-0.3 576.3z",
|
|
5773
|
+
"p-id": "4273"
|
|
5774
|
+
}, null), vue.createVNode("path", {
|
|
5775
|
+
d: "M536 196.3h42.7v87.2H536zM368.7 641.2h220.7v42.7H368.7zM368.7 744h170.9v42.7H368.7z",
|
|
5776
|
+
"p-id": "4274"
|
|
5777
|
+
}, null) ]), vue.createVNode("span", {
|
|
5778
|
+
style: "padding-left: 3px"
|
|
5779
|
+
}, [ t("next.labelimg.saveLabel") ]) ]) ]), vue.createVNode("ul", {
|
|
5780
|
+
class: [ _ns.be("header", "tool") ]
|
|
5781
|
+
}, [ props.imageLength ? vue.createVNode("li", null, [ vue.createVNode("span", null, [ vue.createTextVNode("第 "), props.imageIndex + 1, vue.createTextVNode(" 张") ]), vue.createVNode("em", {
|
|
5782
|
+
style: "padding: 0 5px;"
|
|
5783
|
+
}, [ vue.createTextVNode("/") ]), vue.createVNode("span", null, [ vue.createTextVNode("共 "), props.imageLength, vue.createTextVNode(" 张") ]) ]) : null, vue.createVNode("li", {
|
|
5784
|
+
style: "margin-right: 30px;",
|
|
5785
|
+
class: "hover"
|
|
5786
|
+
}, [ vue.createVNode(elementPlus.ElPopover, {
|
|
5787
|
+
trigger: "hover",
|
|
5788
|
+
placement: "bottom",
|
|
5789
|
+
width: "none"
|
|
5790
|
+
}, {
|
|
5791
|
+
reference: () => vue.createVNode("div", {
|
|
5792
|
+
class: "flex-center"
|
|
5793
|
+
}, [ vue.createVNode("span", {
|
|
5794
|
+
style: "padding-right: 3px"
|
|
5795
|
+
}, [ t("next.labelimg.instructions") ]), vue.createVNode(elementPlus.ElIcon, {
|
|
5796
|
+
size: 14
|
|
5797
|
+
}, {
|
|
5798
|
+
default: () => [ vue.createVNode(warning_default, null, null) ]
|
|
5799
|
+
}) ]),
|
|
5800
|
+
default: () => vue.createVNode("ul", {
|
|
5801
|
+
style: "font-size: 12px;white-space: nowrap;"
|
|
5802
|
+
}, [ vue.createVNode("li", null, [ vue.createVNode("span", null, [ vue.createTextVNode("W:") ]), vue.createVNode("span", null, [ vue.createTextVNode("鼠标移入图片中,长按W键,鼠标按下左键,移动鼠标开始绘制,鼠标抬起结束绘制") ]) ]), vue.createVNode("li", null, [ vue.createVNode("span", null, [ vue.createTextVNode("A:") ]), vue.createVNode("span", null, [ vue.createTextVNode("A键进入上一张图片进行标注") ]) ]), vue.createVNode("li", null, [ vue.createVNode("span", null, [ vue.createTextVNode("D:") ]), vue.createVNode("span", null, [ vue.createTextVNode("D键进入下一张图片进行标注") ]) ]) ])
|
|
5803
|
+
}) ]), props.isFullscreen ? vue.createVNode("li", {
|
|
5804
|
+
class: "hover",
|
|
5805
|
+
onClick: () => switchFillscreen(!1)
|
|
5806
|
+
}, [ vue.createVNode(elementPlus.ElTooltip, {
|
|
5807
|
+
placement: "top",
|
|
5808
|
+
content: "取消全屏"
|
|
5809
|
+
}, {
|
|
5810
|
+
default: () => [ vue.createVNode("svg", {
|
|
5811
|
+
t: "1719035442027",
|
|
5812
|
+
class: "icon",
|
|
5813
|
+
viewBox: "0 0 1024 1024",
|
|
5814
|
+
version: "1.1",
|
|
5815
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5816
|
+
"p-id": "5388",
|
|
5817
|
+
width: "18",
|
|
5818
|
+
height: "18"
|
|
5819
|
+
}, [ vue.createVNode("path", {
|
|
5820
|
+
d: "M354.133333 682.666667H256v-42.666667h170.666667v170.666667H384v-98.133334L243.2 853.333333l-29.866667-29.866666L354.133333 682.666667z m358.4 0l140.8 140.8-29.866666 29.866666-140.8-140.8V810.666667h-42.666667v-170.666667h170.666667v42.666667h-98.133334zM354.133333 384L213.333333 243.2l29.866667-29.866667L384 354.133333V256h42.666667v170.666667H256V384h98.133333z m358.4 0H810.666667v42.666667h-170.666667V256h42.666667v98.133333L823.466667 213.333333l29.866666 29.866667L712.533333 384z",
|
|
5821
|
+
"p-id": "5389"
|
|
5822
|
+
}, null) ]) ]
|
|
5823
|
+
}) ]) : vue.createVNode("li", {
|
|
5824
|
+
class: "hover",
|
|
5825
|
+
onClick: () => switchFillscreen(!0)
|
|
5826
|
+
}, [ vue.createVNode(elementPlus.ElTooltip, {
|
|
5827
|
+
placement: "top",
|
|
5828
|
+
content: "全屏"
|
|
5829
|
+
}, {
|
|
5830
|
+
default: () => [ vue.createVNode("svg", {
|
|
5831
|
+
t: "1719035375323",
|
|
5832
|
+
class: "icon",
|
|
5833
|
+
viewBox: "0 0 1024 1024",
|
|
5834
|
+
version: "1.1",
|
|
5835
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5836
|
+
"p-id": "5241",
|
|
5837
|
+
width: "18",
|
|
5838
|
+
height: "18"
|
|
5839
|
+
}, [ vue.createVNode("path", {
|
|
5840
|
+
d: "M285.866667 810.666667H384v42.666666H213.333333v-170.666666h42.666667v98.133333l128-128 29.866667 29.866667-128 128z m494.933333 0l-128-128 29.866667-29.866667 128 128V682.666667h42.666666v170.666666h-170.666666v-42.666666h98.133333zM285.866667 256l128 128-29.866667 29.866667-128-128V384H213.333333V213.333333h170.666667v42.666667H285.866667z m494.933333 0H682.666667V213.333333h170.666666v170.666667h-42.666666V285.866667l-128 128-29.866667-29.866667 128-128z",
|
|
5841
|
+
"p-id": "5242"
|
|
5842
|
+
}, null) ]) ]
|
|
5843
|
+
}) ]) ]) ]) ]);
|
|
5844
|
+
}
|
|
5845
|
+
});
|
|
5846
|
+
const colors = [ "#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc" ], convertToLabel = rect => {
|
|
5708
5847
|
const label_type = rect.type, x_center = rect.startX + rect.rectWidth / 2, y_center = rect.startY + rect.rectHeight / 2;
|
|
5709
5848
|
return [ label_type, parseFloat((x_center / rect.canvasWidth).toFixed(6)), parseFloat((y_center / rect.canvasHeight).toFixed(6)), parseFloat((rect.rectWidth / rect.canvasWidth).toFixed(6)), parseFloat((rect.rectHeight / rect.canvasHeight).toFixed(6)) ];
|
|
5710
5849
|
}, canvertToCanvas = (labelData, canvasWidth, canvasHeight) => {
|
|
@@ -5757,7 +5896,7 @@
|
|
|
5757
5896
|
labelRectWidthHeight.value.width = clientWidth, labelRectWidthHeight.value.height = clientHeight;
|
|
5758
5897
|
}));
|
|
5759
5898
|
const labelMenuRef = vue.ref(), labelStyleFixed = vue.computed((() => {
|
|
5760
|
-
const {left: left, top: top
|
|
5899
|
+
const {left: left, top: top} = props.labelRect, height_diff = top + labelRectWidthHeight.value.height - window.innerHeight;
|
|
5761
5900
|
let y = top;
|
|
5762
5901
|
return height_diff > 0 && (y -= height_diff), {
|
|
5763
5902
|
top: y + "px",
|
|
@@ -5910,7 +6049,7 @@
|
|
|
5910
6049
|
parentRect = props.parentEl.getBoundingClientRect(), document.addEventListener("mousemove", onMousemove),
|
|
5911
6050
|
document.addEventListener("mouseup", onMouseup);
|
|
5912
6051
|
})), vue.onUnmounted((() => {
|
|
5913
|
-
document.removeEventListener("mousemove", onMousemove
|
|
6052
|
+
document.removeEventListener("mousemove", onMousemove), document.removeEventListener("mouseup", onMouseup);
|
|
5914
6053
|
})), {
|
|
5915
6054
|
onMousedown: e => {
|
|
5916
6055
|
e.preventDefault(), isDraggle.value = !0, draggleOffset.value.diff_x = e.offsetX,
|
|
@@ -5918,7 +6057,7 @@
|
|
|
5918
6057
|
},
|
|
5919
6058
|
onMouseup: onMouseup,
|
|
5920
6059
|
onContextmenu: e => {
|
|
5921
|
-
e.preventDefault(), emit("contextmenu", e, rect.value);
|
|
6060
|
+
e.preventDefault(), e.preventDefault(), emit("contextmenu", e, rect.value);
|
|
5922
6061
|
},
|
|
5923
6062
|
rect: rect,
|
|
5924
6063
|
onMousedownDot: (e, corner) => {
|
|
@@ -6003,6 +6142,12 @@
|
|
|
6003
6142
|
})),
|
|
6004
6143
|
label_txt: yolo_label.join("\n")
|
|
6005
6144
|
};
|
|
6145
|
+
}, setContainerWidthHeight = (canvasWidth, canvasHeight) => {
|
|
6146
|
+
canvasMainRef.value.style.width = canvasWidth + "px", canvasMainRef.value.style.height = canvasHeight + "px",
|
|
6147
|
+
canvasBaseRef.value.width = canvasWidth, canvasBaseRef.value.height = canvasHeight,
|
|
6148
|
+
canvasBaseRef.value.style.width = canvasWidth + "px", canvasBaseRef.value.style.height = canvasHeight + "px",
|
|
6149
|
+
canvasRectRef.value.width = canvasWidth, canvasRectRef.value.height = canvasHeight,
|
|
6150
|
+
canvasRectRef.value.style.width = canvasWidth + "px", canvasRectRef.value.style.height = canvasHeight + "px";
|
|
6006
6151
|
}, loadingImage = vue.ref(!1), renderImageLabel = rowInfo => {
|
|
6007
6152
|
labels.value = (rowInfo => rowInfo.labels ? rowInfo.labels.map((rect => {
|
|
6008
6153
|
const typeName = props.classes[rect.type];
|
|
@@ -6013,14 +6158,13 @@
|
|
|
6013
6158
|
const image = new Image;
|
|
6014
6159
|
image.src = rowInfo.imageSrc, loadingImage.value = !0, image.onload = () => {
|
|
6015
6160
|
loadingImage.value = !1;
|
|
6016
|
-
|
|
6017
|
-
(
|
|
6018
|
-
|
|
6019
|
-
|
|
6020
|
-
|
|
6021
|
-
|
|
6022
|
-
|
|
6023
|
-
})(canvasWidth, canvasHeight), labels.value = ((labels, canvasHeight) => {
|
|
6161
|
+
let {width: width, height: height} = image;
|
|
6162
|
+
if (height > clientHeight) {
|
|
6163
|
+
const scale = height / clientHeight;
|
|
6164
|
+
height = clientHeight, image.style.height = height + "px", width /= scale;
|
|
6165
|
+
}
|
|
6166
|
+
const canvasHeight = height, scaleFactor = parseFloat((canvasHeight / height).toFixed(3)), canvasWidth = Math.ceil(width * scaleFactor);
|
|
6167
|
+
setContainerWidthHeight(canvasWidth, canvasHeight), labels.value = ((labels, canvasHeight) => {
|
|
6024
6168
|
let scale_rects = [];
|
|
6025
6169
|
for (let i = 0; i < labels.length; i++) {
|
|
6026
6170
|
const rect = labels[i], scale = parseFloat((canvasHeight / rect.canvasHeight).toFixed(3));
|
|
@@ -6075,26 +6219,13 @@
|
|
|
6075
6219
|
});
|
|
6076
6220
|
drawBaseCanvas.value.updateLabels = updateLabels, drawBaseCanvas.value.addDrawRect = addDrawRect,
|
|
6077
6221
|
drawBaseCanvas.value.hitCanvasLabel = hitCanvasLabel;
|
|
6078
|
-
const {clearCanvas: clearCanvas} = ((canvas, callback, keyW) => {
|
|
6222
|
+
const {clearCanvas: clearCanvas, removeEventAll: removeEventAll} = ((canvas, callback, keyW) => {
|
|
6079
6223
|
const canvasWidth = canvas.width, canvasHeight = canvas.height, ctx = canvas?.getContext("2d"), clearCanvas = () => {
|
|
6080
6224
|
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
|
|
6081
6225
|
};
|
|
6082
6226
|
clearCanvas();
|
|
6083
6227
|
let startX, startY, endX, endY, isDrawing = !1, isRectDraw = !1, isWKeyPressed = !1;
|
|
6084
|
-
|
|
6085
|
-
"KeyW" === event.code && (isWKeyPressed = !0, canvas.style.cursor = "crosshair",
|
|
6086
|
-
canvas.style.zIndex = "11", keyW && keyW());
|
|
6087
|
-
})), document.addEventListener("keyup", (event => {
|
|
6088
|
-
isDrawing || "KeyW" === event.code && (isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6089
|
-
canvas.style.zIndex = "0");
|
|
6090
|
-
})), canvas.addEventListener("mousedown", (e => {
|
|
6091
|
-
isWKeyPressed && (isDrawing = !0, startX = e.offsetX, startY = e.offsetY);
|
|
6092
|
-
})), canvas.addEventListener("mousemove", (e => {
|
|
6093
|
-
isDrawing && isWKeyPressed && (isRectDraw = !0, endX = e.offsetX, endY = e.offsetY,
|
|
6094
|
-
drawRect());
|
|
6095
|
-
})), canvas.addEventListener("mouseup", (() => {
|
|
6096
|
-
if (!isRectDraw) return;
|
|
6097
|
-
isDrawing = !1, isWKeyPressed = !1, canvas.style.cursor = "unset", canvas.style.zIndex = "0";
|
|
6228
|
+
const drawRectDone = () => {
|
|
6098
6229
|
const rectWidth = Math.abs(endX - startX), rectHeight = Math.abs(endY - startY);
|
|
6099
6230
|
startX > endX && (startX = endX), startY > endY && (startY = endY), callback && callback({
|
|
6100
6231
|
startX: startX,
|
|
@@ -6106,8 +6237,30 @@
|
|
|
6106
6237
|
}, {
|
|
6107
6238
|
endX: endX,
|
|
6108
6239
|
endY: endY
|
|
6109
|
-
})
|
|
6110
|
-
}
|
|
6240
|
+
});
|
|
6241
|
+
}, documentKeydown = event => {
|
|
6242
|
+
"KeyW" === event.code && (isWKeyPressed = !0, canvas.style.cursor = "crosshair",
|
|
6243
|
+
canvas.style.zIndex = "11", keyW && keyW());
|
|
6244
|
+
}, documentKeyup = event => {
|
|
6245
|
+
isDrawing || "KeyW" === event.code && (isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6246
|
+
canvas.style.zIndex = "0");
|
|
6247
|
+
}, documentMouseup = () => {
|
|
6248
|
+
isRectDraw && (isDrawing = !1, isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6249
|
+
canvas.style.zIndex = "0", drawRectDone(), isRectDraw = !1);
|
|
6250
|
+
};
|
|
6251
|
+
document.addEventListener("keydown", documentKeydown), document.addEventListener("keyup", documentKeyup),
|
|
6252
|
+
document.addEventListener("mouseup", documentMouseup);
|
|
6253
|
+
const canvasMousedown = e => {
|
|
6254
|
+
isWKeyPressed && (isDrawing = !0, startX = e.offsetX, startY = e.offsetY);
|
|
6255
|
+
}, canvasMousemove = e => {
|
|
6256
|
+
isDrawing && isWKeyPressed && (isRectDraw = !0, endX = e.offsetX, endY = e.offsetY,
|
|
6257
|
+
drawRect());
|
|
6258
|
+
}, canvasMouseup = e => {
|
|
6259
|
+
e.stopPropagation(), isRectDraw && (isDrawing = !1, isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6260
|
+
canvas.style.zIndex = "0", drawRectDone(), isRectDraw = !1);
|
|
6261
|
+
};
|
|
6262
|
+
canvas.addEventListener("mousedown", canvasMousedown), canvas.addEventListener("mousemove", canvasMousemove),
|
|
6263
|
+
canvas.addEventListener("mouseup", canvasMouseup);
|
|
6111
6264
|
const drawRect = (color = "#f30635") => {
|
|
6112
6265
|
clearCanvas(), ctx.strokeStyle = color, ctx.strokeRect(startX, startY, endX - startX, endY - startY);
|
|
6113
6266
|
};
|
|
@@ -6115,14 +6268,19 @@
|
|
|
6115
6268
|
canvas: canvas,
|
|
6116
6269
|
ctx: ctx,
|
|
6117
6270
|
clearCanvas: clearCanvas,
|
|
6118
|
-
drawRect: drawRect
|
|
6271
|
+
drawRect: drawRect,
|
|
6272
|
+
removeEventAll: () => {
|
|
6273
|
+
document.removeEventListener("mousedown", documentKeydown), document.removeEventListener("keyup", documentKeyup),
|
|
6274
|
+
document.removeEventListener("mouseup", documentMouseup), canvas.removeEventListener("mousedown", canvasMousedown),
|
|
6275
|
+
canvas.removeEventListener("mousemove", canvasMousemove), canvas.removeEventListener("mouseup", canvasMouseup);
|
|
6276
|
+
}
|
|
6119
6277
|
};
|
|
6120
6278
|
})(canvasRectRef.value, ((rect, {endX: endX, endY: endY}) => {
|
|
6121
6279
|
activate_add_label.value = rect, drawBaseCanvas.value.addDrawRect(rect), updateContextmenuLabelFixed(endX, endY, rect);
|
|
6122
6280
|
}), (() => {
|
|
6123
6281
|
onCloseDraggableRectFixed();
|
|
6124
6282
|
}));
|
|
6125
|
-
drawBaseCanvas.value.clearCanvasRect = clearCanvas;
|
|
6283
|
+
drawBaseCanvas.value.clearCanvasRect = clearCanvas, drawBaseCanvas.value.removeEventAll = removeEventAll;
|
|
6126
6284
|
}, image.onerror = () => {
|
|
6127
6285
|
loadingImage.value = !1;
|
|
6128
6286
|
};
|
|
@@ -6154,6 +6312,8 @@
|
|
|
6154
6312
|
renderImageLabel(rowInfo);
|
|
6155
6313
|
}
|
|
6156
6314
|
}));
|
|
6315
|
+
})), vue.onUnmounted((() => {
|
|
6316
|
+
drawBaseCanvas.value.removeEventAll();
|
|
6157
6317
|
}));
|
|
6158
6318
|
const contextmenuLabelFixed = vue.ref({
|
|
6159
6319
|
show: !1,
|
|
@@ -6161,9 +6321,11 @@
|
|
|
6161
6321
|
left: 0,
|
|
6162
6322
|
activateRect: null
|
|
6163
6323
|
}), updateContextmenuLabelFixed = (x, y, rect) => {
|
|
6164
|
-
|
|
6165
|
-
contextmenuLabelFixed.value.
|
|
6166
|
-
contextmenuLabelFixed.value.
|
|
6324
|
+
const contextRect = canvasBaseRef.value.getBoundingClientRect();
|
|
6325
|
+
contextmenuLabelFixed.value.show = !0, contextmenuLabelFixed.value.left = x + contextRect.x,
|
|
6326
|
+
contextmenuLabelFixed.value.top = y + contextRect.y, contextmenuLabelFixed.value.canvasWidth = canvasBaseRef.value.width,
|
|
6327
|
+
contextmenuLabelFixed.value.canvasHeight = canvasBaseRef.value.height, contextmenuLabelFixed.value.activateRect = rect,
|
|
6328
|
+
activate_add_label.value = rect;
|
|
6167
6329
|
}, onCloseContentmenuLabel = () => {
|
|
6168
6330
|
contextmenuLabelFixed.value.show = !1, contextmenuLabelFixed.value.top = 0, contextmenuLabelFixed.value.left = 0,
|
|
6169
6331
|
contextmenuLabelFixed.value.activateRect = null, activate_add_label.value = null,
|
|
@@ -6227,11 +6389,18 @@
|
|
|
6227
6389
|
onCloseContentmenuLabel: onCloseContentmenuLabel,
|
|
6228
6390
|
onSelectedLabel: (rect, index) => {
|
|
6229
6391
|
onCloseDraggableRectFixed(), vue.nextTick((() => {
|
|
6230
|
-
const {startX: x, startY: y, type: type} = rect;
|
|
6231
|
-
updateDraggableRectFixed(x, y,
|
|
6392
|
+
const {startX: x, startY: y, type: type} = rect, color = colors[type];
|
|
6393
|
+
updateDraggableRectFixed(x, y, labels.value[index], index, color);
|
|
6232
6394
|
}));
|
|
6233
6395
|
},
|
|
6234
|
-
onDeleteLabel: onDeleteLabel
|
|
6396
|
+
onDeleteLabel: onDeleteLabel,
|
|
6397
|
+
rerenderImage: () => {
|
|
6398
|
+
setContainerWidthHeight(0, 0), onCloseContentmenuLabel(), onCloseDraggableRectFixed(),
|
|
6399
|
+
vue.nextTick((() => {
|
|
6400
|
+
const rowInfo = vue.toRaw(props.rowInfo);
|
|
6401
|
+
renderImageLabel(rowInfo);
|
|
6402
|
+
}));
|
|
6403
|
+
}
|
|
6235
6404
|
});
|
|
6236
6405
|
return () => vue.createVNode(vue.Fragment, null, [ vue.createVNode(NextSpinLoading, {
|
|
6237
6406
|
loading: loadingImage.value,
|
|
@@ -6264,6 +6433,9 @@
|
|
|
6264
6433
|
}
|
|
6265
6434
|
}), RightLabel = vue.defineComponent({
|
|
6266
6435
|
props: {
|
|
6436
|
+
contentHeight: {
|
|
6437
|
+
type: Number
|
|
6438
|
+
},
|
|
6267
6439
|
classes: {
|
|
6268
6440
|
type: Array,
|
|
6269
6441
|
default: () => []
|
|
@@ -6287,7 +6459,10 @@
|
|
|
6287
6459
|
immediate: !0
|
|
6288
6460
|
});
|
|
6289
6461
|
const renderContent = () => vue.createVNode("div", {
|
|
6290
|
-
class: [ ns.b("right") ]
|
|
6462
|
+
class: [ ns.b("right") ],
|
|
6463
|
+
style: {
|
|
6464
|
+
height: props.contentHeight + "px"
|
|
6465
|
+
}
|
|
6291
6466
|
}, [ labels.value.length ? vue.createVNode("ul", null, [ labels.value.map(((rect, index) => vue.createVNode("li", {
|
|
6292
6467
|
key: index,
|
|
6293
6468
|
onClick: () => ((rect, index) => {
|
|
@@ -6300,7 +6475,7 @@
|
|
|
6300
6475
|
class: "label-line"
|
|
6301
6476
|
}, null), vue.createVNode("span", null, [ rect.typeName ]) ]), vue.createVNode(elementPlus.ElPopconfirm, {
|
|
6302
6477
|
title: t("next.labelimg.confirmDeleteLabel"),
|
|
6303
|
-
width:
|
|
6478
|
+
width: 200,
|
|
6304
6479
|
onConfirm: () => (rect => {
|
|
6305
6480
|
emit("delete", rect);
|
|
6306
6481
|
})(rect)
|
|
@@ -6321,7 +6496,7 @@
|
|
|
6321
6496
|
return () => vue.createVNode(vue.Fragment, null, [ renderContent() ]);
|
|
6322
6497
|
}
|
|
6323
6498
|
}), defaultConfig = {
|
|
6324
|
-
|
|
6499
|
+
minContentHeight: 500
|
|
6325
6500
|
};
|
|
6326
6501
|
const ns$1 = useNamespace("labelimg");
|
|
6327
6502
|
var Element = vue.defineComponent({
|
|
@@ -6333,9 +6508,7 @@
|
|
|
6333
6508
|
},
|
|
6334
6509
|
style: {
|
|
6335
6510
|
type: Object,
|
|
6336
|
-
default: () => ({
|
|
6337
|
-
position: "unset"
|
|
6338
|
-
})
|
|
6511
|
+
default: () => ({})
|
|
6339
6512
|
},
|
|
6340
6513
|
rowKey: {
|
|
6341
6514
|
type: String,
|
|
@@ -6418,9 +6591,8 @@
|
|
|
6418
6591
|
if (loading.value) return;
|
|
6419
6592
|
loading.value = !0;
|
|
6420
6593
|
const {node: node, label_txt: label_txt} = formatNodeLabels();
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
emit("save", {
|
|
6594
|
+
return canvasContextRef.value.onCloseDraggableRectFixed(), isChangeNodeLabels() ? (activateNodeIndex.value = index,
|
|
6595
|
+
loading.value = !1, !1) : (emit("save", {
|
|
6424
6596
|
node: node,
|
|
6425
6597
|
label_txt: label_txt
|
|
6426
6598
|
}, (imageItem => {
|
|
@@ -6428,7 +6600,7 @@
|
|
|
6428
6600
|
loading.value = !1;
|
|
6429
6601
|
}), (() => {
|
|
6430
6602
|
loading.value = !1;
|
|
6431
|
-
}));
|
|
6603
|
+
})), !0);
|
|
6432
6604
|
}, onPaginationPrev = () => {
|
|
6433
6605
|
const imageLength = labelImages.value.length;
|
|
6434
6606
|
let i = activateNodeIndex.value - 1;
|
|
@@ -6437,30 +6609,35 @@
|
|
|
6437
6609
|
const imageLength = labelImages.value.length;
|
|
6438
6610
|
let i = activateNodeIndex.value + 1;
|
|
6439
6611
|
i >= imageLength && (i = 0), onChangeActivateNode(i), emit("next-click");
|
|
6440
|
-
}, canvasContextRef = vue.ref(), layoutLabelRef = vue.ref(), headerRef = vue.ref(), mainRef = vue.ref(), footerRef = vue.ref(), mainContentHeight = vue.ref(options.
|
|
6441
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
layoutLabelRef.value.style.position = "unset";
|
|
6445
|
-
const contentHeight = (layoutLabelRef.value?.clientHeight || 0) - ((headerRef.value?.clientHeight || 0) + (footerRef.value?.clientHeight || 0));
|
|
6446
|
-
mainContentHeight.value = contentHeight;
|
|
6447
|
-
}));
|
|
6612
|
+
}, canvasContextRef = vue.ref(), layoutLabelRef = vue.ref(), headerRef = vue.ref(), mainRef = vue.ref(), footerRef = vue.ref(), mainContentHeight = vue.ref(options.minContentHeight), updateMainContentHeight = () => {
|
|
6613
|
+
vue.nextTick((() => {
|
|
6614
|
+
const contentHeight = (layoutLabelRef.value?.clientHeight || 0) - ((headerRef.value?.clientHeight || 0) + (footerRef.value?.clientHeight || 0));
|
|
6615
|
+
mainContentHeight.value = contentHeight;
|
|
6448
6616
|
}));
|
|
6617
|
+
};
|
|
6618
|
+
vue.onMounted((() => {
|
|
6619
|
+
document.addEventListener("keydown", onKeydownPrevNext), elementResize(layoutLabelRef.value.parentElement, (() => {
|
|
6620
|
+
updateMainContentHeight();
|
|
6621
|
+
})), window.addEventListener("resize", updateMainContentHeight);
|
|
6449
6622
|
})), vue.onUnmounted((() => {
|
|
6450
|
-
document.removeEventListener("keydown", onKeydownPrevNext);
|
|
6623
|
+
document.removeEventListener("keydown", onKeydownPrevNext), window.removeEventListener("resize", updateMainContentHeight);
|
|
6451
6624
|
}));
|
|
6452
6625
|
const onSelectLabelNode = (rect, index) => {
|
|
6453
6626
|
canvasContextRef.value.onSelectedLabel(rect, index);
|
|
6454
6627
|
}, onDeleteLabelNode = rect => {
|
|
6455
6628
|
canvasContextRef.value.onDeleteLabel(rect);
|
|
6629
|
+
}, isFullscreen = vue.ref(!1), onSwitchFillscreen = val => {
|
|
6630
|
+
isFullscreen.value = val, updateMainContentHeight(), vue.nextTick((() => {
|
|
6631
|
+
canvasContextRef.value.rerenderImage();
|
|
6632
|
+
}));
|
|
6456
6633
|
};
|
|
6457
6634
|
expose({
|
|
6458
6635
|
convertToLabel: convertToLabel,
|
|
6459
6636
|
canvertToCanvas: canvertToCanvas
|
|
6460
6637
|
});
|
|
6461
|
-
|
|
6638
|
+
const renderContent = () => vue.createVNode("div", {
|
|
6462
6639
|
ref: layoutLabelRef,
|
|
6463
|
-
class: [ ns$1.b(), props.className ],
|
|
6640
|
+
class: [ ns$1.b(), props.className, isFullscreen.value ? ns$1.b("fullscreen") : "" ],
|
|
6464
6641
|
style: {
|
|
6465
6642
|
...props.style
|
|
6466
6643
|
}
|
|
@@ -6473,21 +6650,37 @@
|
|
|
6473
6650
|
default: () => [ vue.createVNode("header", {
|
|
6474
6651
|
ref: headerRef,
|
|
6475
6652
|
class: [ ns$1.b("header") ]
|
|
6476
|
-
}, [ slots.header ? slots.header() : vue.createVNode(
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6653
|
+
}, [ slots.header ? slots.header() : vue.createVNode(ToolHeader, {
|
|
6654
|
+
isFullscreen: isFullscreen.value,
|
|
6655
|
+
imageIndex: activateNodeIndex.value,
|
|
6656
|
+
imageLength: labelImages.value.length,
|
|
6657
|
+
onFullscreen: onSwitchFillscreen,
|
|
6658
|
+
onSave: () => {
|
|
6659
|
+
onChangeActivateNode(activateNodeIndex.value) || elementPlus.ElMessage({
|
|
6660
|
+
type: "info",
|
|
6661
|
+
message: t("next.labelimg.labelNoUpdate")
|
|
6662
|
+
});
|
|
6481
6663
|
}
|
|
6482
|
-
},
|
|
6664
|
+
}, null) ]), vue.createVNode("div", {
|
|
6665
|
+
ref: mainRef,
|
|
6666
|
+
class: [ ns$1.b("main") ]
|
|
6667
|
+
}, [ vue.createVNode(elementPlus.ElScrollbar, {
|
|
6483
6668
|
class: [ ns$1.be("main", "content") ]
|
|
6484
|
-
},
|
|
6485
|
-
|
|
6486
|
-
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
|
|
6490
|
-
|
|
6669
|
+
}, {
|
|
6670
|
+
default: () => [ vue.createVNode("div", {
|
|
6671
|
+
class: [ ns$1.be("main", "content") ],
|
|
6672
|
+
style: {
|
|
6673
|
+
height: mainContentHeight.value + "px"
|
|
6674
|
+
}
|
|
6675
|
+
}, [ vue.createVNode(CanvasContext, {
|
|
6676
|
+
ref: canvasContextRef,
|
|
6677
|
+
contextClientHeight: mainContentHeight.value,
|
|
6678
|
+
classes: classes.value,
|
|
6679
|
+
rowInfo: currentNode.value,
|
|
6680
|
+
onChange: onChangeNodeRect
|
|
6681
|
+
}, null) ]) ]
|
|
6682
|
+
}), vue.createVNode(RightLabel, {
|
|
6683
|
+
contentHeight: mainContentHeight.value,
|
|
6491
6684
|
classes: classes.value,
|
|
6492
6685
|
labels: activateNodeLabels.value,
|
|
6493
6686
|
onDelete: onDeleteLabelNode,
|
|
@@ -6532,7 +6725,8 @@
|
|
|
6532
6725
|
default: () => [ vue.createVNode(arrow_right_default, null, null) ]
|
|
6533
6726
|
}) ]) ]) ]
|
|
6534
6727
|
}) ]
|
|
6535
|
-
}) ])
|
|
6728
|
+
}) ]);
|
|
6729
|
+
return () => vue.createVNode(vue.Fragment, null, [ renderContent() ]);
|
|
6536
6730
|
}
|
|
6537
6731
|
});
|
|
6538
6732
|
const ns = useNamespace("labelimg-preview");
|
|
@@ -6664,7 +6858,7 @@
|
|
|
6664
6858
|
})(app);
|
|
6665
6859
|
};
|
|
6666
6860
|
var index = {
|
|
6667
|
-
version: "0.3.
|
|
6861
|
+
version: "0.3.2",
|
|
6668
6862
|
install: install
|
|
6669
6863
|
};
|
|
6670
6864
|
exports.NextContainer = NextContainer, exports.NextCrudTable = NextCrudTable, exports.NextCrudTableVirtualized = NextCrudTableVirtualized,
|
|
@@ -6710,7 +6904,7 @@
|
|
|
6710
6904
|
}), exports.useGetDerivedNamespace = useGetDerivedNamespace, exports.useLanguage = (locale, lang) => {
|
|
6711
6905
|
const localeRef = vue.isRef(locale) ? locale : vue.ref(locale), nextLang = localeLang[lang] || localeLang["zh-cn"];
|
|
6712
6906
|
localeRef.value.name = lang, localeRef.value.next = nextLang.next;
|
|
6713
|
-
}, exports.useLocale = useLocale, exports.useNamespace = useNamespace, exports.version = "0.3.
|
|
6907
|
+
}, exports.useLocale = useLocale, exports.useNamespace = useNamespace, exports.version = "0.3.2",
|
|
6714
6908
|
Object.defineProperty(exports, "__esModule", {
|
|
6715
6909
|
value: !0
|
|
6716
6910
|
});
|