tijian_tieying/web/德城公众号(问卷小程序)/pages/inquiryList/inquiryList.js

454 lines
12 KiB
JavaScript
Raw Permalink Normal View History

2025-02-20 12:14:39 +08:00
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
})
}  
})