2021-06-30 15:26:19 +08:00
|
|
|
|
const app = getApp()
|
|
|
|
|
const recorderManager = wx.getRecorderManager()
|
|
|
|
|
var innerAudioContext = wx.createInnerAudioContext()
|
|
|
|
|
const chooseLocation = requirePlugin('chooseLocation');
|
|
|
|
|
const key = 'Y6FBZ-GLQC3-6273Q-3DRTL-W43G5-G6BXN'; //使用在腾讯位置服务申请的key
|
|
|
|
|
const referer = '名片-小程序'; //调用插件的app的名称
|
2021-08-12 09:22:40 +08:00
|
|
|
|
var location = {
|
2021-06-30 15:26:19 +08:00
|
|
|
|
latitude: 39.89631551,
|
|
|
|
|
longitude: 116.323459711
|
2021-08-12 09:22:40 +08:00
|
|
|
|
};
|
2021-06-30 15:26:19 +08:00
|
|
|
|
const category = '生活服务,娱乐休闲';
|
|
|
|
|
Page({
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 页面的初始数据
|
|
|
|
|
*/
|
|
|
|
|
data: {
|
|
|
|
|
uploadCount: 0,
|
|
|
|
|
uploadVideoCount: 0,
|
2021-07-01 17:19:41 +08:00
|
|
|
|
currentIndex: 0,
|
|
|
|
|
columnId: '', //栏目Id
|
|
|
|
|
uId: '', //内容UID
|
|
|
|
|
fieldList: [], //栏目字段
|
2021-06-30 15:26:19 +08:00
|
|
|
|
textList: [], //文本添加内容
|
|
|
|
|
textareaList: [], //文本域添加内容
|
|
|
|
|
audioList: [], //音频添加内容
|
|
|
|
|
videoList: [], //视频添加内容
|
|
|
|
|
photoList: [], //视频添加内容
|
|
|
|
|
linkList: [], //连接添加内容
|
|
|
|
|
locationList: [], //定位添加内容
|
|
|
|
|
isShowText: false, //文本弹窗开关
|
|
|
|
|
isShowDesc: false, //文本域弹窗开关
|
|
|
|
|
isShowPhoto: false, //图片选择弹框
|
|
|
|
|
isShowLink: false, //链接弹窗
|
|
|
|
|
isShowAudio: false, //录音弹窗
|
|
|
|
|
isShowVideo: false, //视频弹窗
|
2021-07-14 14:20:54 +08:00
|
|
|
|
isShowTags: false, //多选
|
2021-09-01 16:55:20 +08:00
|
|
|
|
isShowType: false,
|
2021-06-30 15:26:19 +08:00
|
|
|
|
tempText: '',
|
|
|
|
|
tempDesc: '',
|
|
|
|
|
linkStr: '',
|
|
|
|
|
map: null,
|
|
|
|
|
waitFlag: false,
|
|
|
|
|
isStartRecord: false, //是否录音中
|
|
|
|
|
speck_time: 0,
|
|
|
|
|
speedStep: 5, //快进快退秒数
|
|
|
|
|
setInter: '', //定时器
|
|
|
|
|
currentItem: undefined,
|
2021-07-01 17:19:41 +08:00
|
|
|
|
isAuthAudio: false,
|
2021-08-12 09:22:40 +08:00
|
|
|
|
title: '栏目内容修改',
|
|
|
|
|
curLat: 0.00,
|
2021-09-01 16:55:20 +08:00
|
|
|
|
curLng: 0.00,
|
|
|
|
|
isRecording: false,
|
|
|
|
|
maxDuration: 60, //上传视频大小限制
|
|
|
|
|
displayType: [{
|
|
|
|
|
name: '九宫格',
|
|
|
|
|
id: 1
|
|
|
|
|
}, {
|
|
|
|
|
name: '轮播',
|
|
|
|
|
id: 2
|
|
|
|
|
}, {
|
|
|
|
|
name: '轮播(自动)',
|
|
|
|
|
id: 3
|
|
|
|
|
}, {
|
|
|
|
|
name: '平铺',
|
|
|
|
|
id: 4
|
|
|
|
|
}, ], //图片展示方式
|
|
|
|
|
selDisplayType: 1, //图片展示方式
|
|
|
|
|
displayTypeStr: '九宫格',
|
2021-06-30 15:26:19 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
|
*/
|
|
|
|
|
onLoad: function (options) {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
this.setData({
|
|
|
|
|
columnId: options.id,
|
|
|
|
|
uId: options.uid,
|
2021-07-06 15:44:56 +08:00
|
|
|
|
title: options.title + '修改'
|
2021-07-01 17:19:41 +08:00
|
|
|
|
})
|
2021-08-12 09:22:40 +08:00
|
|
|
|
var _self = this
|
|
|
|
|
wx.getLocation({
|
|
|
|
|
success(res) {
|
|
|
|
|
_self.setData({
|
|
|
|
|
curLat: res.latitude,
|
|
|
|
|
curLng: res.longitude
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
2021-06-30 15:26:19 +08:00
|
|
|
|
this.checkPermission()
|
2021-07-01 17:19:41 +08:00
|
|
|
|
this.getMomentContent()
|
|
|
|
|
},
|
|
|
|
|
getMomentContent() {
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '加载中...',
|
|
|
|
|
})
|
|
|
|
|
var _self = this
|
|
|
|
|
app.http.get(app.urls.getMomentsContent.format({
|
|
|
|
|
configColumnId: _self.data.columnId,
|
|
|
|
|
uid: _self.data.uId
|
|
|
|
|
}), {
|
|
|
|
|
header: {
|
|
|
|
|
token: app.globalData.token
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
//构建数据
|
|
|
|
|
_self.buildDetail(res.data)
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//构建展示数据
|
|
|
|
|
buildDetail(data) {
|
|
|
|
|
var _self = this
|
|
|
|
|
data.list.forEach(it => {
|
|
|
|
|
switch (it.dataType) {
|
|
|
|
|
case '2': //图片
|
2021-09-01 16:55:20 +08:00
|
|
|
|
var photoIds = it.value.split('@')
|
|
|
|
|
var items = photoIds[0].split(',')
|
|
|
|
|
if (photoIds.length > 1) {
|
|
|
|
|
switch (photoIds[1]) {
|
|
|
|
|
case '1': //九宫格
|
|
|
|
|
_self.setData({
|
|
|
|
|
selDisplayType: '1', //图片展示方式
|
|
|
|
|
displayTypeStr: '九宫格',
|
|
|
|
|
})
|
|
|
|
|
break
|
|
|
|
|
case '2': //轮播
|
|
|
|
|
_self.setData({
|
|
|
|
|
selDisplayType: '2', //图片展示方式
|
|
|
|
|
displayTypeStr: '轮播',
|
|
|
|
|
})
|
|
|
|
|
break
|
|
|
|
|
case '3': //轮播自动
|
|
|
|
|
_self.setData({
|
|
|
|
|
selDisplayType: '3', //图片展示方式
|
|
|
|
|
displayTypeStr: '轮播(自动)',
|
|
|
|
|
})
|
|
|
|
|
break
|
|
|
|
|
case '4': //平铺
|
|
|
|
|
_self.setData({
|
|
|
|
|
selDisplayType: '4', //图片展示方式
|
|
|
|
|
displayTypeStr: '平铺',
|
|
|
|
|
})
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var tempList = []
|
|
|
|
|
items.forEach(item => {
|
2021-08-12 09:22:40 +08:00
|
|
|
|
if (item.length > 0) {
|
|
|
|
|
var tempItem = {
|
|
|
|
|
id: item,
|
|
|
|
|
path: app.urls.baseImgUrl + item,
|
|
|
|
|
}
|
|
|
|
|
tempList.push(tempItem)
|
2021-07-01 17:19:41 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it.valueList = tempList
|
|
|
|
|
break
|
|
|
|
|
case '4': //视频
|
|
|
|
|
var items = it.value.split(',')
|
|
|
|
|
var tempList = []
|
2021-07-14 14:20:54 +08:00
|
|
|
|
for (var i = 0; i < items.length; i++) {
|
2021-08-12 09:22:40 +08:00
|
|
|
|
if (items[i].length > 0) {
|
|
|
|
|
var ss = items[i].split('&')
|
|
|
|
|
var videoUrl = app.urls.baseImgUrl + ss[0]
|
|
|
|
|
var imgUrl = app.urls.baseImgUrl + ss[1]
|
|
|
|
|
var tempItem = {
|
|
|
|
|
id: ss[0],
|
|
|
|
|
thumbId: ss[1],
|
|
|
|
|
path: videoUrl,
|
|
|
|
|
imgPath: imgUrl
|
|
|
|
|
}
|
|
|
|
|
tempList.push(tempItem)
|
2021-07-01 17:19:41 +08:00
|
|
|
|
}
|
2021-07-14 14:20:54 +08:00
|
|
|
|
}
|
2021-07-01 17:19:41 +08:00
|
|
|
|
it.valueList = tempList
|
|
|
|
|
break
|
|
|
|
|
case '3': //音频
|
|
|
|
|
var items = it.value.split(',')
|
|
|
|
|
var tempList = []
|
|
|
|
|
items.forEach(item => {
|
2021-08-12 09:22:40 +08:00
|
|
|
|
if (item.length > 0) {
|
2021-09-01 16:55:20 +08:00
|
|
|
|
var ss = item.split('&')
|
|
|
|
|
var totalStr = '00:00'
|
|
|
|
|
var duration = 100
|
|
|
|
|
if (ss.length > 1) {
|
|
|
|
|
var dur = ss[1]
|
|
|
|
|
duration = dur
|
|
|
|
|
var tM = parseInt(dur / 60) //分钟
|
|
|
|
|
var tS = parseInt(dur % 60) //秒
|
|
|
|
|
var totalMStr = tM > 9 ? tM : '0' + tM
|
|
|
|
|
var totalSStr = +tS > 9 ? tS : '0' + tS
|
|
|
|
|
totalStr = totalMStr + ':' + totalSStr
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-12 09:22:40 +08:00
|
|
|
|
var tempItem = {
|
2021-09-01 16:55:20 +08:00
|
|
|
|
id: ss[0], //id
|
|
|
|
|
path: app.urls.baseImgUrl + ss[0], //地址
|
2021-08-12 09:22:40 +08:00
|
|
|
|
isPlay: false, //是否播放中
|
2021-09-01 16:55:20 +08:00
|
|
|
|
duration: duration, //时长
|
2021-08-12 09:22:40 +08:00
|
|
|
|
curDuation: 0,
|
|
|
|
|
curDurationStr: '00:00',
|
2021-09-01 16:55:20 +08:00
|
|
|
|
totalDurationStr: totalStr
|
2021-08-12 09:22:40 +08:00
|
|
|
|
}
|
|
|
|
|
tempList.push(tempItem)
|
2021-07-01 17:19:41 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it.valueList = tempList
|
|
|
|
|
break
|
|
|
|
|
case '6': //定位
|
|
|
|
|
var items = it.value.split('-')
|
|
|
|
|
var tempList = []
|
|
|
|
|
items.forEach(item => {
|
2021-08-12 09:22:40 +08:00
|
|
|
|
if (item.length > 0) {
|
|
|
|
|
var latlng = item.split(',')
|
|
|
|
|
var tempItem = {
|
|
|
|
|
name: '',
|
|
|
|
|
address: '',
|
|
|
|
|
latitude: latlng[0],
|
|
|
|
|
longitude: latlng[1],
|
|
|
|
|
}
|
|
|
|
|
tempList.push(tempItem)
|
2021-07-01 17:19:41 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
it.valueList = tempList
|
|
|
|
|
break
|
2021-07-14 14:20:54 +08:00
|
|
|
|
case '8': //单选
|
|
|
|
|
it.dictionariesList.forEach(ss => {
|
|
|
|
|
if (it.value.indexOf(ss.dataId) != -1) {
|
|
|
|
|
it.selValue = ss.dataName
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
break
|
|
|
|
|
case '9':
|
|
|
|
|
var selValue = ''
|
|
|
|
|
it.dictionariesList.forEach(ss => {
|
|
|
|
|
if (it.value.indexOf(ss.dataId) != -1) {
|
|
|
|
|
selValue += ss.dataName + ','
|
|
|
|
|
ss.isSel = true
|
|
|
|
|
} else {
|
|
|
|
|
ss.isSel = false
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
selValue = selValue.substr(0, selValue.length - 1)
|
|
|
|
|
it.selValue = selValue
|
|
|
|
|
break
|
2021-07-01 17:19:41 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
_self.setData({
|
|
|
|
|
fieldList: data.list
|
|
|
|
|
})
|
|
|
|
|
},
|
2021-07-14 14:20:54 +08:00
|
|
|
|
showMutliSel(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
isShowTags: true,
|
|
|
|
|
currentIndex: e.currentTarget.dataset.index
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//单选
|
|
|
|
|
pickerChange(e) {
|
|
|
|
|
var _self = this
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
|
|
|
|
var selIndex = e.detail.value
|
|
|
|
|
_self.data.fieldList[index].index = selIndex
|
|
|
|
|
_self.data.fieldList[index].value = _self.data.fieldList[index].dictionariesList[selIndex].dataId
|
|
|
|
|
_self.data.fieldList[index].selValue = _self.data.fieldList[index].dictionariesList[selIndex].dataName
|
|
|
|
|
_self.setData({
|
|
|
|
|
fieldList: _self.data.fieldList
|
|
|
|
|
})
|
|
|
|
|
},
|
2021-07-01 17:19:41 +08:00
|
|
|
|
inputText(e) {
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
|
|
|
|
var _self = this
|
|
|
|
|
_self.data.fieldList[index].value = e.detail.value
|
|
|
|
|
_self.setData({
|
|
|
|
|
fieldList: _self.data.fieldList
|
|
|
|
|
})
|
2021-06-30 15:26:19 +08:00
|
|
|
|
},
|
|
|
|
|
//申请录音权限
|
|
|
|
|
checkPermission() {
|
|
|
|
|
var _self = this
|
|
|
|
|
wx.getSetting({
|
|
|
|
|
success(res) {
|
|
|
|
|
var isAuth = res.authSetting['scope.record']
|
|
|
|
|
if (typeof (isAuth) == 'undefined') {
|
|
|
|
|
wx.authorize({
|
|
|
|
|
scope: 'scope.record',
|
|
|
|
|
success() {
|
|
|
|
|
_self.setData({
|
|
|
|
|
isAuthAudio: true
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
fail() {
|
|
|
|
|
_self.setData({
|
|
|
|
|
isAuthAudio: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
if (!isAuth) {
|
|
|
|
|
_self.openSetting()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
openSetting() {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '发布内容需要您授权录音权限.',
|
|
|
|
|
success(res) {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
wx.openSetting({
|
|
|
|
|
withSubscriptions: true,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onShow() {
|
|
|
|
|
if (chooseLocation.getLocation() != null) {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var item = this.data.fieldList[this.data.curMapIndex]
|
|
|
|
|
if (item.valueList.length < item.maxCount) {
|
|
|
|
|
this.data.fieldList[this.data.curMapIndex].valueList.push(chooseLocation.getLocation())
|
2021-06-30 15:26:19 +08:00
|
|
|
|
this.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: this.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var _self = this
|
|
|
|
|
wx.getSetting({
|
|
|
|
|
withSubscriptions: true,
|
|
|
|
|
success(res) {
|
|
|
|
|
var isAuth = res.authSetting['scope.record']
|
|
|
|
|
_self.setData({
|
|
|
|
|
isAuthAudio: isAuth
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
onUnload() {
|
|
|
|
|
chooseLocation.setLocation(null)
|
|
|
|
|
this.setData({
|
|
|
|
|
map: null
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//选择视频来源
|
|
|
|
|
chooseVideo(e) {
|
|
|
|
|
var _self = this
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var item = e.currentTarget.dataset.item
|
|
|
|
|
var countNum = item.maxCount - item.valueList.length
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.chooseMedia({
|
|
|
|
|
count: Number.parseInt(countNum),
|
|
|
|
|
mediaType: ['video'],
|
2021-07-01 17:19:41 +08:00
|
|
|
|
sourceType: ['camera', 'album'],
|
2021-06-30 15:26:19 +08:00
|
|
|
|
maxDuration: 60,
|
|
|
|
|
success: (res) => {
|
|
|
|
|
if (res.tempFiles.length > 0) {
|
2021-09-01 16:55:20 +08:00
|
|
|
|
if (res.tempFiles[0].duration <= _self.data.maxDuration) {
|
|
|
|
|
_self.doUploadVideo(index, res.tempFiles, _self.data.uploadVideoCount)
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '视频最长60秒',
|
|
|
|
|
icon: 'none'
|
|
|
|
|
})
|
|
|
|
|
}
|
2021-06-30 15:26:19 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fail: (err) => {
|
|
|
|
|
// console.log(err)
|
|
|
|
|
// wx.showToast({
|
|
|
|
|
// title: '选取视频失败,(拍摄时长:60秒)',
|
|
|
|
|
// icon: 'none'
|
|
|
|
|
// })
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//上传视频
|
2021-07-14 14:20:54 +08:00
|
|
|
|
doUploadVideo(fieldIndex, paths, videoCount) {
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '上传中...',
|
|
|
|
|
})
|
|
|
|
|
let _self = this
|
|
|
|
|
var count = paths.length //几次
|
|
|
|
|
if (_self.data.uploadVideoCount < count) {
|
|
|
|
|
app.http.upload(app.urls.doUploadVideo, {
|
|
|
|
|
path: paths[_self.data.uploadVideoCount].tempFilePath,
|
|
|
|
|
name: 'video',
|
|
|
|
|
header: {
|
|
|
|
|
token: app.globalData.token
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
//插入到集合中
|
|
|
|
|
var id = JSON.parse(res).data
|
2021-07-14 14:20:54 +08:00
|
|
|
|
_self.doUploadVideoImg(fieldIndex, id, paths, _self.data.uploadVideoCount)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
_self.setData({
|
|
|
|
|
uploadVideoCount: ++_self.data.uploadVideoCount
|
|
|
|
|
})
|
2021-07-14 14:20:54 +08:00
|
|
|
|
_self.doUploadVideo(fieldIndex, paths, _self.data.uploadVideoCount)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
_self.setData({
|
|
|
|
|
uploadVideoCount: 0
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
2021-07-14 14:20:54 +08:00
|
|
|
|
//上传视频封面图片
|
|
|
|
|
doUploadVideoImg(fieldIndex, videoId, videos, videoCount) {
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '上传中...',
|
|
|
|
|
})
|
|
|
|
|
let _self = this
|
|
|
|
|
app.http.upload(app.urls.doUploadImg, {
|
|
|
|
|
path: videos[_self.data.uploadVideoCount].thumbTempFilePath,
|
|
|
|
|
name: 'image',
|
|
|
|
|
header: {
|
|
|
|
|
token: app.globalData.token
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
console.log(res)
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
var videoUrl = app.urls.baseImgUrl + videoId
|
|
|
|
|
var thumbImg = app.urls.baseImgUrl + JSON.parse(res).data
|
|
|
|
|
var thumbI = JSON.parse(res).data
|
|
|
|
|
var item = {
|
|
|
|
|
id: videoId,
|
|
|
|
|
thumbId: thumbI,
|
|
|
|
|
path: videoUrl,
|
|
|
|
|
imgPath: thumbImg
|
|
|
|
|
}
|
|
|
|
|
_self.data.fieldList[fieldIndex].valueList.push(item)
|
|
|
|
|
_self.setData({
|
|
|
|
|
fieldList: _self.data.fieldList
|
|
|
|
|
})
|
|
|
|
|
_self.setData({
|
|
|
|
|
uploadVideoCount: ++_self.data.uploadVideoCount
|
|
|
|
|
})
|
|
|
|
|
_self.doUploadVideo(fieldIndex, videos, _self.data.uploadVideoCount)
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
_self.setData({
|
|
|
|
|
uploadVideoCount: ++_self.data.uploadVideoCount
|
|
|
|
|
})
|
|
|
|
|
_self.doUploadVideo(fieldIndex, videos, _self.data.uploadVideoCount)
|
|
|
|
|
})
|
|
|
|
|
},
|
2021-06-30 15:26:19 +08:00
|
|
|
|
//预览视频
|
|
|
|
|
viewVideo(e) {
|
|
|
|
|
var tempList = [{
|
|
|
|
|
url: e.currentTarget.dataset.url,
|
|
|
|
|
type: 'video'
|
|
|
|
|
}]
|
|
|
|
|
wx.previewMedia({
|
|
|
|
|
sources: tempList,
|
|
|
|
|
current: 0,
|
|
|
|
|
showmenu: false
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//删除视频
|
|
|
|
|
delVideo(e) {
|
|
|
|
|
let _self = this
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var index = e.currentTarget.dataset.index
|
|
|
|
|
var idx = e.currentTarget.dataset.idx
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '确定要删除该视频吗?',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
confirmText: '确定',
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList.splice(idx, 1)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//添加链接
|
|
|
|
|
addLink() {
|
|
|
|
|
var _self = this
|
|
|
|
|
var item = null
|
|
|
|
|
for (var i = 0; i < _self.data.items.length; i++) {
|
|
|
|
|
if (_self.data.items[i].type == 'LINK') {
|
|
|
|
|
item = _self.data.items[i]
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (_self.data.linkList.length < item.count) {
|
|
|
|
|
if (_self.data.linkStr == '') {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '请输入文字内容',
|
|
|
|
|
icon: 'error'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
_self.data.linkList.push(_self.data.linkStr)
|
|
|
|
|
_self.setData({
|
|
|
|
|
linkList: _self.data.linkList,
|
|
|
|
|
linkStr: ''
|
|
|
|
|
})
|
|
|
|
|
if (_self.data.linkList.length == item.count) {
|
|
|
|
|
_self.setData({
|
|
|
|
|
isShowLink: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//文本域添加输入的文字
|
|
|
|
|
addDesc() {
|
|
|
|
|
var _self = this
|
|
|
|
|
var item = null
|
|
|
|
|
for (var i = 0; i < _self.data.items.length; i++) {
|
|
|
|
|
if (_self.data.items[i].type == 'TEXTAREA') {
|
|
|
|
|
item = _self.data.items[i]
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (_self.data.textareaList.length < item.count) {
|
|
|
|
|
if (_self.data.tempDesc == '') {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '请输入文字内容',
|
|
|
|
|
icon: 'error'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
_self.data.textareaList.push(_self.data.tempDesc)
|
|
|
|
|
_self.setData({
|
|
|
|
|
textareaList: _self.data.textareaList,
|
|
|
|
|
tempDesc: ''
|
|
|
|
|
})
|
|
|
|
|
if (_self.data.textareaList.length == item.count) {
|
|
|
|
|
_self.setData({
|
|
|
|
|
isShowDesc: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//添加输入的文字
|
|
|
|
|
addStr() {
|
|
|
|
|
var _self = this
|
|
|
|
|
var item = null
|
|
|
|
|
for (var i = 0; i < _self.data.items.length; i++) {
|
|
|
|
|
if (_self.data.items[i].type == 'TEXT') {
|
|
|
|
|
item = _self.data.items[i]
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (_self.data.textList.length < item.count) {
|
|
|
|
|
if (_self.data.tempText == '') {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '请输入文字内容',
|
|
|
|
|
icon: 'error'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
_self.data.textList.push(_self.data.tempText)
|
|
|
|
|
_self.setData({
|
|
|
|
|
textList: _self.data.textList,
|
|
|
|
|
tempText: ''
|
|
|
|
|
})
|
|
|
|
|
if (_self.data.textList.length == item.count) {
|
|
|
|
|
_self.setData({
|
|
|
|
|
isShowText: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//删除
|
|
|
|
|
delText(e) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '确定要删除该条数据吗?',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
confirmText: '确定',
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
this.data.textList.splice(e.currentTarget.dataset.index, 1)
|
|
|
|
|
this.setData({
|
|
|
|
|
textList: this.data.textList
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
delLink(e) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '确定要删除该条数据吗?',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
confirmText: '确定',
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
this.data.linkList.splice(e.currentTarget.dataset.index, 1)
|
|
|
|
|
this.setData({
|
|
|
|
|
linkList: this.data.linkList
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
delDesc(e) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '确定要删除该条数据吗?',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
confirmText: '确定',
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
this.data.textareaList.splice(e.currentTarget.dataset.index, 1)
|
|
|
|
|
this.setData({
|
|
|
|
|
textareaList: this.data.textareaList
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
2021-09-01 16:55:20 +08:00
|
|
|
|
//确定选择图片展示方式
|
|
|
|
|
confirmSel(e) {
|
|
|
|
|
const {
|
|
|
|
|
piacker,
|
|
|
|
|
value
|
|
|
|
|
} = e.detail
|
|
|
|
|
this.setData({
|
|
|
|
|
selDisplayType: value.id,
|
|
|
|
|
displayTypeStr: value.name,
|
|
|
|
|
isShowType: false
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//取消选择展示方式
|
|
|
|
|
cancelSel(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
isShowType: false
|
|
|
|
|
})
|
|
|
|
|
},
|
2021-06-30 15:26:19 +08:00
|
|
|
|
//监听输入的文字
|
|
|
|
|
textInput(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
[e.currentTarget.id]: e.detail.value
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//关闭弹窗
|
|
|
|
|
onHide(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
isShowText: false,
|
|
|
|
|
isShowDesc: false,
|
|
|
|
|
isShowPhoto: false,
|
|
|
|
|
isShowLink: false,
|
|
|
|
|
isShowAudio: false,
|
2021-07-14 14:20:54 +08:00
|
|
|
|
isShowVideo: false,
|
|
|
|
|
isShowTags: false
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
chooseTags(e) {
|
|
|
|
|
var _self = this
|
|
|
|
|
var index = e.currentTarget.dataset.idx
|
|
|
|
|
_self.data.fieldList[_self.data.currentIndex].dictionariesList[index].isSel = !_self.data.fieldList[_self.data.currentIndex].dictionariesList[index].isSel
|
|
|
|
|
_self.setData({
|
|
|
|
|
fieldList: _self.data.fieldList
|
|
|
|
|
})
|
|
|
|
|
var value = ''
|
|
|
|
|
var ids = ''
|
|
|
|
|
_self.data.fieldList[_self.data.currentIndex].dictionariesList.forEach(it => {
|
|
|
|
|
if (it.isSel) {
|
|
|
|
|
value += it.dataName + ','
|
|
|
|
|
ids += it.dataId + ','
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
value = value.substr(0, value.length - 1)
|
|
|
|
|
ids = ids.substr(0, ids.length - 1)
|
|
|
|
|
_self.data.fieldList[_self.data.currentIndex].selValue = value
|
|
|
|
|
_self.data.fieldList[_self.data.currentIndex].value = ids
|
|
|
|
|
_self.setData({
|
|
|
|
|
fieldList: _self.data.fieldList
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
selTags() {
|
|
|
|
|
this.setData({
|
|
|
|
|
isShowTags: false
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//选择图片
|
|
|
|
|
choosePhoto(e) {
|
|
|
|
|
var _self = this
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var item = e.currentTarget.dataset.item
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
|
|
|
|
var countNum = item.maxCount - item.valueList.length
|
|
|
|
|
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.chooseImage({
|
|
|
|
|
count: Number.parseInt(countNum),
|
2021-07-01 17:19:41 +08:00
|
|
|
|
sourceType: ['album', 'camera'],
|
2021-06-30 15:26:19 +08:00
|
|
|
|
success: (res) => {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.doUploadImg(index, res.tempFilePaths, _self.data.uploadCount)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
},
|
|
|
|
|
fail: (err) => {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//删除图片
|
|
|
|
|
delImg(e) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '确定要删除该图片吗?',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
confirmText: '确定',
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
this.data.fieldList[e.currentTarget.dataset.itemindex].valueList.splice(e.currentTarget.dataset.index, 1)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
this.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: this.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//预览图片
|
|
|
|
|
viewImg(e) {
|
|
|
|
|
var tempList = [e.currentTarget.dataset.url]
|
|
|
|
|
wx.previewImage({
|
|
|
|
|
urls: tempList,
|
|
|
|
|
current: e.currentTarget.dataset.url
|
|
|
|
|
});
|
|
|
|
|
},
|
2021-07-01 17:19:41 +08:00
|
|
|
|
doUploadImg(index, paths, curIndex) {
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '上传中...',
|
|
|
|
|
})
|
|
|
|
|
let _self = this
|
|
|
|
|
var count = paths.length //几次
|
|
|
|
|
if (_self.data.uploadCount < count) {
|
|
|
|
|
app.http.upload(app.urls.doUploadImg, {
|
|
|
|
|
path: paths[_self.data.uploadCount],
|
|
|
|
|
name: 'image',
|
|
|
|
|
header: {
|
|
|
|
|
token: app.globalData.token
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
//插入到集合中
|
|
|
|
|
var id = JSON.parse(res).data
|
|
|
|
|
var pathStr = app.urls.baseImgUrl + id
|
|
|
|
|
var item = {
|
|
|
|
|
id: id,
|
|
|
|
|
path: pathStr
|
|
|
|
|
}
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList.push(item)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
_self.setData({
|
|
|
|
|
uploadCount: ++_self.data.uploadCount
|
|
|
|
|
})
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.doUploadImg(index, paths, _self.data.uploadCount)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
_self.setData({
|
|
|
|
|
uploadCount: ++_self.data.uploadCount
|
|
|
|
|
})
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.doUploadImg(index, paths, _self.data.uploadCount)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
_self.setData({
|
|
|
|
|
uploadCount: 0
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//地图选点
|
2021-07-01 17:19:41 +08:00
|
|
|
|
chooseLocation(e) {
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
|
|
|
|
this.setData({
|
|
|
|
|
curMapIndex: index
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
2021-08-12 09:22:40 +08:00
|
|
|
|
var curLoc = JSON.stringify(location)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.navigateTo({
|
2021-08-12 09:22:40 +08:00
|
|
|
|
url: `plugin://chooseLocation/index?key=${key}&referer=${referer}&location=${curLoc}&category=${category}`
|
2021-06-30 15:26:19 +08:00
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
delMap(e) {
|
2021-08-09 09:19:56 +08:00
|
|
|
|
var _self = this
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '确定要删除该条数据吗?',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
confirmText: '确定',
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
2021-08-09 09:19:56 +08:00
|
|
|
|
_self.data.fieldList[e.currentTarget.dataset.index].valueList.splice(e.currentTarget.dataset.idx, 1)
|
|
|
|
|
_self.setData({
|
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//删除视频
|
|
|
|
|
delAudio(e) {
|
2021-07-06 15:44:56 +08:00
|
|
|
|
console.log(e)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
let _self = this
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '确定要删除该音频吗?',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
confirmText: '确定',
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
2021-07-06 15:44:56 +08:00
|
|
|
|
_self.data.fieldList[e.currentTarget.dataset.index].valueList.splice(e.currentTarget.dataset.idx, 1)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-06 15:44:56 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
doStartRecord() {
|
|
|
|
|
var _self = this
|
|
|
|
|
wx.getSetting({
|
|
|
|
|
success(res) {
|
|
|
|
|
if (!res.authSetting['scope.record']) {
|
|
|
|
|
wx.authorize({
|
|
|
|
|
scope: 'scope.record',
|
|
|
|
|
success() {
|
|
|
|
|
_self.startRecord()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
_self.startRecord()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
startRecord() {
|
|
|
|
|
var that = this
|
|
|
|
|
that.data.setInter = setInterval(
|
|
|
|
|
function () {
|
|
|
|
|
var speck_time = parseInt(that.data.speck_time + 1);
|
|
|
|
|
that.setData({
|
|
|
|
|
speck_time: parseInt(speck_time),
|
|
|
|
|
isStartRecord: true
|
|
|
|
|
});
|
|
|
|
|
if (that.data.speck_time > 0 && that.data.speck_time <= 59) {
|
|
|
|
|
that.start();
|
|
|
|
|
} else {
|
|
|
|
|
clearInterval(that.data.setInter);
|
|
|
|
|
// 获取到结束时间
|
|
|
|
|
that.stop();
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '录音最长60S哦!',
|
|
|
|
|
duration: 2000,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}, 1000);
|
|
|
|
|
},
|
|
|
|
|
doEndRecord() {
|
|
|
|
|
var _self = this;
|
|
|
|
|
clearInterval(_self.data.setInter);
|
|
|
|
|
// 获取到结束时间
|
|
|
|
|
if (_self.data.speck_time > 3) {
|
|
|
|
|
//清除计时器 即清除setInter
|
|
|
|
|
clearInterval(_self.data.setInter);
|
|
|
|
|
// 获取到结束时间
|
|
|
|
|
_self.stop(true);
|
|
|
|
|
_self.setData({
|
|
|
|
|
speck_time: "0",
|
|
|
|
|
isStartRecord: false
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
//清除计时器 即清除setInter
|
|
|
|
|
clearInterval(_self.data.setInter);
|
|
|
|
|
// 获取到结束时间
|
|
|
|
|
_self.stop(false);
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '录制时间过短',
|
|
|
|
|
duration: 2000,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
_self.setData({
|
|
|
|
|
speck_time: "0",
|
|
|
|
|
isStartRecord: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//开始录音的时候
|
|
|
|
|
start() {
|
|
|
|
|
const options = {
|
|
|
|
|
duration: 60000,
|
|
|
|
|
format: 'mp3', //音频格式,有效值 aac/mp3
|
|
|
|
|
}
|
|
|
|
|
//开始录音
|
|
|
|
|
recorderManager.start(options);
|
|
|
|
|
recorderManager.onStart(() => {
|
|
|
|
|
console.log('recorder start')
|
|
|
|
|
});
|
|
|
|
|
//错误回调
|
|
|
|
|
recorderManager.onError((res) => {
|
|
|
|
|
console.log(res);
|
|
|
|
|
_self.stop(false);
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//停止录音
|
|
|
|
|
stop(success) {
|
|
|
|
|
var _self = this
|
|
|
|
|
recorderManager.stop();
|
|
|
|
|
recorderManager.onStop((res) => {
|
|
|
|
|
if (success) {
|
|
|
|
|
//进行录音文件上传
|
|
|
|
|
_self.doUploadAudio(res)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
doUploadAudio(audio) {
|
|
|
|
|
wx.showLoading({
|
|
|
|
|
title: '上传中...',
|
|
|
|
|
})
|
|
|
|
|
let _self = this
|
|
|
|
|
app.http.upload(app.urls.doUploadAudio, {
|
|
|
|
|
path: audio.tempFilePath,
|
|
|
|
|
name: 'audio',
|
|
|
|
|
header: {
|
|
|
|
|
token: app.globalData.token
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
wx.hideLoading({})
|
2021-07-01 17:19:41 +08:00
|
|
|
|
if (_self.data.fieldList[_self.data.currentIndex].valueList.length < _self.data.currentItem.maxCount) {
|
2021-06-30 15:26:19 +08:00
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
//插入到集合中
|
|
|
|
|
var id = JSON.parse(res).data
|
|
|
|
|
var pathStr = app.urls.baseImgUrl + id
|
|
|
|
|
//计算时长
|
|
|
|
|
var dur = parseInt(audio.duration / 1000)
|
|
|
|
|
var tM = parseInt(dur / 60) //分钟
|
|
|
|
|
var tS = parseInt(dur % 60) //秒
|
|
|
|
|
var totalMStr = tM > 9 ? tM : '0' + tM
|
|
|
|
|
var totalSStr = +tS > 9 ? tS : '0' + tS
|
|
|
|
|
var totalStr = totalMStr + ':' + totalSStr
|
|
|
|
|
var item = {
|
|
|
|
|
id: id, //id
|
|
|
|
|
path: pathStr, //地址
|
|
|
|
|
isPlay: false, //是否播放中
|
|
|
|
|
duration: dur, //时长
|
|
|
|
|
curDuation: 0,
|
|
|
|
|
curDurationStr: '00:00',
|
|
|
|
|
totalDurationStr: totalStr
|
|
|
|
|
}
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[_self.data.currentIndex].valueList.push(item)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
2021-07-01 17:19:41 +08:00
|
|
|
|
if (_self.data.fieldList[_self.data.currentIndex].valueList.length == _self.data.currentItem.maxCount) {
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
|
|
|
|
isShowAudio: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {})
|
|
|
|
|
},
|
|
|
|
|
play(e) {
|
|
|
|
|
|
|
|
|
|
//进行播放
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var idx = e.currentTarget.dataset.idx
|
2021-06-30 15:26:19 +08:00
|
|
|
|
var item = e.currentTarget.dataset.item
|
|
|
|
|
var _self = this
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList.forEach(it => {
|
2021-06-30 15:26:19 +08:00
|
|
|
|
if (it.isPlay) {
|
|
|
|
|
innerAudioContext.stop()
|
|
|
|
|
}
|
|
|
|
|
it.isPlay = false
|
|
|
|
|
it.curDuation = 0
|
|
|
|
|
it.curDuationStr = '00:00'
|
|
|
|
|
})
|
|
|
|
|
if (!item.isPlay) {
|
|
|
|
|
// innerAudioContext.stop()
|
|
|
|
|
//找到该文件
|
|
|
|
|
innerAudioContext = wx.createInnerAudioContext()
|
|
|
|
|
// 播放音频文件
|
2021-07-01 17:19:41 +08:00
|
|
|
|
innerAudioContext.src = _self.data.fieldList[index].valueList[idx].path
|
2021-06-30 15:26:19 +08:00
|
|
|
|
innerAudioContext.autoplay = true
|
|
|
|
|
}
|
|
|
|
|
//先需要停止其他录音文件的播放
|
|
|
|
|
|
|
|
|
|
innerAudioContext.onPlay(() => {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].isPlay = true
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
innerAudioContext.onCanplay((res) => {
|
2021-07-06 15:44:56 +08:00
|
|
|
|
// if (_self.data.waitFlag) {
|
|
|
|
|
// innerAudioContext.play()
|
|
|
|
|
// _self.setData({
|
|
|
|
|
// waitFlag: false
|
|
|
|
|
// })
|
|
|
|
|
// }
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
innerAudioContext.onStop((res) => {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].isPlay = false
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDuration = 0
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDurationStr = '00:00'
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList,
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
innerAudioContext.onEnded((res) => {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].isPlay = false
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDuration = 0
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDurationStr = '00:00'
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList,
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
innerAudioContext.onError((res) => {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].isPlay = false
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDuration = 0
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDurationStr = '00:00'
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList,
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
innerAudioContext.onSeeking(() => {
|
|
|
|
|
console.log(innerAudioContext.currentTime)
|
|
|
|
|
})
|
|
|
|
|
innerAudioContext.onWaiting(() => {
|
2021-07-06 15:44:56 +08:00
|
|
|
|
// innerAudioContext.pause()
|
|
|
|
|
// _self.setData({
|
|
|
|
|
// waitFlag: true
|
|
|
|
|
// })
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
innerAudioContext.onTimeUpdate(() => {
|
|
|
|
|
if (innerAudioContext.duration != Infinity) {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDuration = parseInt(innerAudioContext.currentTime)
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].duration = parseInt(innerAudioContext.duration)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
console.log(innerAudioContext.duration)
|
|
|
|
|
var curM = parseInt(innerAudioContext.currentTime / 60) //分钟
|
|
|
|
|
var curS = parseInt(innerAudioContext.currentTime % 60) //秒
|
|
|
|
|
var tM = parseInt(innerAudioContext.duration / 60) //分钟
|
|
|
|
|
var tS = parseInt(innerAudioContext.duration % 60) //秒
|
|
|
|
|
var curMStr = curM > 9 ? curM : '0' + curM
|
|
|
|
|
var curSStr = curS > 9 ? curS : '0' + curS
|
|
|
|
|
var totalMStr = tM > 9 ? tM : '0' + tM
|
|
|
|
|
var totalSStr = +tS > 9 ? tS : '0' + tS
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDurationStr = curMStr + ':' + curSStr
|
|
|
|
|
_self.data.fieldList[index].valueList[idx].totalDurationStr = totalMStr + ':' + totalSStr
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//倒退5秒
|
|
|
|
|
rewind(e) {
|
|
|
|
|
var _self = this
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var idx = e.currentTarget.dataset.idx
|
2021-06-30 15:26:19 +08:00
|
|
|
|
var item = e.currentTarget.dataset.item
|
|
|
|
|
if (item.isPlay) {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDuration = _self.data.fieldList[index].valueList[idx].curDuration - _self.data.speedStep
|
|
|
|
|
innerAudioContext.seek(_self.data.fieldList[index].valueList[idx].curDuration)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
//快进5秒
|
|
|
|
|
speed(e) {
|
|
|
|
|
var index = e.currentTarget.dataset.index
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var idx = e.currentTarget.dataset.idx
|
2021-06-30 15:26:19 +08:00
|
|
|
|
var item = e.currentTarget.dataset.item
|
2021-07-01 17:19:41 +08:00
|
|
|
|
var _self = this
|
2021-06-30 15:26:19 +08:00
|
|
|
|
if (item.isPlay) {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
_self.data.fieldList[index].valueList[idx].curDuration = _self.data.fieldList[index].valueList[idx].curDuration + _self.data.speedStep
|
|
|
|
|
innerAudioContext.seek(_self.data.fieldList[index].valueList[idx].curDuration)
|
2021-06-30 15:26:19 +08:00
|
|
|
|
_self.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
fieldList: _self.data.fieldList
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
slider4change(e) {
|
|
|
|
|
var item = e.currentTarget.dataset.item
|
|
|
|
|
if (item.isPlay) {
|
|
|
|
|
innerAudioContext.seek(e.detail.value)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//显示弹框
|
|
|
|
|
showDialog(e) {
|
|
|
|
|
console.log(e)
|
|
|
|
|
this.setData({
|
2021-07-01 17:19:41 +08:00
|
|
|
|
isShowAudio: true,
|
|
|
|
|
currentItem: e.currentTarget.dataset.item,
|
|
|
|
|
currentIndex: e.currentTarget.dataset.index
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|
2021-07-01 17:19:41 +08:00
|
|
|
|
},
|
|
|
|
|
//提交保存
|
|
|
|
|
doPublish() {
|
|
|
|
|
var _self = this
|
|
|
|
|
if (_self.checkParams()) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '保存中...',
|
|
|
|
|
})
|
|
|
|
|
var params = _self.buildParams()
|
2021-07-14 14:20:54 +08:00
|
|
|
|
console.log(params)
|
2021-07-01 17:19:41 +08:00
|
|
|
|
app.http.post(app.urls.doSaveMoments.format({
|
|
|
|
|
configColumnId: _self.data.columnId
|
|
|
|
|
}), {
|
|
|
|
|
data: params,
|
|
|
|
|
header: {
|
|
|
|
|
token: app.globalData.token
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
wx.hideLoading({})
|
|
|
|
|
let pages = getCurrentPages();
|
|
|
|
|
let beforePage = pages[pages.length - 2];
|
|
|
|
|
beforePage.setData({
|
|
|
|
|
isRefresh: true
|
|
|
|
|
})
|
|
|
|
|
wx.navigateBack({
|
|
|
|
|
delta: 1
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//校验参数
|
|
|
|
|
checkParams() {
|
|
|
|
|
var _self = this
|
|
|
|
|
var isLegal = true
|
|
|
|
|
for (var i = 0; i < _self.data.fieldList.length; i++) {
|
|
|
|
|
var field = _self.data.fieldList[i]
|
|
|
|
|
if (field.must) {
|
2021-07-14 14:20:54 +08:00
|
|
|
|
if (field.dataType == '1' || field.dataType == '7' || field.dataType == '8' || field.dataType == '9') {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
if (field.value.length <= 0) {
|
|
|
|
|
wx.showToast({
|
2021-07-14 14:20:54 +08:00
|
|
|
|
title: '请输入或选择' + field.comment,
|
2021-07-01 17:19:41 +08:00
|
|
|
|
icon: 'none'
|
|
|
|
|
})
|
|
|
|
|
isLegal = false
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (field.valueList.length <= 0) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '请上传' + field.comment,
|
|
|
|
|
icon: 'none'
|
|
|
|
|
})
|
|
|
|
|
isLegal = false
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return isLegal
|
|
|
|
|
},
|
|
|
|
|
//构建提交参数
|
|
|
|
|
buildParams() {
|
|
|
|
|
var _self = this
|
|
|
|
|
var params = {
|
|
|
|
|
uid: _self.data.uId
|
|
|
|
|
}
|
|
|
|
|
for (var i = 0; i < _self.data.fieldList.length; i++) {
|
|
|
|
|
var field = _self.data.fieldList[i]
|
2021-07-14 14:20:54 +08:00
|
|
|
|
if (field.dataType == '1' || field.dataType == '7' || field.dataType == '8' || field.dataType == '9') {
|
2021-07-01 17:19:41 +08:00
|
|
|
|
if (field.value.length > 0) {
|
|
|
|
|
params[field.name] = field.value
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (field.valueList.length > 0) {
|
|
|
|
|
var ids = ""
|
|
|
|
|
if (field.dataType == '6') {
|
|
|
|
|
field.valueList.forEach(it => {
|
|
|
|
|
ids += it.latitude + ',' + it.longitude + '-'
|
|
|
|
|
})
|
2021-07-14 14:20:54 +08:00
|
|
|
|
} else if (field.dataType == '4') {
|
|
|
|
|
field.valueList.forEach(it => {
|
|
|
|
|
ids += it.id + '&' + it.thumbId + ','
|
|
|
|
|
})
|
2021-09-01 16:55:20 +08:00
|
|
|
|
} else if (field.dataType == '3') {
|
|
|
|
|
field.valueList.forEach(it => {
|
|
|
|
|
ids += it.id + '&' + it.duration + ','
|
|
|
|
|
})
|
|
|
|
|
} else if (field.dataType == '2') { //图片
|
|
|
|
|
field.valueList.forEach(it => {
|
|
|
|
|
ids += it.id + ','
|
|
|
|
|
})
|
|
|
|
|
ids = ids.substr(0, ids.length - 1)
|
|
|
|
|
ids += '@' + _self.data.selDisplayType
|
2021-07-01 17:19:41 +08:00
|
|
|
|
} else {
|
|
|
|
|
field.valueList.forEach(it => {
|
|
|
|
|
ids += it.id + ','
|
|
|
|
|
})
|
|
|
|
|
}
|
2021-09-01 16:55:20 +08:00
|
|
|
|
if (field.dataType != '2') {
|
|
|
|
|
ids = ids.substr(0, ids.length - 1)
|
|
|
|
|
}
|
2021-07-01 17:19:41 +08:00
|
|
|
|
params[field.name] = ids
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return params
|
2021-09-01 16:55:20 +08:00
|
|
|
|
},
|
|
|
|
|
//显示图片展示方式
|
|
|
|
|
showDisplayType(e) {
|
|
|
|
|
this.setData({
|
|
|
|
|
isShowType: true
|
|
|
|
|
})
|
|
|
|
|
},
|
2021-06-30 15:26:19 +08:00
|
|
|
|
})
|