310 lines
9.1 KiB
JavaScript
310 lines
9.1 KiB
JavaScript
// 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
|
||
})
|
||
}
|
||
}) |