diff --git a/src/views/Creative/MyCreation.vue b/src/views/Creative/MyCreation.vue
index 40f5d333..1be826a0 100644
--- a/src/views/Creative/MyCreation.vue
+++ b/src/views/Creative/MyCreation.vue
@@ -68,7 +68,7 @@
编辑
-
+
添加到素材库
@@ -222,31 +222,63 @@ const edit = (row) => {
const createToMaterial = (row) => {
- Modal.confirm({
- title: "添加到素材库",
- content: "确认将此3D产品模型添加到素材库?",
- async onOk () {
-
- const data = row.materials[0].space_json;
+ if(row.type == CREATIVE_TYPE.RING_360) {
+ Modal.confirm({
+ title: "添加到素材库",
+ content: "确认将此3D环物添加到素材库?",
+ async onOk () {
+
+ const data = row.materials[0].space_json;
- var obj = THREE_D_TYPE_S.find(x => x.type == THREE_D_TYPE.WARE);
+ var obj = THREE_D_TYPE_S.find(x => x.type == THREE_D_TYPE.RING_3D);
- var target = JSON.parse(JSON.stringify(obj));
- target.title = row.title;
- target.cover = row.cover;
- target.fileList = [{ response: {}}];
- target = buildData(target);
- target.data = {
- ...target.data,
- ...data
- }
+ var target = JSON.parse(JSON.stringify(obj));
+ target.title = row.title;
+ target.cover = row.cover;
+ target.fileList = [{ response: {}}];
+ target = buildData(target);
+
+ target.data = {
+ ...target.data,
+ ...data
+ }
- await createMaterialLibrary(target);
+ await createMaterialLibrary(target);
- message.success("添加成功");
- },
- onCancel () { },
- });
+ message.success("添加成功");
+ },
+ onCancel () { },
+ });
+ }
+
+ if(row.type == CREATIVE_TYPE.MODEL_3D) {
+ Modal.confirm({
+ title: "添加到素材库",
+ content: "确认将此3D产品模型添加到素材库?",
+ async onOk () {
+
+ const data = row.materials[0].space_json;
+
+ var obj = THREE_D_TYPE_S.find(x => x.type == THREE_D_TYPE.WARE);
+
+ var target = JSON.parse(JSON.stringify(obj));
+ target.title = row.title;
+ target.cover = row.cover;
+ target.fileList = [{ response: {}}];
+ target = buildData(target);
+
+ target.data = {
+ ...target.data,
+ ...data
+ }
+
+ await createMaterialLibrary(target);
+
+ message.success("添加成功");
+ },
+ onCancel () { },
+ });
+ }
}
diff --git a/src/views/Creative/components/CreateCreative/Creative.constant.js b/src/views/Creative/components/CreateCreative/Creative.constant.js
index 3a1b2775..a0aca265 100644
--- a/src/views/Creative/components/CreateCreative/Creative.constant.js
+++ b/src/views/Creative/components/CreateCreative/Creative.constant.js
@@ -1,4 +1,5 @@
-import { THREE_D_TYPE } from "../CreateMaterial/Material.constant"
+import { THREE_D_TYPE } from "../CreateMaterial/Material.constant";
+import { createUrlTempForRing3D } from "../_creative.utils";
export const CREATIVE_TYPE = {
THREE_D: 1,
@@ -135,11 +136,29 @@ const factorys = [
const data = origin.data;
var key = new Date().getTime();
+ var temp = createUrlTempForRing3D(data.fileList);
data.fileList.sort((a, b) => a.name.localeCompare(b.name));
origin.data = {
- imgs: data.fileList.map(x => ({name: x.name, url: x.url}))
+
+ "id": `ring-${key}`,
+ "name": `${data.title}`,
+ "url": temp,
+ "urlSmall": temp,
+ "urlThumb": data.fileList[0].url,
+ "rsFrames": data.fileList.length,
+ "rsClockwise": true,
+ "rsFirstRotY": 0,
+ "rsWidth": 0.2,
+ "rsHeight": 0.2,
+ "rsCenterY": 0.45,
+ "type": 21,
+
+ "imgs": data.fileList.map(x => ({name: x.name, url: x.url})),
+
+ "surveyLogo": "",
+ "surveyPrice": 0
};
origin.cover = data.fileList[0].url;
diff --git a/src/views/Creative/components/CreateMaterial/Material.constant.js b/src/views/Creative/components/CreateMaterial/Material.constant.js
index 08870556..e5e421ed 100644
--- a/src/views/Creative/components/CreateMaterial/Material.constant.js
+++ b/src/views/Creative/components/CreateMaterial/Material.constant.js
@@ -1,4 +1,5 @@
import { try_append_shelf_originCells } from "../../lib/shelves.module";
+import { createUrlTempForRing3D } from "../_creative.utils";
export const THREE_D_TYPE = {
PANORAMA: 1,
@@ -218,14 +219,15 @@ const factorys = [
type: THREE_D_TYPE.RING_3D,
build(data){
var key = new Date().getTime();
+ var temp = createUrlTempForRing3D(data.fileList);
return {
...data,
data: {
- "id": `ware-${key}`,
+ "id": `ring-${key}`,
"name": `${data.title}`,
- "url": data.urlTempForScene,
- "urlSmall": data.urlTempForScene,
+ "url": temp,
+ "urlSmall": temp,
"urlThumb": data.fileList[0].url,
"rsFrames": data.fileList.length,
"rsClockwise": true,
@@ -240,7 +242,6 @@ const factorys = [
"surveyLogo": "",
"surveyPrice": 0
},
- cover: data.fileList[0].url,
fileList: undefined
};
}
diff --git a/src/views/Creative/components/CreateMaterial/Ring3DMaterial.vue b/src/views/Creative/components/CreateMaterial/Ring3DMaterial.vue
index 87a24194..b586574f 100644
--- a/src/views/Creative/components/CreateMaterial/Ring3DMaterial.vue
+++ b/src/views/Creative/components/CreateMaterial/Ring3DMaterial.vue
@@ -62,7 +62,6 @@ const formData = ref({
type: 0,
title: '',
fileList: [],
- urlTempForScene: "",
});
const cancelText = computed(() => {
@@ -96,7 +95,6 @@ const show = (type) => {
var target = JSON.parse(JSON.stringify(obj));
target.title = "";
target.fileList = [];
- target.urlTempForScene = "";
formData.value = target;
step.value = 0;
visible.value = true;
@@ -119,49 +117,11 @@ const onCustomRequest = async (upload) => {
// upload.onSuccess(data);
}
-const resolveUrlTempForScene = (url) => {
-
- if(formData.value.urlTempForScene.includes("$2")) {
- return;
- }
-
- if(!formData.value.urlTempForScene) {
- formData.value.urlTempForScene = url;
- }
- else{
-
- var arr = [];
- var start = 0;
- var end = 0;
- var i = 0;
- for(i = 0; i <= formData.value.urlTempForScene.length; i++){
-
- if(formData.value.urlTempForScene.charAt(i) == url.charAt(i)){
- end = i;
- continue;
- }
-
- if(end > start) arr.push({start, end});
-
- start = i + 1;
- }
-
- if(end > start) arr.push({start, end});
-
- var res = arr.map(item => url.substring(item.start, item.end));
-
- formData.value.urlTempForScene = res.join("$2");
-
- }
-}
-
-
const execUpload = async () => {
var dir = new Date().getTime();
await Promise.all(formData.value.fileList.map((file) => new Promise((resolve, reject) => {
common.cosUpload3D(file.originFileObj, `${dir}/${file.name}`).then(data => {
file.url = data.url;
- resolveUrlTempForScene(data.url);
resolve();
});
})))
@@ -182,22 +142,24 @@ const ok = async () => {
message.warning("请上传3D环物资源")
return;
}
- // if(formData.value.fileList.length < 30) {
- // message.warning("上传3D环物资源不能小于30张")
- // return;
- // }
- // if(formData.value.fileList.length > 40) {
- // message.warning("上传3D环物资源不能大于40张")
- // return;
- // }
- // if(formData.value.fileList.reduce(((ctx, cur) => ctx + cur.size), 0) > 500 * 1024 * 1024) {
- // message.warning("上传3D环物资源不能大于500M")
- // return;
- // }
+ if(formData.value.fileList.length < 30) {
+ message.warning("上传3D环物资源不能小于30张")
+ return;
+ }
+ if(formData.value.fileList.length > 40) {
+ message.warning("上传3D环物资源不能大于40张")
+ return;
+ }
+ if(formData.value.fileList.reduce(((ctx, cur) => ctx + cur.size), 0) > 500 * 1024 * 1024) {
+ message.warning("上传3D环物资源不能大于500M")
+ return;
+ }
stepLoading.value = true;
await execUpload();
+
+ formData.value.cover = formData.value.fileList[0].response.url;
const data = JSON.parse(JSON.stringify(formData.value));
await createMaterialLibrary(buildData(data));
diff --git a/src/views/Creative/components/_creative.utils.js b/src/views/Creative/components/_creative.utils.js
new file mode 100644
index 00000000..67e2e9f9
--- /dev/null
+++ b/src/views/Creative/components/_creative.utils.js
@@ -0,0 +1,44 @@
+
+
+export const createUrlTempForRing3D = (imgs) => {
+
+ var temp = "";
+
+ imgs.forEach(({ url }) => {
+
+
+ if(temp.includes("$2")) {
+ return;
+ }
+
+ if(!temp) {
+ temp = url;
+ }
+ else{
+
+ var arr = [];
+ var start = 0;
+ var end = 0;
+ var i = 0;
+ for(i = 0; i <= temp.length; i++){
+
+ if(temp.charAt(i) == url.charAt(i)){
+ end = i;
+ continue;
+ }
+
+ if(end > start) arr.push({start, end});
+
+ start = i + 1;
+ }
+
+ if(end > start) arr.push({start, end});
+
+ var res = arr.map(item => url.substring(item.start, item.end));
+
+ temp = res.join("$2");
+ }
+ });
+
+ return temp;
+}
\ No newline at end of file