fix: 3D环物URL模板算法

This commit is contained in:
wanganmao
2023-02-09 11:21:05 +08:00
parent 8f7239104a
commit bf245171ee
3 changed files with 44 additions and 3 deletions

View File

@@ -21,7 +21,7 @@
</a-button>
</a-upload>
<p class="ant-upload-hint">
图片格式大小数量要求jpgpng格式分辨率需保持一致单个环物素材包最大支持上传500M不多于40张建议上传30~40张图片单个环物素材包50M效果更佳图片命名图片名称后缀按照字母/数字升序命名010203以此类推单反拍摄素材名可自动识别
图片格式大小数量要求jpgpng格式分辨率需保持一致单个环物素材包最大支持上传500M不多于40张建议上传30~40张图片单个环物素材包50M效果更佳图片命名图片名称后缀按照字母/数字升序命名00010203以此类推单反拍摄素材名可自动识别
</p>
<div class="image-list">
<div class="image-list-item" v-for="(file, index) in fileListAsc" :key="index">

View File

@@ -220,7 +220,8 @@ const factorys = [
return {
...data,
data: {
imgs: data.fileList.map(x => ({name: x.name, url: x.url}))
imgs: data.fileList.map(x => ({name: x.name, url: x.url})),
urlTemp: data.urlTempForScene
},
cover: data.fileList[0].url,
fileList: undefined

View File

@@ -19,7 +19,7 @@
</a-button>
</a-upload>
<p class="ant-upload-hint">
图片格式大小数量要求jpgpng格式分辨率需保持一致单个环物素材包最大支持上传500M不多于40张建议上传30~40张图片单个环物素材包50M效果更佳图片命名图片名称后缀按照字母/数字升序命名010203以此类推单反拍摄素材名可自动识别
图片格式大小数量要求jpgpng格式分辨率需保持一致单个环物素材包最大支持上传500M不多于40张建议上传30~40张图片单个环物素材包50M效果更佳图片命名图片名称后缀按照字母/数字升序命名00010203以此类推单反拍摄素材名可自动识别
</p>
<div class="image-list">
<div class="image-list-item" v-for="(file, index) in formData.fileList" :key="index">
@@ -62,6 +62,7 @@ const formData = ref({
type: 0,
title: '',
fileList: [],
urlTempForScene: "",
});
const cancelText = computed(() => {
@@ -95,6 +96,7 @@ 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;
@@ -117,11 +119,49 @@ 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();
});
})))