Compare commits

..

2 Commits

3 changed files with 110 additions and 24 deletions

View File

@ -316,9 +316,15 @@
},
//
goPasswordLogin(){
uni.reLaunch({
url: './passwordLogin'
});
if(this.query.tenantId){
uni.reLaunch({
url: './passwordLogin?tenantId='+this.query.tenantId
});
}else{
uni.reLaunch({
url: './passwordLogin'
});
}
},
goPolicy() {
uni.navigateTo({

View File

@ -331,9 +331,15 @@
},
//
goPhoneLogin(){
uni.reLaunch({
url: './codeLogin'
});
if(this.query.tenantId){
uni.reLaunch({
url: './codeLogin?tenantId='+this.query.tenantId
});
}else{
uni.reLaunch({
url: './codeLogin'
});
}
},
goPolicy() {
uni.navigateTo({

View File

@ -44,6 +44,11 @@
</view>
<u-button @click="chooseImage(item,index)" type="primary" :disabled="getDisabledStatus()"
:loading="item.uploading">{{ item.attrValue ? '重新上传' : '上传图片' }}</u-button>
<!-- 上传进度条 -->
<view v-if="item.uploadProgress > 0 && item.uploadProgress < 100" class="progress-container">
<u-line-progress :percent="item.uploadProgress" :show-percent="true" height="20"></u-line-progress>
</view>
</view>
</template>
@ -56,7 +61,12 @@
</view>
<u-button @click="chooseAudio(item,index)" type="primary" :disabled="getDisabledStatus()"
:loading="item.uploading">{{ item.attrValue ? '重新上传' : '上传音频' }}</u-button>
<!-- <text v-if="item.fileUrl" class="audio-name">已上传音频文件</text> -->
<!-- 上传进度条 -->
<view v-if="item.uploadProgress > 0 && item.uploadProgress < 100" class="progress-container">
<u-line-progress :percent="item.uploadProgress" :show-percent="true" height="20"></u-line-progress>
</view>
<text class="upload-tip">{{'最大' + audioSize + 'MB'}}</text>
</view>
</template>
@ -71,6 +81,12 @@
</view>
<u-button @click="chooseVideo(item,index)" type="primary" :disabled="getDisabledStatus()"
:loading="item.uploading">{{ item.attrValue ? '重新上传' : '上传视频' }}</u-button>
<!-- 上传进度条 -->
<view v-if="item.uploadProgress > 0 && item.uploadProgress < 100" class="progress-container">
<u-line-progress :percent="item.uploadProgress" :show-percent="true" height="20"></u-line-progress>
</view>
<text class="upload-tip">{{'最大' + videoSize + 'MB'}}</text>
</view>
</template>
@ -116,7 +132,7 @@
//
materialShow:false,
audioSize: 10,
videoSize: 50,
videoSize: 100,
audioType: ['.wav', '.mp3', '.aac', '.flac', '.ogg'],
audioH5Type: ['wav', 'mp3', 'aac', 'flac', 'ogg'],
buttonLoading:false,
@ -165,6 +181,8 @@
item.orderItemId = this.orderItemId;
item.dictId = this.materialfrom.dictId;
item.id = null;
item.uploading = false;
item.uploadProgress = 0;
return item;
});
},
@ -177,6 +195,10 @@
this.scriptContent = res.rows[0].script || '';
this.materialTemplateList = res.rows[0].materialItems || [];
res.rows[0].materialItems.forEach(async (item,index)=>{
//
this.$set(this.materialTemplateList[index], 'uploading', false);
this.$set(this.materialTemplateList[index], 'uploadProgress', 0);
if(item.attrType !== 0 && item.attrValue !== ''){
let {fileUrl,fileName} = await this.getFileDetail(item.attrValue);
console.log("fileUrl,fileName",fileUrl,fileName)
@ -231,24 +253,31 @@
return `${shortenedName}...${extension}`;
},
chooseImage(item, index) {
this.materialTemplateList[index].uploading = true;
uni.chooseImage({
count: 1,
success: (res) => {
this.$nextTick(()=>{
this.$set(this.materialTemplateList[index], 'uploading', true);
this.$set(this.materialTemplateList[index], 'uploadProgress', 0);
})
const tempFilePath = res.tempFilePaths[0];
this.uploadFile(tempFilePath, 'image', item, index);
},
complete: () => {
fail: () => {
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
}
});
},
chooseVideo(item,index) {
this.materialTemplateList[index].uploading = true;
uni.chooseVideo({
count: 1,
maxDuration: 60,
success: (res) => {
this.$nextTick(()=>{
this.$set(this.materialTemplateList[index], 'uploading', true);
this.$set(this.materialTemplateList[index], 'uploadProgress', 0);
})
const tempFilePath = res.tempFilePath;
const fileSize = res.size;
if (fileSize > this.videoSize * 1024 * 1024) {
@ -257,6 +286,7 @@
icon: 'none'
});
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
return;
}
this.uploadFile(tempFilePath, 'video', item, index);
@ -267,14 +297,17 @@
title: '选择视频失败',
icon: 'none'
});
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
},
complete: () => {
console.log("权限选择视频")
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
}
});
},
chooseAudio(item,index) {
this.materialTemplateList[index].uploading = true;
// H5chooseFile
// #ifdef H5
uni.chooseFile({
@ -282,6 +315,10 @@
type: 'all',
extension: this.audioType,
success: (res) => {
this.$nextTick(()=>{
this.$set(this.materialTemplateList[index], 'uploading', true);
this.$set(this.materialTemplateList[index], 'uploadProgress', 0);
})
const tempFilePath = res.tempFiles[0].path;
const fileSize = res.tempFiles[0].size;
const fileName = res.tempFiles[0].name;
@ -291,6 +328,7 @@
icon: 'none'
});
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
return;
}
this.uploadFile(tempFilePath, 'audio', item, index, fileName);
@ -301,9 +339,8 @@
title: '选择音频失败',
icon: 'none'
});
},
complete: () => {
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
}
});
// #endif
@ -314,6 +351,10 @@
type: 'file',
extension: this.audioH5Type,
success: (res) => {
this.$nextTick(()=>{
this.$set(this.materialTemplateList[index], 'uploading', true);
this.$set(this.materialTemplateList[index], 'uploadProgress', 0);
})
const tempFilePath = res.tempFiles[0].path;
const fileSize = res.tempFiles[0].size;
const fileName = res.tempFiles[0].name;
@ -323,6 +364,7 @@
icon: 'none'
});
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
return;
}
this.uploadFile(tempFilePath, 'audio', item, index, fileName);
@ -333,9 +375,8 @@
title: '选择音频失败',
icon: 'none'
});
},
complete: () => {
this.materialTemplateList[index].uploading = false;
this.materialTemplateList[index].uploadProgress = 0;
}
});
// #endif
@ -343,8 +384,9 @@
uploadFile(filePath, fileType, item, index, fileName = '') {
//
const uploadUrl = config.baseUrl + '/resource/oss/upload';
uni.uploadFile({
//
const uploadTask = uni.uploadFile({
url: uploadUrl,
filePath: filePath,
name: 'file',
@ -356,7 +398,6 @@
const data = JSON.parse(uploadRes.data);
console.log("data", data)
// URL
// this.materialTemplateList[index].fileUrl = data.url
this.materialTemplateList[index].attrValue = data.data.ossId;
this.materialTemplateList[index].fileUrl = data.data.url;
this.materialTemplateList[index].fileName = data.data.fileName;
@ -371,8 +412,28 @@
title: '上传失败',
icon: 'none'
});
},
complete: () => {
console.log('上传结束');
this.materialTemplateList[index].uploading = false;
// 1000
this.materialTemplateList[index].uploadProgress = 100;
setTimeout(() => {
this.materialTemplateList[index].uploadProgress = 0;
}, 500);
}
});
//
uploadTask.onProgressUpdate((res) => {
console.log('上传进度', res.progress - 15);
console.log('已经上传的数据长度', res.totalBytesSent);
console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend);
let progress = (res.progress - 15 > 0)?(res.progress - 15) : res.progress;
this.materialTemplateList[index].uploadProgress = progress;
});
},
deleteFile(item,index) {
uni.showModal({
@ -385,6 +446,7 @@
this.materialTemplateList[index].attrValue = '';
this.materialTemplateList[index].fileUrl = '';
this.materialTemplateList[index].fileName = '';
this.materialTemplateList[index].uploadProgress = 0;
uni.showToast({
title: '删除成功',
icon: 'success'
@ -417,6 +479,17 @@
})
return;
}
//
const isUploading = this.materialTemplateList.some(item => item.uploading || (item.uploadProgress > 0 && item.uploadProgress < 100));
if (isUploading) {
this.$refs.uToast.show({
title: '请等待文件上传完成',
type: 'warning',
})
return;
}
let btnTitle = status==='draft' ?'暂存':'提交'
uni.showModal({
title: '操作确认',
@ -586,9 +659,6 @@
margin-bottom: 10rpx;
}
.audio-preview {
display: flex;
align-items: center;
@ -610,7 +680,10 @@
}
}
.progress-container {
margin: 10rpx 0;
width: 100%;
}
.upload-tip {
margin-top: 5rpx;
@ -637,4 +710,5 @@
align-items: center;
}
}
</style>
</style>