Fix:4259 【旅居商城小程序】旅居入驻时,上传主图后,其他上传图片/视频的地方会自动变为空白数据

This commit is contained in:
LinCyJang
2025-11-01 12:12:59 +08:00
parent e501bf7564
commit e1a524a499
+28 -21
View File
@@ -26,7 +26,7 @@
</view>
<view class="input">
<u-upload
:fileList="coverImg"
:fileList="coverImg.filter(item => item.url)"
:disabled="form.isDraft === 0 && (coverImg.length > 0 || form.reviewStatus === 0 || form.reviewStatus === 1)"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="1"
@@ -45,7 +45,7 @@
</view>
<view class="input">
<u-upload
:fileList="avatarImg"
:fileList="avatarImg.filter(item => item.url)"
:disabled="form.isDraft === 0 && (avatarImg.length > 0 || form.reviewStatus === 0 || form.reviewStatus === 1)"
:deletable="form.isDraft === 1 || (form.reviewStatus !== 0 && form.reviewStatus !== 1)"
:maxCount="1"
@@ -409,18 +409,20 @@ export default {
* @returns {array} 数组
*/
stringToMapArr(str, split = ',') {
console.log(str.split(split).map(item => ({url: item})));
return str.split(split).map(item => ({url: item}))
},
/**
* 保存草稿
*/
saveDraft() {
this.form.cover = this.coverImg.map(item => item.url).join(',')
this.form.avatar = this.avatarImg.map(item => item.url).join(',')
this.form.banner = this.bannerImg.map(item => item.url).join(',')
this.form.video = this.videos.map(item => item.url).join(',')
this.form.culture = this.cultureImg.map(item => item.url).join(',')
this.form.qualification = this.qualificationImg.map(item => item.url).join(',')
this.form.cover = this.coverImg.filter(item => item.url).map(item => item.url).join(',')
this.form.avatar = this.avatarImg.filter(item => item.url).map(item => item.url).join(',')
this.form.banner = this.bannerImg.filter(item => item.url).map(item => item.url).join(',')
this.form.video = this.videos.filter(item => item.url).map(item => item.url).join(',')
this.form.culture = this.cultureImg.filter(item => item.url).map(item => item.url).join(',')
this.form.qualification = this.qualificationImg.filter(item => item.url).map(item => item.url).join(',')
console.log(this.bannerImg, '-----------');
const params = {
travelInfo: {...this.form},
partnerId: this.partnerId,
@@ -442,12 +444,12 @@ export default {
const {travelInfo} = res.data
if (res.status === 200) {
this.form = {...this.form, ...travelInfo}
this.coverImg = this.stringToMapArr(travelInfo.cover)
this.avatarImg = this.stringToMapArr(travelInfo.avatar)
this.bannerImg = this.stringToMapArr(travelInfo.banner)
this.videos = this.stringToMapArr(travelInfo.video)
this.cultureImg = this.stringToMapArr(travelInfo.culture)
this.qualificationImg = this.stringToMapArr(travelInfo.qualification)
this.coverImg = travelInfo.cover ? this.stringToMapArr(travelInfo.cover) : []
this.avatarImg = travelInfo.avatar ? this.stringToMapArr(travelInfo.avatar) : []
this.bannerImg = travelInfo.banner ? this.stringToMapArr(travelInfo.banner) : []
this.videos = travelInfo.video ? this.stringToMapArr(travelInfo.video) : []
this.cultureImg = travelInfo.culture ? this.stringToMapArr(travelInfo.culture) : []
this.qualificationImg = travelInfo.qualification ? this.stringToMapArr(travelInfo.qualification) : []
this.form.reviewStatus = res.data.reviewStatus
this.form.reviewMsg = res.data.reviewMsg
this.form.isDraft = res.data.isDraft
@@ -463,13 +465,12 @@ export default {
*/
submitForm() {
if(this.form.isDraft === 0 && (this.form.reviewStatus === 0 || this.form.reviewStatus === 1)) return
this.form.cover = this.coverImg.map(item => item.url).join(',')
this.form.cover = this.coverImg.map(item => item.url).join(',')
this.form.avatar = this.avatarImg.map(item => item.url).join(',')
this.form.banner = this.bannerImg.map(item => item.url).join(',')
this.form.video = this.videos.map(item => item.url).join(',')
this.form.culture = this.cultureImg.map(item => item.url).join(',')
this.form.qualification = this.qualificationImg.map(item => item.url).join(',')
this.form.cover = this.coverImg.filter(item => item.url).map(item => item.url).join(',')
this.form.avatar = this.avatarImg.filter(item => item.url).map(item => item.url).join(',')
this.form.banner = this.bannerImg.filter(item => item.url).map(item => item.url).join(',')
this.form.video = this.videos.filter(item => item.url).map(item => item.url).join(',')
this.form.culture = this.cultureImg.filter(item => item.url).map(item => item.url).join(',')
this.form.qualification = this.qualificationImg.filter(item => item.url).map(item => item.url).join(',')
if (!this.form.name) {
uni.$u.toast('请输入名称')
@@ -694,8 +695,12 @@ export default {
const uploadFunc = type == 'video' ? uploadVideo : uploadImage;
if(e.file.length > 0) {
e.file.forEach(item => {
if(!item.url) return
uploadFunc(item.url, img => {
if(!img) return
this[imgField].push({url: img});
console.log(this[imgField], imgField);
})
})
}
@@ -707,6 +712,8 @@ export default {
*/
deletePic(e, imgField) {
this[imgField].splice(e.index, 1);
console.log(this[imgField]);
}
}
}