454 lines
12 KiB
JavaScript
454 lines
12 KiB
JavaScript
const recorderManager = wx.getRecorderManager()
|
||
const innerAudioContext = wx.createInnerAudioContext();
|
||
const options = {
|
||
duration: 540000,//指定录音的时长,单位 ms
|
||
sampleRate: 16000,//采样率
|
||
numberOfChannels: 1,//录音通道数
|
||
encodeBitRate: 24000,//编码码率
|
||
format: 'mp3',//音频格式,有效值 aac/mp3
|
||
frameSize: 50,//指定帧大小,单位 KB
|
||
}
|
||
Page({
|
||
data: {
|
||
id:"",
|
||
name:"",
|
||
date: new Date().toLocaleDateString(),
|
||
RecordPause:"开始录音",
|
||
num:1,
|
||
tempFilePath:[],
|
||
fileSize:"",
|
||
filePhth:[],
|
||
status: "",
|
||
personName:"",
|
||
toView:"a01",
|
||
topnum:{"e4":"","f1":"","f3":"","g8":"","g11":"","g13":"","h1":"","h8":"","h10":"","h11":"","h14":"","i1":"","j1":"","t3":"","t4":"","t5":""},
|
||
e4:"",
|
||
f1:"",
|
||
f3:"",
|
||
g8:"",
|
||
g11:"",
|
||
g13:"",
|
||
h1:"",
|
||
h8:"",
|
||
h10:"",
|
||
h11:"",
|
||
h14:"",
|
||
i1:"",
|
||
j1:"",
|
||
t3:"",
|
||
t4:"",
|
||
t5:"",
|
||
bianhao:"",
|
||
year:"",
|
||
month:"",
|
||
condition:false,
|
||
buttonClicked:false
|
||
|
||
},
|
||
scrollToViewFn: function (e) {
|
||
var _id = e.target.dataset.id;
|
||
this.setData({
|
||
toView:_id
|
||
})
|
||
console.log(this.data.toView)
|
||
},
|
||
|
||
//开始录音的时候
|
||
start: function () {
|
||
//点击后 变为暂停
|
||
if (this.data.status ==2){
|
||
if (this.data.num == 1) {
|
||
this.setData({
|
||
num: 2,
|
||
RecordPause: "暂停录音",
|
||
condition: false
|
||
})
|
||
|
||
//开始录音
|
||
recorderManager.start(options);
|
||
|
||
recorderManager.onStop((res) => {
|
||
this.data.tempFilePath.push(res.tempFilePath);
|
||
this.tempFilePath = res.tempFilePath;
|
||
console.log('停止录音', res.tempFilePath)
|
||
const { tempFilePath } = res
|
||
recorderManager.start(options);
|
||
console.log(this.data.tempFilePath)
|
||
});
|
||
//错误回调
|
||
recorderManager.onError((res) => {
|
||
console.log('停止录音', res.tempFilePath)
|
||
})
|
||
} else if (this.data.num == 2) { //点击后 变为继续
|
||
recorderManager.pause();
|
||
this.setData({
|
||
num: 3,
|
||
RecordPause: "继续录音"
|
||
})
|
||
} else if (this.data.num == 3) {
|
||
recorderManager.resume();
|
||
this.setData({
|
||
num: 2,
|
||
RecordPause: "暂停录音"
|
||
})
|
||
}
|
||
|
||
}
|
||
},
|
||
//停止录音
|
||
stop: function () {
|
||
recorderManager.stop();
|
||
recorderManager.onStop((res) => {
|
||
this.data.tempFilePath.push(res.tempFilePath);
|
||
this.tempFilePath = res.tempFilePath;
|
||
const { tempFilePath } = res;
|
||
console.log(this.data.tempFilePath);
|
||
this.setData({
|
||
num: 1,
|
||
RecordPause: "开始录音",
|
||
condition:true
|
||
})
|
||
})
|
||
},
|
||
|
||
onLoad: function (options) {
|
||
var that = this;
|
||
var queryBean = options.id;
|
||
var username = options.name;
|
||
var uname = options.username;
|
||
wx.request({
|
||
url: 'https://oa.dcqcdc.com/dccdc/Infection/getSheetId',//请求地址
|
||
data: {},
|
||
header: {//请求头
|
||
"Content-Type": "application/x-www-form-urlencoded"
|
||
},
|
||
method: "POST",//get为默认方法/POST
|
||
success: function (res) {
|
||
console.log(res.data);//res.data相当于ajax里面的data,为后台返回的数据
|
||
console.log(that.data)
|
||
that.setData({
|
||
bianhao: res.data
|
||
})
|
||
|
||
|
||
},
|
||
fail: function (err) { console.log(err) },//请求失败
|
||
complete: function () { }//请求完成后执行的函数
|
||
})
|
||
wx.createSelectorQuery().select('#e4').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
e4:rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#f1').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
f1: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#f3').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
f3: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#g8').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
g8: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#g13').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
g13: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#h1').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
h1: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#h8').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
h8: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#h10').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
h10: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#h11').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
h11: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#h14').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
h14: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#i1').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
i1: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#j1').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
j1: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#t3').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
t3: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#t4').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
t4: rect.top
|
||
})
|
||
}).exec();
|
||
wx.createSelectorQuery().select('#t5').boundingClientRect(function (rect) {
|
||
that.setData({
|
||
t5: rect.top
|
||
})
|
||
}).exec();
|
||
|
||
that.setData({
|
||
id: queryBean,
|
||
name:username,
|
||
personName:uname
|
||
})
|
||
recorderManager.start(options);
|
||
if (that.data.num == 1) {
|
||
that.setData({
|
||
num: 2,
|
||
RecordPause: "暂停录音",
|
||
condition: false
|
||
})
|
||
}
|
||
wx.authorize({
|
||
scope: 'scope.record',
|
||
success() {
|
||
console.log("录音授权成功");
|
||
that.setData({
|
||
status: 2,
|
||
})
|
||
// 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
|
||
// wx.startRecord();
|
||
},
|
||
fail() {
|
||
console.log("第一次录音授权失败");
|
||
wx.showModal({
|
||
title: '提示',
|
||
content: '您未授权录音,功能将无法使用',
|
||
showCancel: true,
|
||
confirmText: "授权",
|
||
confirmColor: "#52a2d8",
|
||
success: function (res) {
|
||
if (res.confirm) {
|
||
//确认则打开设置页面(重点)
|
||
wx.openSetting({
|
||
success: (res) => {
|
||
console.log(res.authSetting);
|
||
if (!res.authSetting['scope.record']) {
|
||
//未设置录音授权
|
||
console.log("未设置录音授权");
|
||
wx.showModal({
|
||
title: '提示',
|
||
content: '您未授权录音,功能将无法使用',
|
||
showCancel: false,
|
||
success: function (res) {
|
||
|
||
},
|
||
})
|
||
} else {
|
||
//第二次才成功授权
|
||
console.log("设置录音授权成功");
|
||
that.setData({
|
||
status: 2,
|
||
})
|
||
// recorderManager.start(options);
|
||
}
|
||
},
|
||
fail: function () {
|
||
console.log("授权设置录音失败");
|
||
}
|
||
})
|
||
} else if (res.cancel) {
|
||
console.log("cancel");
|
||
}
|
||
},
|
||
fail: function () {
|
||
console.log("openfail");
|
||
}
|
||
})
|
||
}
|
||
})
|
||
|
||
},
|
||
|
||
bindDateChange:function(e){
|
||
var that = this;
|
||
that.setData({
|
||
date:e.detail.value
|
||
})
|
||
},
|
||
formSubmit: function (e) {//定义函数名称
|
||
var that = this;
|
||
console.log(that.data.id)
|
||
that.setData({
|
||
buttonClicked: true
|
||
})
|
||
|
||
var dataList = e.detail.value;
|
||
|
||
for (var i in dataList){
|
||
if (i == "A03") {
|
||
var list = dataList[i];
|
||
dataList[i] = list.replace("-", "/").replace("-", "/");
|
||
console.log(dataList[i])
|
||
}
|
||
if (Array.isArray(dataList[i])){
|
||
var list ="";
|
||
for (var n = 0; n < dataList[i].length;n++){
|
||
if(n == dataList[i].length-1){
|
||
list += dataList[i][n];
|
||
}else{
|
||
list += dataList[i][n] + ";";
|
||
}
|
||
}
|
||
dataList[i] = list;
|
||
}
|
||
}
|
||
|
||
var dataLists = JSON.stringify(dataList);
|
||
|
||
console.log(dataLists)
|
||
var filePath = this.data.tempFilePath;
|
||
for (var a in filePath){
|
||
console.log(1+a);
|
||
wx.uploadFile({
|
||
url: "https://oa.dcqcdc.com/dccdc/Infection/SaveData_QuestionAnswer",//演示域名、自行配置
|
||
filePath: filePath[a],
|
||
name: 'file',
|
||
header: {
|
||
"Content-Type": "multipart/form-data"
|
||
},
|
||
formData:
|
||
{
|
||
id: that.data.id ,//附加信息为用户ID
|
||
username: that.data.name
|
||
},
|
||
success: function (res) {
|
||
console.log(res)
|
||
wx.showToast({
|
||
title: '上传成功',
|
||
icon: 'success',
|
||
duration: 2000
|
||
})
|
||
|
||
},
|
||
fail: function (res) {
|
||
wx.showToast({
|
||
title: '上传失败',
|
||
icon: 'success',
|
||
duration: 2000
|
||
})
|
||
|
||
},
|
||
complete: function (res) {
|
||
|
||
}
|
||
})
|
||
}
|
||
|
||
console.log(that.data.id)
|
||
wx.request({
|
||
url: 'https://oa.dcqcdc.com/dccdc/Infection/SaveData_QuestionAnswer',//请求地址
|
||
data: {
|
||
id: that.data.id,
|
||
json: dataLists,
|
||
username:that.data.name
|
||
},
|
||
header: {//请求头
|
||
"Content-Type": "application/x-www-form-urlencoded"
|
||
},
|
||
method: "POST",//get为默认方法/POST
|
||
success: function (res) {
|
||
console.log(res)
|
||
|
||
if (res.data == "保存成功!"){
|
||
wx.showToast({
|
||
title: '上传成功',
|
||
icon: 'success',
|
||
duration: 2000,
|
||
success:function(res){
|
||
setTimeout(function () {
|
||
that.setData({
|
||
buttonClicked: false
|
||
})
|
||
}, 500)
|
||
}
|
||
})
|
||
wx.navigateTo({
|
||
url: '../inquiry/inquiry?name=' + that.data.name,
|
||
success: function (res) {
|
||
|
||
},
|
||
fail: function (res) {
|
||
|
||
},
|
||
complete: function (res) {
|
||
|
||
},
|
||
})
|
||
}
|
||
|
||
|
||
},
|
||
fail: function (err) { console.log(err) },//请求失败
|
||
complete: function () { }//请求完成后执行的函数
|
||
})
|
||
|
||
|
||
},
|
||
close: function () {
|
||
var that = this;
|
||
that.stop();
|
||
wx.navigateTo({
|
||
url: '../inquiry/inquiry?name='+that.data.name,
|
||
success: function (res) {
|
||
|
||
},
|
||
fail: function (res) {
|
||
|
||
},
|
||
complete: function (res) {
|
||
|
||
},
|
||
})
|
||
},
|
||
goTop: function (e) { // 锚点
|
||
if (wx.pageScrollTo) {
|
||
wx.pageScrollTo({
|
||
scrollTop: e.currentTarget.dataset.topnum
|
||
})
|
||
} else {
|
||
wx.showModal({
|
||
title: '提示',
|
||
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
|
||
})
|
||
}
|
||
},
|
||
upMonth:function(e){
|
||
var that = this;
|
||
that.setData({
|
||
month: e.detail.value
|
||
})
|
||
},
|
||
upYear: function (e) {
|
||
var that = this;
|
||
that.setData({
|
||
year: e.detail.value
|
||
})
|
||
}
|
||
|
||
}) |