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.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
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
|
|
|
10
10
|
import { getCurrentInstance, inject, ref, computed, unref, isRef, defineComponent, createVNode, Fragment, openBlock, createElementBlock, createElementVNode, reactive, createTextVNode, resolveComponent, Teleport, isVNode, onUnmounted, provide, watch, markRaw, watchEffect, h, onMounted, toRaw, render, nextTick, toRef } from "vue";
|
|
11
11
|
|
|
12
|
-
import { localeContextKey as localeContextKey$1, ElMessage, ElTooltip, ElScrollbar, ElDivider, ElColorPicker, ElSwitch, ElDropdown, ElIcon, ElDropdownMenu, ElDropdownItem, ElDrawer, ElMenuItem, ElSubMenu, ElMenu, ElContainer, ElCol, ElFormItem, ElInput, ElSelect, ElOption, ElDatePicker, ElInputNumber, ElForm, ElRow, ElButton, ElTable, ElTableColumn, ElCheckbox, ElMessageBox, ElPagination, ElDialog, ElTag, ElRadioGroup, ElRadio, ElUpload, ElImageViewer, ElImage, ElTreeSelect, ElTimeSelect, ElCheckboxGroup, ElEmpty, ElPopconfirm } from "element-plus";
|
|
12
|
+
import { localeContextKey as localeContextKey$1, ElMessage, ElTooltip, ElScrollbar, ElDivider, ElColorPicker, ElSwitch, ElDropdown, ElIcon, ElDropdownMenu, ElDropdownItem, ElDrawer, ElMenuItem, ElSubMenu, ElMenu, ElContainer, ElCol, ElFormItem, ElInput, ElSelect, ElOption, ElDatePicker, ElInputNumber, ElForm, ElRow, ElButton, ElTable, ElTableColumn, ElCheckbox, ElMessageBox, ElPagination, ElDialog, ElTag, ElRadioGroup, ElRadio, ElUpload, ElImageViewer, ElImage, ElTreeSelect, ElTimeSelect, ElCheckboxGroup, ElEmpty, ElPopover, ElPopconfirm } from "element-plus";
|
|
13
13
|
|
|
14
14
|
import { useDateFormat, useNow, useFullscreen } from "@vueuse/core";
|
|
15
15
|
|
|
@@ -892,7 +892,10 @@ var merge = createAssigner((function(object, source, srcIndex) {
|
|
|
892
892
|
labelimg: {
|
|
893
893
|
saveTxt: "保存中...",
|
|
894
894
|
emptyLabelText: "暂无标签数据",
|
|
895
|
-
confirmDeleteLabel: "确定要删除该标注吗?"
|
|
895
|
+
confirmDeleteLabel: "确定要删除该标注吗?",
|
|
896
|
+
saveLabel: "保存当前标注",
|
|
897
|
+
instructions: "使用说明",
|
|
898
|
+
labelNoUpdate: "暂无标签数据更新"
|
|
896
899
|
}
|
|
897
900
|
}
|
|
898
901
|
}, enLocale = {
|
|
@@ -967,7 +970,10 @@ var merge = createAssigner((function(object, source, srcIndex) {
|
|
|
967
970
|
labelimg: {
|
|
968
971
|
saveTxt: "saving...",
|
|
969
972
|
emptyLabelText: "No label data",
|
|
970
|
-
confirmDeleteLabel: "Are you sure you want to delete this annotation?"
|
|
973
|
+
confirmDeleteLabel: "Are you sure you want to delete this annotation?",
|
|
974
|
+
saveLabel: "save label",
|
|
975
|
+
instructions: "instructions",
|
|
976
|
+
labelNoUpdate: "No label data update"
|
|
971
977
|
}
|
|
972
978
|
}
|
|
973
979
|
}, zhtwLocale = {
|
|
@@ -1042,7 +1048,10 @@ var merge = createAssigner((function(object, source, srcIndex) {
|
|
|
1042
1048
|
labelimg: {
|
|
1043
1049
|
saveTxt: "保存中...",
|
|
1044
1050
|
emptyLabelText: "暂无标签数据",
|
|
1045
|
-
confirmDeleteLabel: "确定要删除该标注吗?"
|
|
1051
|
+
confirmDeleteLabel: "确定要删除该标注吗?",
|
|
1052
|
+
saveLabel: "保存当前标注",
|
|
1053
|
+
instructions: "使用说明",
|
|
1054
|
+
labelNoUpdate: "暂无标签数据更新"
|
|
1046
1055
|
}
|
|
1047
1056
|
}
|
|
1048
1057
|
};
|
|
@@ -1225,13 +1234,16 @@ var defaultConfig$4 = {
|
|
|
1225
1234
|
} ],
|
|
1226
1235
|
userDropdown: [ {
|
|
1227
1236
|
value: "/",
|
|
1228
|
-
label: "next.layout.home"
|
|
1237
|
+
label: "next.layout.home",
|
|
1238
|
+
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>'
|
|
1229
1239
|
}, {
|
|
1230
1240
|
value: "/personal",
|
|
1231
|
-
label: "next.layout.personal"
|
|
1241
|
+
label: "next.layout.personal",
|
|
1242
|
+
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>'
|
|
1232
1243
|
}, {
|
|
1233
1244
|
value: "logOut",
|
|
1234
1245
|
label: "next.layout.logOut",
|
|
1246
|
+
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>',
|
|
1235
1247
|
divided: !0
|
|
1236
1248
|
} ],
|
|
1237
1249
|
showTabs: !0,
|
|
@@ -1624,7 +1636,19 @@ var tools_default = export_helper_default(tools_vue_vue_type_script_lang_default
|
|
|
1624
1636
|
|
|
1625
1637
|
var view_default = export_helper_default(view_vue_vue_type_script_lang_default, [ [ "render", function(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1626
1638
|
return openBlock(), createElementBlock("svg", _hoisted_1283, _hoisted_3282);
|
|
1627
|
-
} ], [ "__file", "view.vue" ] ]),
|
|
1639
|
+
} ], [ "__file", "view.vue" ] ]), warning_vue_vue_type_script_lang_default = {
|
|
1640
|
+
name: "Warning"
|
|
1641
|
+
}, _hoisted_1288 = {
|
|
1642
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1643
|
+
viewBox: "0 0 1024 1024"
|
|
1644
|
+
}, _hoisted_3287 = [ createElementVNode("path", {
|
|
1645
|
+
fill: "currentColor",
|
|
1646
|
+
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"
|
|
1647
|
+
}, null, -1) ];
|
|
1648
|
+
|
|
1649
|
+
var warning_default = export_helper_default(warning_vue_vue_type_script_lang_default, [ [ "render", function(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1650
|
+
return openBlock(), createElementBlock("svg", _hoisted_1288, _hoisted_3287);
|
|
1651
|
+
} ], [ "__file", "warning.vue" ] ]), LayoutSetting = defineComponent({
|
|
1628
1652
|
setup() {},
|
|
1629
1653
|
render() {
|
|
1630
1654
|
const _slots = inject("__slots__", {}), _ns = inject("__ns__", {}), _config = inject("options", {}), _updateOptions = inject("updateOptions", null), settingConfig = reactive({
|
|
@@ -1753,7 +1777,7 @@ var view_default = export_helper_default(view_vue_vue_type_script_lang_default,
|
|
|
1753
1777
|
class: _ns.be("config-bar-item", "label")
|
|
1754
1778
|
}, [ createTextVNode("是否显示标签栏") ]), createVNode("div", {
|
|
1755
1779
|
class: _ns.be("config-bar-item", "value")
|
|
1756
|
-
}, [ createVNode(
|
|
1780
|
+
}, [ createVNode(ElSwitch, {
|
|
1757
1781
|
modelValue: _config.showTabs,
|
|
1758
1782
|
"onUpdate:modelValue": $event => _config.showTabs = $event
|
|
1759
1783
|
}, null) ]) ]), _slots.setting?.() ]
|
|
@@ -1761,10 +1785,6 @@ var view_default = export_helper_default(view_vue_vue_type_script_lang_default,
|
|
|
1761
1785
|
}
|
|
1762
1786
|
});
|
|
1763
1787
|
|
|
1764
|
-
function _isSlot$8(s) {
|
|
1765
|
-
return "function" == typeof s || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s);
|
|
1766
|
-
}
|
|
1767
|
-
|
|
1768
1788
|
var HeaderTools = defineComponent({
|
|
1769
1789
|
setup() {
|
|
1770
1790
|
const locale = inject(localeContextKey, ref()), config = inject("options", {}), {t: t} = useLocale(), {toggle: toggle, isFullscreen: isFullscreen} = useFullscreen(), language = ref(computed((() => config.language)).value), settingDrawer = ref(!1);
|
|
@@ -1816,14 +1836,15 @@ var HeaderTools = defineComponent({
|
|
|
1816
1836
|
}) ]),
|
|
1817
1837
|
dropdown: () => {
|
|
1818
1838
|
let _slot;
|
|
1819
|
-
return createVNode(ElDropdownMenu, null,
|
|
1839
|
+
return createVNode(ElDropdownMenu, null, "function" == typeof (s = _slot = _languageDropdown.map((item => createVNode(ElDropdownItem, {
|
|
1820
1840
|
command: item.value,
|
|
1821
1841
|
disabled: this.language === item.value
|
|
1822
1842
|
}, {
|
|
1823
1843
|
default: () => [ item.label ]
|
|
1824
|
-
})))) ? _slot : {
|
|
1844
|
+
})))) || "[object Object]" === Object.prototype.toString.call(s) && !isVNode(s) ? _slot : {
|
|
1825
1845
|
default: () => [ _slot ]
|
|
1826
1846
|
});
|
|
1847
|
+
var s;
|
|
1827
1848
|
}
|
|
1828
1849
|
}) ]), createVNode("li", null, [ createVNode("span", {
|
|
1829
1850
|
style: {
|
|
@@ -1860,6 +1881,7 @@ var HeaderTools = defineComponent({
|
|
|
1860
1881
|
}) ]) ]), slots[slots_config_headerToolsSuffix]?.(), createVNode("li", null, [ createVNode(ElDropdown, {
|
|
1861
1882
|
"show-timeout": 70,
|
|
1862
1883
|
"hide-timeout": 80,
|
|
1884
|
+
"popper-class": _ns.be("header-tools", "userDropdown"),
|
|
1863
1885
|
onCommand: command => {
|
|
1864
1886
|
_emit("changeUserDropdown", command), _config.onChangeUserDropdown && _config.onChangeUserDropdown(command);
|
|
1865
1887
|
}
|
|
@@ -1875,15 +1897,17 @@ var HeaderTools = defineComponent({
|
|
|
1875
1897
|
default: () => [ createVNode(arrow_down_default, null, null) ]
|
|
1876
1898
|
}) ]),
|
|
1877
1899
|
dropdown: () => createVNode(ElDropdownMenu, null, {
|
|
1878
|
-
default: () => [ _userDropdown?.map((item => {
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
})
|
|
1886
|
-
|
|
1900
|
+
default: () => [ _userDropdown?.map((item => createVNode(ElDropdownItem, {
|
|
1901
|
+
command: item.value,
|
|
1902
|
+
divided: !!item.divided
|
|
1903
|
+
}, {
|
|
1904
|
+
default: () => [ item.svg ? createVNode("span", {
|
|
1905
|
+
innerHTML: item.svg,
|
|
1906
|
+
class: "item-svg"
|
|
1907
|
+
}, null) : null, item.iconfont ? createVNode("i", {
|
|
1908
|
+
class: item.iconfont
|
|
1909
|
+
}, null) : null, _t(item.label) ]
|
|
1910
|
+
}))) ]
|
|
1887
1911
|
})
|
|
1888
1912
|
}) ]), createVNode("li", null, [ createVNode("span", {
|
|
1889
1913
|
style: {
|
|
@@ -3346,6 +3370,8 @@ var defaultConfig$3 = {
|
|
|
3346
3370
|
settingBtn: !0,
|
|
3347
3371
|
operations: !0,
|
|
3348
3372
|
operationsWidth: 260,
|
|
3373
|
+
operationsHeaderAlign: "center",
|
|
3374
|
+
operationsColumnAlign: "center",
|
|
3349
3375
|
operationsBtnPlain: !1,
|
|
3350
3376
|
operationsBtnText: !0,
|
|
3351
3377
|
operationsBtnSize: "small",
|
|
@@ -3944,7 +3970,9 @@ const TableColumnDynamic = defineComponent({
|
|
|
3944
3970
|
}, mergeDicData = loopDicData(columnOption.dicData);
|
|
3945
3971
|
return createVNode("span", null, [ _formatterColumnValue(row[columnOption.prop], mergeDicData) ]);
|
|
3946
3972
|
}
|
|
3947
|
-
return null
|
|
3973
|
+
return columnOption.cellUnit ? createVNode(Fragment, null, [ createVNode("span", null, [ row[columnOption.prop] ]), createVNode("em", {
|
|
3974
|
+
class: "cell-unit"
|
|
3975
|
+
}, [ columnOption.cellUnit ]) ]) : null;
|
|
3948
3976
|
};
|
|
3949
3977
|
return () => createVNode(Fragment, null, [ !columnOption.hide && createVNode(ElTableColumn, {
|
|
3950
3978
|
prop: columnOption.prop,
|
|
@@ -3976,8 +4004,8 @@ var TableColumnOperations = defineComponent({
|
|
|
3976
4004
|
fixed: "right",
|
|
3977
4005
|
label: t("next.table.operation"),
|
|
3978
4006
|
width: options.operationsWidth,
|
|
3979
|
-
headerAlign: options.headerAlign,
|
|
3980
|
-
align: options.cellAlign
|
|
4007
|
+
headerAlign: valueExist(options.operationsHeaderAlign, options.headerAlign),
|
|
4008
|
+
align: valueExist(options.operationsColumnAlign, options.cellAlign)
|
|
3981
4009
|
}, {
|
|
3982
4010
|
default: scoped => createVNode(Fragment, null, [ slots["operation-column-prefix"]?.(scoped, {
|
|
3983
4011
|
text: btnText,
|
|
@@ -4381,7 +4409,7 @@ const ns$8 = useNamespace("form"), InputTableSelect = defineComponent({
|
|
|
4381
4409
|
}
|
|
4382
4410
|
})(event, toRaw(row))
|
|
4383
4411
|
}, null) : createVNode(ElRadio, {
|
|
4384
|
-
|
|
4412
|
+
value: value,
|
|
4385
4413
|
onChange: () => {
|
|
4386
4414
|
sinleSelection.value = value, multipleSelection.value = [ row ];
|
|
4387
4415
|
}
|
|
@@ -4947,7 +4975,7 @@ var Element$6 = defineComponent({
|
|
|
4947
4975
|
}, {
|
|
4948
4976
|
default: () => [ col.dicData && col.dicData.map((item => createVNode(ElRadio, {
|
|
4949
4977
|
key: item.value,
|
|
4950
|
-
|
|
4978
|
+
value: item.value,
|
|
4951
4979
|
disabled: valueExist(item.disabled, !1)
|
|
4952
4980
|
}, {
|
|
4953
4981
|
default: () => [ item.label ]
|
|
@@ -5434,7 +5462,8 @@ var Element$5 = defineComponent({
|
|
|
5434
5462
|
getFormExpose: () => addEditFormRef.value?.getFormExpose(),
|
|
5435
5463
|
updateColumns: ops => {
|
|
5436
5464
|
_updateColumnsAll(ops);
|
|
5437
|
-
}
|
|
5465
|
+
},
|
|
5466
|
+
getSearchFormParams: () => _searchFormParams.value
|
|
5438
5467
|
});
|
|
5439
5468
|
return () => createVNode(Fragment, null, [ createVNode(Fragment, null, [ createVNode("div", {
|
|
5440
5469
|
ref: crudTableRef,
|
|
@@ -5947,7 +5976,119 @@ const NextDragResize = withInstall(defineComponent({
|
|
|
5947
5976
|
name: "NextDragResize",
|
|
5948
5977
|
props: {},
|
|
5949
5978
|
setup: () => () => createVNode(Fragment, null, [ createVNode(Fragment, null, null) ])
|
|
5950
|
-
}))
|
|
5979
|
+
}));
|
|
5980
|
+
|
|
5981
|
+
var ToolHeader = defineComponent({
|
|
5982
|
+
props: {
|
|
5983
|
+
isFullscreen: {
|
|
5984
|
+
type: Boolean,
|
|
5985
|
+
default: !1
|
|
5986
|
+
},
|
|
5987
|
+
imageIndex: {
|
|
5988
|
+
type: Number,
|
|
5989
|
+
default: 0
|
|
5990
|
+
},
|
|
5991
|
+
imageLength: {
|
|
5992
|
+
type: Number,
|
|
5993
|
+
default: 0
|
|
5994
|
+
}
|
|
5995
|
+
},
|
|
5996
|
+
emits: [ "fullscreen", "save" ],
|
|
5997
|
+
setup(props, {emit: emit}) {
|
|
5998
|
+
const _ns = inject("ns", {}), {t: t} = useLocale(), switchFillscreen = val => {
|
|
5999
|
+
emit("fullscreen", val);
|
|
6000
|
+
};
|
|
6001
|
+
return () => createVNode(Fragment, null, [ createVNode(Fragment, null, [ createVNode("ul", {
|
|
6002
|
+
class: [ _ns.be("header", "tool") ]
|
|
6003
|
+
}, [ createVNode("li", {
|
|
6004
|
+
class: "hover",
|
|
6005
|
+
onClick: () => emit("save")
|
|
6006
|
+
}, [ createVNode("svg", {
|
|
6007
|
+
t: "1719034799379",
|
|
6008
|
+
class: "icon",
|
|
6009
|
+
viewBox: "0 0 1024 1024",
|
|
6010
|
+
version: "1.1",
|
|
6011
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
6012
|
+
"p-id": "4272",
|
|
6013
|
+
width: "18",
|
|
6014
|
+
height: "18"
|
|
6015
|
+
}, [ createVNode("path", {
|
|
6016
|
+
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",
|
|
6017
|
+
"p-id": "4273"
|
|
6018
|
+
}, null), createVNode("path", {
|
|
6019
|
+
d: "M536 196.3h42.7v87.2H536zM368.7 641.2h220.7v42.7H368.7zM368.7 744h170.9v42.7H368.7z",
|
|
6020
|
+
"p-id": "4274"
|
|
6021
|
+
}, null) ]), createVNode("span", {
|
|
6022
|
+
style: "padding-left: 3px"
|
|
6023
|
+
}, [ t("next.labelimg.saveLabel") ]) ]) ]), createVNode("ul", {
|
|
6024
|
+
class: [ _ns.be("header", "tool") ]
|
|
6025
|
+
}, [ props.imageLength ? createVNode("li", null, [ createVNode("span", null, [ createTextVNode("第 "), props.imageIndex + 1, createTextVNode(" 张") ]), createVNode("em", {
|
|
6026
|
+
style: "padding: 0 5px;"
|
|
6027
|
+
}, [ createTextVNode("/") ]), createVNode("span", null, [ createTextVNode("共 "), props.imageLength, createTextVNode(" 张") ]) ]) : null, createVNode("li", {
|
|
6028
|
+
style: "margin-right: 30px;",
|
|
6029
|
+
class: "hover"
|
|
6030
|
+
}, [ createVNode(ElPopover, {
|
|
6031
|
+
trigger: "hover",
|
|
6032
|
+
placement: "bottom",
|
|
6033
|
+
width: "none"
|
|
6034
|
+
}, {
|
|
6035
|
+
reference: () => createVNode("div", {
|
|
6036
|
+
class: "flex-center"
|
|
6037
|
+
}, [ createVNode("span", {
|
|
6038
|
+
style: "padding-right: 3px"
|
|
6039
|
+
}, [ t("next.labelimg.instructions") ]), createVNode(ElIcon, {
|
|
6040
|
+
size: 14
|
|
6041
|
+
}, {
|
|
6042
|
+
default: () => [ createVNode(warning_default, null, null) ]
|
|
6043
|
+
}) ]),
|
|
6044
|
+
default: () => createVNode("ul", {
|
|
6045
|
+
style: "font-size: 12px;white-space: nowrap;"
|
|
6046
|
+
}, [ createVNode("li", null, [ createVNode("span", null, [ createTextVNode("W:") ]), createVNode("span", null, [ createTextVNode("鼠标移入图片中,长按W键,鼠标按下左键,移动鼠标开始绘制,鼠标抬起结束绘制") ]) ]), createVNode("li", null, [ createVNode("span", null, [ createTextVNode("A:") ]), createVNode("span", null, [ createTextVNode("A键进入上一张图片进行标注") ]) ]), createVNode("li", null, [ createVNode("span", null, [ createTextVNode("D:") ]), createVNode("span", null, [ createTextVNode("D键进入下一张图片进行标注") ]) ]) ])
|
|
6047
|
+
}) ]), props.isFullscreen ? createVNode("li", {
|
|
6048
|
+
class: "hover",
|
|
6049
|
+
onClick: () => switchFillscreen(!1)
|
|
6050
|
+
}, [ createVNode(ElTooltip, {
|
|
6051
|
+
placement: "top",
|
|
6052
|
+
content: "取消全屏"
|
|
6053
|
+
}, {
|
|
6054
|
+
default: () => [ createVNode("svg", {
|
|
6055
|
+
t: "1719035442027",
|
|
6056
|
+
class: "icon",
|
|
6057
|
+
viewBox: "0 0 1024 1024",
|
|
6058
|
+
version: "1.1",
|
|
6059
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
6060
|
+
"p-id": "5388",
|
|
6061
|
+
width: "18",
|
|
6062
|
+
height: "18"
|
|
6063
|
+
}, [ createVNode("path", {
|
|
6064
|
+
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",
|
|
6065
|
+
"p-id": "5389"
|
|
6066
|
+
}, null) ]) ]
|
|
6067
|
+
}) ]) : createVNode("li", {
|
|
6068
|
+
class: "hover",
|
|
6069
|
+
onClick: () => switchFillscreen(!0)
|
|
6070
|
+
}, [ createVNode(ElTooltip, {
|
|
6071
|
+
placement: "top",
|
|
6072
|
+
content: "全屏"
|
|
6073
|
+
}, {
|
|
6074
|
+
default: () => [ createVNode("svg", {
|
|
6075
|
+
t: "1719035375323",
|
|
6076
|
+
class: "icon",
|
|
6077
|
+
viewBox: "0 0 1024 1024",
|
|
6078
|
+
version: "1.1",
|
|
6079
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
6080
|
+
"p-id": "5241",
|
|
6081
|
+
width: "18",
|
|
6082
|
+
height: "18"
|
|
6083
|
+
}, [ createVNode("path", {
|
|
6084
|
+
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",
|
|
6085
|
+
"p-id": "5242"
|
|
6086
|
+
}, null) ]) ]
|
|
6087
|
+
}) ]) ]) ]) ]);
|
|
6088
|
+
}
|
|
6089
|
+
});
|
|
6090
|
+
|
|
6091
|
+
const colors = [ "#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc" ], convertToLabel = rect => {
|
|
5951
6092
|
const label_type = rect.type, x_center = rect.startX + rect.rectWidth / 2, y_center = rect.startY + rect.rectHeight / 2;
|
|
5952
6093
|
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)) ];
|
|
5953
6094
|
}, canvertToCanvas = (labelData, canvasWidth, canvasHeight) => {
|
|
@@ -6001,7 +6142,7 @@ var ContextMenuLabel = defineComponent({
|
|
|
6001
6142
|
labelRectWidthHeight.value.width = clientWidth, labelRectWidthHeight.value.height = clientHeight;
|
|
6002
6143
|
}));
|
|
6003
6144
|
const labelMenuRef = ref(), labelStyleFixed = computed((() => {
|
|
6004
|
-
const {left: left, top: top
|
|
6145
|
+
const {left: left, top: top} = props.labelRect, height_diff = top + labelRectWidthHeight.value.height - window.innerHeight;
|
|
6005
6146
|
let y = top;
|
|
6006
6147
|
return height_diff > 0 && (y -= height_diff), {
|
|
6007
6148
|
top: y + "px",
|
|
@@ -6156,7 +6297,7 @@ var DraggableRect = defineComponent({
|
|
|
6156
6297
|
parentRect = props.parentEl.getBoundingClientRect(), document.addEventListener("mousemove", onMousemove),
|
|
6157
6298
|
document.addEventListener("mouseup", onMouseup);
|
|
6158
6299
|
})), onUnmounted((() => {
|
|
6159
|
-
document.removeEventListener("mousemove", onMousemove
|
|
6300
|
+
document.removeEventListener("mousemove", onMousemove), document.removeEventListener("mouseup", onMouseup);
|
|
6160
6301
|
})), {
|
|
6161
6302
|
onMousedown: e => {
|
|
6162
6303
|
e.preventDefault(), isDraggle.value = !0, draggleOffset.value.diff_x = e.offsetX,
|
|
@@ -6164,7 +6305,7 @@ var DraggableRect = defineComponent({
|
|
|
6164
6305
|
},
|
|
6165
6306
|
onMouseup: onMouseup,
|
|
6166
6307
|
onContextmenu: e => {
|
|
6167
|
-
e.preventDefault(), emit("contextmenu", e, rect.value);
|
|
6308
|
+
e.preventDefault(), e.preventDefault(), emit("contextmenu", e, rect.value);
|
|
6168
6309
|
},
|
|
6169
6310
|
rect: rect,
|
|
6170
6311
|
onMousedownDot: (e, corner) => {
|
|
@@ -6249,6 +6390,12 @@ var DraggableRect = defineComponent({
|
|
|
6249
6390
|
})),
|
|
6250
6391
|
label_txt: yolo_label.join("\n")
|
|
6251
6392
|
};
|
|
6393
|
+
}, setContainerWidthHeight = (canvasWidth, canvasHeight) => {
|
|
6394
|
+
canvasMainRef.value.style.width = canvasWidth + "px", canvasMainRef.value.style.height = canvasHeight + "px",
|
|
6395
|
+
canvasBaseRef.value.width = canvasWidth, canvasBaseRef.value.height = canvasHeight,
|
|
6396
|
+
canvasBaseRef.value.style.width = canvasWidth + "px", canvasBaseRef.value.style.height = canvasHeight + "px",
|
|
6397
|
+
canvasRectRef.value.width = canvasWidth, canvasRectRef.value.height = canvasHeight,
|
|
6398
|
+
canvasRectRef.value.style.width = canvasWidth + "px", canvasRectRef.value.style.height = canvasHeight + "px";
|
|
6252
6399
|
}, loadingImage = ref(!1), renderImageLabel = rowInfo => {
|
|
6253
6400
|
labels.value = (rowInfo => rowInfo.labels ? rowInfo.labels.map((rect => {
|
|
6254
6401
|
const typeName = props.classes[rect.type];
|
|
@@ -6259,14 +6406,13 @@ var DraggableRect = defineComponent({
|
|
|
6259
6406
|
const image = new Image;
|
|
6260
6407
|
image.src = rowInfo.imageSrc, loadingImage.value = !0, image.onload = () => {
|
|
6261
6408
|
loadingImage.value = !1;
|
|
6262
|
-
|
|
6263
|
-
(
|
|
6264
|
-
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
})(canvasWidth, canvasHeight), labels.value = ((labels, canvasHeight) => {
|
|
6409
|
+
let {width: width, height: height} = image;
|
|
6410
|
+
if (height > clientHeight) {
|
|
6411
|
+
const scale = height / clientHeight;
|
|
6412
|
+
height = clientHeight, image.style.height = height + "px", width /= scale;
|
|
6413
|
+
}
|
|
6414
|
+
const canvasHeight = height, scaleFactor = parseFloat((canvasHeight / height).toFixed(3)), canvasWidth = Math.ceil(width * scaleFactor);
|
|
6415
|
+
setContainerWidthHeight(canvasWidth, canvasHeight), labels.value = ((labels, canvasHeight) => {
|
|
6270
6416
|
let scale_rects = [];
|
|
6271
6417
|
for (let i = 0; i < labels.length; i++) {
|
|
6272
6418
|
const rect = labels[i], scale = parseFloat((canvasHeight / rect.canvasHeight).toFixed(3));
|
|
@@ -6321,26 +6467,13 @@ var DraggableRect = defineComponent({
|
|
|
6321
6467
|
});
|
|
6322
6468
|
drawBaseCanvas.value.updateLabels = updateLabels, drawBaseCanvas.value.addDrawRect = addDrawRect,
|
|
6323
6469
|
drawBaseCanvas.value.hitCanvasLabel = hitCanvasLabel;
|
|
6324
|
-
const {clearCanvas: clearCanvas} = ((canvas, callback, keyW) => {
|
|
6470
|
+
const {clearCanvas: clearCanvas, removeEventAll: removeEventAll} = ((canvas, callback, keyW) => {
|
|
6325
6471
|
const canvasWidth = canvas.width, canvasHeight = canvas.height, ctx = canvas?.getContext("2d"), clearCanvas = () => {
|
|
6326
6472
|
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
|
|
6327
6473
|
};
|
|
6328
6474
|
clearCanvas();
|
|
6329
6475
|
let startX, startY, endX, endY, isDrawing = !1, isRectDraw = !1, isWKeyPressed = !1;
|
|
6330
|
-
|
|
6331
|
-
"KeyW" === event.code && (isWKeyPressed = !0, canvas.style.cursor = "crosshair",
|
|
6332
|
-
canvas.style.zIndex = "11", keyW && keyW());
|
|
6333
|
-
})), document.addEventListener("keyup", (event => {
|
|
6334
|
-
isDrawing || "KeyW" === event.code && (isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6335
|
-
canvas.style.zIndex = "0");
|
|
6336
|
-
})), canvas.addEventListener("mousedown", (e => {
|
|
6337
|
-
isWKeyPressed && (isDrawing = !0, startX = e.offsetX, startY = e.offsetY);
|
|
6338
|
-
})), canvas.addEventListener("mousemove", (e => {
|
|
6339
|
-
isDrawing && isWKeyPressed && (isRectDraw = !0, endX = e.offsetX, endY = e.offsetY,
|
|
6340
|
-
drawRect());
|
|
6341
|
-
})), canvas.addEventListener("mouseup", (() => {
|
|
6342
|
-
if (!isRectDraw) return;
|
|
6343
|
-
isDrawing = !1, isWKeyPressed = !1, canvas.style.cursor = "unset", canvas.style.zIndex = "0";
|
|
6476
|
+
const drawRectDone = () => {
|
|
6344
6477
|
const rectWidth = Math.abs(endX - startX), rectHeight = Math.abs(endY - startY);
|
|
6345
6478
|
startX > endX && (startX = endX), startY > endY && (startY = endY), callback && callback({
|
|
6346
6479
|
startX: startX,
|
|
@@ -6352,8 +6485,30 @@ var DraggableRect = defineComponent({
|
|
|
6352
6485
|
}, {
|
|
6353
6486
|
endX: endX,
|
|
6354
6487
|
endY: endY
|
|
6355
|
-
})
|
|
6356
|
-
}
|
|
6488
|
+
});
|
|
6489
|
+
}, documentKeydown = event => {
|
|
6490
|
+
"KeyW" === event.code && (isWKeyPressed = !0, canvas.style.cursor = "crosshair",
|
|
6491
|
+
canvas.style.zIndex = "11", keyW && keyW());
|
|
6492
|
+
}, documentKeyup = event => {
|
|
6493
|
+
isDrawing || "KeyW" === event.code && (isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6494
|
+
canvas.style.zIndex = "0");
|
|
6495
|
+
}, documentMouseup = () => {
|
|
6496
|
+
isRectDraw && (isDrawing = !1, isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6497
|
+
canvas.style.zIndex = "0", drawRectDone(), isRectDraw = !1);
|
|
6498
|
+
};
|
|
6499
|
+
document.addEventListener("keydown", documentKeydown), document.addEventListener("keyup", documentKeyup),
|
|
6500
|
+
document.addEventListener("mouseup", documentMouseup);
|
|
6501
|
+
const canvasMousedown = e => {
|
|
6502
|
+
isWKeyPressed && (isDrawing = !0, startX = e.offsetX, startY = e.offsetY);
|
|
6503
|
+
}, canvasMousemove = e => {
|
|
6504
|
+
isDrawing && isWKeyPressed && (isRectDraw = !0, endX = e.offsetX, endY = e.offsetY,
|
|
6505
|
+
drawRect());
|
|
6506
|
+
}, canvasMouseup = e => {
|
|
6507
|
+
e.stopPropagation(), isRectDraw && (isDrawing = !1, isWKeyPressed = !1, canvas.style.cursor = "unset",
|
|
6508
|
+
canvas.style.zIndex = "0", drawRectDone(), isRectDraw = !1);
|
|
6509
|
+
};
|
|
6510
|
+
canvas.addEventListener("mousedown", canvasMousedown), canvas.addEventListener("mousemove", canvasMousemove),
|
|
6511
|
+
canvas.addEventListener("mouseup", canvasMouseup);
|
|
6357
6512
|
const drawRect = (color = "#f30635") => {
|
|
6358
6513
|
clearCanvas(), ctx.strokeStyle = color, ctx.strokeRect(startX, startY, endX - startX, endY - startY);
|
|
6359
6514
|
};
|
|
@@ -6361,14 +6516,19 @@ var DraggableRect = defineComponent({
|
|
|
6361
6516
|
canvas: canvas,
|
|
6362
6517
|
ctx: ctx,
|
|
6363
6518
|
clearCanvas: clearCanvas,
|
|
6364
|
-
drawRect: drawRect
|
|
6519
|
+
drawRect: drawRect,
|
|
6520
|
+
removeEventAll: () => {
|
|
6521
|
+
document.removeEventListener("mousedown", documentKeydown), document.removeEventListener("keyup", documentKeyup),
|
|
6522
|
+
document.removeEventListener("mouseup", documentMouseup), canvas.removeEventListener("mousedown", canvasMousedown),
|
|
6523
|
+
canvas.removeEventListener("mousemove", canvasMousemove), canvas.removeEventListener("mouseup", canvasMouseup);
|
|
6524
|
+
}
|
|
6365
6525
|
};
|
|
6366
6526
|
})(canvasRectRef.value, ((rect, {endX: endX, endY: endY}) => {
|
|
6367
6527
|
activate_add_label.value = rect, drawBaseCanvas.value.addDrawRect(rect), updateContextmenuLabelFixed(endX, endY, rect);
|
|
6368
6528
|
}), (() => {
|
|
6369
6529
|
onCloseDraggableRectFixed();
|
|
6370
6530
|
}));
|
|
6371
|
-
drawBaseCanvas.value.clearCanvasRect = clearCanvas;
|
|
6531
|
+
drawBaseCanvas.value.clearCanvasRect = clearCanvas, drawBaseCanvas.value.removeEventAll = removeEventAll;
|
|
6372
6532
|
}, image.onerror = () => {
|
|
6373
6533
|
loadingImage.value = !1;
|
|
6374
6534
|
};
|
|
@@ -6400,6 +6560,8 @@ var DraggableRect = defineComponent({
|
|
|
6400
6560
|
renderImageLabel(rowInfo);
|
|
6401
6561
|
}
|
|
6402
6562
|
}));
|
|
6563
|
+
})), onUnmounted((() => {
|
|
6564
|
+
drawBaseCanvas.value.removeEventAll();
|
|
6403
6565
|
}));
|
|
6404
6566
|
const contextmenuLabelFixed = ref({
|
|
6405
6567
|
show: !1,
|
|
@@ -6407,9 +6569,11 @@ var DraggableRect = defineComponent({
|
|
|
6407
6569
|
left: 0,
|
|
6408
6570
|
activateRect: null
|
|
6409
6571
|
}), updateContextmenuLabelFixed = (x, y, rect) => {
|
|
6410
|
-
|
|
6411
|
-
contextmenuLabelFixed.value.
|
|
6412
|
-
contextmenuLabelFixed.value.
|
|
6572
|
+
const contextRect = canvasBaseRef.value.getBoundingClientRect();
|
|
6573
|
+
contextmenuLabelFixed.value.show = !0, contextmenuLabelFixed.value.left = x + contextRect.x,
|
|
6574
|
+
contextmenuLabelFixed.value.top = y + contextRect.y, contextmenuLabelFixed.value.canvasWidth = canvasBaseRef.value.width,
|
|
6575
|
+
contextmenuLabelFixed.value.canvasHeight = canvasBaseRef.value.height, contextmenuLabelFixed.value.activateRect = rect,
|
|
6576
|
+
activate_add_label.value = rect;
|
|
6413
6577
|
}, onCloseContentmenuLabel = () => {
|
|
6414
6578
|
contextmenuLabelFixed.value.show = !1, contextmenuLabelFixed.value.top = 0, contextmenuLabelFixed.value.left = 0,
|
|
6415
6579
|
contextmenuLabelFixed.value.activateRect = null, activate_add_label.value = null,
|
|
@@ -6473,11 +6637,18 @@ var DraggableRect = defineComponent({
|
|
|
6473
6637
|
onCloseContentmenuLabel: onCloseContentmenuLabel,
|
|
6474
6638
|
onSelectedLabel: (rect, index) => {
|
|
6475
6639
|
onCloseDraggableRectFixed(), nextTick((() => {
|
|
6476
|
-
const {startX: x, startY: y, type: type} = rect;
|
|
6477
|
-
updateDraggableRectFixed(x, y,
|
|
6640
|
+
const {startX: x, startY: y, type: type} = rect, color = colors[type];
|
|
6641
|
+
updateDraggableRectFixed(x, y, labels.value[index], index, color);
|
|
6478
6642
|
}));
|
|
6479
6643
|
},
|
|
6480
|
-
onDeleteLabel: onDeleteLabel
|
|
6644
|
+
onDeleteLabel: onDeleteLabel,
|
|
6645
|
+
rerenderImage: () => {
|
|
6646
|
+
setContainerWidthHeight(0, 0), onCloseContentmenuLabel(), onCloseDraggableRectFixed(),
|
|
6647
|
+
nextTick((() => {
|
|
6648
|
+
const rowInfo = toRaw(props.rowInfo);
|
|
6649
|
+
renderImageLabel(rowInfo);
|
|
6650
|
+
}));
|
|
6651
|
+
}
|
|
6481
6652
|
});
|
|
6482
6653
|
return () => createVNode(Fragment, null, [ createVNode(NextSpinLoading, {
|
|
6483
6654
|
loading: loadingImage.value,
|
|
@@ -6510,6 +6681,9 @@ var DraggableRect = defineComponent({
|
|
|
6510
6681
|
}
|
|
6511
6682
|
}), RightLabel = defineComponent({
|
|
6512
6683
|
props: {
|
|
6684
|
+
contentHeight: {
|
|
6685
|
+
type: Number
|
|
6686
|
+
},
|
|
6513
6687
|
classes: {
|
|
6514
6688
|
type: Array,
|
|
6515
6689
|
default: () => []
|
|
@@ -6533,7 +6707,10 @@ var DraggableRect = defineComponent({
|
|
|
6533
6707
|
immediate: !0
|
|
6534
6708
|
});
|
|
6535
6709
|
const renderContent = () => createVNode("div", {
|
|
6536
|
-
class: [ ns.b("right") ]
|
|
6710
|
+
class: [ ns.b("right") ],
|
|
6711
|
+
style: {
|
|
6712
|
+
height: props.contentHeight + "px"
|
|
6713
|
+
}
|
|
6537
6714
|
}, [ labels.value.length ? createVNode("ul", null, [ labels.value.map(((rect, index) => createVNode("li", {
|
|
6538
6715
|
key: index,
|
|
6539
6716
|
onClick: () => ((rect, index) => {
|
|
@@ -6546,7 +6723,7 @@ var DraggableRect = defineComponent({
|
|
|
6546
6723
|
class: "label-line"
|
|
6547
6724
|
}, null), createVNode("span", null, [ rect.typeName ]) ]), createVNode(ElPopconfirm, {
|
|
6548
6725
|
title: t("next.labelimg.confirmDeleteLabel"),
|
|
6549
|
-
width:
|
|
6726
|
+
width: 200,
|
|
6550
6727
|
onConfirm: () => (rect => {
|
|
6551
6728
|
emit("delete", rect);
|
|
6552
6729
|
})(rect)
|
|
@@ -6567,7 +6744,7 @@ var DraggableRect = defineComponent({
|
|
|
6567
6744
|
return () => createVNode(Fragment, null, [ renderContent() ]);
|
|
6568
6745
|
}
|
|
6569
6746
|
}), defaultConfig = {
|
|
6570
|
-
|
|
6747
|
+
minContentHeight: 500
|
|
6571
6748
|
};
|
|
6572
6749
|
|
|
6573
6750
|
const ns$1 = useNamespace("labelimg");
|
|
@@ -6581,9 +6758,7 @@ var Element = defineComponent({
|
|
|
6581
6758
|
},
|
|
6582
6759
|
style: {
|
|
6583
6760
|
type: Object,
|
|
6584
|
-
default: () => ({
|
|
6585
|
-
position: "unset"
|
|
6586
|
-
})
|
|
6761
|
+
default: () => ({})
|
|
6587
6762
|
},
|
|
6588
6763
|
rowKey: {
|
|
6589
6764
|
type: String,
|
|
@@ -6666,9 +6841,8 @@ var Element = defineComponent({
|
|
|
6666
6841
|
if (loading.value) return;
|
|
6667
6842
|
loading.value = !0;
|
|
6668
6843
|
const {node: node, label_txt: label_txt} = formatNodeLabels();
|
|
6669
|
-
|
|
6670
|
-
|
|
6671
|
-
emit("save", {
|
|
6844
|
+
return canvasContextRef.value.onCloseDraggableRectFixed(), isChangeNodeLabels() ? (activateNodeIndex.value = index,
|
|
6845
|
+
loading.value = !1, !1) : (emit("save", {
|
|
6672
6846
|
node: node,
|
|
6673
6847
|
label_txt: label_txt
|
|
6674
6848
|
}, (imageItem => {
|
|
@@ -6676,7 +6850,7 @@ var Element = defineComponent({
|
|
|
6676
6850
|
loading.value = !1;
|
|
6677
6851
|
}), (() => {
|
|
6678
6852
|
loading.value = !1;
|
|
6679
|
-
}));
|
|
6853
|
+
})), !0);
|
|
6680
6854
|
}, onPaginationPrev = () => {
|
|
6681
6855
|
const imageLength = labelImages.value.length;
|
|
6682
6856
|
let i = activateNodeIndex.value - 1;
|
|
@@ -6685,30 +6859,35 @@ var Element = defineComponent({
|
|
|
6685
6859
|
const imageLength = labelImages.value.length;
|
|
6686
6860
|
let i = activateNodeIndex.value + 1;
|
|
6687
6861
|
i >= imageLength && (i = 0), onChangeActivateNode(i), emit("next-click");
|
|
6688
|
-
}, canvasContextRef = ref(), layoutLabelRef = ref(), headerRef = ref(), mainRef = ref(), footerRef = ref(), mainContentHeight = ref(options.
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
layoutLabelRef.value.style.position = "unset";
|
|
6693
|
-
const contentHeight = (layoutLabelRef.value?.clientHeight || 0) - ((headerRef.value?.clientHeight || 0) + (footerRef.value?.clientHeight || 0));
|
|
6694
|
-
mainContentHeight.value = contentHeight;
|
|
6695
|
-
}));
|
|
6862
|
+
}, canvasContextRef = ref(), layoutLabelRef = ref(), headerRef = ref(), mainRef = ref(), footerRef = ref(), mainContentHeight = ref(options.minContentHeight), updateMainContentHeight = () => {
|
|
6863
|
+
nextTick((() => {
|
|
6864
|
+
const contentHeight = (layoutLabelRef.value?.clientHeight || 0) - ((headerRef.value?.clientHeight || 0) + (footerRef.value?.clientHeight || 0));
|
|
6865
|
+
mainContentHeight.value = contentHeight;
|
|
6696
6866
|
}));
|
|
6867
|
+
};
|
|
6868
|
+
onMounted((() => {
|
|
6869
|
+
document.addEventListener("keydown", onKeydownPrevNext), elementResize(layoutLabelRef.value.parentElement, (() => {
|
|
6870
|
+
updateMainContentHeight();
|
|
6871
|
+
})), window.addEventListener("resize", updateMainContentHeight);
|
|
6697
6872
|
})), onUnmounted((() => {
|
|
6698
|
-
document.removeEventListener("keydown", onKeydownPrevNext);
|
|
6873
|
+
document.removeEventListener("keydown", onKeydownPrevNext), window.removeEventListener("resize", updateMainContentHeight);
|
|
6699
6874
|
}));
|
|
6700
6875
|
const onSelectLabelNode = (rect, index) => {
|
|
6701
6876
|
canvasContextRef.value.onSelectedLabel(rect, index);
|
|
6702
6877
|
}, onDeleteLabelNode = rect => {
|
|
6703
6878
|
canvasContextRef.value.onDeleteLabel(rect);
|
|
6879
|
+
}, isFullscreen = ref(!1), onSwitchFillscreen = val => {
|
|
6880
|
+
isFullscreen.value = val, updateMainContentHeight(), nextTick((() => {
|
|
6881
|
+
canvasContextRef.value.rerenderImage();
|
|
6882
|
+
}));
|
|
6704
6883
|
};
|
|
6705
6884
|
expose({
|
|
6706
6885
|
convertToLabel: convertToLabel,
|
|
6707
6886
|
canvertToCanvas: canvertToCanvas
|
|
6708
6887
|
});
|
|
6709
|
-
|
|
6888
|
+
const renderContent = () => createVNode("div", {
|
|
6710
6889
|
ref: layoutLabelRef,
|
|
6711
|
-
class: [ ns$1.b(), props.className ],
|
|
6890
|
+
class: [ ns$1.b(), props.className, isFullscreen.value ? ns$1.b("fullscreen") : "" ],
|
|
6712
6891
|
style: {
|
|
6713
6892
|
...props.style
|
|
6714
6893
|
}
|
|
@@ -6721,21 +6900,37 @@ var Element = defineComponent({
|
|
|
6721
6900
|
default: () => [ createVNode("header", {
|
|
6722
6901
|
ref: headerRef,
|
|
6723
6902
|
class: [ ns$1.b("header") ]
|
|
6724
|
-
}, [ slots.header ? slots.header() : createVNode(
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
6903
|
+
}, [ slots.header ? slots.header() : createVNode(ToolHeader, {
|
|
6904
|
+
isFullscreen: isFullscreen.value,
|
|
6905
|
+
imageIndex: activateNodeIndex.value,
|
|
6906
|
+
imageLength: labelImages.value.length,
|
|
6907
|
+
onFullscreen: onSwitchFillscreen,
|
|
6908
|
+
onSave: () => {
|
|
6909
|
+
onChangeActivateNode(activateNodeIndex.value) || ElMessage({
|
|
6910
|
+
type: "info",
|
|
6911
|
+
message: t("next.labelimg.labelNoUpdate")
|
|
6912
|
+
});
|
|
6729
6913
|
}
|
|
6730
|
-
},
|
|
6914
|
+
}, null) ]), createVNode("div", {
|
|
6915
|
+
ref: mainRef,
|
|
6916
|
+
class: [ ns$1.b("main") ]
|
|
6917
|
+
}, [ createVNode(ElScrollbar, {
|
|
6731
6918
|
class: [ ns$1.be("main", "content") ]
|
|
6732
|
-
},
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
|
|
6738
|
-
|
|
6919
|
+
}, {
|
|
6920
|
+
default: () => [ createVNode("div", {
|
|
6921
|
+
class: [ ns$1.be("main", "content") ],
|
|
6922
|
+
style: {
|
|
6923
|
+
height: mainContentHeight.value + "px"
|
|
6924
|
+
}
|
|
6925
|
+
}, [ createVNode(CanvasContext, {
|
|
6926
|
+
ref: canvasContextRef,
|
|
6927
|
+
contextClientHeight: mainContentHeight.value,
|
|
6928
|
+
classes: classes.value,
|
|
6929
|
+
rowInfo: currentNode.value,
|
|
6930
|
+
onChange: onChangeNodeRect
|
|
6931
|
+
}, null) ]) ]
|
|
6932
|
+
}), createVNode(RightLabel, {
|
|
6933
|
+
contentHeight: mainContentHeight.value,
|
|
6739
6934
|
classes: classes.value,
|
|
6740
6935
|
labels: activateNodeLabels.value,
|
|
6741
6936
|
onDelete: onDeleteLabelNode,
|
|
@@ -6780,7 +6975,8 @@ var Element = defineComponent({
|
|
|
6780
6975
|
default: () => [ createVNode(arrow_right_default, null, null) ]
|
|
6781
6976
|
}) ]) ]) ]
|
|
6782
6977
|
}) ]
|
|
6783
|
-
}) ])
|
|
6978
|
+
}) ]);
|
|
6979
|
+
return () => createVNode(Fragment, null, [ renderContent() ]);
|
|
6784
6980
|
}
|
|
6785
6981
|
});
|
|
6786
6982
|
|
|
@@ -6908,7 +7104,7 @@ const zoomDialog = app => {
|
|
|
6908
7104
|
}));
|
|
6909
7105
|
}
|
|
6910
7106
|
});
|
|
6911
|
-
}, version = "0.3.
|
|
7107
|
+
}, version = "0.3.2", install = function(app) {
|
|
6912
7108
|
Object.keys(components).forEach((key => {
|
|
6913
7109
|
const component = components[key];
|
|
6914
7110
|
app.component(component.name, component);
|
|
@@ -6918,7 +7114,7 @@ const zoomDialog = app => {
|
|
|
6918
7114
|
};
|
|
6919
7115
|
|
|
6920
7116
|
var index = {
|
|
6921
|
-
version: "0.3.
|
|
7117
|
+
version: "0.3.2",
|
|
6922
7118
|
install: install
|
|
6923
7119
|
};
|
|
6924
7120
|
|