diff --git a/package-lock.json b/package-lock.json index 2936d1c7..16c8089c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1956,6 +1956,87 @@ "webpack-chain": "^6.4.0", "webpack-dev-server": "^3.11.0", "webpack-merge": "^4.2.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } + } } }, "@vue/cli-shared-utils": { @@ -13751,87 +13832,6 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.8.3", - "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", - "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "vue-matomo": { "version": "4.1.0", "resolved": "https://registry.npmmirror.com/vue-matomo/-/vue-matomo-4.1.0.tgz", diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/commodities-mock-data.js b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/commodities-mock-data.js index 43b90f4d..abe4f040 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/commodities-mock-data.js +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/commodities-mock-data.js @@ -1,46 +1,61 @@ import { reactive } from 'vue' import { api } from '../../../shelves-vue/api/baseApi' +// #20221223, uv2 to uvGroup 暂时不启用 通过 texture中的 @relUvGroup m:n 关联 +// #20221223, 通过 1:n 与 texture中的 @relCommodityId关联 + export const commodities = reactive({ list: [ { + id: "vB8DxY", name: "can-1", url: `${api.storePrefix}/commodity/4w2sNH/can-1.glb`, urlThumb: `${api.storePrefix}/commodity/4w2sNH/can-t.png`, - uv2: "uv0001", - }, - { - name: "box-1", - url: `${api.storePrefix}/commodity/Ddv0so/box-1.glb`, - urlThumb: `${api.storePrefix}/commodity/Ddv0so/box-t.png`, - uv2: "uv0001", - }, - { - name: "pillow-1", - url: `${api.storePrefix}/commodity/ejZCVf/pillow-1.glb`, - urlThumb: `${api.storePrefix}/commodity/ejZCVf/pillow-t.png`, - uv2: "uv0001", + uvGroup: "uv0001", }, + // 暂时不启用,用于uvGroup时,还可以用来做测试 + // { + // id: "bmJZrV", + // name: "box-1", + // url: `${api.storePrefix}/commodity/Ddv0so/box-1.glb`, + // urlThumb: `${api.storePrefix}/commodity/Ddv0so/box-t.png`, + // uvGroup: "uv0001", + // }, + // { + // id: "I23LAF", + // name: "pillow-1", + // url: `${api.storePrefix}/commodity/ejZCVf/pillow-1.glb`, + // urlThumb: `${api.storePrefix}/commodity/ejZCVf/pillow-t.png`, + // uvGroup: "uv0001", + // }, // v2 { + id: "aV4P66", name: "box-2", url: `${api.storePrefix}/commodity/RJvhDw/box-2.glb`, urlThumb: `${api.storePrefix}/commodity/RJvhDw/box2-t.png`, - uv2: "uv0002", - }, - { - name: "box-3", - url: `${api.storePrefix}/commodity/yW34DQ/box-3.glb`, - urlThumb: `${api.storePrefix}/commodity/yW34DQ/box3-t.png`, - uv2: "uv0002", - }, - { - name: "bottle-1", - url: `${api.storePrefix}/commodity/bK1OvY/bottle-1.glb`, - urlThumb: `${api.storePrefix}/commodity/bK1OvY/bottle-t.png`, - uv2: "uv0002", + uvGroup: "uv0002", }, + // 暂时不启用,用于uvGroup时,还可以用来做测试 + // { + // id: "ZxBj5x", + // name: "box-3", + // url: `${api.storePrefix}/commodity/yW34DQ/box-3.glb`, + // urlThumb: `${api.storePrefix}/commodity/yW34DQ/box3-t.png`, + // uvGroup: "uv0002", + // }, + // { + // id: "lNIfW5", + // name: "bottle-1", + // url: `${api.storePrefix}/commodity/bK1OvY/bottle-1.glb`, + // urlThumb: `${api.storePrefix}/commodity/bK1OvY/bottle-t.png`, + // uvGroup: "uv0002", + // }, + + // v5 + + ] }) \ No newline at end of file diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/data/shelf3_cells.json b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/data/shelf3_cells.json index 06eca9d2..e0cb197e 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/data/shelf3_cells.json +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/data/shelf3_cells.json @@ -1,461 +1,850 @@ [ - { - "name": "1-1", - "box": { - "position": { - "x": -0.41977018117904663, - "y": 0.8764199614524841, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": -0.0027324557304382324, - "y": -0.04069489240646362, - "z": 0.1743204391002655 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.1499999999999999, - "z": 0 - } - } - } - } - }, - { - "name": "1-2", - "box": { - "position": { - "x": 0, - "y": 0.8764199614524841, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": 0, - "y": -0.04069489240646362, - "z": 0.1743204391002655 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.1499999999999999, - "z": 0 - } - } - } - } - }, - { - "name": "1-3", - "box": { - "position": { - "x": 0.42808833718299866, - "y": 0.8764199614524841, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": -0.005585700273513794, - "y": -0.04069489240646362, - "z": 0.1743204391002655 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.1499999999999999, - "z": 0 - } - } - } - } - }, - { - "name": "2-1", - "box": { - "position": { - "x": -0.41977018117904663, - "y": 0.5486653447151184, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": -0.0027324557304382324, - "y": -0.0426822304725647, - "z": 0.1743204391002655 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.15000000000000002, - "z": 0 - } - } - } - } - }, - { - "name": "2-2", - "box": { - "position": { - "x": 0, - "y": 0.5486653447151184, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": 0, - "y": -0.0426822304725647, - "z": 0.1743204391002655 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.15000000000000002, - "z": 0 - } - } - } - } - }, - { - "name": "2-3", - "box": { - "position": { - "x": 0.42808833718299866, - "y": 0.5486653447151184, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": -0.005585700273513794, - "y": -0.0426822304725647, - "z": 0.1743204391002655 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.15000000000000002, - "z": 0 - } - } - } - } - }, - { - "name": "3-1", - "box": { - "position": { - "x": -0.41977018117904663, - "y": 0.1945505440235138, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": -0.0027324557304382324, - "y": -0.0635165274143219, - "z": 0.1846828854084015 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.15000000000000002, - "z": 0 - } - } - } - } - }, - { - "name": "3-2", - "box": { - "position": { - "x": 0, - "y": 0.1945505440235138, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": 0, - "y": -0.0635165274143219, - "z": 0.1846828854084015 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.15000000000000002, - "z": 0 - } - } - } - } - }, - { - "name": "3-3", - "box": { - "position": { - "x": 0.42808833718299866, - "y": 0.1945505440235138, - "z": 0.45017966628074646 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 1, - "y": 1, - "z": 1 - }, - "size": { - "x": 0.37358155846595764, - "y": 0.225911445915699, - "z": 0.21794167160987854 - }, - "child": { - "sign": { - "position": { - "x": -0.005585700273513794, - "y": -0.0635165274143219, - "z": 0.1846828854084015 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0.7393795847892761, - "y": 0.05661093816161156, - "z": 0.05661093816161156 - } - }, - "logo": { - "position": { - "x": 0, - "y": 0.15000000000000002, - "z": 0 - } - } - } - } - } + { + "name": "1-1", + "box": { + "position": { + "x": -0.605500512913119, + "y": 0.8538858659191146, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": -0.0027324557304382324, + "y": -0.03184773059511403, + "z": 0.1743204391002655 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.1499999999999999, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "1-2", + "box": { + "position": { + "x": -0.18658027999214435, + "y": 0.8512643658064176, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": 0, + "y": -0.02759083972388149, + "z": 0.1743204391002655 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.1499999999999999, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "1-3", + "box": { + "position": { + "x": 0.2230628973331703, + "y": 0.8511807287232012, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": -0.005585700273513794, + "y": -0.032213962561231047, + "z": 0.1743204391002655 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.1499999999999999, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "2-1", + "box": { + "position": { + "x": -0.60433011332925, + "y": 0.5125224579062782, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": -0.0027324557304382324, + "y": -0.034508354476310954, + "z": 0.1743204391002655 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15000000000000002, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "2-2", + "box": { + "position": { + "x": -0.1914175066620415, + "y": 0.5095275839341008, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": 0, + "y": -0.027170852492222397, + "z": 0.1743204391002655 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15000000000000002, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "2-3", + "box": { + "position": { + "x": 0.22360906333448538, + "y": 0.5101818344822482, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": -0.005585700273513794, + "y": -0.030842453533999448, + "z": 0.1743204391002655 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15000000000000002, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "3-1", + "box": { + "position": { + "x": -0.6134215690979794, + "y": 0.1945505440235138, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": -0.0027324557304382324, + "y": -0.024228371171756358, + "z": 0.1846828854084015 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15000000000000002, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "3-2", + "box": { + "position": { + "x": -0.19111044416229633, + "y": 0.1945505440235138, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": 0, + "y": -0.021009267483951266, + "z": 0.1846828854084015 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15000000000000002, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "3-3", + "box": { + "position": { + "x": 0.21581759477578777, + "y": 0.1945505440235138, + "z": 0.45017966628074646 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "size": { + "x": 0.37358155846595764, + "y": 0.225911445915699, + "z": 0.21794167160987854 + }, + "child": { + "sign": { + "position": { + "x": -0.005585700273513794, + "y": -0.020448554878266023, + "z": 0.1846828854084015 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 0.7393795847892761, + "y": 0.05661093816161156, + "z": 0.05661093816161156 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15000000000000002, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "0-1", + "box": { + "position": { + "x": -0.6093719155636137, + "y": 1.1925115714503842, + "z": 0.45 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "size": { + "x": 0.3736, + "y": 0.2259, + "z": 0.2179 + }, + "child": { + "sign": { + "position": { + "x": -0.006, + "y": -0.029369916622918046, + "z": 0.1847 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "0-2", + "box": { + "position": { + "x": -0.18520626992561548, + "y": 1.1908614160723439, + "z": 0.45 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "size": { + "x": 0.3736, + "y": 0.2259, + "z": 0.2179 + }, + "child": { + "sign": { + "position": { + "x": -0.006, + "y": -0.03174731410176801, + "z": 0.1847 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "0-3", + "box": { + "position": { + "x": 0.2287325535366465, + "y": 1.1892382329257407, + "z": 0.45 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "size": { + "x": 0.3736, + "y": 0.2259, + "z": 0.2179 + }, + "child": { + "sign": { + "position": { + "x": -0.006, + "y": -0.028571714546698213, + "z": 0.1847 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "0-4", + "box": { + "position": { + "x": 0.661393068886308, + "y": 1.1909523674363642, + "z": 0.4537964589333506 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "size": { + "x": 0.3736, + "y": 0.2259, + "z": 0.2179 + }, + "child": { + "sign": { + "position": { + "x": -0.006, + "y": -0.03136253199426353, + "z": 0.1847 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "1-4", + "box": { + "position": { + "x": 0.6551478924840007, + "y": 0.8483097259524031, + "z": 0.45 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "size": { + "x": 0.3736, + "y": 0.2259, + "z": 0.2179 + }, + "child": { + "sign": { + "position": { + "x": -0.006, + "y": -0.02673691703609271, + "z": 0.1847 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "2-4", + "box": { + "position": { + "x": 0.6482247451401058, + "y": 0.504394091002413, + "z": 0.45 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "size": { + "x": 0.3736, + "y": 0.2259, + "z": 0.2179 + }, + "child": { + "sign": { + "position": { + "x": -0.006, + "y": -0.02471250348374021, + "z": 0.1847 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + }, + { + "name": "3-4", + "box": { + "position": { + "x": 0.6432047193626257, + "y": 0.19147498005043284, + "z": 0.45 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "size": { + "x": 0.3736, + "y": 0.2259, + "z": 0.2179 + }, + "child": { + "sign": { + "position": { + "x": -0.006, + "y": -0.013996807328698846, + "z": 0.1847 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "scale": { + "x": 1, + "y": 1, + "z": 1 + } + }, + "logo": { + "position": { + "x": 0, + "y": 0.15, + "z": 0 + } + } + } + }, + "pileNumber": 6, + "pileRotationY": 0 + } ] \ No newline at end of file diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/panoramas-mock-data.js b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/panoramas-mock-data.js index 714e4b37..ca239c84 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/panoramas-mock-data.js +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/panoramas-mock-data.js @@ -38,7 +38,7 @@ export const panoramas = reactive({ urlShelfExr: `${api.storePrefix}/v3.5/panorama/shop1-yo-2-shelf-1k.exr`, // #20221009 urlHoldExr: `${api.storePrefix}/v3.5/panorama/shop1-yo-2-hold-1k.exr`, // #20221011 rotationY: 0, - multiply: 2, + multiply: 3, // #20221223 2 to 3 }, ], }) \ No newline at end of file diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/textures-mock-data.js b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/textures-mock-data.js index efb33eff..6e101715 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/textures-mock-data.js +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mock-data/textures-mock-data.js @@ -1,46 +1,62 @@ import { reactive } from 'vue' import { api } from '../../../shelves-vue/api/baseApi' +// #20221223, uv2 to relUvGroup 暂时不启用 +// #20221223, 通过 1:n 与 texture中的 @relCommodityId关联 + export const textures = reactive({ list: [ { + id: "AgcvT1", name: "香蕉", - uv2: "uv0001", + relUvGroup: "uv0001", url: `${api.storePrefix}/texture/qh5BZs/2k/design-1-nologo-20220520-gen-00000--logo-mn-banana.jpg`, urlSmall: `${api.storePrefix}/texture/qh5BZs/1k/design-1-nologo-20220520-gen-00000--logo-mn-banana.jpg`, + relCommodityId: "vB8DxY", }, { + id: "yKd1vp", name: "蓝莓", - uv2: "uv0001", + relUvGroup: "uv0001", url: `${api.storePrefix}/texture/qh5BZs/2k/design-1-nologo-20220520-gen-00000--logo-mn-blueberry.jpg`, urlSmall: `${api.storePrefix}/texture/qh5BZs/1k/design-1-nologo-20220520-gen-00000--logo-mn-blueberry.jpg`, + relCommodityId: "vB8DxY", }, { + id: "DJgALu", name: "草莓", - uv2: "uv0001", + relUvGroup: "uv0001", url: `${api.storePrefix}/texture/qh5BZs/2k/design-1-nologo-20220520-gen-00000--logo-mn-strawberry.jpg`, urlSmall: `${api.storePrefix}/texture/qh5BZs/1k/design-1-nologo-20220520-gen-00000--logo-mn-strawberry.jpg`, + relCommodityId: "vB8DxY", }, // v2 { + id: "x6T3xv", name: "刺角瓜", - uv2: "uv0002", + relUvGroup: "uv0002", url: `${api.storePrefix}/texture/ykvH9u/2k/design-2-nologo-20220503-gen-00000--logo-mn-v2-a.jpg`, urlSmall: `${api.storePrefix}/texture/ykvH9u/1k/design-2-nologo-20220503-gen-00000--logo-mn-v2-a.jpg`, + relCommodityId: "aV4P66", }, { + id: "73aWPv", name: "冰晶蓝", - uv2: "uv0002", + relUvGroup: "uv0002", url: `${api.storePrefix}/texture/ykvH9u/2k/design-2-nologo-20220503-gen-00000--logo-mn-v2-b.jpg`, urlSmall: `${api.storePrefix}/texture/ykvH9u/1k/design-2-nologo-20220503-gen-00000--logo-mn-v2-b.jpg`, + relCommodityId: "aV4P66", }, { + id: "U9wSV2", name: "奇亚籽", - uv2: "uv0002", + relUvGroup: "uv0002", url: `${api.storePrefix}/texture/ykvH9u/2k/design-2-nologo-20220503-gen-00000--logo-mn-v2-c.jpg`, urlSmall: `${api.storePrefix}/texture/ykvH9u/1k/design-2-nologo-20220503-gen-00000--logo-mn-v2-c.jpg`, + relCommodityId: "aV4P66", }, + ] }) \ No newline at end of file diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mockApi.js b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mockApi.js index 5c5eac3b..910cb33b 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mockApi.js +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/mockApi.js @@ -143,6 +143,17 @@ export const setupMockApi = (store) => { }) } + api.listTexturesByRelCommodityId = (relCommodityId) => { + // console.log('MOCK API listTexturesByRelCommodityId', + // relCommodityId, + // textures.list, + // textures.list.filter(itm => itm.relCommodityId == relCommodityId) + // ) + return new Promise(resolve => { + resolve(wrap_result_(textures.list.filter(itm => itm.relCommodityId == relCommodityId))) + }) + } + api.addTexture = data => { return new Promise(resolve => { let data2 = Object.assign({}, data, { diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/util/surveyData-generator.js b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/util/surveyData-generator.js index b3f458aa..a699a5f4 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/api/util/surveyData-generator.js +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/api/util/surveyData-generator.js @@ -169,6 +169,7 @@ export const generate_v5_ = opts => { '4': 0, } + let pages = [] for (let i = 0; i < opts.PAGE_MAX; i++) { // console.log(sr.next()) @@ -177,6 +178,12 @@ export const generate_v5_ = opts => { if (opts.shopData.shelves) { opts.shopData.shelves.forEach(shelf => { + + let forcePileNumber = null + if (shelf.hideWhenSurvey) { // 测试用,可能是,大超市货架 4x4 + forcePileNumber = 6 + } + shelf.cells.forEach((cell, idx) => { let col = cell.name.substring(2) // console.log('col', col) @@ -186,8 +193,8 @@ export const generate_v5_ = opts => { sign: cell.sign, logo: cell.logo, // - pileNumber: opts.forcePileNumber || cell.pileNumber, - pileRotationY: cell.pileRotationY, + pileNumber: forcePileNumber || cell.pileNumber || 2, + pileRotationY: cell.pileRotationY || 0, // // surveyWare: sr.nextFromArray(wares_v3_5_), surveyWare: opts.wares_v3_5_[col_2_ware_i[col]], diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/asset/flow1.svg b/src/views/Creative/3d/crossyo/shelves-vue-demo/asset/flow1.svg index 884fcd8a..9e45cc93 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/asset/flow1.svg +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/asset/flow1.svg @@ -45,7 +45,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -131,7 +131,7 @@ - + @@ -153,7 +153,7 @@ - + @@ -175,7 +175,7 @@ - + @@ -197,7 +197,7 @@ - + @@ -326,8 +326,8 @@ 环境 挂载 挂载 -挂载 -1.完整模型 2.模型+纹理 +挂载 +1.完整模型 2.模型+纹理 容器 @@ -683,14 +683,14 @@ - - + + - - + + @@ -1234,7 +1234,7 @@ - + diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/AddWareWithSeparateTextureDemo.vue b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/AddWareWithSeparateTextureDemo.vue index 97ef02e8..b073a68a 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/AddWareWithSeparateTextureDemo.vue +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/AddWareWithSeparateTextureDemo.vue @@ -1,17 +1,32 @@ - diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/Flows.vue b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/Flows.vue index 54f37b5b..bc08239a 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/Flows.vue +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/Flows.vue @@ -107,7 +107,7 @@ import { } from '../api/util/surveyData-generator' import { behaviors } from '../api/mock-data/behaviors-mock-data' -import { api } from '@/crossyo/shelves-vue/api/baseApi' +import { api } from '@/views/Creative/3d/crossyo/shelves-vue/api/baseApi' export default { components: { diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/FlowsSetup.js b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/FlowsSetup.js index 5e534fa7..079fcbdd 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/FlowsSetup.js +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/FlowsSetup.js @@ -8,7 +8,7 @@ import { wares } from '../api/mock-data/wares-mock-data' import { behaviors } from '../api/mock-data/behaviors-mock-data' import { rotSprites } from '../api/mock-data/rotSprites-mock-data' import { tags } from '../api/mock-data/tags-mock-data' -// import { api } from "@/crossyo/shelves-vue/api/baseApi" +import { api } from "@/views/Creative/3d/crossyo/shelves-vue/api/baseApi" const setup = function () { diff --git a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/ShopSurveyViewerDemo.vue b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/ShopSurveyViewerDemo.vue index 9f81631f..cd3fe8c0 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue-demo/view/ShopSurveyViewerDemo.vue +++ b/src/views/Creative/3d/crossyo/shelves-vue-demo/view/ShopSurveyViewerDemo.vue @@ -35,7 +35,7 @@ + + \ No newline at end of file diff --git a/src/views/Creative/3d/crossyo/shelves-vue/components/editor/TabListCommodity.vue b/src/views/Creative/3d/crossyo/shelves-vue/components/editor/TabListCommodity.vue new file mode 100644 index 00000000..a7917ab4 --- /dev/null +++ b/src/views/Creative/3d/crossyo/shelves-vue/components/editor/TabListCommodity.vue @@ -0,0 +1,58 @@ + + + + + + + diff --git a/src/views/Creative/3d/crossyo/shelves-vue/components/editor/TabListCommodityRelTexture.vue b/src/views/Creative/3d/crossyo/shelves-vue/components/editor/TabListCommodityRelTexture.vue new file mode 100644 index 00000000..9ab807ba --- /dev/null +++ b/src/views/Creative/3d/crossyo/shelves-vue/components/editor/TabListCommodityRelTexture.vue @@ -0,0 +1,70 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/Creative/3d/crossyo/shelves-vue/store/textures.js b/src/views/Creative/3d/crossyo/shelves-vue/store/textures.js index 64fb2383..57d14725 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue/store/textures.js +++ b/src/views/Creative/3d/crossyo/shelves-vue/store/textures.js @@ -10,6 +10,7 @@ export default { state.list = list }, add(state, data) { + // console.log('STORE textures add', data) state.list.unshift(data) } }, @@ -25,6 +26,17 @@ export default { }) }) }, + listByRelCommodityId({ commit }, { relCommodityId }) { + return new Promise(resolve => { + api.listTexturesByRelCommodityId(relCommodityId).then(resp => { + if (resp.data && resp.data.success) { + let list = resp.data.result + commit('save', list) + resolve(list) + } + }) + }) + }, add({ commit }, data) { return new Promise(resolve => { api.addTexture(data).then(resp => { diff --git a/src/views/Creative/3d/crossyo/shelves-vue/view/CommodityUploader.vue b/src/views/Creative/3d/crossyo/shelves-vue/view/CommodityUploader.vue index 666d05cc..55e7f710 100644 --- a/src/views/Creative/3d/crossyo/shelves-vue/view/CommodityUploader.vue +++ b/src/views/Creative/3d/crossyo/shelves-vue/view/CommodityUploader.vue @@ -3,7 +3,7 @@ - + --> + + +