123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import {
- storeBindingsBehavior
- } from 'mobx-miniprogram-bindings'
- import {
- store
- } from '~/store/index'
- import {
- publishWorks,
- postWorksScore,
- publishRankWorks
- } from '~/api/works'
- import {
- userEvent
- } from '~/api/global'
- Component({
- behaviors: [storeBindingsBehavior],
- storeBindings: {
- store,
- fields: {
- readDetail: 'readDetail'
- },
- actions: {
- setReadDetail: 'setReadDetail'
- }
- },
- /**
- * 组件的属性列表
- */
- properties: {
- readingType: ''
- },
- /**
- * 组件的初始数据
- */
- data: {
- tempFilePath: '',
- uploadSuccess: false,
- uploadFlag: false,
- // 是否上传过
- uploadState: false,
- percent: 0,
- },
- /**
- * 组件的方法列表
- */
- methods: {
- async upload() {
- if (this.data.uploadState) {
- return
- }
- this.setData({
- uploadFlag: true
- })
- const uploadTask = wx.uploadFile({
- url: 'https://reader-api.ai160.com//file/upload',
- filePath: this.data.readDetail.tempFilePath,
- name: '朗读录音',
- header: {
- uid: wx.getStorageSync('uid')
- },
- success: (res) => {
- const formateRes = JSON.parse(res.data);
- let audioPath = formateRes.data;
- this.uploadWorks(audioPath);
- this.setData({
- uploadState: true,
- uploadSuccess: true,
- })
- },
- complete: () => {
- this.setData({
- uploadFlag: false
- })
- }
- })
- uploadTask.onProgressUpdate((res) => {
- this.setData({
- percent: res.progress
- })
- })
- await userEvent({
- action: 'WXUPLOAD',
- })
- },
- cancelMask() {
- this.setData({
- uploadSuccess: false
- })
- },
- async uploadWorks(audio) {
- const data = {
- exampleId: this.data.readDetail.id,
- audioPath: audio,
- originVideo: this.data.readDetail.originVideo,
- };
- let res
- if (this.properties.readingType == 'readMatch') {
- res = await publishRankWorks(data)
- } else {
- res = await publishWorks(data)
- }
- wx.setStorageSync('shareVideoId', res.id)
- let _data = this.data.readDetail
- await postWorksScore({
- "userReadId": res.id,
- "complete": _data.integrity,
- "accuracy": _data.accuracy,
- "speed": _data.fluency,
- "intonation": _data.tone,
- "score": _data.myOverall
- })
- },
- },
- })
|