mirror of
https://github.com/kevin-DL/vue-audio-recorder.git
synced 2026-01-11 19:04:28 +00:00
Add record removing feature
This commit is contained in:
@@ -23,12 +23,14 @@
|
|||||||
|
|
||||||
&__record {
|
&__record {
|
||||||
width: 320px;
|
width: 320px;
|
||||||
|
height: 45px;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
line-height: 45px;
|
line-height: 45px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
border-bottom: 1px solid #E8E8E8;
|
border-bottom: 1px solid #E8E8E8;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
&--selected {
|
&--selected {
|
||||||
border: 1px solid #E8E8E8;
|
border: 1px solid #E8E8E8;
|
||||||
@@ -105,7 +107,7 @@
|
|||||||
|
|
||||||
@keyframes blink {
|
@keyframes blink {
|
||||||
0% { opacity: .2; }
|
0% { opacity: .2; }
|
||||||
20% { opacity: 1; }
|
20% { opacity: 1; }
|
||||||
100% { opacity: .2; }
|
100% { opacity: .2; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -144,6 +146,20 @@
|
|||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&__rm {
|
||||||
|
cursor: pointer;
|
||||||
|
position: absolute;
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
padding: 6px;
|
||||||
|
line-height: 6px;
|
||||||
|
margin: auto;
|
||||||
|
left: 10px;
|
||||||
|
bottom: 0;
|
||||||
|
top: 0;
|
||||||
|
color: rgb(244, 120, 90);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@import '../scss/icons';
|
@import '../scss/icons';
|
||||||
@@ -182,10 +198,14 @@
|
|||||||
<div class="ar-records">
|
<div class="ar-records">
|
||||||
<div
|
<div
|
||||||
class="ar-records__record"
|
class="ar-records__record"
|
||||||
:class="{'ar-records__record--selected': idx === selectedRecord.idx}"
|
:class="{'ar-records__record--selected': record.id === selected.id}"
|
||||||
:key="idx"
|
:key="record.id"
|
||||||
v-for="(record, idx) in recordList"
|
v-for="(record, idx) in recordList"
|
||||||
@click="selectRecord(idx, record)">
|
@click="selected = record">
|
||||||
|
<div
|
||||||
|
class="ar__rm"
|
||||||
|
v-if="record.id === selected.id"
|
||||||
|
@click="removeRecord(idx)">×</div>
|
||||||
<div class="ar__text">Record {{idx + 1}}</div>
|
<div class="ar__text">Record {{idx + 1}}</div>
|
||||||
<div class="ar__text">{{record.duration}}</div>
|
<div class="ar__text">{{record.duration}}</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -193,7 +213,7 @@
|
|||||||
|
|
||||||
<audio-player
|
<audio-player
|
||||||
:compact="compact"
|
:compact="compact"
|
||||||
:record="selectedRecord"
|
:record="selected"
|
||||||
:upload-url="uploadUrl"
|
:upload-url="uploadUrl"
|
||||||
:start-upload="startUpload"
|
:start-upload="startUpload"
|
||||||
:successful-upload="successfulUpload"
|
:successful-upload="successfulUpload"
|
||||||
@@ -245,7 +265,7 @@
|
|||||||
time: this.time
|
time: this.time
|
||||||
}),
|
}),
|
||||||
recordList: [],
|
recordList: [],
|
||||||
selectedRecord: {},
|
selected: {},
|
||||||
uploadStatus: null
|
uploadStatus: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -278,8 +298,9 @@
|
|||||||
|
|
||||||
this.recorder.stop()
|
this.recorder.stop()
|
||||||
},
|
},
|
||||||
selectRecord (idx, record) {
|
removeRecord (idx) {
|
||||||
this.selectedRecord = { idx: idx, url: record.url, blob: record.blob }
|
this.recordList.splice(idx, 1)
|
||||||
|
this.$set(this.selected, 'url', null)
|
||||||
},
|
},
|
||||||
onStartUpload () {
|
onStartUpload () {
|
||||||
this.isUploading = true
|
this.isUploading = true
|
||||||
|
|||||||
Reference in New Issue
Block a user