Forráskód Böngészése

Merge branch 'dev' of http://192.168.0.115:3000/4dkankan/4dkankan_bim into dev

rindy 1 éve
szülő
commit
54431aaa4e

+ 5 - 2
src/components/form/medias/Audio.vue

@@ -17,7 +17,7 @@
 </template>
 <script setup>
 import { ref, onMounted, inject } from 'vue'
-import { checkSizeLimitFree, base64ToDataURL } from '@/utils/file'
+import { checkSizeLimitFree, base64ToDataURL, getMime } from '@/utils/file'
 import i18n from '@/i18n'
 const { t } = i18n.global
 const notify = inject('notify')
@@ -31,7 +31,10 @@ const onChange = e => {
     }
 
     let file = e.target.files[0]
-
+    if (!['mp3', 'wav'].includes(getMime(file.name))) {
+        emits('tips', t('components.FileSizeTips', { size: '5', file: 'mp3/wav' }))
+        return
+    }
     if (checkSizeLimitFree(file.size, 5)) {
         let reader = new FileReader()
         reader.onload = function () {

+ 7 - 2
src/components/form/medias/Image.vue

@@ -19,7 +19,7 @@
             <span>{{ $t('components.uploadImg') }}</span>
         </div>
         <div class="tips">{{ $t('components.limitImgLength') }}</div>
-        <input ref="file" multiple type="file" style="display: none" accept="image/jpg,image/jpeg,image/png" @change="onChange" />
+        <input ref="file" multiple type="file" style="display: none" accept=".jpg,.png,.jpeg" @change="onChange" />
     </div>
 
     <div class="del-btn" v-if="isEdit" v-show="notify.media?.[notify.type]?.length" @click="delPic">
@@ -28,7 +28,7 @@
 </template>
 <script setup>
 import { ref, onMounted, inject } from 'vue'
-import { checkSizeLimitFree, base64ToDataURL, convertBlob2File, base64ToBlob } from '@/utils/file'
+import { checkSizeLimitFree, base64ToDataURL, getMime, convertBlob2File, base64ToBlob } from '@/utils/file'
 import common from '@/utils/common'
 import i18n from '@/i18n'
 const { t } = i18n.global
@@ -50,6 +50,11 @@ const onChange = e => {
     let frist = false
     for (let i = 0; i < files.length; i++) {
         let file = e.target.files[i]
+
+        if (!['png', 'jpg', 'jpeg'].includes(getMime(file.name))) {
+            emits('tips', t('components.FileSizeTips', { size: '5', file: 'jpg/png' }))
+            continue;
+        }
         if (checkSizeLimitFree(file.size, 5)) {
             let reader = new FileReader()
             reader.onload = function () {

+ 10 - 5
src/components/form/medias/Video.vue

@@ -15,9 +15,9 @@
     <div class="placeholder" @click="file.click()" v-if="!media.length">
         <div class="icon">
             <i class="iconfont icon-add"></i>
-            <span>{{$t('components.uploadVideo')}}</span>
+            <span>{{ $t('components.uploadVideo') }}</span>
         </div>
-        <div class="tips">{{$t('components.limitFileSizeBit',{file:"mp4/mov",size:"20",bit:"2"})}}</div>
+        <div class="tips">{{ $t('components.limitFileSizeBit', { file: 'mp4/mov', size: '20', bit: '2' }) }}</div>
         <input ref="file" type="file" style="display: none" accept=".mp4, .mov" @change="onChange" />
     </div>
     <div class="del-btn" v-if="notify.media?.[notify.type]?.length && isEdit" @click="delMedia">
@@ -26,7 +26,9 @@
 </template>
 <script setup>
 import { ref, onMounted, inject } from 'vue'
-import { checkSizeLimitFree, base64ToDataURL } from '@/utils/file'
+import { checkSizeLimitFree, base64ToDataURL, getMime } from '@/utils/file'
+import i18n from '@/i18n'
+const { t } = i18n.global
 const notify = inject('notify')
 const isEdit = inject('isEdit')
 const emits = defineEmits(['tips'])
@@ -38,7 +40,10 @@ const onChange = e => {
     }
 
     let file = e.target.files[0]
-
+    if (!['mp4', 'mov'].includes(getMime(file.name))) {
+        emits('tips', t('components.FileSizeTips', { size: '20', file: 'mp4/mov' }))
+        return
+    }
     if (checkSizeLimitFree(file.size, 20)) {
         let reader = new FileReader()
         reader.onload = function () {
@@ -47,7 +52,7 @@ const onChange = e => {
         }
         reader.readAsDataURL(file)
     } else {
-      emits('tips', t('components.FileSizeTips', { size: '5', file: 'mp4/mov' }))
+        emits('tips', t('components.FileSizeTips', { size: '20', file: 'mp4/mov' }))
     }
     e.target.value = ''
 }