|
@@ -33,14 +33,15 @@
|
|
|
<!-- 原文速递 -->
|
|
<!-- 原文速递 -->
|
|
|
<transcription
|
|
<transcription
|
|
|
v-show="pageStatus == 1 && !showIndexPage"
|
|
v-show="pageStatus == 1 && !showIndexPage"
|
|
|
|
|
+ :showGetTextLoading="showGetTextLoading"
|
|
|
:data="transcriptionData"
|
|
:data="transcriptionData"
|
|
|
>
|
|
>
|
|
|
- <el-button
|
|
|
|
|
|
|
+ <!-- <el-button
|
|
|
style="position: absolute; bottom: 10px; right: 20px"
|
|
style="position: absolute; bottom: 10px; right: 20px"
|
|
|
type="primary"
|
|
type="primary"
|
|
|
@click.stop="saveEditorBar(true)"
|
|
@click.stop="saveEditorBar(true)"
|
|
|
>保存</el-button
|
|
>保存</el-button
|
|
|
- >
|
|
|
|
|
|
|
+ > -->
|
|
|
</transcription>
|
|
</transcription>
|
|
|
<!-- ai对话 -->
|
|
<!-- ai对话 -->
|
|
|
<tape
|
|
<tape
|
|
@@ -53,12 +54,12 @@
|
|
|
<!-- <div class="t-t-m-Item" v-show="cardStatus==1"> -->
|
|
<!-- <div class="t-t-m-Item" v-show="cardStatus==1"> -->
|
|
|
<EditorBar
|
|
<EditorBar
|
|
|
class="editorBar"
|
|
class="editorBar"
|
|
|
|
|
+ :showGetTextLoading="showGetTextLoading"
|
|
|
v-model="editorBarData.content"
|
|
v-model="editorBarData.content"
|
|
|
- v-show="
|
|
|
|
|
|
|
+ v-if="
|
|
|
pageStatus == 2 &&
|
|
pageStatus == 2 &&
|
|
|
!showIndexPage &&
|
|
!showIndexPage &&
|
|
|
- editorBarData.type == '0' &&
|
|
|
|
|
- !editorBarData.url
|
|
|
|
|
|
|
+ editorBarData.type == '0'
|
|
|
"
|
|
"
|
|
|
v-loading="uploadFileLoading"
|
|
v-loading="uploadFileLoading"
|
|
|
>
|
|
>
|
|
@@ -71,8 +72,7 @@
|
|
|
</EditorBar>
|
|
</EditorBar>
|
|
|
<iframe
|
|
<iframe
|
|
|
ref="viframe"
|
|
ref="viframe"
|
|
|
- v-show="pageStatus == 2 && !showIndexPage && editorBarData.type == '1'"
|
|
|
|
|
- v-if="editorBarData.url"
|
|
|
|
|
|
|
+ v-if="pageStatus == 2 && !showIndexPage && editorBarData.type == '1' && /\.(xlsx|doc|docx)$/i.test(editorBarData.url)"
|
|
|
style="width: 100%; height: 100%; border: none"
|
|
style="width: 100%; height: 100%; border: none"
|
|
|
v-loading="uploadFileLoading"
|
|
v-loading="uploadFileLoading"
|
|
|
:src="
|
|
:src="
|
|
@@ -80,6 +80,7 @@
|
|
|
encodeURIComponent(editorBarData.url)
|
|
encodeURIComponent(editorBarData.url)
|
|
|
"
|
|
"
|
|
|
></iframe>
|
|
></iframe>
|
|
|
|
|
+ <vpdf style="width: 100%; height: 100%;border: none" :pdfUrl="editorBarData.url" v-if="pageStatus == 2 && !showIndexPage && editorBarData.type == '1' && /\.(pdf)$/i.test(editorBarData.url)" />
|
|
|
<!-- </div> -->
|
|
<!-- </div> -->
|
|
|
</div>
|
|
</div>
|
|
|
<div class="ca-bottom">
|
|
<div class="ca-bottom">
|
|
@@ -91,7 +92,7 @@
|
|
|
<div class="ca-b-o-h-s-l-text">课堂观察</div>
|
|
<div class="ca-b-o-h-s-l-text">课堂观察</div>
|
|
|
<span class="ca-b-o-h-s-l-icon2 el-icon-caret-top"></span>
|
|
<span class="ca-b-o-h-s-l-icon2 el-icon-caret-top"></span>
|
|
|
</div> -->
|
|
</div> -->
|
|
|
-
|
|
|
|
|
|
|
+<!--
|
|
|
<div class="ca-b-o-h-l-select" style="color: #3681fc">
|
|
<div class="ca-b-o-h-l-select" style="color: #3681fc">
|
|
|
<div
|
|
<div
|
|
|
style="cursor: pointer"
|
|
style="cursor: pointer"
|
|
@@ -115,16 +116,14 @@
|
|
|
>{{ i.lang }}</el-radio
|
|
>{{ i.lang }}</el-radio
|
|
|
>
|
|
>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
- <!-- <span class="ca-b-o-h-s-l-icon2 el-icon-caret-top"></span> -->
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div> -->
|
|
|
|
|
|
|
|
<div
|
|
<div
|
|
|
class="ca-b-o-h-l-btn"
|
|
class="ca-b-o-h-l-btn"
|
|
|
@click.stop="uploadRecording()"
|
|
@click.stop="uploadRecording()"
|
|
|
v-loading="uploadFileLoading"
|
|
v-loading="uploadFileLoading"
|
|
|
>
|
|
>
|
|
|
- <div class="ca-b-o-h-b-l-text">上传录音</div>
|
|
|
|
|
|
|
+ <div class="ca-b-o-h-b-l-text">上传文件</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="ca-b-o-h-right">
|
|
<div class="ca-b-o-h-right">
|
|
@@ -366,7 +365,7 @@ import Recorder from "js-audio-recorder";
|
|
|
import MarkdownIt from "markdown-it";
|
|
import MarkdownIt from "markdown-it";
|
|
|
import EditorBar from "./wangEnduit.vue";
|
|
import EditorBar from "./wangEnduit.vue";
|
|
|
const lamejs = require("lamejs");
|
|
const lamejs = require("lamejs");
|
|
|
-
|
|
|
|
|
|
|
+import vpdf from './vpdf'
|
|
|
const recorder = new Recorder({
|
|
const recorder = new Recorder({
|
|
|
sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
|
|
sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
|
|
|
sampleRate: 48000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
|
|
sampleRate: 48000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
|
|
@@ -464,6 +463,7 @@ export default {
|
|
|
transcription,
|
|
transcription,
|
|
|
tape,
|
|
tape,
|
|
|
EditorBar,
|
|
EditorBar,
|
|
|
|
|
+ vpdf,
|
|
|
},
|
|
},
|
|
|
directives: {
|
|
directives: {
|
|
|
"click-outside": clickOutside, // 注册自定义指令
|
|
"click-outside": clickOutside, // 注册自定义指令
|
|
@@ -484,6 +484,7 @@ export default {
|
|
|
textareaValue: "",
|
|
textareaValue: "",
|
|
|
textareaLoading: false,
|
|
textareaLoading: false,
|
|
|
showRoleList: false,
|
|
showRoleList: false,
|
|
|
|
|
+ showGetTextLoading:false,
|
|
|
roleListIndex: 0,
|
|
roleListIndex: 0,
|
|
|
recordedForm: {
|
|
recordedForm: {
|
|
|
time: "00:00:00", //时间
|
|
time: "00:00:00", //时间
|
|
@@ -535,52 +536,6 @@ export default {
|
|
|
],
|
|
],
|
|
|
transcriptionData: {
|
|
transcriptionData: {
|
|
|
content: "",
|
|
content: "",
|
|
|
- // time: "2024-01-13 15:58:00",
|
|
|
|
|
- // content: `对爱整洁,有精神、不拖拉,多思考。老师你好,同学们好。
|
|
|
|
|
- // 请坐。前几天白老师关注到一则新闻,我们大鹏新区政府提出要将2024年作为旅游高质量发展年,为了吸引更多的游客来到咱们大鹏,你认为最重要的是什么来?第一小组。
|
|
|
|
|
- // 我认为最重要的是要先把环境、绿水青山环境弄好,这样才能吸引更多的人来,大鹏是的。
|
|
|
|
|
- // 大家同意他的想法吗?保护大棚环境人人有责,上周咱们班的两位环境调查员就去到葵冲进行了实地调查,我们来看看他们发现了什么。
|
|
|
|
|
- // 大家好,我们是人大附中深圳学校五1班的张龙溪,何瑞一为了响应区政府的号召,今天我们作为环境调查员,准备实地调查一下葵冲的环境情况,走跟随我们的镜头一起去看一看我们调查到的情况有什么样,这样的。
|
|
|
|
|
- // 应该是这样的,就是这样的,像这样的。
|
|
|
|
|
- // 像这种情况。
|
|
|
|
|
- // 像这种情况。
|
|
|
|
|
- // 像这样的。
|
|
|
|
|
- // 我们调查到的情况不是很好,同学们你们。
|
|
|
|
|
- // 谁知谁知。
|
|
|
|
|
- // 刚刚视频有一些小小的不同步,但不影响我们去观察里面的内容。
|
|
|
|
|
- // 好,来,同学们,通过刚才的视频,你看到了哪些环境问题?第五小组。
|
|
|
|
|
- // 我看到了菜市场上到处是垃圾,到处是那些烂掉的瓜果皮,是的。
|
|
|
|
|
- // 其他小组呢?来第八小组我。
|
|
|
|
|
- // 看我看到了路上还有很多漂移的垃圾就路上了。
|
|
|
|
|
- // 你观察得很认真,是的,在咱们生活的这片区域确实存在很多的垃圾问题,这些垃圾主要是家庭里面产生的生活垃圾。
|
|
|
|
|
- // 根据调查,一个家庭一天产生的垃圾大约是三千克,咱们班一共有45位同学,所有同学的家庭一天产生的生活垃圾总质量是多少?老师还调查到一些数据。我校小学部一共有1556人,整个大鹏新区共有55,224户家庭,整个深圳市有6,424,556户家庭,他们一天分别产生多少垃圾呢?现在请小组长从材料框当中拿出实验记录单,我们用计算器来速算一下,将结果记录下来。
|
|
|
|
|
- // 好,可以开始计算。二十五六场这样做的之前工作。
|
|
|
|
|
- // 还差一些,这样更准确一点。
|
|
|
|
|
- // 用计算器这样更准确算完了没有?
|
|
|
|
|
- // 你们。
|
|
|
|
|
- // 算完了吗老师?
|
|
|
|
|
- // 拍一下照片。
|
|
|
|
|
- // 大家算完了吗?
|
|
|
|
|
- // 好,算完的小组面向老师坐,好好表扬第八小组。好,第五、第四、第三。
|
|
|
|
|
- // 好,这是第四小组的数据,我们来看跟大家的一样吗?一样,在刚刚大家记录数据的时候,你发现了什么?在你刚刚写下这些数据,有什么发现?第三小组。
|
|
|
|
|
- // 我发现每天生产的垃圾会非常多。
|
|
|
|
|
- // 垃圾很多多,到什么程度?我们来看。多到全班同学一天产生的垃圾,相当于一头成年公羊这么重,多到全校小学部家庭的垃圾,一天有一头非洲大象这么重。大鹏新区所有家庭一天产生的垃圾量相当于32头,非洲大象这么重,整个深圳市一天产生的垃圾高达3800头,非洲大象这么重。
|
|
|
|
|
- // 老师看到很多同学发出来很惊讶的表情,整个深圳市就产生这么多的垃圾,整个广东省全国23个省加起来,放眼全球,全世界一年产生的垃圾是多少?我们来看这个统计图,把各个地区的垃圾量加起来,全球一年产生垃圾量高达20.17亿吨。这么多的垃圾如果填埋高度是一米的话,它可以埋掉三个深圳或者一个广州的面积。
|
|
|
|
|
- // 面对这组数据,你有什么样的感受跟大家分享一下。来,第一小组,垃圾好多。
|
|
|
|
|
- // 垃圾很多。
|
|
|
|
|
- // 其他小组有什么样的感受?第八小组。
|
|
|
|
|
- // 如果我们一直都以填埋的方式去处理垃圾的话,可能全球的土地都用于填埋垃圾了。
|
|
|
|
|
- // 你还告诉了大家处理垃圾的一种方式是的,这么多的垃圾如果没有得到及时的处理,他们会侵占大量的土地包围我们的城市家园,我们就会陷入到一种垃圾围城的现状,面对这么庞大的垃圾量,我们该怎么办?
|
|
|
|
|
- // 第七小组。
|
|
|
|
|
- // 我觉得我们可以按照垃圾的种类来进行分类,比如说回收垃圾,它可以是回收,然后再利用的或者就是有害垃圾,比如说电池会污染,将会人们将会对它处以专业的处理。
|
|
|
|
|
- // 你想到了垃圾分类,其他小组。
|
|
|
|
|
- // 第五小组。
|
|
|
|
|
- // 并且像很多我们要应该少用一次性的垃圾,比如说你买菜的时候要少用一次性的塑料袋,尽量用布袋,这样子的话可以节省既节省资源,又节省了垃圾的。
|
|
|
|
|
- // 生产量,你说的是一个非常实用的方法,大家刚刚都说出来了,实际的行动是的。今天就让我们一起行动起来,一起共同想办法来解决垃圾问题。
|
|
|
|
|
- // 面对垃圾问题。
|
|
|
|
|
- // 正如第八小组刚刚说的,咱们国家早期的处理方式是直接填埋和焚烧发电,这两种方法在一定程度上减少了垃圾,但也存在着很严重的弊端。现在我们就一起来说一说这两种方法的好处和弊端。第一小组。
|
|
|
|
|
- // 直接填埋这种方法会占用大量土地,而且还会污染土地,焚烧发电这种方法会会污_
|
|
|
|
|
- // `,
|
|
|
|
|
},
|
|
},
|
|
|
chatList: [],
|
|
chatList: [],
|
|
|
};
|
|
};
|
|
@@ -621,6 +576,10 @@ export default {
|
|
|
input.onchange = () => {
|
|
input.onchange = () => {
|
|
|
this.uploadFileLoading = true;
|
|
this.uploadFileLoading = true;
|
|
|
let file = input.files[0];
|
|
let file = input.files[0];
|
|
|
|
|
+ if(!/\.(wav|txt|pdf|xlsx|doc|docx)$/i.test(file.name)){
|
|
|
|
|
+ this.uploadFileLoading = false;
|
|
|
|
|
+ return this.$message.info("请上传.wav,.txt,.pdf,.xlsx,.doc,.docx格式的文件")
|
|
|
|
|
+ }
|
|
|
this.uploadFile(file);
|
|
this.uploadFile(file);
|
|
|
// this.uploadWavFileAndGetText(file);
|
|
// this.uploadWavFileAndGetText(file);
|
|
|
};
|
|
};
|
|
@@ -632,13 +591,21 @@ export default {
|
|
|
this.controlsStatus = 3;
|
|
this.controlsStatus = 3;
|
|
|
} else if (this.pageStatus == 1 || this.pageStatus == 2) {
|
|
} else if (this.pageStatus == 1 || this.pageStatus == 2) {
|
|
|
// 原文速览&&转录文稿
|
|
// 原文速览&&转录文稿
|
|
|
- this.controlsStatus = 2;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if([1,2].includes(this.recordedForm.status)){
|
|
|
|
|
+ this.controlsStatus = 1;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ this.controlsStatus = 2;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
this.showIndexPage = false;
|
|
this.showIndexPage = false;
|
|
|
},
|
|
},
|
|
|
cutTape(val) {
|
|
cutTape(val) {
|
|
|
if (val == 0) {
|
|
if (val == 0) {
|
|
|
- if (this.audioUrl) {
|
|
|
|
|
|
|
+ if([1,2].includes(this.recordedForm.status)){
|
|
|
|
|
+ this.controlsStatus = 1;
|
|
|
|
|
+ this.showIndexPage = true;
|
|
|
|
|
+ }else if (this.audioUrl) {
|
|
|
this.controlsStatus = 2;
|
|
this.controlsStatus = 2;
|
|
|
this.pageStatus = 1;
|
|
this.pageStatus = 1;
|
|
|
} else {
|
|
} else {
|
|
@@ -742,6 +709,7 @@ export default {
|
|
|
this.showIndexPage = false;
|
|
this.showIndexPage = false;
|
|
|
this.pageStatus = 1;
|
|
this.pageStatus = 1;
|
|
|
this.controlsStatus = 2;
|
|
this.controlsStatus = 2;
|
|
|
|
|
+ this.recordedForm.status = 3
|
|
|
// let file = this.convertToMp3(recorder.getWAV());
|
|
// let file = this.convertToMp3(recorder.getWAV());
|
|
|
const mp3Blob = recorder.getWAVBlob();
|
|
const mp3Blob = recorder.getWAVBlob();
|
|
|
let audioFile = this.dataURLtoAudio(mp3Blob, "wav");
|
|
let audioFile = this.dataURLtoAudio(mp3Blob, "wav");
|
|
@@ -1053,16 +1021,23 @@ export default {
|
|
|
},
|
|
},
|
|
|
wavFileGetText(audioFile) {
|
|
wavFileGetText(audioFile) {
|
|
|
let flag = true;
|
|
let flag = true;
|
|
|
- // if(flag){
|
|
|
|
|
|
|
+ // if (flag) {
|
|
|
// // 这里上传文件
|
|
// // 这里上传文件
|
|
|
- // this.uploadWavFile(audioFile)
|
|
|
|
|
|
|
+ // // _this.uploadWavFile(audioFile);
|
|
|
// this.controlsStatus = 2;
|
|
// this.controlsStatus = 2;
|
|
|
// this.showIndexPage = false;
|
|
// this.showIndexPage = false;
|
|
|
// this.pageStatus = 1;
|
|
// this.pageStatus = 1;
|
|
|
|
|
+ // this.editorBarData.type = "0";
|
|
|
// flag = false;
|
|
// flag = false;
|
|
|
|
|
+ // this.uploadFileLoading = false;
|
|
|
// }
|
|
// }
|
|
|
- // this.transcriptionData.content += "这是个测试";
|
|
|
|
|
- // this.editorBarData.content +="这是个测试";
|
|
|
|
|
|
|
+ // this.showGetTextLoading = true;
|
|
|
|
|
+ // this.transcriptionData.content += "这是测试";
|
|
|
|
|
+ // this.editorBarData.content += "这是测试";
|
|
|
|
|
+
|
|
|
|
|
+ // setTimeout(()=>{
|
|
|
|
|
+ // this.showGetTextLoading = false;
|
|
|
|
|
+ // },4000)
|
|
|
// return;
|
|
// return;
|
|
|
let iiframe = this.$refs["iiframe"];
|
|
let iiframe = this.$refs["iiframe"];
|
|
|
let _this = this;
|
|
let _this = this;
|
|
@@ -1081,10 +1056,22 @@ export default {
|
|
|
flag = false;
|
|
flag = false;
|
|
|
_this.uploadFileLoading = false;
|
|
_this.uploadFileLoading = false;
|
|
|
}
|
|
}
|
|
|
|
|
+ _this.showGetTextLoading = true;
|
|
|
let privText = e.privText;
|
|
let privText = e.privText;
|
|
|
|
|
+ console.log(privText)
|
|
|
_this.transcriptionData.content += privText;
|
|
_this.transcriptionData.content += privText;
|
|
|
_this.editorBarData.content += privText;
|
|
_this.editorBarData.content += privText;
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ iiframe.contentWindow.onSessionStopped = function(e){
|
|
|
|
|
+ console.log('转译完成')
|
|
|
|
|
+ console.log(e)
|
|
|
|
|
+ _this.$message.success("转译完成")
|
|
|
|
|
+ _this.showGetTextLoading = false;
|
|
|
|
|
+ _this.saveEditorBar();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
iiframe.contentWindow.doContinuousPronunciationAssessment("", {
|
|
iiframe.contentWindow.doContinuousPronunciationAssessment("", {
|
|
|
files: [audioFile],
|
|
files: [audioFile],
|
|
|
});
|
|
});
|
|
@@ -1318,7 +1305,6 @@ export default {
|
|
|
blob.name = `${this.tid}-classroomObservation.txt`;
|
|
blob.name = `${this.tid}-classroomObservation.txt`;
|
|
|
this.uploadFile(blob);
|
|
this.uploadFile(blob);
|
|
|
} else {
|
|
} else {
|
|
|
- if(!this.editorBarData.content)return this.$message.info("请输入内容")
|
|
|
|
|
this.$emit("updateTranscription", {
|
|
this.$emit("updateTranscription", {
|
|
|
transcriptionData: this.transcriptionData.content,
|
|
transcriptionData: this.transcriptionData.content,
|
|
|
editorBarData: this.editorBarData,
|
|
editorBarData: this.editorBarData,
|