var a = getApp(); var e = wx.getRecorderManager(); var i = wx.createInnerAudioContext(); var s = requirePlugin("chooseLocation"); var n = { latitude: 39.90877, longitude: 116.39695 }; Page({ data: { uploadCount: 0, uploadVideoCount: 0, currentIndex: 0, columnId: "", fieldList: [], textList: [], textareaList: [], audioList: [], videoList: [], photoList: [], linkList: [], locationList: [], isShowText: !1, isShowDesc: !1, isShowPhoto: !1, isShowLink: !1, isShowAudio: !1, isShowVideo: !1, isShowTags: !1, isShowType: !1, tempText: "", tempDesc: "", linkStr: "", map: null, waitFlag: !1, isStartRecord: !1, speck_time: 0, speedStep: 5, setInter: "", currentItem: void 0, isAuthAudio: !1, title: "栏目内容发布", curMutliIndex: 0, displayType: [{ name: "九宫格", id: 1 }, { name: "轮播", id: 2 }, { name: "轮播(自动)", id: 3 }, { name: "平铺", id: 4 }], selDisplayType: 1, displayTypeStr: "九宫格", maxDuration: 60 }, onLoad: function (t) { this.setData({ columnId: t.id, title: t.title + "发布" }), wx.setNavigationBarTitle({ title: t.title + "发布" }); this.checkPermission(), this.getFieldList(); }, getFieldList: function () { wx.showLoading({ title: "加载中..." }); var t = this; a.http.get(a.urls.getMomentsField.format({ configColumnId: t.data.columnId }), { header: { token: a.globalData.token } }).then(function (a) { wx.hideLoading({}), a.data.forEach(function (t, a) { switch (t.order = a, t.dataType) { case "2": case "3": case "4": case "5": case "6": t.valueList = []; break; case "8": t.index = 0, t.value = t.dictionariesList[0].dataId; break; case "9": t.selValue = "请选择", t.selIndexs = [], t.dictionariesList.forEach(function (t) { t.isSel = !1; }); } }), t.setData({ fieldList: a.data }); }).catch(function (t) { wx.hideLoading({}), console.log(t); }); }, inputText: function (t) { var a, e = t.currentTarget.dataset.index; 1 != t.currentTarget.dataset.type ? ((a = this).data.fieldList[e].value = t.detail.value, a.setData({ fieldList: a.data.fieldList })) : ((a = this).data.fieldList[e].order = t.detail.value, a.setData({ fieldList: a.data.fieldList })); }, checkPermission: function () { var t = this; wx.getSetting({ success: function (a) { var e = a.authSetting["scope.record"]; void 0 === e ? wx.authorize({ scope: "scope.record", success: function () { t.setData({ isAuthAudio: !0 }); }, fail: function () { t.setData({ isAuthAudio: !1 }); } }) : e || t.openSetting(); } }); }, openSetting: function () { wx.showModal({ title: "提示", content: "发布内容需要您授权录音权限.", success: function (t) { t.confirm && wx.openSetting({ withSubscriptions: !0 }); } }); }, onShow: function () { if (null != s.getLocation()) { var t = this.data.fieldList[this.data.curMapIndex]; t.valueList.length < t.maxCount && (this.data.fieldList[this.data.curMapIndex].valueList.push(s.getLocation()), this.setData({ fieldList: this.data.fieldList })); } var a = this; wx.getSetting({ withSubscriptions: !0, success: function (t) { var e = t.authSetting["scope.record"]; a.setData({ isAuthAudio: e }); } }); }, pickerChange: function (t) { var a = t.currentTarget.dataset.index, e = t.detail.value; this.data.fieldList[a].index = e, this.data.fieldList[a].value = this.data.fieldList[a].dictionariesList[e].dataId, this.setData({ fieldList: this.data.fieldList }); }, confirmSel: function (t) { var a = t.detail, e = (a.piacker, a.value); this.setData({ selDisplayType: e.id, displayTypeStr: e.name, isShowType: !1 }); }, cancelSel: function (t) { this.setData({ isShowType: !1 }); }, onUnload: function () { s.setLocation(null), this.setData({ map: null }); }, chooseVideo: function (t) { var a = this, e = t.currentTarget.dataset.item, i = e.maxCount - e.valueList.length, s = t.currentTarget.dataset.index; wx.chooseMedia({ count: Number.parseInt(i), mediaType: ["video"], sourceType: ["camera", "album"], maxDuration: 60, success: function (t) { console.log(t), t.tempFiles.length > 0 && (t.tempFiles[0].duration <= a.data.maxDuration ? a.doUploadVideo(s, t.tempFiles, a.data.uploadVideoCount) : wx.showToast({ title: "视频最长60秒", icon: "none" })); }, fail: function (t) { } }); }, doUploadVideo: function (t, e, i) { wx.showLoading({ title: "上传中..." }); var s = this, n = e.length; s.data.uploadVideoCount < n ? a.http.upload(a.urls.doUploadVideo, { path: e[s.data.uploadVideoCount].tempFilePath, name: "video", header: { token: a.globalData.token } }).then(function (a) { wx.hideLoading({}); var i = JSON.parse(a).data; s.doUploadVideoImg(t, i, e, s.data.uploadVideoCount); }).catch(function (a) { wx.hideLoading({}), s.setData({ uploadVideoCount: ++s.data.uploadVideoCount }), s.doUploadVideo(t, e, s.data.uploadVideoCount); }) : (wx.hideLoading({}), s.setData({ uploadVideoCount: 0 })); }, doUploadVideoImg: function (t, e, i, s) { wx.showLoading({ title: "上传中..." }); var n = this; a.http.upload(a.urls.doUploadImg, { path: i[n.data.uploadVideoCount].thumbTempFilePath, name: "image", header: { token: a.globalData.token } }).then(function (s) { console.log(s), wx.hideLoading({}); var o = a.baseUrls.baseCardUrl + e, d = a.baseUrls.baseCardUrl + JSON.parse(s).data, r = JSON.parse(s).data, l = { id: e, thumbId: r, path: o, imgPath: d }; n.data.fieldList[t].valueList.push(l), n.setData({ fieldList: n.data.fieldList }), n.setData({ uploadVideoCount: ++n.data.uploadVideoCount }), n.doUploadVideo(t, i, n.data.uploadVideoCount); }).catch(function (a) { console.log(a), wx.hideLoading({}), n.setData({ uploadVideoCount: ++n.data.uploadVideoCount }), n.doUploadVideo(t, i, n.data.uploadVideoCount); }); }, viewVideo: function (t) { var a = [{ url: t.currentTarget.dataset.url, type: "video" }]; wx.previewMedia({ sources: a, current: 0, showmenu: !1 }); }, delVideo: function (t) { var a = this, e = t.currentTarget.dataset.index, i = t.currentTarget.dataset.idx; wx.showModal({ title: "提示", content: "确定要删除该视频吗?", cancelText: "取消", confirmText: "确定", success: function (t) { t.confirm && (a.data.fieldList[e].valueList.splice(i, 1), a.setData({ fieldList: a.data.fieldList })); } }); }, addLink: function () { for (var t = null, a = 0; a < this.data.items.length; a++) if ("LINK" == this.data.items[a].type) { t = this.data.items[a]; break; } if (this.data.linkList.length < t.count) { if ("" == this.data.linkStr) return void wx.showToast({ title: "请输入文字内容", icon: "error" }); this.data.linkList.push(this.data.linkStr), this.setData({ linkList: this.data.linkList, linkStr: "" }), this.data.linkList.length == t.count && this.setData({ isShowLink: !1 }); } }, addDesc: function () { for (var t = null, a = 0; a < this.data.items.length; a++) if ("TEXTAREA" == this.data.items[a].type) { t = this.data.items[a]; break; } if (this.data.textareaList.length < t.count) { if ("" == this.data.tempDesc) return void wx.showToast({ title: "请输入文字内容", icon: "error" }); this.data.textareaList.push(this.data.tempDesc), this.setData({ textareaList: this.data.textareaList, tempDesc: "" }), this.data.textareaList.length == t.count && this.setData({ isShowDesc: !1 }); } }, addStr: function () { for (var t = null, a = 0; a < this.data.items.length; a++) if ("TEXT" == this.data.items[a].type) { t = this.data.items[a]; break; } if (this.data.textList.length < t.count) { if ("" == this.data.tempText) return void wx.showToast({ title: "请输入文字内容", icon: "error" }); this.data.textList.push(this.data.tempText), this.setData({ textList: this.data.textList, tempText: "" }), this.data.textList.length == t.count && this.setData({ isShowText: !1 }); } }, delText: function (t) { var a = this; wx.showModal({ title: "提示", content: "确定要删除该条数据吗?", cancelText: "取消", confirmText: "确定", success: function (e) { e.confirm && (a.data.textList.splice(t.currentTarget.dataset.index, 1), a.setData({ textList: a.data.textList })); } }); }, delLink: function (t) { var a = this; wx.showModal({ title: "提示", content: "确定要删除该条数据吗?", cancelText: "取消", confirmText: "确定", success: function (e) { e.confirm && (a.data.linkList.splice(t.currentTarget.dataset.index, 1), a.setData({ linkList: a.data.linkList })); } }); }, delDesc: function (t) { var a = this; wx.showModal({ title: "提示", content: "确定要删除该条数据吗?", cancelText: "取消", confirmText: "确定", success: function (e) { e.confirm && (a.data.textareaList.splice(t.currentTarget.dataset.index, 1), a.setData({ textareaList: a.data.textareaList })); } }); }, textInput: function (a) { this.setData(t({}, a.currentTarget.id, a.detail.value)); }, onHide: function (t) { this.setData({ isShowText: !1, isShowDesc: !1, isShowPhoto: !1, isShowLink: !1, isShowAudio: !1, isShowVideo: !1, isShowTags: !1, isShowType: !1 }); }, chooseTags: function (t) { var a = t.currentTarget.dataset.idx; this.data.fieldList[this.data.currentIndex].dictionariesList[a].isSel = !this.data.fieldList[this.data.currentIndex].dictionariesList[a].isSel, this.setData({ fieldList: this.data.fieldList }); var e = "", i = ""; this.data.fieldList[this.data.currentIndex].dictionariesList.forEach(function (t) { t.isSel && (e += t.dataName + ",", i += t.dataId + ","); }), e = e.substr(0, e.length - 1), i = i.substr(0, i.length - 1), this.data.fieldList[this.data.currentIndex].selValue = e, this.data.fieldList[this.data.currentIndex].value = i, this.setData({ fieldList: this.data.fieldList }); }, selTags: function () { this.setData({ isShowTags: !1 }); }, choosePhoto: function (t) { var a = this, e = t.currentTarget.dataset.item, i = t.currentTarget.dataset.index, s = e.maxCount - e.valueList.length; wx.chooseImage({ count: Number.parseInt(s), sourceType: ["album", "camera"], success: function (t) { console.log(t), a.doUploadImg(i, t.tempFilePaths, a.data.uploadCount); }, fail: function (t) { } }); }, delImg: function (t) { var a = this; wx.showModal({ title: "提示", content: "确定要删除该图片吗?", cancelText: "取消", confirmText: "确定", success: function (e) { e.confirm && (a.data.fieldList[t.currentTarget.dataset.itemindex].valueList.splice(t.currentTarget.dataset.index, 1), a.setData({ fieldList: a.data.fieldList })); } }); }, viewImg: function (t) { var a = [t.currentTarget.dataset.url]; wx.previewImage({ urls: a, current: t.currentTarget.dataset.url }); }, doUploadImg: function (t, e, i) { wx.showLoading({ title: "上传中..." }); var s = this, n = e.length; s.data.uploadCount < n ? a.http.upload(a.urls.doUploadImg, { path: e[s.data.uploadCount], name: "image", header: { token: a.globalData.token } }).then(function (i) { wx.hideLoading({}); var n = JSON.parse(i).data, o = { id: n, path: a.baseUrls.baseCardUrl + n }; s.data.fieldList[t].valueList.push(o), s.setData({ fieldList: s.data.fieldList }), s.setData({ uploadCount: ++s.data.uploadCount }), s.doUploadImg(t, e, s.data.uploadCount); }).catch(function (a) { wx.hideLoading({}), s.setData({ uploadCount: ++s.data.uploadCount }), s.doUploadImg(t, e, s.data.uploadCount); }) : (wx.hideLoading({}), s.setData({ uploadCount: 0 })); }, chooseLocation: function (t) { var a = t.currentTarget.dataset.index; this.setData({ curMapIndex: a }); var e = JSON.stringify(n); wx.navigateTo({ url: "plugin://chooseLocation/index?key=".concat("HVDBZ-KJGKF-DNMJR-JHEWI-H2HN7-23BMS", "&referer=").concat("市域自治与互助", "&location=").concat(e, "&category=").concat("生活服务,娱乐休闲") }); }, delMap: function (t) { wx.showModal({ title: "提示", content: "确定要删除该条数据吗?", cancelText: "取消", confirmText: "确定", success: function (a) { a.confirm && (_self.data.fieldList[t.currentTarget.dataset.index].valueList.splice(t.currentTarget.dataset.idx, 1), _self.setData({ fieldList: _self.data.fieldList })); } }); }, delAudio: function (t) { var a = this; wx.showModal({ title: "提示", content: "确定要删除该音频吗?", cancelText: "取消", confirmText: "确定", success: function (e) { e.confirm && (a.data.fieldList[t.currentTarget.dataset.index].valueList.splice(t.currentTarget.dataset.idx, 1), a.setData({ fieldList: a.data.fieldList })); } }); }, doStartRecord: function () { var t = this; wx.getSetting({ success: function (a) { a.authSetting["scope.record"] ? t.startRecord() : wx.authorize({ scope: "scope.record", success: function () { t.startRecord(); } }); } }); }, startRecord: function () { var t = this; t.data.setInter = setInterval(function () { var a = parseInt(t.data.speck_time + 1); t.setData({ speck_time: parseInt(a), isStartRecord: !0 }), t.data.speck_time > 0 && t.data.speck_time <= 59 ? t.start() : (clearInterval(t.data.setInter), t.stop(), wx.showToast({ title: "录音最长60S哦!", duration: 2e3, icon: "none" })); }, 1e3); }, doEndRecord: function () { clearInterval(this.data.setInter), this.data.speck_time > 10 ? (clearInterval(this.data.setInter), this.stop(!0), this.setData({ speck_time: "0", isStartRecord: !1 })) : (clearInterval(this.data.setInter), this.stop(!1), wx.showToast({ title: "时间需大于10秒", duration: 2e3, icon: "none" }), this.setData({ speck_time: "0", isStartRecord: !1 })); }, start: function () { e.start({ duration: 6e4, format: "mp3" }), e.onStart(function () { console.log("recorder start"); }), e.onError(function (t) { console.log(t), _self.stop(!1); }); }, stop: function (t) { var a = this; e.stop(), e.onStop(function (e) { t && a.doUploadAudio(e); }); }, doUploadAudio: function (t) { wx.showLoading({ title: "上传中..." }); var e = this; a.http.upload(a.urls.doUploadAudio, { path: t.tempFilePath, name: "audio", header: { token: a.globalData.token } }).then(function (i) { if (wx.hideLoading({}), e.data.fieldList[e.data.currentIndex].valueList.length < e.data.currentItem.maxCount) { wx.hideLoading({}); var s = JSON.parse(i).data, n = a.baseUrls.baseCardUrl + s, o = parseInt(t.duration / 1e3), d = parseInt(o / 60), r = parseInt(o % 60), l = { id: s, path: n, isPlay: !1, duration: o, curDuation: 0, curDurationStr: "00:00", totalDurationStr: (d > 9 ? d : "0" + d) + ":" + (+r > 9 ? r : "0" + r) }; e.data.fieldList[e.data.currentIndex].valueList.push(l), e.setData({ fieldList: e.data.fieldList }), e.data.fieldList[e.data.currentIndex].valueList.length == e.data.currentItem.maxCount && e.setData({ isShowAudio: !1 }); } }).catch(function (t) { }); }, play: function (t) { var a = t.currentTarget.dataset.index, e = t.currentTarget.dataset.idx, s = t.currentTarget.dataset.item, n = this; n.data.fieldList[a].valueList.forEach(function (t) { t.isPlay && i.stop(), t.isPlay = !1, t.curDuation = 0, t.curDuationStr = "00:00"; }), s.isPlay || ((i = wx.createInnerAudioContext()).src = n.data.fieldList[a].valueList[e].path, i.autoplay = !0), i.onPlay(function () { n.data.fieldList[a].valueList[e].isPlay = !0, n.setData({ fieldList: n.data.fieldList }); }), i.onCanplay(function (t) { n.data.waitFlag && (i.play(), n.setData({ waitFlag: !1 })); }), i.onStop(function (t) { n.data.fieldList[a].valueList[e].isPlay = !1, n.data.fieldList[a].valueList[e].curDuration = 0, n.data.fieldList[a].valueList[e].curDurationStr = "00:00", n.setData({ fieldList: n.data.fieldList }); }), i.onEnded(function (t) { n.data.fieldList[a].valueList[e].isPlay = !1, n.data.fieldList[a].valueList[e].curDuration = 0, n.data.fieldList[a].valueList[e].curDurationStr = "00:00", n.setData({ fieldList: n.data.fieldList }); }), i.onError(function (t) { n.data.fieldList[a].valueList[e].isPlay = !1, n.data.fieldList[a].valueList[e].curDuration = 0, n.data.fieldList[a].valueList[e].curDurationStr = "00:00", n.setData({ fieldList: n.data.fieldList }); }), i.onSeeking(function () { console.log(i.currentTime); }), i.onWaiting(function () { i.pause(), n.setData({ waitFlag: !0 }); }), i.onTimeUpdate(function () { if (i.duration != 1 / 0) { n.data.fieldList[a].valueList[e].curDuration = parseInt(i.currentTime), n.data.fieldList[a].valueList[e].duration = parseInt(i.duration), console.log(i.duration); var t = parseInt(i.currentTime / 60), s = parseInt(i.currentTime % 60), o = parseInt(i.duration / 60), d = parseInt(i.duration % 60), r = t > 9 ? t : "0" + t, l = s > 9 ? s : "0" + s, u = o > 9 ? o : "0" + o, c = +d > 9 ? d : "0" + d; n.data.fieldList[a].valueList[e].curDurationStr = r + ":" + l, n.data.fieldList[a].valueList[e].totalDurationStr = u + ":" + c, n.setData({ fieldList: n.data.fieldList }); } }); }, rewind: function (t) { var a = t.currentTarget.dataset.index, e = t.currentTarget.dataset.idx; t.currentTarget.dataset.item.isPlay && (this.data.fieldList[a].valueList[e].curDuration = this.data.fieldList[a].valueList[e].curDuration - this.data.speedStep, i.seek(this.data.fieldList[a].valueList[e].curDuration), this.setData({ fieldList: this.data.fieldList })); }, speed: function (t) { var a = t.currentTarget.dataset.index, e = t.currentTarget.dataset.idx; t.currentTarget.dataset.item.isPlay && (this.data.fieldList[a].valueList[e].curDuration = this.data.fieldList[a].valueList[e].curDuration + this.data.speedStep, i.seek(this.data.fieldList[a].valueList[e].curDuration), this.setData({ fieldList: this.data.fieldList })); }, slider4change: function (t) { t.currentTarget.dataset.item.isPlay && i.seek(t.detail.value); }, showDialog: function (t) { console.log(t), this.setData({ isShowAudio: !0, currentItem: t.currentTarget.dataset.item, currentIndex: t.currentTarget.dataset.index }); }, showDisplayType: function (t) { this.setData({ isShowType: !0 }); }, chooseDisplayType: function (t) { var a = t.currentTarget.dataset.id; this.setData({ selDisplayType: a }); }, showMutliSel: function (t) { this.setData({ isShowTags: !0, currentIndex: t.currentTarget.dataset.index }); }, doPublish: function () { if (this.checkParams()) { wx.showToast({ title: "保存中..." }); var t = this.buildParams(); console.log(t), a.http.post(a.urls.doSaveMoments.format({ configColumnId: this.data.columnId }), { data: t, header: { token: a.globalData.token } }).then(function (t) { wx.hideLoading({}); var a = getCurrentPages(); a[a.length - 2].setData({ isRefresh: !0 }), wx.navigateBack({ delta: 1 }); }).catch(function (t) { console.log(t); }); } }, checkParams: function () { for (var t = !0, a = 0; a < this.data.fieldList.length; a++) { var e = this.data.fieldList[a]; if (e.must) if ("1" == e.dataType || "7" == e.dataType || "8" == e.dataType || "9" == e.dataType) { if (e.value.length <= 0) { wx.showToast({ title: "请输入或选择" + e.comment, icon: "none" }), t = !1; break; } } else if (e.valueList.length <= 0) { wx.showToast({ title: "请上传" + e.comment, icon: "none" }), t = !1; break; } } return t; }, buildParams: function () { for (var t = {}, a = 0; a < this.data.fieldList.length; a++) { var e = this.data.fieldList[a]; if ("1" == e.dataType || "7" == e.dataType || "8" == e.dataType || "9" == e.dataType) e.value.length > 0 && (t[e.name] = e.value); else if (e.valueList.length > 0) { var i = ""; "6" == e.dataType ? e.valueList.forEach(function (t) { i += t.latitude + "," + t.longitude + "-"; }) : "4" == e.dataType ? e.valueList.forEach(function (t) { i += t.id + "&" + t.thumbId + ","; }) : "3" == e.dataType ? e.valueList.forEach(function (t) { i += t.id + "&" + t.duration + ","; }) : "2" == e.dataType ? (e.valueList.forEach(function (t) { i += t.id + ","; }), i = i.substr(0, i.length - 1), i += "@" + this.data.selDisplayType) : e.valueList.forEach(function (t) { i += t.id + ","; }), "2" != e.dataType && (i = i.substr(0, i.length - 1)), t[e.name] = i; } } return t; } });