656 lines
17 KiB
JavaScript
656 lines
17 KiB
JavaScript
// packageC/video_goods/releaseVideo/releaseVideo.js
|
||
var app = getApp();
|
||
const GoodsByidUrl = "plugin.store-alone-temp.frontend.videoShare.goods.getGoodsById";
|
||
const subTapUrl = "plugin.store-alone-temp.frontend.videoShare.video.sub";
|
||
Page({
|
||
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
language: '',
|
||
myvideo: '',
|
||
goods_id: '',
|
||
title: "",
|
||
videoUrl: "",
|
||
isVideo: true,
|
||
realVideo: "",
|
||
coverUrl: "",
|
||
duration: 0, //视频时长
|
||
chooseGoods: null, //商品信息
|
||
videoPath: "", //视频链接参数
|
||
videoCover: "", //封面图片参数
|
||
limit: 60, //视频限制时长
|
||
uploadIng: false, //正在上传中
|
||
videoProgress: 0,
|
||
showUploadBtn: false, //是否显示确认上传按钮引导用户上传(解决ios无法自动播放)
|
||
imguploadIng: false,
|
||
isNeedGoods: true, //是否开启选择商品
|
||
|
||
categoryList: [],
|
||
categoryFilterList: [],
|
||
category_id: null,
|
||
category_name: "",
|
||
showCategory: false,
|
||
searchWord: "",
|
||
is_show_cate: false,
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function (options) {
|
||
this.data.myvideo = wx.createVideoContext('myvideo');
|
||
this.init();
|
||
this.getList();
|
||
this.getPermission();
|
||
try {
|
||
var value = wx.getStorageSync('shareVideoPath');
|
||
if (value) {
|
||
let shareVideoPath = JSON.parse(value);
|
||
if (shareVideoPath.title) {
|
||
this.setData({
|
||
title: shareVideoPath.title
|
||
});
|
||
}
|
||
if (shareVideoPath.videoUrl) {
|
||
this.setData({
|
||
videoUrl: shareVideoPath.videoUrl
|
||
});
|
||
}
|
||
if (shareVideoPath.videoUrl) {
|
||
this.setData({
|
||
videoUrl: shareVideoPath.videoUrl,
|
||
videoPath: shareVideoPath.videoUrl
|
||
});
|
||
}
|
||
if (shareVideoPath.videoCover) {
|
||
this.setData({
|
||
videoCover: shareVideoPath.videoCover
|
||
});
|
||
}
|
||
if (shareVideoPath.category_id) {
|
||
this.setData({
|
||
category_id: shareVideoPath.category_id
|
||
});
|
||
}
|
||
if (shareVideoPath.category_name) {
|
||
this.setData({
|
||
category_name: shareVideoPath.category_name
|
||
});
|
||
}
|
||
}
|
||
} catch (e) {
|
||
// Do something when catch error
|
||
}
|
||
if (options.goods_id) {
|
||
this.setData({
|
||
goods_id: options.goods_id
|
||
});
|
||
this.getGoodsById();
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function () {
|
||
let language = wx.getStorageSync('langIndex');
|
||
this.setData({
|
||
'language': language.en
|
||
});
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function () {
|
||
|
||
},
|
||
init() {
|
||
this.setData({
|
||
title: '',
|
||
videoUrl: '',
|
||
isVideo: true,
|
||
duration: 0,
|
||
chooseGoods: null,
|
||
videoCover: '',
|
||
limit: '',
|
||
uploadIng: false,
|
||
showUploadBtn: false,
|
||
coverUrl: '',
|
||
realVideo: '',
|
||
videoPath: '',
|
||
isNeedGoods: true
|
||
});
|
||
},
|
||
getList() {
|
||
//获取限制时长
|
||
let urlStr = app.getNetAddresss("plugin.video-share.frontend.set.getLimit");
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
data: {
|
||
validate_page: 1
|
||
}, // validate_page 实名认证判断
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
this.setData({
|
||
is_show_cate: res.data.is_show_cate == "1" ? true : false,
|
||
isNeedGoods: res.data.select_goods == 1 ? true : false
|
||
});
|
||
if (!app._isTextEmpty(res.data.limit)) {
|
||
this.setData({
|
||
limit: res.data.limit
|
||
});
|
||
}
|
||
} else {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res);
|
||
}
|
||
});
|
||
},
|
||
//验证会员发布权限
|
||
getPermission() {
|
||
let urlStr = app.getNetAddresss("plugin.video-share.frontend.permission.verify");
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
data: {},
|
||
success: function (resdata) {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
if (!res.data.ret) {
|
||
wx.navigateBack({
|
||
delta: 1,
|
||
success: function () {
|
||
setTimeout(() => {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
}, 1000);
|
||
}
|
||
});
|
||
|
||
}
|
||
} else {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res);
|
||
}
|
||
});
|
||
},
|
||
getGoodsById() {
|
||
let that = this;
|
||
let urlStr = app.getNetAddresss(app.globalData.store_alone_temp == 1?GoodsByidUrl:"plugin.video-share.frontend.goods.getGoodsById");
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
data: {
|
||
goods_id: this.data.goods_id
|
||
},
|
||
success: function (resdata) {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
that.setData({
|
||
chooseGoods: res.data.goods
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res);
|
||
}
|
||
});
|
||
},
|
||
onReadVideo() {
|
||
let that = this;
|
||
//iOS中选择上传视频不能超过60秒
|
||
// wx.chooseVideo({
|
||
// sourceType: ['album', 'camera'],
|
||
// maxDuration: 60,
|
||
// camera: 'back',
|
||
// compressed:false,
|
||
// success(res) {
|
||
// that.getDuration(res.duration, res.tempFilePath);
|
||
// that.setData({
|
||
// videoUrl: res.tempFilePath
|
||
// });
|
||
// }
|
||
// });
|
||
// wx.chooseVideo 获取不到视频缩略图
|
||
wx.chooseMedia({
|
||
count: 1,
|
||
mediaType: ['video'],
|
||
sourceType: ['album', 'camera'],
|
||
maxDuration: 60,
|
||
success(res) {
|
||
that.getDuration(res.tempFiles[0].duration, res.tempFiles[0].tempFilePath);
|
||
that.data.coverUrl = res.tempFiles[0].thumbTempFilePath;
|
||
that.uploadImageM(); //上传封面 -----------------
|
||
that.setData({
|
||
videoUrl: res.tempFiles[0].tempFilePath
|
||
});
|
||
}
|
||
})
|
||
},
|
||
getDuration(durationData, videoData) {
|
||
let duration = durationData;
|
||
//获取视频或者音频时长
|
||
let that = this;
|
||
that.data.duration = duration;
|
||
if (that.data.duration < 1) {
|
||
that.setData({
|
||
videoUrl: null
|
||
});
|
||
wx.showToast({
|
||
title: '视频时长太短了!',
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
return;
|
||
} else if (that.data.limit && that.data.duration > Number(that.data.limit) + 1) {
|
||
that.setData({
|
||
videoUrl: null
|
||
});
|
||
wx.showToast({
|
||
title: `视频时长不能超过${that.data.limit}秒`,
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
return;
|
||
} else {
|
||
that.setSrcAndCaptureImage(videoData);
|
||
return;
|
||
}
|
||
},
|
||
setSrcAndCaptureImage(videoData) {
|
||
this.data.realVideo = videoData;
|
||
if (this.data.realVideo) {
|
||
this.setData({
|
||
videoUrl: null
|
||
});
|
||
}
|
||
this.uploadAudioM(); //上传视频 --------------
|
||
},
|
||
uploadAudioM() {
|
||
let that = this;
|
||
//视频上传
|
||
that.setData({
|
||
uploadIng: true
|
||
});
|
||
let wx_token = wx.getStorageSync('wx_token');
|
||
let session = wx.getStorageSync('session');
|
||
let urlStr = app.getNetAddresss("plugin.video-share.frontend.upload.uploadAudio");
|
||
urlStr += '&3rd_session=' + session;
|
||
wx.uploadFile({
|
||
url: urlStr, //仅为示例,非真实的接口地址
|
||
filePath: this.data.realVideo,
|
||
name: 'file',
|
||
formData: {},
|
||
header: {
|
||
"Content-Type": "application/json",
|
||
Accept: "application/json",
|
||
Cookie: "PHPSESSID=" + wx_token,
|
||
},
|
||
success(res) {
|
||
var resData = JSON.parse(res.data);
|
||
if (resData.result == 1) {
|
||
that.data.videoPath = resData.data.audio;
|
||
that.data.file_name = resData.data.file_name;
|
||
that.setData({
|
||
uploadIng: false,
|
||
videoPath: resData.data.audio,
|
||
file_name: resData.data.file_name
|
||
});
|
||
//本地保存标题、视频链接--------------
|
||
let hasData = {
|
||
title: (that.data.title ? that.data.title : ''),
|
||
videoUrl: (that.data.videoPath ? that.data.videoPath : ''),
|
||
videoCover: (that.data.videoCover ? that.data.videoCover : ''),
|
||
file_name: (that.data.file_name ? that.data.file_name : '')
|
||
};
|
||
try {
|
||
wx.setStorageSync('shareVideoPath', JSON.stringify(hasData));
|
||
} catch (e) {
|
||
console.log(e);
|
||
}
|
||
} else {
|
||
that.setData({
|
||
videoUrl: null,
|
||
isVideo: true,
|
||
duration: 0,
|
||
videoCover: '',
|
||
limit: '',
|
||
uploadIng: false,
|
||
showUploadBtn: false
|
||
});
|
||
wx.showToast({
|
||
title: resData.msg,
|
||
icon: 'none',
|
||
duration: 2500
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
uploadImageM() {
|
||
//图片上传
|
||
let that = this;
|
||
that.setData({
|
||
imguploadIng: true
|
||
});
|
||
let urlStr = app.getNetAddresss("upload.uploadPic");
|
||
wx.uploadFile({
|
||
url: urlStr, //仅为示例,非真实的接口地址
|
||
filePath: this.data.coverUrl,
|
||
name: 'file',
|
||
formData: {},
|
||
success(res) {
|
||
var resData = JSON.parse(res.data);
|
||
if (resData.result == 1) {
|
||
that.setData({
|
||
videoCover: resData.data.img_url
|
||
});
|
||
//本地保存标题、视频链接--------------
|
||
let hasData = {
|
||
title: (that.data.title ? that.data.title : ''),
|
||
videoUrl: (that.data.videoPath ? that.data.videoPath : ''),
|
||
videoCover: (that.data.videoCover ? that.data.videoCover : '')
|
||
};
|
||
try {
|
||
wx.setStorageSync('shareVideoPath', JSON.stringify(hasData));
|
||
} catch (e) {
|
||
console.log(e);
|
||
}
|
||
that.setData({
|
||
imguploadIng: false
|
||
});
|
||
} else {
|
||
that.setData({
|
||
imguploadIng: false
|
||
});
|
||
wx.showToast({
|
||
title: resData.msg,
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
BtnMethos() {
|
||
let that = this;
|
||
if (this.data.isNeedGoods && app._isTextEmpty(this.data.chooseGoods)) {
|
||
//商品为空,则跳转到商品搜索页添加商品
|
||
//本地保存标题、视频链接--------------
|
||
let hasData = {
|
||
title: (that.data.title ? that.data.title : ''),
|
||
videoUrl: (that.data.videoPath ? that.data.videoPath : ''),
|
||
videoCover: (that.data.videoCover ? that.data.videoCover : ''),
|
||
file_name: (that.data.file_name ? that.data.file_name : ''),
|
||
category_id: (that.data.category_id ? that.data.category_id : ''),
|
||
category_name: (that.data.category_name ? that.data.category_name : '')
|
||
};
|
||
try {
|
||
wx.setStorageSync('shareVideoPath', JSON.stringify(hasData));
|
||
} catch (e) {
|
||
console.log(e);
|
||
}
|
||
wx.navigateTo({
|
||
url: '/packageC/video_goods/addVideoGood/addVideoGood'
|
||
});
|
||
} else {
|
||
//商品不为空,而且视频、标题已添加,则进行发布
|
||
if (app._isTextEmpty(this.data.title)) {
|
||
wx.showToast({
|
||
title: "请输入4-18个字标题",
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
return;
|
||
}
|
||
if (app._isTextEmpty(this.data.videoUrl)) {
|
||
wx.showToast({
|
||
title: "请选择视频进行上传!",
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
return;
|
||
}
|
||
if (app._isTextEmpty(this.data.videoCover)) {
|
||
wx.showToast({
|
||
title: "请选择一张图片作为视频封面图!",
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
return;
|
||
}
|
||
let file = wx.getStorageSync('shareVideoPath');
|
||
file = JSON.parse(file);
|
||
let json = {
|
||
goods_id: this.data.goods_id,
|
||
title: this.data.title,
|
||
video: this.data.videoPath,
|
||
cover: this.data.videoCover,
|
||
file_name: this.data.file_name ? this.data.file_name : file.file_name
|
||
};
|
||
|
||
if (this.data.is_show_cate) {
|
||
json.category_id = this.data.category_id || 0;
|
||
}
|
||
|
||
let urlStr = app.getNetAddresss(app.globalData.store_alone_temp == 1?subTapUrl:"plugin.video-share.frontend.video.sub");
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
data: json,
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: res.msg,
|
||
duration: 1500
|
||
});
|
||
try {
|
||
wx.removeStorageSync('shareVideoPath');
|
||
} catch (e) {
|
||
// Do something when catch error
|
||
}
|
||
wx.navigateTo({
|
||
url: '/packageC/video_goods/VideoList/VideoList'
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: res.msg,
|
||
duration: 1500
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res.msg);
|
||
}
|
||
});
|
||
}
|
||
},
|
||
titleBlur(event) {
|
||
let val = event.detail.value;
|
||
if (val.length < 4) {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: '请输入不小于4个字',
|
||
duration: 1500
|
||
});
|
||
return;
|
||
}
|
||
this.setData({
|
||
title: val
|
||
});
|
||
},
|
||
gotoAdd() {
|
||
wx.navigateTo({
|
||
url: '/packageC/video_goods/addVideoGood/addVideoGood'
|
||
});
|
||
},
|
||
onReadimge() {
|
||
let that = this;
|
||
if (that.data.imguploadIng) {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: '图片正在上传请勿点击',
|
||
duration: 1500
|
||
});
|
||
}
|
||
wx.chooseImage({
|
||
count: 1,
|
||
sizeType: ['original', 'compressed'],
|
||
sourceType: ['album', 'camera'],
|
||
success(res) {
|
||
const tempFilePaths = res.tempFilePaths;
|
||
that.data.coverUrl = tempFilePaths[0];
|
||
that.uploadImageM(); //上传封面 -----------------
|
||
}
|
||
});
|
||
},
|
||
getCategory() {
|
||
if (this.data.categoryList.length > 0) {
|
||
this.setData({
|
||
showCategory: true
|
||
});
|
||
return;
|
||
}
|
||
|
||
let that = this;
|
||
let urlStr = app.getNetAddresss("plugin.video-share.frontend.video.getCategory");
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
data: {},
|
||
success: function (resdata) {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
that.setData({
|
||
categoryList: res.data,
|
||
categoryFilterList: res.data,
|
||
showCategory: true
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 1500
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res);
|
||
}
|
||
});
|
||
},
|
||
onFilterCategory(e) {
|
||
if (e.type == 'change') {
|
||
this.setData({
|
||
searchWord: e.detail
|
||
});
|
||
}
|
||
|
||
if (this.data.searchWord == "") {
|
||
this.setData({
|
||
categoryFilterList: this.data.categoryList
|
||
});
|
||
return;
|
||
}
|
||
if (this.data.categoryList.find(obj => obj.name == this.data.searchWord)) {
|
||
let arr = new Array(this.data.categoryList.find(obj => obj.name == this.data.searchWord));
|
||
this.setData({
|
||
categoryFilterList: arr
|
||
});
|
||
return;
|
||
} else {
|
||
this.setData({
|
||
categoryFilterList: this.data.categoryList
|
||
});
|
||
return;
|
||
}
|
||
},
|
||
onClickCategory(e) {
|
||
console.log(e.currentTarget.dataset);
|
||
this.setData({
|
||
category_id: e.currentTarget.dataset.id,
|
||
category_name: e.currentTarget.dataset.name,
|
||
showCategory: false
|
||
});
|
||
},
|
||
onClose() {
|
||
this.setData({
|
||
showCategory: false
|
||
});
|
||
},
|
||
removeImg(e) {
|
||
let _tag = e.currentTarget.dataset.tag
|
||
if (_tag == "img") {
|
||
this.setData({
|
||
videoCover: null,
|
||
images: []
|
||
})
|
||
} else if (_tag == "video") {
|
||
this.setData({
|
||
videoUrl: null,
|
||
videoPath: null
|
||
})
|
||
}
|
||
},
|
||
}); |