yuminge-app/yun-min-program-plugin-master/packageC/video_goods/releaseVideo/releaseVideo.js

656 lines
17 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.

// 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
})
}
},
});