ts_aimz/pages/shop/reportReplenish/reportReplenish.js

310 lines
9.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// pages/shop/publishCopyright/publishCopyright.js
import Shop from '../../../net/api/shop'
import {
upShopImgUrl,
sImgPrefix
} from '../../../net/mainUrl'
const Cache = require('../../../utils/storage')
const docFix = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf']
const imgFix = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'ico', 'tiff', 'tif']
Page({
/**
* 页面的初始数据
*/
data: {
msgHint: '',
msgType: 'info',
msgShow: false,
files: [],
maxCount: 4,
replenishId: '',
replenish: null,
replenishFiles: [], //附件
downloading: false, //是否下载
downloadProgress: 0, //下载进度
remark: '',
showActionsheet: false,
groups: [{
text: '图片',
value: 'img'
},
{
text: '文件',
value: 'file'
}
]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.setNavigationBarTitle({
title: '资料补充',
})
wx.setNavigationBarColor({
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
backgroundColor: '#FFFFFF', // 传递的颜色值,仅支持十六进制颜色
animation: { // 可选项
duration: 500,
timingFunc: 'easeIn'
}
})
this.setData({
selectFile: this.selectFile.bind(this),
uploadFile: this.uploadFile.bind(this)
})
const id = options.id
if (id && id != '') {
this.setData({
replenishId: id
})
this.doGetReplenishDetail()
} else {
this.setData({
msgHint: '数据有误,请稍后重试',
msgType: 'error',
msgShow: true
})
setTimeout(() => {
wx.navigateBack()
}, 1500);
}
},
//获取补充详情
async doGetReplenishDetail() {
try {
wx.showLoading({
title: '加载中...',
})
const res = await Shop.doGetReplenishDetail(this.data.replenishId)
this.setData({
replenish: res
})
wx.hideLoading()
//去获取附件信息
if (this.data.replenish.correctionFiles && this.data.replenish.correctionFiles != '') {
this.doGetFileInfo(this.data.replenish.correctionFiles)
}
} catch (err) {
wx.hideLoading()
this.setData({
msgType: 'error',
msgHint: err.msg ? err.msg : '网络错误,请稍后重试',
msgShow: true
})
setTimeout(() => {
wx.navigateBack()
}, 1500);
}
},
//获取文件信息
doGetFileInfo(ids) {
const data = {
ids: ids
}
wx.showLoading({
title: '加载中...',
})
Shop.doGetFileInfos(data)
.then(res => {
wx.hideLoading()
if (res && res != null) {
const list = this.addPrefix(res)
this.setData({
replenishFiles: list
})
}
})
.catch(err => {
wx.hideLoading()
this.setData({
msgHint: err.msg ? err.msg : '获取附件失败,请稍后重试',
msgType: 'error',
msgShow: true
})
})
},
inputRemark(e) {
this.setData({
remark: e.detail.value
})
},
//添加baseUrl
addPrefix(list) {
list.map(item => {
item.netUrl = sImgPrefix + item.fileId
})
return list
},
doPreImg(e) {
wx.previewImage({
urls: [e],
})
},
deleteImage(e) {
var index = e.detail.index;
this.data.files.splice(index, 1);
},
selectFile(files) {
console.log('files', files)
},
uploadFile(files) {
var tempFilePaths = files.tempFilePaths;
var token = Cache.get('token')
var header = {}
if (token) {
header.Auth = 'Bearer ' + token;
}
var that = this
for (var i = 0; i < tempFilePaths.length; i++) {
wx.uploadFile({
url: upShopImgUrl,
header: header,
filePath: tempFilePaths[i],
name: 'image',
success: function (res) {
console.log(res)
var result = JSON.parse(res.data)
that.data.files.push(result.data)
},
fail: function (err) {
console.log(err);
}
})
}
// 文件上传的函数返回一个promise
return new Promise(function (resolve, reject) {
var result = {};
result['urls'] = tempFilePaths;
resolve(result);
})
},
//下载文件
doDownloadFile(e) {
const item = e.currentTarget.dataset.item
//判断是否是图片
if (imgFix.indexOf(item.fileType) != -1) {
this.doPreImg(item.netUrl)
} else {
//判断是否支持打开
if (docFix.indexOf(item.fileType) != -1) {
//去下载文件
this.goDownloadFile(item)
} else {
this.setData({
msgHint: '该文件无法在小程序中打开,请前往电脑端查看',
msgType: 'info',
msgShow: true
})
}
}
},
goDownloadFile(item) {
const _self = this
_self.setData({
downloadProgress: 0,
downloading: true, //显示下载进度
})
const token = Cache.get('token')
const header = {}
if (token) {
header.Auth = `Bearer ${token}`;
}
const downloadTask = wx.downloadFile({
url: item.netUrl,
header: header,
success(res) {
console.log('下载成功', res)
_self.setData({
downloadProgress: 0,
downloading: false
})
if (res.statusCode === 200) {
_self.setData({
successHint: '下载成功',
showSuccess: true
})
wx.getFileSystemManager().saveFile({
tempFilePath: res.tempFilePath,
filePath: wx.env.USER_DATA_PATH + '/' + item.fileName,
success: function (res) {
wx.openDocument({
filePath: res.savedFilePath,
showMenu: true
})
},
fail: function (err) {
console.error('文件保存失败', err);
_self.showErr('很抱歉,文件下载出现问题。建议您稍作等待,之后再尝试下载。')
}
})
} else {
_self.showErr('很抱歉,文件下载出现问题。建议您稍作等待,之后再尝试下载。')
}
},
fail(err) {
_self.showErr('很抱歉,文件下载出现问题。建议您稍作等待,之后再尝试下载。')
console.log(`下载失败${err}`)
}
})
downloadTask.onProgressUpdate(res => {
console.log(res.progress)
_self.setData({
downloadProgress: res.progress
})
});
},
backPageRefresh: function () {
var pages = getCurrentPages();
var beforePage = pages[pages.length - 2];
beforePage.setData({
needRefresh: true
})
wx.navigateBack()
},
showErr(msg) {
this.setData({
msgHint: msg,
msgType: 'error',
msgShow: true,
downloading: false,
downloadProgress: 0
})
},
bindChooseWay(e) {
if (e.detail.value == 'img') {
wx.chooseMedia({
count: 4,
mediaType: ['image'],
sourceType: ['album'],
success(res) {
console.log(res)
},
fail(err) {
}
})
} else {
wx.chooseMessageFile({
count: 1,
type: 'file',
extension:docFix,
success(res) {
console.log(res)
},
fail(err) {
}
})
}
},
bindChooseFile() {
this.setData({
showActionsheet: true
})
}
})