|
@@ -80,12 +80,14 @@ import useCanvasExport from "@/hooks/useCanvasExport";
|
|
|
import {updateDesignTemplate} from "@/api/template";
|
|
import {updateDesignTemplate} from "@/api/template";
|
|
|
import {ElMessage, FormInstance} from "element-plus";
|
|
import {ElMessage, FormInstance} from "element-plus";
|
|
|
import {getToken} from "@/utils/js-cookie";
|
|
import {getToken} from "@/utils/js-cookie";
|
|
|
|
|
+import useCanvas from "@/views/Canvas/useCanvas";
|
|
|
|
|
|
|
|
const templatesStore = useTemplatesStore()
|
|
const templatesStore = useTemplatesStore()
|
|
|
const {getJSONData} = useCanvasExport()
|
|
const {getJSONData} = useCanvasExport()
|
|
|
|
|
|
|
|
const {t} = useI18n();
|
|
const {t} = useI18n();
|
|
|
|
|
|
|
|
|
|
+
|
|
|
const mainStore = useMainStore();
|
|
const mainStore = useMainStore();
|
|
|
const {canvasObject, rightState} = storeToRefs(mainStore);
|
|
const {canvasObject, rightState} = storeToRefs(mainStore);
|
|
|
const exportFileDialog = ref(false)
|
|
const exportFileDialog = ref(false)
|
|
@@ -118,6 +120,25 @@ const onSaveTemplate = () => {
|
|
|
ElMessage.error('当前用户未登录,设计无法保存')
|
|
ElMessage.error('当前用户未登录,设计无法保存')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
+ //检查一下是否每个元素都给了itemName
|
|
|
|
|
+ const [canvas] = useCanvas()
|
|
|
|
|
+ const objects = canvas.getObjects().filter((object) => !["WorkSpaceMaskType", "WorkSpaceClipType", "WorkSpaceSafeType", "WorkSpaceClipType"].includes(object.id));
|
|
|
|
|
+ if (objects.findIndex((object) => !object.itemName) >= 0) {
|
|
|
|
|
+ ElMessage.error('部分元素未设置名称,请设置元素名称后保存')
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ const groupByItemName = objects.reduce((acc, item) => {
|
|
|
|
|
+ if (!acc[item.itemName]) {
|
|
|
|
|
+ acc[item.itemName] = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ acc[item.itemName].push(item);
|
|
|
|
|
+ return acc;
|
|
|
|
|
+ }, {});
|
|
|
|
|
+ if (Object.keys(groupByItemName).length < objects.length) {
|
|
|
|
|
+ ElMessage.error('部分元素名称重复,请保证各个元素名称唯一')
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
formData.templateName = templatesStore.templateName
|
|
formData.templateName = templatesStore.templateName
|
|
|
showSaveDlg.value = true
|
|
showSaveDlg.value = true
|